人物使用RS485拉线编码器与西门子PLC连接传感器图片
一、工具准备:
我们首先需要一台上海了淼的RS485接口多圈编码器,型号为GME-58-MR-13/8-0.5-10/30-RS10-65-B,具备256圈和8192分辨率。
接着,我们需安装博途软件的TIA PortalV15版本在电脑上。
西门子PLC S7-1200系列CPU 1212C DC/DC/RLY是我们所需的控制单元,配以24V电源供给。
最后,我们还需要CB1241 RS485通信板进行连接。
二、电气接线
上海了淼RS485接口多圈编码器的连接
编码器本身采用ModbusRTU协议通信,其波特率设定为19200bps,无校验模式,数据位设置为8位。出厂时默认站号已设定为32(0x20)。
CB1241 RS485信号板的连接
信号板订购号为6ES7241-1CH30-1XB0,在PLC机本体上进行安装。具体接线如下:3号针脚对应RS485信号B(+);8号针脚对应RS485信号A(-);5号针脚则用于屏蔽等电位点。
三、软件教程
建立西门子S7-1200通讯项目工程
在PLC属性中选中常规->系统和时间存储器,使能特殊状态位。
创建PLC变量
在程序块中添加新的数据块,以便用于编码器通讯全局变量。在属性中取消“优化的块访问”以确保正确读取数据。
创建PLC梯形图程序
a) 初始化RS45通讯
使用MB_COMM_LOAD指令来配置Modbus RTU协议通信参数,如波特率19200bps,无校验方式等,并与设备建立连接。
b) 读取编码器数据
通过读取从40003开始连续三个寄存器中的值,即获取当前多圈值、单圈值及转速值信息。
c) 设置编码器零点
当M2.0导通时,将其写入40008寄存注册到零点位置,即使当M2.0打开时,从计数开始记录第一圈即可避免零点位置波动问题。
d) 设置编码器指定圈数
当M2.1导通时,将当前位置设置为第一圈,以防止由于开关操作而引起计数误差或跳动现象发生。此操作可以避免因开关关闭而回到初始位置出现误差的问题,因为这将导致一个完整周期被忽略,从而影响精度和稳定性。
e) 修改编码器旋转方向
写入40007寄存到“顺时针旋转”状态(即写入“0”),或者逆向旋转情况下写入“1”。
f) 合成编码器总位置脉冲
计算出当前实际脉冲数量,可以通过以下公式得到:
编码者总位置 = (多圈 * 8192 + 单圈)
g) 计算拉线移动距离
拉线长度计算公式:
线长 = (总脉冲 / 8192 *200mm)+ 偏移值
这里会考虑偏移可能产生的一些小误差,同时消除由于初始角度不准确引起的一些不必要的小范围跳动效应,这样可以更精确地追踪拉线行进过程。