PLC 与磁栅尺的通讯程序设计需要根据磁栅尺的信号类型(模拟量、数字量或总线型)和 PLC 型号来制定。以下是常见的三种通讯方式及对应的程序实现思路:
一、磁栅尺类型与通讯方式选择
二、数字量脉冲型磁栅尺与 S7-1200 PLC 通讯程序
以 A/B 相脉冲磁栅尺为例,使用 S7-1200 的高速计数器(HSC)功能实现位置读取:
1. 硬件组态设置
2. 程序实现(TIA Portal V15,STL 语言)
// Modbus-RTU初始化
CALL "MB_COMM_LOAD" , DB10
REQ :=TRUE
COM_RS485 :=1 // CM 1241模块地址
BAUDRATE :=9600
PARITY :=1 // 无校验
STOPBITS :=1
MODE :=0 // 主站模式
DONE =>"MB_Init_Done"
ERROR =>"MB_Init_Error"
STATUS =>"MB_Init_Status"
3. 程序说明
三、Modbus-RTU 总线型磁栅尺与 PLC 通讯程序
以 S7-1200 通过 Modbus-RTU 读取磁栅尺为例:
1. 硬件配置
2. 程序实现(使用 Modbus 库)
// 磁栅尺位置读取程序
// 硬件:S7-1214C + 脉冲型磁栅尺(A/B相)
// 功能:读取当前位置、清零、方向判断
// 1. 初始化高速计数器(首次执行)
A "首次扫描" // 系统位M10.0
FP "初始化脉冲" // 上升沿检测
JC _INIT // 跳转到初始化
// 2. 读取当前位置值
L "HSC1当前值" // 读取高速计数器当前值(DINT类型)
T "当前位置_raw" // 存储原始位置值
// 3. 位置换算(根据磁栅尺分辨率)
// 例:磁栅尺分辨率为1μm/脉冲,直接转换为mm
L "当前位置_raw"
L 1000.0
/R
T "当前位置_mm" // 实际位置(mm)
// 4. 方向判断
A "HSC1方向标志" // 高速计数器方向位(TRUE为正向)
= "正向移动"
AN "HSC1方向标志"
= "反向移动"
// 5. 手动清零功能
A "清零按钮" // 外部清零信号(I0.2)
FP "清零脉冲"
L 0
T "HSC1设定值" // 设定当前值为0
S "HSC1复位" // 触发复位
_INIT:
// 初始化高速计数器参数
L 16#0001 // 使能HSC1,正交计数模式
T "HSC1控制字"
L 0
T "HSC1预设值" // 初始位置设为0
L 16#8000 // 启动计数
T "HSC1控制字"
四、关键注意事项
根据实际使用的磁栅尺型号和 PLC 系列,可能需要调整具体参数和地址。建议参考磁栅尺的通讯手册和 PLC 的系统手册进行详细配置。