pc8mcu
级别: 探索解密
精华主题: 0
发帖数量: 50 个
工控威望: 149 点
下载积分: 840 分
在线时间: 18(小时)
注册时间: 2014-11-13
最后登录: 2020-04-12
查看pc8mcu的 主题 / 回贴
楼主  发表于: 2015-11-10 21:32
TON_1(IN:= NOT TON_1.Q ,PT:= TIME#1S ); (*定义一个1S定时器*)

IF TON_1.Q  THEN (*定时时间到,D0++,D0大于10,那么清零*)
    D0 := D0 + 1;
    IF  D0>10 THEN
        D0 := 0;
    END_IF;
  
    IF D0 := 2 THEN
         Y0:=FALSE;
   END_IF;

   IF D0:=8 THEN
       Y0:=TRUE;
  END_IF;

END_IF;

以上ST语句编译通过,但定时器似乎不起左右,因为在2,7控制Y0口不起作用,,麻烦帮看一下,在下先谢谢了,!!
逆水行舟
级别: 略有小成
精华主题: 0
发帖数量: 143 个
工控威望: 256 点
下载积分: 670 分
在线时间: 139(小时)
注册时间: 2010-11-28
最后登录: 2024-11-25
查看逆水行舟的 主题 / 回贴
1楼  发表于: 2015-11-12 16:39
引用
引用第7楼pc8mcu于2015-11-11 10:07发表的  :
TON_1(IN:= NOT TON_1.Q ,PT:= TIME#1S ); (*定义一个1S定时器*)
D0:=0;

IF TON_1.Q  THEN (*定时时间到,D0++,D0大于10,那么清零*)  
         D0:= D0+1;
.......

第一段程序你每次都把D0赋值了0,怎么会闪烁了,Y0将一直为1
逆水行舟
级别: 略有小成
精华主题: 0
发帖数量: 143 个
工控威望: 256 点
下载积分: 670 分
在线时间: 139(小时)
注册时间: 2010-11-28
最后登录: 2024-11-25
查看逆水行舟的 主题 / 回贴
2楼  发表于: 2015-11-12 17:19
你每次都将D0赋值为0了,D0值不可能为2,在D0=0和=1时Y0均为1
将   CASE D0 OF
         0:
               Y0:=TRUE;    
          1:
                Y0:=FALSE;    
          END_CASE;
        
END_IF;

也才学习ST,不对之处请自行校对