人物与RS485拉线编码器的传感器认识与西门子PLC的对话

  • 学术交流
  • 2025年04月26日
  • 一、工具准备: 我们首先准备了一台上海了淼的RS485接口多圈编码器,型号为GME-58-MR-13/8-0.5-10/30-RS10-65-B,具备256圈和8192分辨率。 接下来,我们安装了博途软件的TIA Portal V15版本在电脑上,这是西门子PLC的配置软件。 我们选择了西门子PLC S7-1200系列CPU 1212C DC/DC/RLY,并配备24V电源供电。

人物与RS485拉线编码器的传感器认识与西门子PLC的对话

一、工具准备:

我们首先准备了一台上海了淼的RS485接口多圈编码器,型号为GME-58-MR-13/8-0.5-10/30-RS10-65-B,具备256圈和8192分辨率。

接下来,我们安装了博途软件的TIA Portal V15版本在电脑上,这是西门子PLC的配置软件。

我们选择了西门子PLC S7-1200系列CPU 1212C DC/DC/RLY,并配备24V电源供电。

还有一个CB1241 RS485通信板,是为了连接RS485信号线。

二、电气接线

上海了淼RS485接口多圈编码器的连接参数如下:通讯协议为ModbusRTU,波特率19200bps,无校验,数据位8位,默认站号32(0x20)。

CB1241 RS485信号板需要按照图例进行连接,其中3号针脚对应B(+)端口,8号针脚对应A(-)端口,而5号针脚则用于屏蔽等电位点。

三、软件教程

首先,我们建立了一个西门子S7-1200通讯项目工程。在PLC属性中,我们使能特殊状态位,以便于更好地控制设备。

接着,在程序块中,我们添加了一些全局变量来存储编码器通讯所需数据。我们取消“优化块访问”以确保代码可读性。

在梯形图程序中,我们进行以下操作:

初始化RS45通讯:使用MB_COMM_LOAD指令设置Modbus RTU协议参数,如波特率19200bps无校验等。

读取编码器数据:从40003开始连续读取三个寄存器中的数据,即多圈值、单圈值和转速值。

设置编码器零点:通过M2.0接触片将当前位置写入到40008寄存器,以确定零点位置。

设置指定圈数:当M2.1导通时,将当前位置设置为1圈,以避免零点波动问题。

修改旋转方向:通过写入40007寄存器中的值来改变旋转方向,当写入0时顺时针旋转,当写入1时逆时针旋转。

4 最后,我们计算出拉线长度。由于拉线盒行程是每米200mm,所以可以用下面的公式计算:

[ \text{线长} = \frac{\text{编码器脉冲}}{8192} * 200 + \text{偏移值} ]

其中偏移值用于消除由于调整或其他因素造成的初始跳动误差。

猜你喜欢