请问变量强制是在PLC程序执行的哪个阶段起作用的,为什么在程序中有向V区(如VB0)写操作的时情况下用用变量强制不起作用,与此变量相关(如V1.0和Q0.0)的的状态并不受影响?(程序如图)
另:状态图表读取的值为什么和程序监控的值不对应?
问题补充:
那现在状态图表里vb200是0,为什么vb300还是1
图片说明:
最佳答案
CPU 允许您强制任意或全部 I/O 点(I 和 Q 位)。 此外,您还可以强制最多 16 个存储器值(V 或 M)或者模拟量 I/O 值(AI 或 AQ)。 V 存储器或 M 存储器值可以按字节、字或双字来强制。
模拟量值只能按字形式进行强制,以偶数字节开始(例如 AIW6 或 AQW14)。 所有强制值都存储在 CPU 的非易失性存储器中。
参考:
S7-200 SMART 系统手册 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 会将强制值应用到输出。
也就是说程序执行的时候,能够把强制值更改了,但是最后,会吧强制的地址重新改成强制值
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc136760.html