专家大讲堂《PLC通信原理探秘》系列视频:https://www.ad.siemens.com.cn/service/elearning/series/288.html
最新更新:
连载之二十四: 【PLC通信原理探秘】大讲堂幕后彩蛋之常谈
连载之二十五: 【PLC通信原理探秘】大讲堂幕后彩蛋之征程
连载之二十六: 【PLC通信原理探秘】大讲堂幕后彩蛋之风云
连载之二十七: 【PLC通信原理探秘】大讲堂幕后彩蛋之再起
连载之二十八: 【PLC通信原理探秘】大讲堂幕后彩蛋之晨钟
其实在做WinCC与PLC通信的测试过程中,我并没有像前面介绍CCP和时间片那样去展示这部分,主要是由于前面的理论已经形成,后面的自然迎刃而解,而我的波折多数还是推测,怀疑,所以略去这部分,展现给大家一个结论性的测试。在这个过程中,也是有很多波折的,我也有过苦恼,甚至想放弃的冲动,幸好能够坚持下来,看到了前方美好且让你欣慰的事物。
继续前面的测试,设置保持不变,依然是PLC循环周期通过延时程序设定为5秒左右。WinCC画面有一个变量M0.0, 周期为画面周期10秒。WinCC连接参数复位,即没有激活“写优先”。在画面中,添加变量MB10, MW110, MW200, M350.0,变量刷新时间为画面刷新时间2秒。这时通过报文发现,读任务请求分成两类,其中一类是M0.0为一个读任务请求,另一类MB10, MW110, MW200, M350.0为一组读任务请求,这说明读任务请求的任务分类划分取决于变量的刷新周期,因为前者是2秒,而后面一组则为10秒。
而依然CPU一个周期处理一个读任务,读任务按照画面变量的周期时间在WinCC中进行任务堆栈,然后依次对CPU进行读任务请求。那么就会每隔5秒钟出现应答,并形成如下的应答顺序Ack[4item] ,Ack[4item] ,Ack[1item] ,Ack[4item] ,Ack[4item] ,Ack[1item] …...
因为这4个item是不连续的变量,那么在报文中可以看出明显是分开的,那么连续的变量在报文中会是如何呢?画面中添加变量Db1.DBx0.0, Dbb1, DBW2,在地址上是连续的变量,变量刷新时间为画面刷新时间2秒。然后再看报文中的读任务请求,发现这3个DB变量在报文中合成为DB1.DBX0.0 BYTE 4。这时其实可以体会到在画面上变量优化的问题,如果希望读任务可以一次性对多个变量进行响应,那么在画面上的变量应该是连续地址变量,这样不仅仅在一个请求报文中容纳更多的变量,而且可以对这些变量进行一次性的响应。访问变量的方式是根据变量地址来寻址的。这样的优化方式可以提高WinCC与PLC数据交换的效率,所以WinCC上的画面变量周期数量可以考虑尽可能的减少。此外需要注意的是画面变量来自PLC同一数据区WinCC与PLC的数据S7 PDU一致性大小:S7-300为240B,S7-400为480B。由于S7头信息,参数信息以及变量的管理信息,注意其真实的数据一致性大小。
通过这样的测试,可以得到如何在画面上的变量规划刷新时间和是否地址连续等,帮助客户在编写WinCC的过程中可以在这方面给予考虑,对其进行合理的规划和优化。就这样一步步的探索,坚持下来,相信你也可以!
----------未完待续----------
连载之三十: 【PLC通信原理探秘】大讲堂幕后彩蛋之探囊
连 载 汇 总: 【PLC通信原理探秘】系列连载故事汇总