只需简单的编程即可实现大批量的模拟量读入
说明一下我用的是300的plc
第一步创建一个FB AND DB块
然后把程序编在FB块里
在开始编程序之前我们要先定义一下FB块的接口,需要用到四个输入都是int形的,分别是模拟量要存的数据块号DB_NO,而且你还可以指定是从数据块的第零位开始存还是从第一百位开始存DBW_Adrees,模拟量的起始地址AIW_Adress,和模拟量的通道数Len,也就是有几个输入。
好了准备工作完成开始编程序,是用stl编的
L DB_NO //加载数据块号
T LW 2 //暂存LW2
OPN [LW2] //间接寻址
L AIW_Aress //加载模拟量起始地址
SLD 3 //左移三位形成地址
T LD 4 //暂存LD4
L DBW_Aress //加载数据块模拟量存入起始地址
SLD 3 //由于后边是对数据区进行寻址所以就需要左移三位了,至于不明白的同学,就回去好好看看书了
T LD 8 //暂存LD8
L Len // 加载通道数
NEXT:T LW2 //LOOP 循环开始
LAR1 LD4 //加载LD4中的内容到地址寄存器1
L PIW[AR1,P#0.0] //加载模拟量
T LW0 //暂存lw0
LAR1 LD 8 //加载ld8中的到ar1
L LW0 //加载lw0
T DBW[AR1,P#0.0] //存到DB块里
L LD4
+ L#16
T LD4 //地址加上16,因为int是十六位的
L LD8
+ L#16
T LD8 //同上
L LW0 // 加载循环次数
LOOP NEXT //如果lw0里边的数大于0就会一直循环,直到为零
这是在fb里的程序
在ob调用格式如下
CALL FB1
DB_NO := 1 //输入你要把模拟量放入的数据区DB1就填1,DB2就填2
DBW_Adrass := 0 //数据块存入起始地址
AIW_Adrass := 30 //模拟量起始地址比如iw30就填30啦
LEN := 100 //有一百个模拟量需要读入
好了教程结束。