S7-1200 设计紧凑、组态灵活,TIA在库函数中嵌套了Modbus-RTU 和Modbus-TCP功能库,在做数据采集的项目中是非常好用的。
做过一个换热站设备运行监测的项目,需采集管网一次侧和二次侧的供水压力、温度以及ABB变频器的工作状态。现场各类变送器已经接到了原有的智能仪表上,因此采用1200PLC通过MODBUS-RTU 与现场智能仪表和变频器通信是比较经济的方案,并且可通过MODBUS-TCP与远程上位机通信。<?XML:NAMESPACE PREFIX = O />
智能仪表及变频器作为从站,只需在设定中选择Modbus-RTU通信协议并且为设备分配不重复的站地址即可。1200 PLC作为主站必须配备RS485通信模块,其通信的基本原理是:首先程序开始运行时,调用一次Modbus库中的功能块MB_COMM_LOAD来组态RS485模块上的端口;其次调用库中的功能块MB_MASTER作为Modbus主站与设备进行通信。
1200PLC作为主站通信是由DATA_ADDR(从站中的起始Modbus地址)和MODE(读、写、诊断模式)参数一起确定实际Modbus消息中使用的功能代码。DATA_PTR(数据指针)指向要写入或读取的数据的CPU DB地址,该DB必须为“非仅符号访问”DB类型。在TIA V12以上平台中,将该DB属性中的“优化的块访问”选项取消。
PLC主站发送带有站地址标识的数据来寻址不同的从站,同时不同的从站通过响应带有站地址标识的数据给主站,以完成整个通信过程。这种轮询通信,可以根据发送和接收完成的标志来完成,也可以以固定的时间间隔进行轮询,实际应用时需要考虑CPU的性能以及轮循Modbus子站时间。程序编好后先用MODBUS调试工具测试一下,正常后再开始接线。
技术规范一般技术数据 | |
防护等级 | IP20,符合 IEC 60 529 |
环境温度 | |
水平安装 | 0...60°C(显示:典型工作温度50 °C,显示器关闭) |
垂直安装 | 0...40°C(显示:典型工作温度40 °C,显示器关闭) |
相对湿度 | 10 %...95 %;无冷凝 |
气压 | 1080 ~ 795 hPa |
绝缘 | |
< 50 V | 707 V 直流试验电压(型式试验) |
< 150 V | 2200 V DC 测试电压 |
< 250 V | 2500 V DC 测试电压 |
电磁兼容性 | 电磁兼容性指令要求; |
脉冲形干扰变量 | 测试依据: |
正弦干扰变量 | 测试依据: 电磁兼容性指令要求; |
在接线时遇到一个小插曲:PLC及变频器的485接线端子B为正,A为负,很多厂家仪表的485接线端子是A为正,B为负,一开始通信始终不正常,当查看仪表说明书时才发现。
项目中我使用的是Modbus-TCP通过PLC上PN接口与上位机进行通信,Modbus-TCP使用开放式用户通信连接作为Modbus通信路径。在S7-1200 PLC的库函数中嵌套了Modbus-TCP功能块库, 它包含了Server 和Client的库函数, 编程时可以直接调用该库函数可实现与上位机的Modbus-TCP通信。
在该系统应用中S7-1200 PLC作为 Modbus Tcp Server (服务器),调用 “MB_SERVER”指令处理Modbus-TCP客户机的连接请求、接收Modbus功能的请求并发送响应,设置连接ID、IP端口等参数,使用起来比较简单。
S7-1200 PLC作为网络的服务器端,上位机可以按需建立连接访问PLC的数据区,这样在上位机对多个换热站的PLC连接中不会占用太多的资源。前提是PLC必需要有固定的IP才行,如果是动态拨号连接上位机,PLC端就需要作为客户端,通过修改MODE管脚的值改变发送或接收状态,按照主机的请求来按需向主机发送数据或主动接收主机的改写数据就比较麻烦了。
这是我在MODBUS通信协议项目应用中的一点小体会,一些观点或许过于幼稚,望各位同行多我指正,仅以此文起到抛砖引玉的作用。
与PLC有关的程序包括两类,一类是面向PLC内部的程序,即系统管理程序和编译程序(或解释程序)。这些程序由PLC厂家设计并固化到存储器中。另一类是面向用户或面向生产过程的“应用程序”(Application Program),也称“PLC程序”(PLC Program)或“用户程序”(Use Program)。下面所要讨论的是面向外部、即面向生产过程的程序设计。
到目前为止,在所有“应用程序”中,以“梯形图”的应用为广泛。梯形图程序采用类似继电器触点、线圈的图形符号,容易为从事电气设计制造的技术人员所理解和掌握。
a) b)
图1 电动机起停两地控制逻辑
a) 继电器控制 b) 梯形图控制
图1为用于电动机起停两地控制的继电器控制电路和与其控制逻辑等效的梯形图。在图1a中,S1和S3,S2和S4分别为相距甚远的两个操作台上的电动机起、停按钮。K为起动电动机的接触器线圈。当任一起动按钮(S1或S2)被按下时,接触器K得电,并通过其触点K闭合自保,电动机进入运转状态。当任一停止钮(S3或S4)被按下时,接触器K失电,其触点K断开,电动机停止运转。这样,两个操作台均可独立地对电动机起停进行控制。
在图1b中,当S1或S2节点闭合时,K线圈输出,并通过节点K闭合自保。当S3或S4节点断开时,K线圈无输出,节点K亦断开。
由上例可见,梯形图的控制逻辑结构及工作原理与继电器逻辑控制电路是十分接近的。
图2是一段用“梯形图”表示的简单的PLC程序。左右两条竖直线称为“电力轨”(Power Rail)。梯形图是电力轨和夹在电力轨间的“节点”(或称触点)、“线圈”(或称继电器线圈)、“功能块”(功能指令,图中未画)等构成的一个或多个“网络”。在左右电力轨间的梯形图的一个网络且包括电力轨称为一个‘梯级’(Rung)。每个梯级由一“行”或数“行”构成。例如图2的梯形图由两个梯级构成。上一个梯级只有一“行“,含有三个“节点”和一个“线圈”。下一个梯级由三“行”构成,含有四个“节点”和一个“线圈”。
图2 梯形图结构
用PLC改造继电器控制系统时,因为原有的继电器控制系统经过长期使用和考验,已经被证明能完成系统要求的控制功能,而继电器电路图与梯形图在表示方法和分析方法上有很多相似之处,因此可以根据继电器电路图来设计梯形图,即将继电器电路图“转换”为具有相同功能的PLC的外部硬件接线图和梯形图。因此根据继电器电路图来设计梯形图是一条捷径。使用这种设计方法时注意梯形图是PLC的程序,是一种软件,而继电器电路是由硬件元件组成的,梯形图和继电器电路有很大的本质区别,例如在继电器电路图中,各继电器可以同时动作,而PLC的CPU是串行工作的,即CPU同时只能处理1条指令,根据继电器电路图设计梯形图时有很多需要注意的地方。
这种设计方法一般不需要改动控制面板,保持了系统原有的外部特性,操作人员不用改变长期形成的操作习惯。