您的位置:控制工程论坛网论坛 » 自动化软件 » 5UFOR循环变址

dongyuanxun

dongyuanxun   |   当前状态:在线

总积分:853  2024年可用积分:0

注册时间: 2006-09-20

最后登录时间: 2023-08-31

空间 发短消息加为好友

5UFOR循环变址

dongyuanxun  发表于 2022/3/31 12:49:34      754 查看 3 回复  [上一主题]  [下一主题]

手机阅读

/*这样老是读不到数据,或者读不到3个数据,只能读到1或2个 ICOUNT类型为 字有符号 */


FOR ICOUNT:=1 TO 3  BY 1 DO   
     Z1:=ICOUNT;
         ADPRW(TRUE,ICOUNT,04,00,01,D100Z1,M205);
     END_FOR;

/* 换成 这样完全没问题*/
Z1:=1;
ICOUNT:=1;
ADPRW(TRUE,ICOUNT,04,00,01,D100Z1,M205);

Z1:=2;
ICOUNT:=2;
ADPRW(TRUE,ICOUNT,04,00,01,D100Z1,M205);

Z1:=3;
ICOUNT:=3;
ADPRW(TRUE,ICOUNT,04,00,01,D100Z1,M205);


1楼 0 0 回复
  • ibecc

    ibecc   |   当前状态:在线

    总积分:920  2024年可用积分:0

    注册时间: 2010-05-21

    最后登录时间: 2023-08-31

    空间 发短消息加为好友

    ibecc   发表于 2022/3/31 12:59:36

    因为for循环将在一个扫描周期内结束,而ADPRW的执行时间大概在23个微秒,且ADPRW无法同时执行2条指令,因此无法保证在for循环中得到正确的执行。

    2楼 回复本楼

    引用 ibecc 2022/3/31 12:59:36 发表于2楼的内容

  • zrnyb

    zrnyb   |   当前状态:在线

    总积分:884  2024年可用积分:0

    注册时间: 2010-06-04

    最后登录时间: 2023-08-31

    空间 发短消息加为好友

    zrnyb   发表于 2022/3/31 17:50:59

    For循环被用来进行变量的计算,而不是读写外部变量甚至于通讯的用途,这一点和PC上的编程是截然不同的

    3楼 回复本楼

    引用 zrnyb 2022/3/31 17:50:59 发表于3楼的内容

  • nihaosb

    nihaosb   |   当前状态:离线

    总积分:0  2024年可用积分:0

    注册时间: 0001-01-01

    最后登录时间: 0001-01-01

    空间 发短消息加为好友

    nihaosb   发表于 2022/9/28 6:50:47

    4楼 回复本楼

    引用 nihaosb 2022/9/28 6:50:47 发表于4楼的内容

总共 , 当前 /