名称:设置比较一致性输出

符号:HC_SetCompare

说明:

        用于实现高速计数比较一致输出功能（计数器计数值与设定比较值一致时，可以触发硬件输出），上升沿有效。
        EXECUTE上升沿，触发功能块执行。
        ABORT用于删除指定比较值。
        COMPAREVALUE用于指定高速计数器计数比较值，每个计数器最多可设置两个比较值。
        OUTPUTENABLE用于比较一致时硬件输出。
        OUTPUTTYPE用于设定输出模式。
        OUTPUTVALUE用于设定比较一致输出值。
        设置成功，DONE为TRUE。
        功能块执行出错，ERROR为FALSE，同时ERRORID输出非0错误码。

图片:

参数:

参数名称 | 数据类型 | IN/OUT | 参数作用 | 说明 | 默认值
--- | --- | --- | --- | --- | ---
COUNTER | UDINT | IN | 计数器号 | 0-7 |
    无
EXECUTE | BOOL | IN | 功能块触发 | 上升沿触发 |
    FALSE
ABORT | BOOL | IN | 删除比较值 | TRUE：删除比较值COMPAREVALUE |
    FALSE
COMPAREVALUE | DINT | IN | 比较值 | 高速计数器的计数比较值 |
    无
OUTPUTENABLE | BOOL | IN | 输出使能 | TRUE：比较一致输出使能，执行硬件输出 |
    FALSE
OUTPUTTYPE | UDINT | IN | 输出类型 | 0：时间方式；1：脉冲方式（暂不推荐使用） |
    0
OUTPUTVALUE | UDINT | IN | 输出值 | 时间方式：输出时间（单位-50ns）；脉冲方式：脉冲个数 |
    0
DONE | BOOL | OUT | 完成标志 | TRUE：设置完成 |
    FALSE
ERROR | BOOL | OUT | 出错标志 | TRUE：功能块调用出错 |
    FALSE
ERRORID | DINT | OUT | 错误码 | 0：正常；其它：错误码值 |
    0

错误码:

错误码 | 说明
--- | ---
0 |
    无错误
1 |
    无效的计数器ID
2 |
    计数器忙

示例:

LD:

ST:

HC_SET_COMPARE_inst1(COUNTER := 0, EXECUTE := bExe, ABORT := FALSE, COMPAREVALUE := 50000, OUTPUTENABLE := TRUE, OUTPUTTYPE := 0, OUTPUTVALUE := 1000, DONE => isDone, ERROR => isError, ERRORID => errorID);

解释:

       COUNTER为0，表示本功能块操作计数器0；
       bExe由FALSE->TRUE，上升沿触发功能块执行比较一致性设置；
       ABORT为FALSE，表示不触发比较值删除操作；
       COMPAREVALUE为50000，表示计数器的计数比较值为50000；
       OUTPUTENABLE为TRUE，表示比较一致时执行硬件输出(需设置好输出端口)；
       OUTPUTTYPE为0，表示以时间方式输出；
       OUTPUTVALUE为1000，表示输出时间为50us(1000x50ns = 50us)；
       isDone为TRUE，表示比较一致性设置成功；
       isError为TRUE，则表示功能块执行出错，设置失败；
       errorID为0，表示执行正常，非0，表示出现错误，无法执行。