汇川
汇川中型PLC/指令
KB2671
汇川中型PLC指令 HC_EnableInterrupt
【汇川中型PLC指令】HC_EnableInterrupt
本地计数器中断控制。
指令格式
名称
FB/FC
LD 表现
ST 表现
HC_EnableInterrupt
本地计数器中
断控制
HC_EnableInterrupt(
Enable:= ,
External:= ,
Compare:= ,
Valid=> ,
Busy=> ,
Error=> ,
ErrorID=> );
相关变量
AM300/AM500/AC700 本地计数器
输入变量
输入变量
名称
数据类型
有效范围
初始值
描述
Enable
使能指令
[FALSE,TRUE]
FALSE
电平触发
External
打开外部输入
中断
0 ~15
例如3,二进制为2#11,表示打开端口
X0 和X1 的外部输入中断
Compare
打开计数器比
较中断
0 ~15
例如3,二进制为2#11,表示打开高速
计数器端口0 和1 的比较中断
输出变量
输出变量
名称
数据类型
有效范围
初始值
描述
Valid
中断有效标志
[FALSE,TRUE]
FALSE
中断有效标志
Busy
执行标志
[FALSE,TRUE]
FALSE
指令执行中标志
Error
错误标志
[FALSE,TRUE]
FALSE
指令异常标志
ErrorID
错误ID
HSC_ERROR
HSC_NO_ERROR
错误ID,ErrorID 描述请
参考“HSC_ERROR 错误
码”
Enable
External
Compare
Valid
Busy
Error
ErrorID
HSC_ERROR
功能说明
本功能块主要实现本地计数器的打开外部中断和比较一致中断。
注意事项
仅AM300 和AM500 系列支持本功能块。
时序图
高速IO 指令
(QDEOH
9DOLG
%XV\
(UURU
错误说明
ErrorID 描述请参考“HSC_ERROR 错误码”。
程序示例
・
外部输入中断
1. 配置本地高速IO 中断输入的端口和使能方式。
双击“LocalHSIO”,在“基本配置”页签中,配置中断输入的端口和使能方式。
2. 创建外部输入中断任务。
右击“任务配置”选择“添加对象-> 任务”,命名任务名称,单击“打开”,在打开的任务对话框中,
配置“类型”为“外部的”,“外部事件”为“X0InterruptEvent”,其他参数按需修改。
AM300/AM500/AC700 本地计数器
中断类型
事件名称
说明
输入中断
X0InterruptEvent
X0 输入中断事件
X1InterruptEvent
X1 输入中断事件
X2InterruptEvent
X2 输入中断事件
X3InterruptEvent
X3 输入中断事件
比较中断
Counter0CmpEvent
高速计数器0 比较中断事件
Counter1CmpEvent
高速计数器1 比较中断事件
Counter2CmpEvent
高速计数器2 比较中断事件
Counter3CmpEvent
高速计数器3 比较中断事件
3. 在中断任务中,调用中断程序。
创建POU 程序(ST),并在任务中调用此程序。
4. 在MainTask 任务中,调用HC_EnableInterrupt 指令使能端口X0 中断。
HC_EnableInterrupt 指令参数“Enable”配置为“TRUE”使能指令,“External”配置为“1”使能
端口X0 外部输入中断。
高速IO 指令
5. 使能端口X0 中断后,会自动执行中断任务,如下图所示。
・
比较中断
1. 创建高速计数器。
双击“LocalHSIO”,在“基本配置”页签中,配置高速计数器。
2. 创建比较中断任务。
AM300/AM500/AC700 本地计数器
右击“任务配置”选择“添加对象-> 任务”,命名任务名称,单击“打开”,在打开的任务对话框中,
配置“类型”为“外部的”,“外部事件”为“Counter0CmpEvent”,其他参数按需修改。
3. 在中断任务中,调用中断程序。
创建POU 程序(ST),并在任务中调用此程序。
4. 在MainTask 任务中,调用HC_EnableInterrupt 指令使能端口X0 中断。
创建POU_1 程序(LD),并在任务中调用此程序。程序中HC_EnableInterrupt 指令参数“Enable”
配置为“TRUE”使能指令,“Compare”配置为“1”使能高速计数器0 比较中断。
高速IO 指令
5. 使用HC_Counter 使能高速计数器,使用HC_Compare 打开高速计数器比较功能,Done=TRUE 比较
完成后,查看中断任务执行情况。
AM300/AM500/AC700 本地计数器
5.1.13 HSC_ERROR 错误码
错误代码
(十进制)
错误代码
(十六进制)
枚举值
说明
0x00
HSC_NO_ERROR
无错误
0x01
HSC_ERROR_COMMUNICATION
通信故障
0x02
HSC_ERROR_NOT_SUPPORT_ONLINE_CHANGE
计数器在线修改错误
0x03
HSC_ERROR_UNDEFINED_COUNTER
使用未定义计数器
0x10
HSC_ERROR_DISABLE
计数器未使能
0x11
HSC_ERROR_PV_DI_CONFIGURE_ERROR
预置,DI 端子未配置预置功能
0x12
HSC_ERROR_PV_TYPE_INVALID
预置,预置类型不合理
0x13
HSC_ERROR_PV_PRESET_VALUE_INVALID
预置,预置值不合理
0x20
HSC_ERROR_CP_DO_CONFIGURE_ERROR
DO 输出端子未配置比较一致输出功能
0x21
HSC_ERROR_CP_CHANNEL_INVALID
比较一致功能,通道参数不合理
0x22
HSC_ERROR_CP_COMPARE_VAULE_INVALID
比较位置不合理
0x23
HSC_ERROR_CP_START_POS_INVALID
等距比较,开始位置不合理
0x24
HSC_ERROR_CP_END_POS_INVALID
等距比较,结束位置不合理
0x25
HSC_ERROR_CP_STEP_LEN_INVALID
等距比较,步长不合理
0x26
HSC_ERROR_CP_ARRAY_ADDR_INVALID
多点比较,数组首地址不合理
0x27
HSC_ERROR_CP_ARRAY_COUNT_INVALID
多点比较,数组个数不合理
0x28
HSC_ERROR_CP_OUTPUT_TYPE_INVALID
比较一致,DO 输出类型不合理
0x29
HSC_ERROR_CP_OUTPUT_VALUE_INVALID
比较一致,DO 输出保持参数不合理
0x30
HSC_ERROR_CP_CHANNEL_ACTIVE
比较一致,通道已被锁定,不能被打断
0x40
HSC_ERROR_TP_DI_CONFIGURE_ERROR
DI 端子未配置探针功能
0x41
HSC_ERROR_TP_ID_INVALID
探针,ID 不合理
0x42
HSC_ERROR_TP_TRIGGER_TYPE_INVALID
探针,触发类型超出范围
0x43
HSC_ERROR_TP_EDG_TYPE_INVALID
探针,边沿触发类型超出范围
0x44
HSC_ERROR_TP_MODE_INVALID
探针,触发模式值超出范围
0x45
HSC_ERROR_TP_CHANNEL_ACTIVE
探针,通道已被锁定,不能被打断
0x50
HSC_ERROR_LP_ID_INVALID
锁存位置,ID 不合理
0x51
HSC_ERROR_LP_TRIGGER_TYPE_INVALID
锁存位置,触发类型超出范围
0x60
HSC_ERROR_CGR_COUNTER_MUST_DISABLE
更改齿轮比,计数器必须停止计数
0x61
HSC_ERROR_CGR_RATIO_VAULE_ERROR
更改齿轮比,比例值不合理
0x70
HSC_ERROR_R_NO_ERROR_CLEAR
未有错误清除
0x71
HSC_ERROR_R_ERROR_CANNOT_RESET
错误不能清除
0x80
HSC_ERROR_SDO_READ_ERROR
SDO 读取参数失败
0x81
HSC_ERROR_SDO_WRITE_ERROR
SDO 写入参数失败
0x90
HSC_ERROR_EI_TERMINAL_CONFIGURE_ERROR
外部中断,端子未配置中断功能
0x91
HSC_ERROR_EI_COMPARE_CONFIGURE_ERROR
外部中断,计数器未配置比较中断功能
1004
0x3EC
PWM 周期设置超出范围
1005
0x3ED
PWM 脉冲宽度设置超出范围
1006
0x3EE
PWM 周期和脉冲宽度设置都超出范围
1007
0x3EF
PWM 脉冲宽度超过周期
1008
0x3F0
PWM 脉冲宽度设置为0,应该为非零值
高速IO 指令
错误代码
(十进制)
错误代码
(十六进制)
枚举值
说明
1009
0x3F1
PWM 周期设置为0,应该为非零值
1010
0x3F2
PWM 周期和脉冲宽度都设置为0,应该
为非零值
1018
0x3FA
PWM 设置无效端口,检查后台界面对应
端口是否勾选
1019
0x3FB
PWM 设置端口冲突
1280
0x500
HSC_ERROR_INPUT_PUSLE_FREQUENCY_TOO_
HIGH
输入频率大于202k
1281
0x501
HSC_ERROR_OVERFLOW
计数值上溢
1282
0x502
HSC_ERROR_UNDERFLOW
计数值下溢
1283
0x503
HSC_ERROR_FILT_PARAM_EXCEED
滤波系数超范围
1312
0x520
HSC_ERROR_PARAM_NO_PDO_MAPPING
指令未配置相应PDO
AM400/AM600 本地计数器
5.2 AM400/AM600 本地计数器
5.2.1 指令列表
名称
FB/FC
功能
AM400/AM600
本地计数器
HC_Counter
计数器使能
HC_SetCompare
设置比较一致输出
HC_PresetValue
写入预置值
HC_Reset
复位计数器错误
HC_EnableInterrupt
打开中断
HC_TouchProbe
探针
HC_MeasurePulseWidth
脉冲宽度测量
HC_Sample
采样
HC_ReadBoolParameter
参数读取
HC_WriteBoolParameter
参数写入
HC_SetCompareM
比较一致输出
HC_SetRing
设置环形计数
HC_ResetCmpOutput
复位比较一致输出
HC_WriteInterruptParameter
写入中断参数
5.2.2 HC_Counter
计数器使能。
指令格式
名称
FB/FC
LD 表现
ST 表现
HC_Counter
计数器使能
HC_Counter(
Counter := ,
Enable := ,
Direction := ,
Valid => ,
CounterValue=> ,
Frequency => ,
RPM => ,
Error=> ,
ErrorID=> );
相关变量
输入输出变量
输入输出变量
名称
数据类型
有效范围
初始值
描述
Counter
计数器
COUNTER_REF
指定使用的计数器号码[0..7]
输入变量
高速IO 指令
输入变量
名称
数据类型
有效范围
初始值
描述
Enable
使能
[FALSE,TRUE]
FALSE
电平触发,TRUE:使能计数器。
Direction
方向
[FALSE,TRUE]
FALSE
0 加法计数,1 减法计数
仅对单相输入或内部时钟模式
有效;
能流变化时此参数才会有效。
输出变量
输出变量
名称
数据类型
有效范围
初始值
描述
CounterValue
计数器当前
遵照数据类型
计数器的当前值。
Frequency
脉冲频率
遵照数据类型
脉冲频率测量值,Hz
RPM
旋转速度
遵照数据类型
每分钟旋转速度(revolution
per minute), 单位是r/min
Valid
使能状态
遵照数据类型
1 有效, 0 无效
Error
错误标志
[FALSE,TRUE]
TRUE: 功能块内部发生错误
ErrorID
错误ID
遵照数据类型
错误码
Counter
COUNTER_REF
Enable
Direction
CounterValue
Frequency
RPM
Valid
Error
ErrorID
功能说明
本功能块主要实现本地计数器计数开始/ 停止,检测到Enable 置TRUE 后,计数器开始计数。
计数器及计数端口资源分配关系表如下表所示。
AM400/AM600 本地计数器
计数
方式
端口
计数器
X0
X1
X2
X3
X4
X5
X6
X7
X8
X9
Xa
Xb
Xc
Xd
Xe
Xf
AB
AB 相计
Counter0
A
B
T
Counter1
A
B
T
Counter2(△)
A
B
T
Counter3(△)
A
B
T
Counter4(△)
A
B
Counter5(△)
A
B
Counter6(△)
A
B
Counter7(△)
A
B
A 相
计数
Counter0
A
Counter1
A
Counter2
A
Counter3
A
Counter4(△)
A
Counter5(△)
A
Counter6(△)
A
Counter7(△)
A
(△):代表FrequencyValue 和RotationRateValue 使用软件计算 。
Counter0/ Counter1 选择AB 相计数时,只显示A 相频率 。
T 为外部触发信号 。
注意事项
・
前4 路计数器和后4 路有点区别:
* 正向计数:当计数值达到2147483647 时,前四路停止计数,而后四路则继续从-2147483648 开始计
数 。
* 负向计数:当计数值达到-2
来源:import
本文整理自厂家公开资料,未经现场核实;正式处理请以厂家手册与现场实际为准。
安全联锁/急停类问题不属本站服务范围。