请问变量强制是在PLC程序执行的哪个阶段起作用的,为什么在程序中有向V区(如VB0)写操作的时情况下用用变量强制不起作用,与此变量相关(如V1.0和Q0.0)的的状态并不受影响?(程序如图)
另:状态图表读取的值为什么和程序监控的值不对应?
问题补充:
那现在状态图表里vb200是0,为什么vb300还是1
图片说明:
cf26997fbd6b3a11891f7ab305d34cd1
最佳答案
CPU允许您强制任意或全部I/O点(I和Q位)。此外,您还可以强制最多16个存储器值(V或M)或者模拟量I/O值(AI或AQ)。V存储器或M存储器值可以按字节、字或双字来强制。
模拟量值只能按字形式进行强制,以偶数字节开始(例如AIW6或AQW14)。所有强制值都存储在CPU的非易失性存储器中。
参考:
S7-200SMART系统手册V2.2
htTP://www.ad.siemens.com.cn/download/docMessage.ASpx?Id=6780
603页10.4强制特定值
补充:
你没看我给你发的手册
在手册下面这么说:
因为扫描周期内强制数据可能会更改(通过程序、I/O更新周期或通信处理周期),所以CPU会在扫描周期的不同时间重新应用这些强制值。
读取输入:读取时,CPU会将强制值应用到输入。
●执行程序中的控制逻辑:CPU会将强制值应用到所有立即I/O访问。程序执行后,强制数据最多可用于16个存储器值。
●处理任何通信请求:CPU将把强制值应用到所有读/写通信访问。
●写入输出:写入时,CPU会将强制值应用到输出。
也就是说程序执行的时候,能够把强制值更改了,但是最后,会吧强制的地址重新改成强制值
提问者对于答案的评价:
谢谢