黑武士
级别: 正式会员
精华主题: 0
发帖数量: 4 个
工控威望: 74 点
下载积分: 488 分
在线时间: 25(小时)
注册时间: 2021-12-08
最后登录: 2024-07-29
查看黑武士的 主题 / 回贴
楼主  发表于: 2022-12-19 10:59
图片:
图片:
图片:
此函数为定时器函数,不使用PLC内部的定时器。
函数为:Time ( INT16U IN_Tm, BOOL *IN_START, INT16U *IN_Set_Time, INT16U IN_TimeUnit )
函数形参:IN_Tm为定时器选择,和PLC内部T0、T1、T2类似。IN_Tm范围是0-99,超出范围不起作用,错误码1。
          *IN_START为定时器启动计时位,形参是布尔指针类型,如果要使用PLC内部M或者HM位作为启动位,需要使用C语言进行转换。
          *IN_Set_Time为定时器设置时间,为16位整数,参数为指针类型,可以使用&D[0]、&D[1]、&D[2]等形式进行传参或者自定义。
          IN_TimeUnit为定时器计时单位,可以写10、100、1000、60000ms即10ms、100ms、1000ms(1秒)、60000ms(1分),不是这4个值,将输出错误码1,定时器不起作用。
          需要定时器时,先调用函数,例如Time ( 0, &StartM0, &D[0], 10 ),然后获得相关的定时器参数函数。
          例如:
          定时完成函数:BOOL Timer_Done ( INT16U m ),返回值为BOOL值,m为定时器0~99。
          定时器正在计时函数:BOOL Timer_Timing ( INT16U m ),返回值为BOOL值,m为定时器0~99。
          定时器当前计时值函数:INT16U Timer_Current_Time ( INT16U m ),返回值为16位无符号整数值,m为定时器0~99。
          定时器参数错误代码函数:INT8U Timer_Error ( INT16U m ),返回值为8位无符号整数值,m为定时器0~99。
本函数只能使用调试函数,不能使用到工业场景,当你调用此函数累计时间到达9小时后,(可监控寄存器D7000数值大于32400秒,无法修改此寄存器),函数将不起作用,只有停止PLC再启动,定时器才起作用。
如需去除限制请加QQ:1782038940
注意:使用此文件时,请将XD系列PLC系统固件升级到最新版本
本程序使用在XD系列,软件版本3.7.14b,使用在XC系列或者其他系列,或者软件版本低于此版本,不确保是否可行。
附件: 信捷C语言定时器函数-结构体函数返回值法.zip (14 K) 下载次数:203
网站提示: 请不要用迅雷下载附件,容易出错
本帖最近评分记录:
  • 下载积分:+5(乌龟船长) 感谢分享!
    li1654847271
    级别: 家园常客
    精华主题: 0
    发帖数量: 89 个
    工控威望: 601 点
    下载积分: 476 分
    在线时间: 29(小时)
    注册时间: 2022-04-09
    最后登录: 2024-11-13
    查看li1654847271的 主题 / 回贴
    1楼  发表于: 2022-12-21 09:59
    没用过信捷的PLC