【笔记】PLC设备中使用高速计数指令与实际操作步骤-HSC_TouchProbe
1.背景
使用德克威尔的PLC AX3000
使用codesys,编写程序进行高速计数指令使用
HSC_TouchProbe指令需要与HSC_Counter指令组合使用
2.设备环境配置
硬件上:
- PLC设备 AX3000 一台
- 数字量输出模块 IO设备,我用的德克威尔 EX-310H,1台(充当外部触发源),可替换为其他设备
【因为HSC_TouchProbe的使用需要有外部触发源给到X5通道一个信号后,完成锁存功能】
IO设备 EX-310H 将通道1与PLC设备通道X5连接,详情见后续接线
软件上:codesys
添加设备:点击Device,添加高速IO设备,添加本地扩展IO设备
添加库:codesys,库管理器-添加库,添加高速计数库(指令)
3.配置程序
1)codesys程序编写
PROGRAM POU
VAR
ex_0:BOOL:=FALSE;
ex_1:BOOL:=FALSE;
HSC_Counter_0:HSC_Counter;
HSC_TouchProbe_0:HSC_TouchProbe;
END_VAR
HSC_Counter_0(
Enable:= ex_0,
Channel:= 0,
Mode:= 0,
Direction:= 0,
TaskPeriodNum:= 1,
Ratio:= 10,
Valid=> ,
Value=> ,
Frequency=> ,
Velocity=> ,
Error=> ,
ErrorID=> );
HSC_TouchProbe_0(
Execute:= ex_1,
Channel:= 0,
Done=> ,
Busy=> ,
Value=> ,
Error=> ,
ErrorID=> );
2)高速配置
仅配置一个高速计数,所以只需要配置一组In0Configure、In1Configure、Counter0Config
其中,HSC_TouchProbe的使用需要外部触发源,所以配置 In5Configure
计数器0设置:
计数模式:内部时钟(100)
触发源:预设值软件出发
触发方式:上升沿
上下限制:-1000000000,1000000000
配置
0110 :内部100
11:探针出发锁存值
00:高电平
00:软件触发
0110110000
3)执行程序
- HSC_Counter指令,执行为TRUE,查看是否正常计数
- HSC_TouchProbe指令,执行为TRUE,查看是否运行正常(Busy)
- 外部触发信号给到X5
IO设备连接PLC X5通道。将IO通道1的值变为TRUE
【注】接线是如何接的,就将哪个通道的值变为TRUE,一端必须接在PLC X5通道上(固定),一端接在IO设备的通道上(可换),详情查看上文接线图 - 查看程序HSC_TouchProbe已完成Done,并锁存了计数器的值(Done)
接线的通道,将值改为TRUE