魏雄冬
(广东省机械技师学院,广州,510450)
随着工业4.0 的不断发展,智能工厂的不断普及,车间设备的智能设备越来越多。各设备之间的通信协议层出不穷,给用户带来了极大的困扰,没有统一的通信协议,也给系统的开发带来了很大难度。在工业4.0 万物互联的时代,各软件之间能使用相同通信协议进行通信,显得尤为重要。OPC UA(OLE For Process Control Unified Architecture)过程控制统一对象模型技术明确了目标是成为实现工业领域的互用性(互操作性)的国际标准,可以很好地解决上述问题。因OPC UA 采用互联网标准使用的安全技术,满足了完整性、机密性、可用性等三大安全需求,能够安全地进行连接、数据传输,故成为工业4.0 研究院推荐的标准通信协议。
KUKA.Sim Pro 软件与西门子PLC 之间的通信可通过3 种方式进行:第一种是采用虚拟PLC,但须结合S7-PLCSIM Advanced 仿真软件,该软件会给PLC 构建一个虚拟网卡,通过该虚拟网卡支持TCP / IP 通信;第二种是直接跟物理PLC 进行通信,因为物理PLC 本身自带网卡,所以无需构建;第三种是采用虚拟PLC 和S7-PLCSIM 仿真软件,如果只有这两者,PLC 只能实现仿真功能,无法实现TCP / IP 通信功能(但PLCSIM Advanced 软件支持),所以还需结合一个第三方网络搭建软件NetToPLCSim,仅当使用PLCSIM 模拟PLC 时,才需要此部分。因此使用S7 连接插件创建直接连接不适用于PLCSIM。可以使用免费工具NetToPLCSim 作为S7 通信与PLCSIM 的西门子软总线接口之间的桥梁。NetToPLCSim 是免费软件,可以从这里下载:http://NetToPLCSim.sourceforge.net/。该下载随软件附有完整用户手册,如果在使用软件时遇到任何问题,可以参考该手册。
本次仿真实验使用TIA Portal V16(西门子公司推出的全集成自动化编程软件)和S7-PLCSIM Advanced V3.0模拟的虚拟S7-1500 系列PLC 完成。类似的过程也适用于其他S7 系列PLC,例如300、400 和1200,这些PLC是物理的或通过PLCSIM 或PLCSIM Advanced 模拟的。需要注意的是,使用S7 插件时,PLC 不需要任何OPC 功能即可连接到KUKA.Sim Pro。
西门子PLC 的OPC UA 功能是后期开发的,以前的PLC 不具备该通信功能,S7-1200PLC 只有在固件版本V4.4 以上才能集成OPC UA 通信仿真功能,对于V4.4以下的版本都不能使用该通信仿真。S7-1500PLC 集成了OPC UA 通信功能,但要实现仿真,需要搭配虚拟网卡。采用西门子PLC 的仿真软件S7-PLCSIM Advanced 搭建虚拟网卡,只能使用S7-1500PLC 和ET 200,不支持搭建S7-1200PLC,故本文仅以S7-1500PLC 为例配置OPC UA 通信。
首先创建PLC 的通信程序,打开“TIA Portal V16”,创建新项目,给项目命名为“KUKA.Sim Pro 与西门子1500PLC 之间的通信程序”,选择好路径,点击“创建”;接着选择“设备与网络”,点击“添加新设备”,选择“控制器”,选择PLC 型号为:CPU 1511-1-PN,订货号为:6ES7 511-1AK01-0AB0,版本号选择V2.5;然后在项目视图中选择项目,右键弹出菜单中选择“属性”,在项目属性中选择“保护”选项卡,必须确保启用了“块编译时支持仿真”设置,在PLC 的属性面板中,在PROFINET 接口设置中找到“以太网地址”;使用模拟PLC 时,通常最好将IP 地址设置为私有IP 地址,例如192.168.0.1;最后在PLC 属性中找到“OPC UA”,选择“服务器”,将“激活OPC UA 服务器”勾选上,下面的端口设置成4840,具体如图1 所示。
最后找到“运行系统许可证”,选择“OPC UA”,选择“SIMATIC OPC UA S7-1500 small”许可证类型,确定即可。给PLC 创建两个IO 变量,根据控制要求编写PLC 控制程序,PLC 仿真程序如图2 所示。
若要让PLC 实现仿真通信,必须建立虚拟网卡,本文选择西门子仿真虚拟网卡。具体操作过程是:在虚拟网卡属性面板下将“Siemens PLCSIM Virtual Switch”前面的框勾选上,PLC 和虚拟网卡必须处于同一网段,首先设置虚拟网卡IP 地址,选择TCP/IPv4,打开属性面板,手动输入IP 地址和子网掩码,该地址不能是PLC 属性中设置的IP 地址,但是应与该设置的IP 地址处于同一网段。
S7-PLCSIM Advanced V3.0 软件必须以管理员身份运行,否则可能无法实现通信。打开该软件,选择PLCSIM虚拟网卡适配器,PLC 类型选择1500PLC,输入即将创建的网卡名称、IP 地址和子网掩码,然后点击“Start”按钮,如图3 所示。需要注意的是,网卡名称无需跟PLC 名称一致,但IP 地址必须跟PLC 组态的IP 地址一致。当下面出来网卡名称和IP 地址,且显示黄灯,说明创建成功,但是PLC 还没运行。虚拟网卡创建完以后,可将PLC 程序下载到仿真器中,接着PG/PC 端口选择“Siemens PLCSIM Virtual Ethernet Adapter”虚拟网卡,选择“显示地址相同的设备”,点击“开始搜索”,可以看到创建的1500PLC,点击“下载”即可完成PLC 项目的下载。最后回到主程序,启用监视,可以让程序处于在线状态,PLC 端的通信配置完成。
配置完PLC 后即可配置KUKA.Sim Pro 的OPC UA,打开“库卡机器人码垛应用”项目(本文研究例案),在连通性视图下,选择“OPC UA”,然后点击“添加服务器”菜单,具体如图4 所示。在编辑连接面板属性中,按服务器格式填好与PLC 一致的服务器地址,即:opc.tcp://192.168.0.1:4840,如图5 所示,输入完点击“应用”,KUKA.Sim Pro 仿真软件端通信配置完成。在服务器的编辑连接面板属性中,点击“测试连接”,弹出连接成功对话框,说明通信配置成功。
OPC UA通信旨在实现工业“万物互联”,让各软件间、跨平台间的数据通信变得简单,变得有可能。该通信没有专门针对的数据类型,只要平台间使用了相同的通信方式,能互相访问到,都是可以进行通信的。本次OPC UA 通信测试以布尔信号为例,若能实现布尔信号的交互,其他数据类型的通信操作一样。
具体操作过程为:建立KUKA.Sim Pro 仿真软件服务器地址后,用鼠标左键点击服务器右边的“连接/端口连接” 按钮,若连接服务器成功,服务器属性面板的已连接状态会显示“True”,服务器后面的指示按钮也会变成绿色。这里要配置两个信号,一个是传送带“BatchReadySignal”信号将传给PLC 的输入,另一个是PLC 的输出信号传给机器人输入口101。
配置KUKA.Sim Pro 传给PLC 的信号,选择“模拟至服务器”,点击“添加变量”。
在创建变量对面板中,将“信号”框勾选上,该面板中左边是KUKA.Sim Pro 信号,右边是PLC 变量,左边选中传送带“BatchReadySignal”信号,右边选中PLC 变量“ConveyorSensor”,点击“选中对”进行配对,如图6 所示。
配置PLC的输出信号传给机器人输入口101,选择“服务器至模拟”,点击“添加变量”。在创建变量对面板中,将“信号映射”、“自由度”框勾选上,左边选中机器人,展开“Inputs”,左边选中“101”信号,右边选中PLC的输出信号“RobotRun”,点击“显示变量”。可以看到创建好的变量目前的状态值,如图7 所示。
数据测试需进行仿真操作,PLC 先运行,再运行KUKA.Sim Pro 仿真软件。在操作前,需保证KUKA.Sim Pro 软件与服务器已连接,点击播放,运行机器人仿真程序,当仿真软件中的易拉罐移动到传动带传感器位置时,在已连接变量面板中,可看到传送带“BatchReadySignal”信号变成了“TRUE”,PLC 信号“ConveyorSensor”也变成了“TRUE”,如图8 所示。查看TIA 监控程序可知,I0.0 触点已经接通,定时器开始定时,5s 后,Q0.0 得电,如图9 所示。1500PLC 的Q0.0 输出信号传给机器人101输入,101 变为“TRUE”,机器人开始搬运易拉罐。
本文结合KUKA.Sim Pro 仿真软件,将KUKA.Sim Pro仿真软件和主流PLC 通过OPC UA 开放协议进行通信,实现了机器人仿真软件、PLC 设备之间数据通信的统一操作,使得仿真软件应用更加灵活与多样性,这不仅可以用于仿真,也能应用于实际项目中。