人物使用RS485拉线编码器与西门子PLC连接不同类型传感器的场景
一、工具准备:
我们首先准备了一台上海了淼的RS485接口多圈编码器,型号为GME-58-MR-13/8-0.5-10/30-RS10-65-B,它具有256圈和8192分辨率。
接下来,我们需要安装博途软件的TIA Portal V15版本到我们的电脑上。
确保我们有西门子PLC S7-1200系列CPU 1212C DC/DC/RLY,并且配备24V电源供电。
还要有一块CB1241 RS485通信板。
二、电气接线
上海了淼RS485接口多圈编码器的连接要求如下:
通讯协议:ModbusRTU
波特率:19200bps
无校验
数据位:8位
出厂默认站号:32(0x20)
CB1241 RS485信号板的安装在CPU机本体上,其订货号为6ES7241-1CH30-1XB0。具体接线如图所示:
3号针脚对应RS485信号B(+)端子;
8号针脚对应RS485信号A(-)端子;
5号针脚用于屏蔽等电位点。
三、软件教程
建立西门子S7-1200通讯项目工程
在PLC属性中选中常规->系统和时间存储器,使能特殊状态位,以便于后续操作。
创建PLC变量
在程序块中添加新的数据块,用于编码器通讯全局变量。右键单击新建数据块,在属性中取消“优化的块访问”,以便进行必要的读写操作。
创建PLC梯形图程序
a) 初始化RS45通讯:
使用MB_COMM_LOAD指令来配置组态端口,以Modbus RTU协议进行通信。对于上海了淼多圈编码器,波特率设定为19200bps,无校验,并且保持默认站号32(0x20)。
b) 阅读编码器数据:
从40003开始连续三个寄存器读取传感器值,这三个寄存器分别包含多圈值、单圈值以及转速值。
c) 设置编码器零点:
通过M2.0引脚将逻辑高写入40008寄存册来设置零点位置,即当M2.0导通时,将当前位置写入为第一个单位(即第一圈)。
d) 设置指定环数:
通过M2.1导通时,将当前位置写入到指定环数处,以避免由于设备启动或其他因素导致环数波动的问题。
e) 修改旋转方向:
通过向40007寄存录写入数字“0”来设置顺时针旋转,当向该寄存录写入数字“1”时,则会反转成逆时针旋转方向。
f) 合成总位置脉冲计算:
合成每个单位中的脉冲数量,即总计由下式得出:“Ring pulse = (Multi-turn value * 8192 + Single-turn value)”,其中Single-turn value代表的是一个完整单位内的一次完整回合,而Multi-turn value则是表示整个圆盘上的循环次数,每次循环相当于Single-turn value数量加上额外的一个完整回合周期。然后再乘以每个单位内脉冲数量,即8192。这就是为什么称之为“Ring pulse”。
g) 计算拉线移动距离计算公式如下:
Line length = (Encoder position pulses / 819200mm)