作者 | 主题 |
---|---|
赵欣 奇侠 经验值: 5577 发帖数: 387 精华帖: 52 |
楼主 2020-03-12 09:14:05
主题:【PLC通信原理探秘】大讲堂幕后彩蛋之花明 专家大讲堂《PLC通信原理探秘》系列视频:https://www.ad.siemens.com.cn/service/elearning/series/288.html
连载之一: 【PLC通信原理探秘】大讲堂幕后彩蛋之序言 连载之二: 【PLC通信原理探秘】大讲堂幕后彩蛋之初探 连载之三: 【PLC通信原理探秘】大讲堂幕后彩蛋之失败 连载之四: 【PLC通信原理探秘】大讲堂幕后彩蛋之曙光 连载之五: 【PLC通信原理探秘】大讲堂幕后彩蛋之黑暗 连载之六: 【PLC通信原理探秘】大讲堂幕后彩蛋之破局 连载之七: 【PLC通信原理探秘】大讲堂幕后彩蛋之扬帆 连载之八: 【PLC通信原理探秘】大讲堂幕后彩蛋之柳暗
2007年的夏天慢慢走远,迎来了北京最好的季节-秋季,秋高气爽,总是让人心旷神怡。CCP和时间片的概念探索已经初见成效,仿佛自己也随着天气的变化,变得轻松许多!
Profinet IO的刷新时间和CPU的循环周期时间是不同步的,各自有各自的周期时间。如果编写的用户程序过大,那么CPU的循环周期自然会变长,假设100ms,但是如果此时想快速的刷新IO设备,例如8ms,此时的程序是不能做到真正按照8ms来刷新IO的,因为CPU的循环周期是100ms。
那如何来解决呢?除了瘦身程序外,首先想到的是使用指令PIW/PQW这样的指令,并在循环的组织块,例如OB35,循环周期8ms中调用,这样就能够实现真正按照8ms来刷新IO设备。
而对于PIW/PQW指令,它真的像很多工程师想象的那样,这个指令去直接访问分布式IO设备上的IO数据吗?这真的是一个误区,而且这样认为的人还是大有人在。通过Wireshark抓包,可以看见并没有因为该指令的出现而出现一些特殊的读写IO数据的报文,仍旧是周期性的循环数据帧。
那么既然PIW/PQW这样的指令不是直接访问分布式IO的IO数据,那么也就说明它们访问的CPU内部的缓冲区,是哪个数据缓冲区呢?就是前面我所给大家定义的外设IO区,此区域是数据随着PN IO的刷新周期而变化,PIW/PQW就是访问于此,能够直接和外设IO区进行数据交换,从而达到真正按照8ms刷新时间去刷新分布式IO。
理解了PIW/PQW的工作原理,那么在使用它们的时候,尤其在编程时,需要注意的是因为它们直接访问外设IO区,那么在CPU的循环周期内是不一致的,如果在编程时,多次使用并访问相同的IO地址区时,需要特别注意,因为有可能前面的结果被后面的程序执行所覆盖。上述原理同样适用于S7-1500使用:P指令的操作。
至此,我把PII/PIQ以及使用PIW/PQW指令的背后的原理和概念全部弄清楚了。这些概念同样也适用Profibus DP,那么作为CPU循环周期中的最后两个拼图PII/PIQ对于通信的作用是什么呢?
前面提到了时间片和CCP,例如S7-400与PG进行通信时,数据通信发生在时间片,而300PLC发生在CCP。结合的这个测试,说明也不是所有的通信都发生在时间片或CCP,例如PN IO和PB DP,这两种通信是独立存在的,也就是说20%参数的调整不能改善任何关于这两个通信的性能。这里为了归类和好理解,我把 PN IO和PB DP的通信,归结到PII/PIQ,这样一个完整的CPU的循环周期,能在各个部分PII/PIQ/AP/CCP中看到各种各样的通信服务,也说明在CPU周期中通信无处不在!(需要特别说明的是当使用S7-1500CPU的X2端口时,进行的PN IO通信却不是这样的,后面再给大家说明。)
此外,回过头再看300/400PLC中属性中的循环部分,默认的PII/PIQ大小一般是256字节,这说明刷新PII和PIQ的时间不能被忽略,最起码它会影响CPU的循环周期时间,也就是说如果该区域设置过大,那么CPU就要消耗更多的时间进行扫描,交换数据,自然CPU的循环周期会延长。而再看如今的1500CPU时,默认都是过程影响区,这就说明1500性能真的强大,无需优化这些参数来降低CPU的循环周期。
20%的谜题基本上解开了,即20%的参数只能优化发生在时间片上的通信服务,对于发生在CCP,PII/PIQ上的通信服务无能为力。
整个CPU循环对于通信服务的操作和背后原理的总结,在探索通信原理的道路上终于前进了一大步,对于笔记本中所记载的哪些问题,我只能说,前进吧!
----------未完待续---------- 连载之十: 【PLC通信原理探秘】大讲堂幕后彩蛋之远航 连载汇总: 【PLC通信原理探秘】系列连载故事汇总
读万卷书 行万里路
|
CoolCool的猪 至圣 经验值: 16714 发帖数: 1307 精华帖: 2 |
1楼 2020-03-12 10:27:07
主题:回复:【PLC通信原理探秘】大讲堂幕后彩蛋之花明 彩蛋不断 精彩继续
同一个问题ID下,已经先回答此问题的人,如再参考我答案而修改自己答案的,就是王八蛋!
|
www123456 至圣 经验值: 12233 发帖数: 2431 精华帖: 86 |
3楼 2020-03-13 09:47:15
主题:【故事】回复:【PLC通信原理探秘】大讲堂幕后彩蛋之花明
了解了手册上没有的通信底层知识,感觉正常工作中的应用有些肤浅,还得不断学习探索,虽然国内自动化控制目前已经很不错了,但基础核心部分和国外差距还是很大的,任重道远啊。
|
pkh2006 奇侠 经验值: 6138 发帖数: 879 精华帖: 11 |
5楼 2020-03-13 16:05:04
主题:回复:【PLC通信原理探秘】大讲堂幕后彩蛋之花明 两个问题 第一个既然在程序中用PIW、PQW对应的区域和过程映像刷新时对应的内部缓冲区区域相同,那为什么比如设备掉站,如果使用了PIW访问该设备时(其实是内部缓冲区),CPU会报错OB122,而如果没使用PIW时,刷新过程映像时不报错,系统行为吗? 第二个,集成口的PN、PB这两个我也觉得不按照时间片,那其他的呢,比如主机架的通信、扩展通信模块的PN、PB、OUC、S7、Serial、Asi之类的呢 |