技术论坛

 【PLC通信原理探秘】大讲堂幕后彩蛋之暮鼓

返回主题列表
作者 主题
赵欣
官方工程师
西门子官方工程师西门子官方工程师

经验值:5576
发帖数:387
精华帖:52
楼主    2020-05-11 22:22:13
主题:【PLC通信原理探秘】大讲堂幕后彩蛋之暮鼓 精华帖 

 专家大讲堂《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通信原理探秘】系列连载故事汇总


读万卷书 行万里路
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。