名称:恒频脉冲输出

符号:PTO_FREQ

说明:

        使用此功能块，可以控制脉冲频率从当前频率开始，以梯形加减速度，加减到指定频率，并维持指定频率的脉冲长时间输出，此功能块不能在多段脉冲没有执行完，直接切换到此功能块，但是可以在上次恒频功能块的基础上继续运行，更改目标频率。此功能块输出的脉冲是暂空比为50%的脉冲。

图片:

参数:

参数名称 | 数据类型 | IN/OUT | 参数作用 | 说明 | 默认值
--- | --- | --- | --- | --- | ---
OUTPORT | UDINT | IN | 脉冲输出端口 | 0-7 |
    无
EXECUTE | BOOL | IN | 功能块使能 | 上升沿触发（触发后，修改输入参数后，可再次触发） |
    无
FREQ | DINT | IN | 目标频率+方向 | 1-200KHz；正数--向前；负数--向后；0--默认值运行（EXECUTE上升沿载入） |
    有/100
ACC | UDINT | IN | 加/减速度：单位Hz/ms | 非0（0：使用默认值）不超过最大加速度(1000Hz/ms)（EXECUTE上升沿时载入） |
    有/100
ABORT | BOOL | IN | 紧急停止触发 | TRUE：紧急停止使能（使能后不可撤销，处理完成前，不能重新使能功能块） |
    有/FALSE
STOPTIME | UDINT | IN | 紧急停止时间：单位ms | 在设定时间以内停止脉冲输出。非0；0：默认值运行（EXECUTE上升沿时载入） |
    有/5
DONE | BOOL | OUT | 目标频率达到标志 | TRUE：目标频率达到(恒频输出过程中，一直保持) |
    有/FALSE
BUSY | BOOL | OUT | 脉冲输出状态 | TRUE：脉冲正常输出中 |
    有/FALSE
CMDSTOP | BOOL | OUT | 紧急停止状态 | TRUE：紧急停止中，脉冲频率尚未减到0（此时无法响应新的轴启动控制）） |
    有/FALSE
ERROR | BOOL | OUT | 出错标志 | TRUE：功能块调用出错 |
    有/FALSE
ERRORID | DINT | OUT | 错误码 | 0：正常；其它：错误码值 |
    有/0

错误码:

错误码 | 说明
--- | ---
0 |
    无错误
1 |
    无效的脉冲端口
2 |
    脉冲端口忙
3 |
    脉冲端口正在执行停止动作
7 |
    频率超出最大允许范围
10 |
    加速度超过最大允许值

示例:

LD:

ST:

PTO_FREQ_inst1(OUTPORT := 0, EXECUTE := TRUE, FREQ := 10000, ACC := 100, ABORT := FALSE, STOPTIME := 100, DONE => DoneOut, BUSY => BusyOut, CMDSTOP => CmdStopOut, ERROR => ErrorOut, ERRORID => ErrorIDOut);

解释:

       OUTPORT：为0表示操作第0路脉冲；
       EXECUTE：为上升沿表示执行此功能块；
       FREQ：为10000表示目标频率是10000Hz，第0路脉冲最终会以10000Hz频率的脉冲输出，且使电机向前运动（iFreq为正数）；
       ACC：为100表示，脉冲的频率会以100Hz/ms的加速度变化，使频率最终达到目标频率10000Hz；
       ABORT：为FALSE表示目前不进行紧急停止；
       STOPTIME：为100表示，当执行紧急停止的时候，会在100ms内，使脉冲输出频率减到0（若设定减速时间无法满足最大减速度，该时间将会自动加大）；
       如果DoneOut为TRUE，则表示第0路脉冲输出频率已达到目标频率；
       如果BusyOut为TRUE，则表示第0路脉冲输出中；
       如果CmdStopOut为TRUE，则表示当前功能块正在执行紧急停止，且脉冲频率还没有减到0；
       ErrorOut表示功能块出错，错误码为ErrorIDOut