项良元
(1.合肥水泥研究设计院有限公司,安徽 合肥 230051;2.合肥固泰自动化有限公司,安徽 合肥 230051)
在实际工业生产中,经常会用到比较重要的第三方专用设备,如立磨、辊压机等,这些专用设备一般会有一些重要的运行参数和控制参数,上位机HMI软件通过读取这些运行数据能够实时了解当前设备的运行状况,通过设置一些控制参数来完成所需要的控制需求。如何读取这些数据以及发送一些控制数据,是相对来说比较困难的问题,对于行业新手来说更是无从下手。要解决这个问题,传统的方法是在两端建立点对点连接,但是这种方式需要布置大量的信号电缆,在人力和物力上会增加很多成本支出。另一种方式就是在两端建立一些通讯机制,如Profibus-DP、ISO-on-TCP、UDP和 S7协议,这种方式在通讯两端都要写一些程序才能完成数据交换,实现起来相对比较复杂,需要一定的专业技能才能实现。
这里介绍另一种比较经济适用的通讯手段,只需在专用设备与上位机端铺设一根网线(两者之间距离超过100m,一般采用铺设光纤的方式,以保证正常通讯),即可实现两者之间的数据交换。这种方式通讯两端都无须通过单独编写程序来实现数据交换,首先要求通讯两端IP地址在同一网段上,然后专用设备端只需提供需要交换数据相应的地址就可,上位机软件所建立的变量绝对地址与专用设备数据地址保持一致即可。
TCP通讯是一种传输协议,它是一种面向连接的、可靠的、基于字节流的通信协议,通过一序列机制来保障TCP传输数据,这种通讯方式设置简单,易于操作,只需将两端IP地址设置为同一网段即可。
打开SIMATI STEP7软件,新建一个TCP项目,见图1。打开图1的Hardware,添加CPU315-2PN/DP硬件配置,并为其配置IP地址192.168.0.1,子网掩码255.255.255.0,见图2。
图1 新建一个TCP项目
图2 添加Hardware设置
打开图1的Blocks分别添加一个DB1(用于数据发送)数据块和DB2(用于数据接收)数据块,见图3。
图3 添加数据块
打开图3的DB1数据块,新建40个Byte表示10个浮点数,用于发送数据,如图4所示。
图4 新建40个Byte发送数据
打开图3的DB2数据块,新建40个Byte表示10个浮点数,用于接收数据,如图5所示。
图5 新建40个Byte接收数据
打开TIA Portal V14软件,建立博图项目,将其命名为TIATCP,然后打开设备与网络,添加SIMATIC PC STATION与WinCC RT Professional,完成项目建立与软件配置,见图6。将图6的TIATCP展开,打开连接项目树连接图标,新建连接名称为Connec-tion1,选择通讯驱动程序SIMATIC S7 300/400,建立通讯连接机制,见图7。
图6 添加SIMATICPCSTATION与WinCCRTProfessional
图7 建立通讯连接机制
将图7的HMI变量打开,并建立10个数据发送变量,其绝对地址与CPU315-2PN/DP DB2地址一一对应,见图8。
图8 建立10个数据发送变量
将图7的HMI变量打开,并建立10个数据接收变量,其绝对地址与CPU315-2PN/DP DB1地址一一对应,见图9。对应关系见图10和图11。
图9 建立10个数据接收变量
图10 HMI发送变量与CPU315-2PN/DP DB1地址对应
图11 HMI接收变量与CPU315-2PN/DP DB1地址对应
对于TIA WINCC与S7-300控制器之间的众多通讯方案中,采用TCP通讯可以减少通讯双边的软件编写,只要保证通讯双边IP地址在同一网段即可,这种通讯方式简单,适用,易懂,双边数据交换只需绝对地址一致即可。需要注意的是WINCC V14上位机软件直接读取下位机的地址信息,其连接通道中必须有下位机的通讯驱动程序,如与1200通讯,则要加载SIMATIC S7 1200驱动程序,与AB通讯,则需要加载Allen-Bradley EherNet/IP,类似这样的通讯一般都可采用TCP连接机制。
总之,TIA WinCC的TCP通讯灵活、自由,在实际应用中给程序员提供了很大的便利。