ST语言,这怎么不能执行? 点击:1352 | 回复:4



ayu20

    
  • 精华:0帖
  • 求助:59帖
  • 帖子:70帖 | 83回
  • 年度积分:2
  • 历史总积分:619
  • 注册:2011年1月16日
发表于:2013-06-07 11:42:39
楼主

PLF( X0 , M1 );  (*松手检测*)

IF M1 THEN
   OUT_T( TRUE , TC0 , 50 );
END_IF;

Y0:=TS0;


我想按下X0,过5秒后Y0就输出。上面这样为什么不行呢?


PLF( X0 , M1 );  (*松手检测*)     按下X0松手后,M1输出1个周期脉冲


IF M1 THEN 判断M1是否接通了,接通了就执行下面的 OUT_T( TRUE , TC0 , 50 ); 也就是启动定时器,定时5秒后接通TS0,然后Y0:=TS0;Y0就输出。



为什么方正的时候TS0一直不接通?




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2013-06-07 12:35:17
1楼

因为PLF指令令M1接通一个扫描在周期,所以只是在M1接通的这个周期内,程序执行定时器,当M1为Off时,IF的条件判断为假,程序不扫描IF,ENDIF之间的程序,所以你的定时器不被执行。

ayu20

  • 精华:0帖
  • 求助:59帖
  • 帖子:70帖 | 83回
  • 年度积分:2
  • 历史总积分:619
  • 注册:2011年1月16日
发表于:2013-06-07 14:05:58
2楼

回复内容:

对: yuanle 因为PLF指令令M1接通一个扫描在周期,所以只是在M1... 内容的回复!


但是定时器TC0确实是接通了,接通了之后过了很久TS0也没动作。不知道为什么

高渐飞

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 101回
  • 年度积分:0
  • 历史总积分:426
  • 注册:2002年4月07日
发表于:2013-06-07 16:16:55
3楼

哎,你这还用ST啊,用三菱的坏习惯,整一堆专用的指令在里面。

就你这个需求,不需要定时器,不需要上升沿下降沿检测指令,用最通用的算法就能解决。

 

ayu20

  • 精华:0帖
  • 求助:59帖
  • 帖子:70帖 | 83回
  • 年度积分:2
  • 历史总积分:619
  • 注册:2011年1月16日
发表于:2013-06-07 16:59:33
4楼

回复内容:

对: 高渐飞 哎,你这还用ST啊,用三菱的坏习惯,整一堆专用的指令在... 内容的回复!


求高手写一个给我参考参考,谢谢


热门招聘
相关主题

官方公众号

智造工程师