OB1 程序如下
CALL FC 1
middle:=M0.0
button:=M100.0
FC1 在in_out栏目下 建立两个bool型变量 ,button 与middle
我的目标是是middle是button 控制的单按钮
FC1内容如下:
程序段1:
L P##middle
L DW#16#FFFFFFF8
AD
LAR1
A #button
FP M M [AR1,P#0.6] //为什么这一条上升沿不能正常执行?
JCN _001
L 1
L MB [AR1,P#0.0]
+I
T MB [AR1,P#0.0]
_001: NOP 0
程序段2:
A M [AR1,P#0.0]
FN M [AR1,P#0.5] //但是这一条下降沿可以正常执行,
JCN _002
L 0
T MB 20
_002: NOP 0
问题补充:
对于一楼的,我FP后面多写了M,是我在这里写错了。但是我将FP后面的内容换成一个比如说M100.6,再执行程序,就能正常的执行啊。功能也能实现。
我上面的AD指令,按位求与,我是想将不管别人输M0.7~M0.0,我都是希望是M0.0啊,这里应该不会让M0.0始终为1 啊
最佳答案
这种寻址不支持位变量,你监控时可以看到AR1是V区的变量,并不是M区的。你可以将#middle的类型改为字节即可。
感觉你的程序也不太严谨,可以去掉M标识,并且对MB [AR1,P#0.0]累积加1,上升沿用 M [AR1,P#0.6],累加值会出现错误。
提问者对于答案的评价:
对位还是可以寻址的,不知道为什么我把程序段2删除了就好了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc233466.html