周杨芳,高海涛
(上饶职业技术学院,江西 上饶 334109)
现代工业控制现场对PLC数据的网络化通信要求越来越高。传统模式下,采用“计算机-PLC”通信的方式能够解决小型PLC工业控制系统的数据通信问题,但难以解决多台PLC级联形成的大中型工业控制网络数据有效的通信问题。尽管有部分学者提出采用“上位机—计算机—PLC”网络架构的形式可解决上述问题,但引入上位机后的网络系统成本较高,且结构比较复杂,组建难度大幅度提升,不适用于中小型工控企业及网络通信系统。基于此,本文基于单主站通信技术,并引入“计算机+主站PLC+从站PLC”网络架构模式,组建一种结构简单、程序简约、成本适中、通信功能良好,能够适用于中小型工控系统多台PLC数据通信的网络系统。
PLC单主站网络系统的组建需要采用PLC“主-从站”构建技术及网络读/写指令技术。①PLC“主-从站”构建技术。在采用PPI通信协议的基础上,S7-200型PLC被允许设置为“主-从站”工作模式,并用特殊功能寄存器SMB30指定其主、从站的网络通信属性,例如设置SMB30=00 000 010,即可将PLC设置为主站工作模式,从站PLC不需要进行初始化。②网络读/写指令技术。该指令包含NETW(网络读)和NETW(网络写)2个子指令,当“主-从站”组建成功后,应用该指令能够从远程计算机总站最多读(写)16字节的数据信息,并同时最多激活8条网络指令,从而解决“计算机+主站PLC+从站PLC”之间的网络数据通信问题。
模拟工业控制现场PLC网络通信需求,创设真实化的控制场景:由1台计算机(安装了STEP7编程软件,定义为总站1号机)、1台西门子S7-200型PLC(CPU226型,定义为主站2号机)和1台西门子S7-200型PLC(CPU224型,定义为从站3号机)构成通信网络体系。其中,CPU226型PLC与计算机之间通过PPI线缆和RS485线缆构成“总-主”通信网络,CPU224型PLC与CPU226型PLC之间通过RS485线缆构成“主-从”通信网络。网络通信的实现要求为:通过编译程序和硬件通信系统搭建调试,用2号机的I0.0-I0.7端口控制3号机的Q0.0-Q0.7端口,并用3号机的I0.0-I0.7端口控制2号机的Q0.0-Q0.7端口,实现在计算机编程控制场景下,2号机和3号机之间网络数据的单主站通信控制。
模拟工业控制现场组建的PLC单主站通信网络系统硬件部分由计算机(1台)、西门子S7-200型PLC(2台,分别为CPU226型和CPU224型)构成,外加RS485通信线缆、PPI通信线缆、DC24V电源等器件。具体的系统硬件组建方法如下。
1)组建通信网络。找到计算机和PLC上的RS485通信接口,用网络连接器将2台S7-200型PLC和计算机联通起来,组成一个基于PPI协议的单主站通信网络。
2)连接通信线缆。用双绞线、PPI通信线缆分别将连接器的2个A端子连接起来,并将连接器的另外2个B端子连接起来,构成通信网络数据传输系统。
3)设置通信地址。当通信系统连接完成后,在STEP7编程软件中,设置好主站PLC和从站PLC的通信地址,并下载到PLC的CPU模块中,将PLC的工作模式开关设置在“RUN”状态,以便于网络通信程序的识别和下载。
主站PLC是本系统中用于连接计算机和从站PLC,传递网络通信数据的“桥梁”,需要对主站PLC划分具体的网络通信地址。在具体的通信作业中,从站PLC需要接收主站PLC传输来的指令和数据,并反馈相应的操作,不需要额外设计通信程序。具体的主站PLC网络通信地址划分如表1所示。
主站通信程序如图1所示。
表1 主站PLC网络通信地址的定义与划分
图1 主站通信程序
系统主站PLC的通信程序如图2所示,用于实现主站和从站PLC之间网络系统的数据通信作业,具体包含3个程序网络。
1)初始化设置程序。使用SM0.1指令,当系统上电后将数值2传送给SMB30,以调用出PPI主站工作模式,同时清空数据接收缓冲区和发送缓冲区中的内容,实现初始化。
2)网络读数据判断程序。V100.7常开触点用于激活网络读数据判断,当网络读数据操作完成时,V100.7=1,同时VB107地址中的数据传送给本机的QB0。通过该网络程序,实现将从站PLC中的数据读取到主站PLC。
3)数据传输程序。调用NETR和NETW指令完成主站PLC和从站PLC之间的数据读写作业,以主从站之间的数据读传输为例,传输程序的设计思路为:若NRTR被激活且没有错误,则将远程站数据区指针值IB0传送至VD102,同时传送需要读取的数据字节数至VB106地址,之后调用NETR指令从端口0读取从站的数据信息。
图2 配置通信网络读指令
进行通信参数设置是实现网络系统正常通信的重要步骤。具体的步骤如下。
1)在STEP7软件中单击“工具/指令向导”命令,在弹出的对话框中选择“配置多项网络读写指令操作”,并在其左侧下拉列表中选择“NETR/NETW”选项。
2)由于系统包含主从站数据读写操作,因此在“您希望配置多少项网络读/写操作?”选项中,选择“2”。
3)选择PLC网络通信端口,自动生成子程序,配置读写网络参数。以数据读网络参数配置为例,选择远程地址为“2”,从远程PLC的VB0读取数据,存在本地PLC的VB0处,再单击“下一步”,保存设置。数据写网络参数配置以此类推。
本系统组建完成后,模拟工业控制现场环境,测试系统网络通信的数据传输效果。测试环境为:从站向主站连续发送若干组数据,再由主站向从站连续发送若干组数据,对主从站PLC之间读写数据的响应时间、误差率、传输准确率3项指标平均值进行监测统计。结果显示:系统通信的响应时间、误差率、数据传输准确率均非常优越,具体如表2所示。
表2 系统网络通信效果测试统计表
由运行测试结果可知:本系统成功地在多台PLC之间实现了数据高效传输,数据传输的误差率、准确率均非常优越,可用于工业控制现场级联PLC系统之间的通信网络组建及数据传输,对解决工业级PLC通信网络大数据传输和控制问题具有一定的参考价值。对系统的软件程序进行改进,可进一步实现多台主机控制多台从机、一台主机控制多台从机等通信组网的延伸,产生更为显著的网络通信控制效益。