程序如下
L 0
T PQB 301
NOP 0
L 1
L MW 20
+I
T MW 20
NOP 0
每次调用OB40,MW都会+1,但PQB 301却不输出,必须触发2次OB40(MW 20 + 2)后才能将0送至PQB 301中,很奇怪,问了很多人,没人能回答究竟是为什么,西门子没人了吗?
最佳答案
感觉应该和程序的结构有关系。还是我上次说的那样,程序先执行把过程映像输出区的结果送给输出模块再到外部设备,而你中断只是扫描了一次状态并当时改变,但这个状态不保持,扫描后还是按过程映像输出区的状态又来控制外部设备。但下面的程序有对Q点的操作,从而改变了过程映像输出区的状态,所以第二次扫描时Q点状态改变了。
你可以只保留这部分程序做实验试试。
你在中断程序中加入SFC27试试。使用说明见附件。
图片说明:
提问者对于答案的评价:
PQB不需要刷新输出映像区,但算了,分数也拿不回来,就给你了。
专家置评
参考 zengzy的解释,检查程序。已经进入OB40,
L 0
T PQB 301
这段程序执行了。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc236383.html