目的:DB块中有30个数据,如果某一个等于100,则对m2052.0置1。程序仿真后(将30个数据中的某一个赋值100),但发现m2052.1始终为0。程序如下:
OPN DB 7 //打开DB 7
L P#0.0 //初始读指针
LAR1
L 30 //共30个字
B001: T MB 2500 //计数值送入MB 2500
L DBW [AR1,P#0.0] //按读指针指示的地址读数据
T #lw0 //赋值给临时变量LW0
A( //和100比较
L #lw0
L 100
==I
)
= M 2052.0
JC B002 //如果相等,则跳出循环
+AR1 P#2.0 //如果不相等,读指针指向下一数据地址
L MB 2500 //取循环计数值
LOOP B001 //循环计数值如为0则结束循环
B002: NOP 0
最佳答案
1、发现m2052.1始终为0?
当然m2052.1始终为0。程序中应该是M 2052.0。
2、注意你的CPU型号,不同型号的CPU的M存储器的大小也不同,例如CPU312等M存储器的只能为256个字节,M 2052.0显然超出范围了。
3、直观看程序没有问题。
提问者对于答案的评价:
原来是仿真时用成了M2502.0,输错了.呵呵,谢谢。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc238929.html