布瑞特RS485编码器与西门子PLC连接示例
PLC支持热线:400-1985-888
一、概述
本说明书适用于西门子PLC S7-200 SMART系列(以下简称:PLC)与布瑞特RS485接口编码器(支持Modbus RTU协议)及拉线位移传感器的连接和通讯。
适用型号 | 备注 | |
西门子PLC | S7-200 SMART系列 | 其他型号请咨询我们 |
编码器 | RS485 单圈/多圈编码器; | |
拉线位移传感器 | RS485 拉线位移传感器; |
二、PLC 与编码器连接及通讯步骤
三、软件和硬件环境
连接PLC和编码器所需的硬件和软件环境如下:
部件名称 | 型号/规格 | 数量 | 参考图片 | 备注 |
电脑 | Win7或win10 | 1 | / | |
PLC编程软件 | STEP 7-MicroWIN SMART | 1 | 图3.1 | |
PLC | S7-200 SMART CPU ST20 | 1台 | 图3.2 | |
编码器 | 24V;RS485接口 | 1个 | 图3.3 | Modbus RTU协议 |
电源 | DC 24V输出开关电源 | 1台 | 图3.4 | |
数据线 | 程序下载线(普通网线) | 1条 | 图3.5 | PLC与电脑之间通讯 |
螺丝刀 | 十字头 | 1件 | 图3.6 |
STEP 7- Micro/WIN SMART 是 S7-200 SMART 的编程软件。支持Windows 7 或 Windows 10,安装文件小于 300 MB,集成Modbus ,USS,PROFINET,运动控制等多种库指令。
该示例使用PLC编程软件STEP 7-MicroWIN SMART与PLC主机资料详细信息、以及PLC教程均可由西门子官网(SIMATIC S7-200 SMART | SIMATIC 控制器 | Siemens CN)获得。
四、编码器引脚接线定义
布瑞特RS485编码器的线有五根,颜色与功能定义如下所示:
颜色 | 功能 | 说明 |
红 | 电源正极(5V-24V) | 上电前务必注意:编码器标签上的电压值应避免接触黄线,可能导致短路,无法通讯 |
黑 | 地线(GND) | 0V |
黄 | 置零(ZR) | 正常工作时,悬空,不接任何位置。置零功能:黄线接地(或黑线), 编码器置零。恢复出厂设置功能:断电后,黄线接地线(或黑线);上电,保持约2分钟后即可复位;复位后黄线悬空。 |
绿 | RS485B | TR- |
白 | RS485A | TR+ |
五、PLC引脚接线定义
RS485 X20接口 | 引脚标号 | 信号 | 引脚定义 |
1 | 屏蔽 | 机壳接地 | |
2 | 24V返回 | 逻辑公共端 | |
3 | RS-485信号B | RS-485信号B | |
4 | 发送请求 | RTS(TTL) | |
5 | 5V返回 | 逻辑公共端 | |
6 | +5V | +5V,100Ω串联电阻 | |
7 | +24V | +24V | |
8 | RS-485信号A | RS-485信号A | |
9 | 不适用 | 10位协议选择(输入) | |
外壳 | 屏蔽 | 机壳接地 |
六、部件接线图
在实际应用中,为防止编码器与PLC两个RS485系统之间在复杂电磁环境中地电位压差较大损坏接口电路,建议对编码器与PLC的RS485接口进行共地处理。如需进行长距离高速率通信,需考虑加终端匹配电阻,具体方案请参照RS485协议标准。
七、PLC软件编程操作
示例程序
复位初始化完成标志位à主站初始化设置à数据传送指令读取编码器
主站初始化设置:
Baud | 设置PLC的波特率,参数与编码器的一致。 |
Parity | 设置校验模式,与编码器参数一致。 |
Port | 设置Port编号,此处PLC 的RS485端口Port 0。 |
Tim~ | 通讯超时设置,单位ms,超时没反馈,出现报错。 |
数据传送指令读取编码器
Clock | 周期出发PLC数据读取指令。 |
Slave | 编码器的ID, 与编码器参数一致。 |
Addr | PLC读写从站的首地址,参照表7.3。 |
Count | 从站的首地址数据长度,1表示8位,2表示16位,参照表7.3。 |
Dat~ | 读回来的数据缓存区的首地址(地址前面需加&符号)。两个字节数据存放地址为VB100、VB101 |
注:
- 此程序仅为编码器数据读取用,引用此程序前请确认编码器与程序的通信数据格式、波特率、设备站位是否正确。
- 如需更改编码器通信数据格式、波特率、设备站位方法请参照产品说明书。
PLC的读写从站的首地址(Addr)和数据长度(Count)与编码器寄存器首地址的对应表格如下:
PLC | 编码器 | |||||
Addr | Count | 寄存器地址 | 取值范围 | 描述 | 备注 | |
40001 | 1~2 | 0x0000~0x0001 | 0~0xFFFFFFFF(0~4294967295) | 总的位置值 | ||
40003 | 1 | 0x0002 | 0~0XFFFF(0~65535) | 圈数值 | 单圈:虚拟圈数值多圈:圈数值 | |
40004 | 1 | 0x0003 | 0~0XFFFF(0~65535) | 单圈位置值 | ||
40005 | 1 | 0x0004 | 1~127 | 编码器站号 | 通信地址 | |
40006 | 1 | 0x0005 | 0x0000~0x0004(0~4) | 波特率(Baud) | 默认: 9600 0x0000(0): 9600 0x0001(1): 12900 0x0002(2): 38400 0x0003(3): 57600 0x0004(4): 115200 | |
40007 | 1 | 0x0006 | 0x0000~0x0001(0~1) | 返回模式 | 0x0000(0): 查询模式 0x0001(1): 自动回传 | |
40008 | 1 | 0x0007 | 0X0000~0xFFFF (0~65535) | 自动回传周期 | 默认:50(单位ms) | |
40009 | 1 | 0x0008 | 0x0001(1) | 重置零点标志位 | 写入0x0001 (1),设置当前位置的编码器位置值为0 | |
40010 | 1 | 0x0009 | 0x0000~0x0001(0~1) | 位置值递增方向 | 0x0000(0): 顺时针 0x0001(1): 逆时针 | |
40012 | 1~2 | 0x000B | 0~0xFFFFFFFF (0~4294967295) | 设置当前位置值 | 设定编码器当前位置值 | |
40014 | 1 | 0x000E | 0x0001(1) | 编码器设置中点标志位 | 写入0x0001 (1),设置编码器以当前位置为中点 | |
40015 | 1 | 0x000F | 0x0001(1) | 编码器设置5圈标志位 | 写入0x0001 (1),设置编码器以当前位置为5圈值 |
程序编译完成后,需要设置库存储器分配,参照如下步骤:
右击‘程序块’à点击‘库存储器’;点击‘建议地址’‘自动生成相应的地址’点击‘确定’
更多信息,请关注深圳布瑞特科技官网 www.buruiter.com