名称:多段脉冲输出
符号: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。