人物使用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接口多圈编码器的连接
编码器的RS485通讯参数是ModbusRTU协议,波特率19200bps,无校验,数据位8位,默认站号32(0x20)。
CB1241 RS485信号板的连接
信号板安装在CPU机本体上,其订货号为6ES7241-1CH30-1XB0。具体连接如下:3号针脚对应RS485信号B(+);8号针脚对应RS485信号A(-);5号针脚对应屏蔽等电位点。
三、软件教程
建立西门子S7-1200通讯项目工程
在硬件设备组态中,我们选中常规->系统和时间存储器,使能特殊状态位。
创建PLC变量
在程序块中添加新的数据块,以用于编码器通讯全局变量。右键单击新建数据块,在属性中取消“优化的块访问”。
创建PLC梯形图程序
程序包括以下几个部分:
初始化RS45通讯:使用MB_COMM_LOAD指令配置Modbus RTU协议通信参数,如波特率19200,无校验。
读取编码器数据:从40003开始连续读取三个寄存器中的编码器值,这三个寄存器分别代表多圈值、单圈值以及转速值。
设置编码器零点:通过M2.0接触时将其写入40008寄存来设置零点位置,即当M2.0开启时将当前位置设为第一圈(即从零度开始)。
设置指定圈数:通过M2.1导通时写入当前位置到第二圈,从而避免由于初始化造成的初次运行导致的问题(即避免在启动后马上回到起始位置)。
修改旋转方向:通过写入40007寄存储进行顺逆时针旋转控制。当写入0表示顺时针旋转,当写入1表示逆时针旋转。
合成总位置脉冲值计算拉线长度:
脉冲数 = 多圈数 * 8192 + 单圈数
线长 = (脉冲数 / 8192) * 每个脉冲200mm + 偏移量
偏移量用来消除由于初始角度不准确导致的小幅跳动误差。