QQ登录

只需一步,快速开始

用SCL编程,怎样实现100个AI值的读取?

[ 复制链接 ]
用SCL编程,怎样实现100个AI值的读取?-在博图中,300、400可以通过这种方法,实现间接寻址:

FOR #N := 1 TO 100 BY 1 DO

    #NUM := 254 + #N * 2;

    "DB20".AI_IN[#N] := %IW(#NUM);

END_FOR;

而在1500PLC中,怎么不行了,求大师指点?


---------Q[X,Y]:=1;

  POKE_BOOL(area:=16#81,

              dbNumber:=0,

              byteOffset:=X,

              bitOffset:=Y,

              value:=1);



QBX:=b#16#ff;

POKE(area:=16#81,

     dbNumber:=0,

     byteOffset:=X,

     value:=b#16#ff);


QWX:=W#16#ffff;

POKE(area:=16#81,

     dbNumber:=0,

     byteOffset:=X,

     value:=b#16#ffff);


---------以前的那几种寻址方式在Portal 的SCL里已经不能用了,现在都用PEEK/POKE来读写,请参考下面截图。我个人还是觉得以前的用法简单多了。

用SCL编程,怎样实现100个AI值的读取?

用SCL编程,怎样实现100个AI值的读取?


-------你在博途查找POKE的帮助,写的很详细。

--------假设用POKE指令要写的数是浮点格式或整数格式会不会有警告?我的是有警告的,提示信号或值精度丢失。


        POKE(area := 16#84,

             dbNumber := #A0,

             byteOffset := #X,

             value := 0.0);

----------也许是你DB块里面的数据类型,和你赋值的不一样导致的。


-------我是把WORD类型赋值给WORD类型,精度应该不会降低吧?





回复

使用道具 举报

快速回复 返回列表 客服中心 搜索