名称:多段脉冲输出

符号:PTO

说明:

    使用此功能块可以控制脉冲输出,此脉冲使占空比50%的脉冲,可以控制多段脉冲输出,达到以一定速度,加速度,输出指定数量的脉冲的效果

图片:

参数:

参数名称 数据类型 IN/OUT 参数作用 说明 默认值
OUTPORT UDINT IN 脉冲输出端口 0-7
EXECUTE BOOL IN 功能块使能 上升沿触发(触发后,未完成时,不可再次触发)
有/FALSE
PULSESECNUM UINT IN 脉冲输出段数量 EXECUTE上升沿时载入
PULSESECINFO T_PULSE_SEC_INFO * IN 脉冲段结构体数组首地址:描述各脉冲段信息 EXECUTE上升沿时检查有效性
ABORT BOOL IN 紧急停止触发 TRUE:紧急停止使能(使能后不可撤销,处理完成前,不能重新使能功能块)
有/FALSE
STOPTIME UDINT IN 紧急停止时间:单位ms 在设定时间以内停止脉冲输出。非0;0:默认值运行(EXECUTE上升沿时载入)
有/5
DONE BOOL OUT 脉冲段全部输出完成标志 TRUE:脉冲段输出完成(状态保留1个周期)
有/FALSE
BUSY BOOL OUT 脉冲输出状态 TRUE:脉冲正在输出中
有/FALSE
CMDSTOP BOOL OUT 紧急停止状态 TRUE:紧急停止中,脉冲频率尚未减到0(此时无法响应新的轴启动控制))
有/FALSE
ERROR BOOL OUT 出错标志 TRUE:功能块调用出错
有/FALSE
ERRORID DINT OUT 错误码 0:正常;其它:错误码值
有/0

其中PULSESECINFO的结构如下:

数据名称

数据类型

内容描述

STARTFREQ

UDINT

当前脉冲段:起始脉冲频率,单位Hz(0-200KHz)

ENDFREQ

UDINT

当前脉冲段:结束脉冲频率,单位Hz(0-200KHz)

PULSENUM

DINT

当前脉冲段:脉冲数量+方向(正数-向前运动;负数-向后运动)

错误码:

错误码 说明
0
无错误
1
无效的脉冲端口
2
脉冲端口忙/pre>
3
脉冲端口正在执行停止动作
4
脉冲段数为0
5
脉冲段缓冲区为空
6
脉冲数为0
7
频率超出最大允许范围
8
两段脉冲频率不连续
9
两段脉冲方向不同

示例:

LD:

ST:



解释:

   OUTPORT为0,表示使用第0路脉冲;
   EXECUTE为上升沿,表示本次操作有效,功能块启动;
   PULSESECNUM为1,表示此次功能块仅执行一段脉冲段的输出;
   PulseSecInfoRef中依次存放了多脉冲段的描述信息:每段的起始频率、结束频率、脉冲数量+方向;
   ABORT为FALSE,表示目前不进行紧急停止;
   STOPTIME为100表示在进行紧急停止时,需要在100ms使脉冲频率减速到0。
   如果DoneOut为TRUE,表示多段脉冲已经输出完成;
   如果BusyOut为TRUE,则表示功能块正在输出多路脉冲;
   如果CmdStopOut为TRUE,则表示功能块正在进行紧急停止,还未减速至零;
   ErrorOut为TRUE,表示功能块出错,错误码为ErrorIDOut。