在单个程序扫描执行周期内DB1.DBW0会变化吗?DB1.DBW0代表一个角度,这个角度是时时刻刻在变化的,一秒钟变化60°,在0-360°内循环
问题补充:
如有兴趣讨论请+qq 406858205,程序如下,设备是一条自动化压力机线,由4台压力机组成,每台压机各有一套PLC控制系统,此外还有一个总控PLC用于整条线的总控制。PLC均为S7 416.为描述方便,第一台压机简称P1,第二台简称P2,以此类推。总控简称LM。P1 P2 P3 P4与LM通过profinet的S7通讯,P1-P4 PLC直接将数据通过SFB15写到LM PLC中对应的DB块中,其中压机滑块角度DB1.DBW62(P1角度),DB2.DBW62(P2角度)。为实现工艺要求LM PLC中对滑块角度进行比较,如下程序(18 19 20句),PLC正常生产时P1的滑块角度比P2超前75°,允许误差±10°。滑块角度从0-360°循环往复(每秒钟增加60°)。也就是说当P1=75°时,P2应该在0°±10,这时候若P2为359,会通过运算计算到一个正的数值。程序中还有运算(本文档中未显示),一旦差值超过75±10°,则设备报警停机。现在的问题是,设备停机是监控发现DB1.DBW62=75,DB2.DBW62=0,DB10.DBW290=-285,DB10.DBW280=435.这几个值通过做了一段程序,当差值超范围时触发上升沿,将这几个变量的值写在MW中存储下来。问题发生在P2角度过0°时,P1=75 DB10.DBW390=-285,运算出差值=435,设备报警,此问题1小时能发生3次以上。如果DB1.DBW62在单个扫描周期内是变化的,但是我在一个FC的第15句和第46句分别将DB1.DBW62给了MW1650和MW2020,这两个值又是相同的,但在第43句比较MW1650和DB1.DBW62两个值是不相等的。以上数值都是同一个扫描周期的
图片说明:
最佳答案
这个DB1.DBW0不是PIW**,PIW**是不受扫描周期影响而更新的。而DB1.DBW0是你什么时候有赋值操作,它的值就什么时候变化,而且一个周期里有几次赋值操作,它的值就有几次变化。当然我们能看到的总是最后一次赋值操作的值。
提问者对于答案的评价:
这个问题,目前还有一些矛盾的地方,还不是特别清楚,有兴趣加QQ讨论吧。406858205
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc185098.html