人物使用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信号板(安装在CPU机本体上)的订货号是6ES7241-1CH30-1XB0。具体接线情况如图所示,其中3号针脚对应的是RS485信号B(+);8号针脚对应的是RS485信号A(-);5号针脚则用作屏蔽等电位点。
三、软件教程
一开始,我们建立了一个西门子S7-1200通讯项目工程。在PLC属性中选中常规->系统和时间存储器,使能特殊状态位,以便于后续操作。
然后,我们创建了PLC变量,在程序块中添加新的数据块,用以编码器通讯全局变量。在属性中取消“优化的块访问”,以确保数据可以正确读取和写入。
接着,我们创建了PLC梯形图程序,该程序主要包含以下几个部分:
创建PLC梯形图程序
a) 初始化RS45通讯:使用MB_COMM_LOAD指令来配置Modbus RTU协议参数,比如波特率19200bps,无校验,以及与我们的上海了淼多圈编码器相匹配的其他参数。
b) 读取编码器数据:从40003寄存器开始连续三个寄存器读取当前位置信息,这包括单圈值、三次元旋转速度等重要参数。
c) 设置编码器零点:通过M2.0按钮控制,将实际测得的一次完整旋转写入到40008寄存格作为零点参考,以此消除误差。
d) 设置指定圈数:当M2.1按钮被按下时,将当前位置写入到40009寄存格,使之成为新的一次完整旋转起始点,从而避免因为初始偏移而导致的问题。
e) 修改编码器旋转方向:通过将40007寄存格中的值设置为0或1,可以改变脉冲计数方向,即顺时针或逆时针旋转方向调整。
f) 合成总位置脉冲值: 根据已有的单圈分辨率计算每个角度对应多少脉冲,然后将此与现实角度相乘得到实际总脉冲数,即当前绝对位置值。
g) 计算拉线长度: 将这个绝对位置值除以8192(即单圈分辨率),再乘以200mm换算成实际拉伸距离,并且减去一定偏移保证精确性。这一步骤会考虑到可能存在的小范围跳动误差。