论文部分内容阅读
摘要:PROFINET是一种跨供应商的即时、多点通信协议,能够随时访问所有连接的站点,并交换数据,这种通信方式广泛应用在现场多个PLC的联网的工程中;本文S7-200SMARTV2.5PROFINET多点PLC联网和MCGS触摸屏TCP/IP通信,MCGS触摸屏控制和实时监视设备动态,但是在运行中出现偶然数据丢失现象的。通过对项目设备组态、运行机理的研究分析,发现了出现偶然出现丢失数据的原因,提出了相应的解决方案,并对方案原理进行了对比分析,测试、运行验证,其方法可行、可靠,问题得以解决。
关键词: PROFINET; MCGS触摸屏;S7-200SMART;通信;数据丢失; 研究;解决
中图分类号:TP317.4
0 引言
PROFINET IO 是 PROFIBUS International基于以太网的自动化标准,它定义了跨供应商通信、自动化和工程组态模型。借助 PROFINETIO,可采用一种交换技术使所有站随时访问网络。因此,多个节点可同时传输数据,进而可更高效地使用网络。数据的同时发送和接收功能可通过交换式以太网的全双工操作来实现(带宽为 100 Mbps)。目前,这种通信方式广泛应用在现场多个PLC的联网的工程中。
1问题的提出
1.1一般情况下MCGS触摸屏与单台S7-200SMART采用通用串口PPI连接,MCGS触摸屏按通用串口父设备组态,S7-200SMART作为从设备,MCGS触摸屏写入、修改数据和实时监控设备状况,形成一个完整的可视化的自动化项目。为了一些重要设置数据的有效保持,常采用S7-200SMART设置断电保持,断电重启后,MCGS触摸屏将数据从S7-200SMART读入,实现数据保存的目的。
1.2本项目四台S7-200SMARTV2.5通过交换机PROFINET组网和一台MCGS触摸屏TCP/IP通信,见图1。
1.3 S7-200SMARTV2.5在PROFINET通信中有两个角色:IO控制器(IO-Controller)和IO设备(IO-Device),也就是说当我们把本身具有控制功能的S7-200 SMART作为IO设备来使用时,它就被称为“智能设备(IO-Device)”。IO控制器(IO-Controller)和智能設备(IO-Device)的数据交换是 “BLKMOV_BIW 立即写入”和“BLKMOV_BIR 立即读取”实现的;在IO控制器(IO-Controller)程序中以语句“BLKMOV_BIW”将数据立即写入到其虚拟的输出QB地址中,智能设备(IO-Device)程序中以语句“BLKMOV_BIR”其虚拟的输入IB地址中立即读取数据。本项目中plc200smart是IO控制器,plc1、plc2、plc3是3台IO智能设备。
1.4本项目在plc200smart中设置了断电“保持保持”,MCGS触摸屏中组态了设备0、设备1、设备2、设备3分别对应plc200smart、plc1、plc2、plc3,MCGS触摸屏输入、修改数据和实时监控设备状况,如果断电重启后从plc200smart中读取重要设置数据,程序自动运行,实现无人值守的目的。在项目调试测试期间,断电测试数据保持读取,程序能够自动启动,但是在数月的运行中却出现偶然性数据丢失,造成停机的现象。
2 问题分析
2.1 本项目由于3台智能设备(plc1、plc2、plc3)使用的数据相同,因此在触摸屏的设备0、设备1、设备2、设备3 V寄存器组态了相同的数据变量VW50开始组,数据变量属性均为“读写”;plc200smart中设置了V区数据断电保持,控制器plc200smart程序中语句 “BLKMOV_BIW” 将V区数据分别“立即写入”其虚拟输出QB地址给三个智能设备plc1、plc2、plc3,程序段见图2。
三个智能设备plc1、plc2、plc3程序中语句“BLKMOV_BIR”从虚拟输入IB地址中将数据“立即读取”到自己的V数据区中,程序段见图3。
2.2 为了便于分析,将MCGS触摸屏和S7-200SMART设备组态、变量属性、通信数据交换等特征整理成表格,见表1。按初期上电、断电重启、正常运行三个过程进行研究。
2.2.1初期上电时,触摸屏的设备0将V寄存器变量“写”到plc200smart的V数据区,plc200smart再将数据分别“写”给plc1、plc2、plc3,plc1、plc2、plc3分别存入自己的V数据区,实现数据交换,设备运行。
2.2.2 断电重启后,触摸屏的设备0将plc200smartV寄存器保存的变量“读”到的其V数据区,plc200smart也将数据分别“写”给plc1、plc2、plc3,plc1、plc2、plc3分别存入自己的V数据区,实现数据交换,设备运行。同时也存在触摸屏的设备1、设备2、设备3“读”plc1、plc2、plc3 V数据区,这样问题就来了,如果plc200smart最先启动,触摸屏就可以从plc200smart读取断电保持的V区存储的数据;如果plc1、plc2、plc3中任一台先于plc200smart启动,触摸屏将优先“读”到的是plc1、plc2、plc3中最先启动的V区数据中的“零”,这样的结果就是数据丢失了。
2.2.3由于触摸屏的V寄存器变量属性是“读写”,在运行过程中,触摸屏的V寄存器变量“写”可以修改数据,plc200smart将修改后数据保存在V数据区,再“写”给plc1、plc2、plc3的V数据区,设备按修改后数据运行。同时触摸屏也存在“读”plc1、plc2、plc3的V数据区的情况, 而PROFINET通信是多点同时发送和接收数据的,这样可能存在由于设备性能差异,启动时间存在差异的可能,也就存在通信启动时间的差异,经过时间的积累,某一时刻plc1、plc2、plc3中的数据有可能将触摸屏的V寄存器数据刷为“零”,这样的结果就是数据就丢失了。 通过以上分析,确实存数据丢失的可能,与实际运行中偶然丢失数据相符。
3 解决方法
从上研究分析可知,导致数据丢失的原因是触摸屏存在断电重启后设备1、设备2、设备3“读”plc1、plc2、plc3中V区数据的问题和运行过程中设备0“读”plc200smartV区数据、设备1、设备2、设备3“读”plc1、plc2、plc3中V区数据的问题造成的,因此,解决问题的思路就是去掉以上两种情况下触摸屏“读”plc200smart、plc1、plc2、plc3中V区数据的问题;解决的方法是一方面在触摸屏中设置V寄存器中间变量,通过设置“数据保存”按钮,在“数据保存”按钮中写入脚本程序将数据保存在中间变量中,见图4。
另一方面在触摸屏的启动策略中增加腳本程序将V寄存器中间变量写给V寄存器变量,同时给予一定延时时间(6000ms),即触摸屏启动后写入,防止通讯将V寄存器变量刷新为“零”,出现数据丢失的现象,见图5。
MCGS触摸屏V寄存器中间变量和S7-200SMART设备组态、变量属性、通信数据交换等特征,见表2。
其工作原理是:
3.1初期上电时,触摸屏的V寄存器中间变量将设置保存后的数据“写”给V寄存器变量,设备0将V寄存器变量“写”到plc200smart的V数据区,plc200smart再将数据分别“写”给plc1、plc2、plc3,plc1、plc2、plc3分别存入自己的V数据区,实现数据交换,设备运行。
3.2 断电重启后,触摸屏的V寄存器中间变量将断电存储的数据延时“写”给V寄存器变量,设备0将V寄存器变量“写”到plc200smart的V数据区,plc200smart再将数据分别“写”给plc1、plc2、plc3,plc1、plc2、plc3分别存入自己的V数据区,实现数据交换,设备运行。完全消除了触摸屏设备0、设备1、设备2、设备3“读”plc200smart、plc1、plc2、plc3 V数据区的问题。
3.3在运行过程中,也不存在触摸屏中设备0、设备1、设备2、设备3“读”plc200smart、plc1、plc2、plc3 V数据区的问题。
4 结论
S7-200SMARTV2.5 PROFINET与MCGS触摸屏 TCP/IP通信时,要想V寄存器数据断电保持,并不受PROFINET通信多点同时发送和接收数据的影响,可行的方法是:不在S7-200SMART的V寄存器设置断电保持,而是在MCGS触摸屏的V寄存器中设置中间变量,用数据保存按钮脚本程序将数据存储在V寄存器中间变量中,待触摸屏上电启动延时后,触摸屏运行策略脚本程序由V寄存器中间变量再将数据再写入V寄存器变量中,从而实现V寄存器数据断电保持,达到项目数据设置和修改保持目的。同时进一步提升PROFINET多点同时发送和接收数据及高速通信的项目工程应用优势。
参考文献:
关键词: PROFINET; MCGS触摸屏;S7-200SMART;通信;数据丢失; 研究;解决
中图分类号:TP317.4
0 引言
PROFINET IO 是 PROFIBUS International基于以太网的自动化标准,它定义了跨供应商通信、自动化和工程组态模型。借助 PROFINETIO,可采用一种交换技术使所有站随时访问网络。因此,多个节点可同时传输数据,进而可更高效地使用网络。数据的同时发送和接收功能可通过交换式以太网的全双工操作来实现(带宽为 100 Mbps)。目前,这种通信方式广泛应用在现场多个PLC的联网的工程中。
1问题的提出
1.1一般情况下MCGS触摸屏与单台S7-200SMART采用通用串口PPI连接,MCGS触摸屏按通用串口父设备组态,S7-200SMART作为从设备,MCGS触摸屏写入、修改数据和实时监控设备状况,形成一个完整的可视化的自动化项目。为了一些重要设置数据的有效保持,常采用S7-200SMART设置断电保持,断电重启后,MCGS触摸屏将数据从S7-200SMART读入,实现数据保存的目的。
1.2本项目四台S7-200SMARTV2.5通过交换机PROFINET组网和一台MCGS触摸屏TCP/IP通信,见图1。
1.3 S7-200SMARTV2.5在PROFINET通信中有两个角色:IO控制器(IO-Controller)和IO设备(IO-Device),也就是说当我们把本身具有控制功能的S7-200 SMART作为IO设备来使用时,它就被称为“智能设备(IO-Device)”。IO控制器(IO-Controller)和智能設备(IO-Device)的数据交换是 “BLKMOV_BIW 立即写入”和“BLKMOV_BIR 立即读取”实现的;在IO控制器(IO-Controller)程序中以语句“BLKMOV_BIW”将数据立即写入到其虚拟的输出QB地址中,智能设备(IO-Device)程序中以语句“BLKMOV_BIR”其虚拟的输入IB地址中立即读取数据。本项目中plc200smart是IO控制器,plc1、plc2、plc3是3台IO智能设备。
1.4本项目在plc200smart中设置了断电“保持保持”,MCGS触摸屏中组态了设备0、设备1、设备2、设备3分别对应plc200smart、plc1、plc2、plc3,MCGS触摸屏输入、修改数据和实时监控设备状况,如果断电重启后从plc200smart中读取重要设置数据,程序自动运行,实现无人值守的目的。在项目调试测试期间,断电测试数据保持读取,程序能够自动启动,但是在数月的运行中却出现偶然性数据丢失,造成停机的现象。
2 问题分析
2.1 本项目由于3台智能设备(plc1、plc2、plc3)使用的数据相同,因此在触摸屏的设备0、设备1、设备2、设备3 V寄存器组态了相同的数据变量VW50开始组,数据变量属性均为“读写”;plc200smart中设置了V区数据断电保持,控制器plc200smart程序中语句 “BLKMOV_BIW” 将V区数据分别“立即写入”其虚拟输出QB地址给三个智能设备plc1、plc2、plc3,程序段见图2。
三个智能设备plc1、plc2、plc3程序中语句“BLKMOV_BIR”从虚拟输入IB地址中将数据“立即读取”到自己的V数据区中,程序段见图3。
2.2 为了便于分析,将MCGS触摸屏和S7-200SMART设备组态、变量属性、通信数据交换等特征整理成表格,见表1。按初期上电、断电重启、正常运行三个过程进行研究。
2.2.1初期上电时,触摸屏的设备0将V寄存器变量“写”到plc200smart的V数据区,plc200smart再将数据分别“写”给plc1、plc2、plc3,plc1、plc2、plc3分别存入自己的V数据区,实现数据交换,设备运行。
2.2.2 断电重启后,触摸屏的设备0将plc200smartV寄存器保存的变量“读”到的其V数据区,plc200smart也将数据分别“写”给plc1、plc2、plc3,plc1、plc2、plc3分别存入自己的V数据区,实现数据交换,设备运行。同时也存在触摸屏的设备1、设备2、设备3“读”plc1、plc2、plc3 V数据区,这样问题就来了,如果plc200smart最先启动,触摸屏就可以从plc200smart读取断电保持的V区存储的数据;如果plc1、plc2、plc3中任一台先于plc200smart启动,触摸屏将优先“读”到的是plc1、plc2、plc3中最先启动的V区数据中的“零”,这样的结果就是数据丢失了。
2.2.3由于触摸屏的V寄存器变量属性是“读写”,在运行过程中,触摸屏的V寄存器变量“写”可以修改数据,plc200smart将修改后数据保存在V数据区,再“写”给plc1、plc2、plc3的V数据区,设备按修改后数据运行。同时触摸屏也存在“读”plc1、plc2、plc3的V数据区的情况, 而PROFINET通信是多点同时发送和接收数据的,这样可能存在由于设备性能差异,启动时间存在差异的可能,也就存在通信启动时间的差异,经过时间的积累,某一时刻plc1、plc2、plc3中的数据有可能将触摸屏的V寄存器数据刷为“零”,这样的结果就是数据就丢失了。 通过以上分析,确实存数据丢失的可能,与实际运行中偶然丢失数据相符。
3 解决方法
从上研究分析可知,导致数据丢失的原因是触摸屏存在断电重启后设备1、设备2、设备3“读”plc1、plc2、plc3中V区数据的问题和运行过程中设备0“读”plc200smartV区数据、设备1、设备2、设备3“读”plc1、plc2、plc3中V区数据的问题造成的,因此,解决问题的思路就是去掉以上两种情况下触摸屏“读”plc200smart、plc1、plc2、plc3中V区数据的问题;解决的方法是一方面在触摸屏中设置V寄存器中间变量,通过设置“数据保存”按钮,在“数据保存”按钮中写入脚本程序将数据保存在中间变量中,见图4。
另一方面在触摸屏的启动策略中增加腳本程序将V寄存器中间变量写给V寄存器变量,同时给予一定延时时间(6000ms),即触摸屏启动后写入,防止通讯将V寄存器变量刷新为“零”,出现数据丢失的现象,见图5。
MCGS触摸屏V寄存器中间变量和S7-200SMART设备组态、变量属性、通信数据交换等特征,见表2。
其工作原理是:
3.1初期上电时,触摸屏的V寄存器中间变量将设置保存后的数据“写”给V寄存器变量,设备0将V寄存器变量“写”到plc200smart的V数据区,plc200smart再将数据分别“写”给plc1、plc2、plc3,plc1、plc2、plc3分别存入自己的V数据区,实现数据交换,设备运行。
3.2 断电重启后,触摸屏的V寄存器中间变量将断电存储的数据延时“写”给V寄存器变量,设备0将V寄存器变量“写”到plc200smart的V数据区,plc200smart再将数据分别“写”给plc1、plc2、plc3,plc1、plc2、plc3分别存入自己的V数据区,实现数据交换,设备运行。完全消除了触摸屏设备0、设备1、设备2、设备3“读”plc200smart、plc1、plc2、plc3 V数据区的问题。
3.3在运行过程中,也不存在触摸屏中设备0、设备1、设备2、设备3“读”plc200smart、plc1、plc2、plc3 V数据区的问题。
4 结论
S7-200SMARTV2.5 PROFINET与MCGS触摸屏 TCP/IP通信时,要想V寄存器数据断电保持,并不受PROFINET通信多点同时发送和接收数据的影响,可行的方法是:不在S7-200SMART的V寄存器设置断电保持,而是在MCGS触摸屏的V寄存器中设置中间变量,用数据保存按钮脚本程序将数据存储在V寄存器中间变量中,待触摸屏上电启动延时后,触摸屏运行策略脚本程序由V寄存器中间变量再将数据再写入V寄存器变量中,从而实现V寄存器数据断电保持,达到项目数据设置和修改保持目的。同时进一步提升PROFINET多点同时发送和接收数据及高速通信的项目工程应用优势。
参考文献:
[1] MCGS嵌入版用户指南;昆仑通态MCGS7.7.1.7V1.3
[2] MCGS嵌入版参考手册;昆仑通态MCGS7.7.1.7V1.3
[3] S7-200 SMART PROFINET通信;西门子STEP 7 MicroWIN SMART V2.5
[4] 黄子滪;PROFINET在加速器控制系统中的应用研究[D];中国科学技术大学;2019年
[5]刘向彬;杨良;PROFINET环网组态在涂装车间输调漆系统的应用[A];中国计量协会冶金分会2018年会论文集[C];2018年
[6]马怡蕾、麻红昭;MCGS触摸屏使用过程中发现的问题及解决方案;工业控制计算机;2017年第30卷第12期