ticks的应用 点击:925 | 回复:2



HMI_ABCD

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 57回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2005年5月14日
发表于:2005-05-14 11:45:00
楼主
请教jack000和trio_motion: delay: TICKS=300 OP(9,ON) test: IF TICKS<=0 THEN OP(9,OFF) ELSE GOTO test ENDIF 我对ticks的用法不是很明白,他是一个系统内部指令吧? 是一个时间继电器吗?我在命令窗口中输入"?ticks", 结果ticks都是负数,ticks=300是什末意思? 为什末说ticks可能小于0? 打开digital i/o窗口监视,程序一运行i/o9是on,过一段时间i/o9变为off,整个程序也停止运行了,请问为什末会有这种现象? ticks指令是针对伺服而言的吗?还是对控制器来说的?和base(0),base(2)----,没有关系吧? 谢谢你们的帮助



Trio技术支持

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 150回
  • 年度积分:0
  • 历史总积分:201
  • 注册:2004年7月28日
发表于:2005-05-16 09:27:00
1楼
ticks是一个系统运行计数器,系统每隔1ms会自动减1,用户在任何程序中都可以给ticks赋值,就如你上面的程序ticks=300,然后实时判断ticks的当前值,直到ticks等于0再执行一段程序,其作用就相当于做了一个300ms的定时器。另外,少用"goto",这样编写的程序可读性及可维护性都不好。

TRIO技术支持.

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 412回
  • 年度积分:0
  • 历史总积分:876
  • 注册:2004年2月03日
发表于:2005-05-16 14:47:00
2楼
以下是TICKS做时钟的应用程序,供参考.VR(3)代表小时;VR(2)代表分钟;VR(1)代表秒. VR(1)=0 VR(2)=0 VR(3)=0 SERVO_PERIOD=250 REPEAT TICKS=4000 loop: IF TICKS<=0 THEN IF VR(1)<60 THEN PRINT #6,VR(3), VR(2),VR(1) VR(1)=VR(1)+1 IF VR(1)>=60 THEN VR(2)=VR(2)+1 VR(1)=0 IF VR(1)=60 THEN PRINT #6,VR(3), VR(2),0 IF VR(2)>=60 THEN VR(3)=VR(3)+1 VR(2)=0 IF VR(2)=60 THEN PRINT #6,VR(3),0,VR(1) ENDIF IF VR(3)>=24 THEN VR(3)=0 ENDIF ELSE GOTO loop ENDIF UNTIL FALSE

热门招聘
相关主题

官方公众号

智造工程师