联系电话:021-36320996
西门子S7-200 smart为中国用户的使用习惯而集成了1个RS485通讯口,该通讯口可以实现RS485自由口通讯,西门子已经为客户开发ModbusRTU主站和从站通讯指令库-USS通讯指令库,受到了广大PLC用户的欢迎,其中大的实惠就是可以连接modbus协议的值编码器了,RS485的通讯口modbus的协议,我们就习惯的将modbus编码器简称为RMB编码器,RMB和人民币谐音,好记。
我们这里要介绍S7-200 smart和值多圈编码器的通讯,S7-200 smart作为主站,值编码器作为从站,那么西门子S7-200 smart与RMB值多圈编码器编码器如何通信?
首先是硬件准备:
然后西门子PLC S7-200 smart 的接线方式,如图1
还有编码器的接线方式,如表1
芯缆颜色 | 信号输出 | 硬件对应接口 |
棕色 | 10…30Vd工作电源 | PLC的24VDC传感器电源输出 L+ |
蓝色 | 0V GND | PLC的24VDC传感器电源输出 M |
黑色 | RS485A编程、输出 | PLC的port 0 9芯插头的3脚 |
白色 | RS485B编程、输出 | PLC的port 0 9芯插头的8脚 |
表1
这里的接线编码器的电源从PLC里取
S7-200 SMART设置方法
S7-200 SMART CPU上的通信口0(Port0)通过指令库支持Modbus RTU从站模式。
S7-200 SMART CPU 上的通讯口0和1(Port0和Port1)通过指令库支持Modbus RTU主站模式。
S7-200 SMART CPU 上的通讯口0和1(Port0和Port1)不能同时作为Modbus RTU主站或从站。
S7-200 SMART CPU 本体集成通信口(Port 0)、可选信号板(Port 1)可以支持Modbus RTU协议,成为Modbus RTU主站站。此功能是通过 S7-200 SMART的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。
注:SB CM01(RS485/RS232) 订货号:6ES7 288-5CM01-0AA0
S7-200 SMART 软件的帮助有明确说明
打开软件 找到库 选择初始化主站 或者从站程序块 然后按F1
从站参数“端口”(Port) 设置物理通信端口(0 = CPU 中集成的 RS-485,1 = 可选信号板上的 RS-485 或 RS-232)。主站参数“端口”(Port)设置物理通信端口(0 = CPU 中集成的 RS-485,1 = 可选 CM01 信号板上的 RS-485 或 RS-232)。清晰的写着他们都可以既做主又可以做从
而且两个口是独立的 既可以同时做主 可以同时做从 还可以向你说的一个做主一个做从。
Modbus RTU 从站协议
Modbus 从站协议指令使用以下 CPU 资源:
MBUS_INIT 指令会初始化 Modbus 从站协议,并使分配的 CPU 端口(0 或 1)于 Modbus 从站通信。
CPU 端口用于 Modbus 通信时,无法再将其用于任何其它用途,包括与 HMI 的通信。
Modbus 从站指令会影响所有与由 MBUS_INIT 指令分配的端口上的自由端口通信相关联的 SM 位置。
Modbus 从站指令程序大小
Modbus 从站指令使用 3 个子例程和 2 个中断。
Modbus 从站指令需要 2113 个字节的程序空间来存储两个从站指令和支持例程。
Modbus 从站指令的变量需要 786 个字节的 V 存储器块。该区域的起始地址由用户,保留给 Modbus 变量。
1.打开 Micro/WIN SMART软件 - -> 选好PLC型号 - -> ModbusRTU的指令在软件安装编程软件之后的库 菜单里面可以找到在“库”中调用“MBUS_CTRL”和“MBUS_MSG“两个子程序
使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制。
上图示例为编程插入指令
各参数意义如下:
1、EN(使能):必须保证每一扫描周期都被使能(使用 SM0.0)
2、Mode(模式):为 1 时,使能 Modbus 协议功能
3、Baud(波特率):编码器支持的通讯波特率为9600,19200,38400,57600,115200。PLC与编码器之间,双方约定一个相同的通信速度称之为波特率。 通讯中要求双方有相同的波特率, 以便正确地识别被传输的数据位。 波特率决定了通讯的速度,波特率越小, 通讯速度越慢, 同时出错率也越低。9600的波特率通讯速度较慢但是比较稳定,抗干扰能力强,19200为常用波特率.本例使用的编码器通过EASYPRO软件可以将编码器简单调整波特率为19200.
4、Parity(校验):校验方式选择2=偶较验 本例试用的编码器为偶校验
5、Port(端口号):0 = CPU 集成的 RS 485 通讯口
6、Timeout(超时):主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒)
注意: 这个值必须设置足够大以保证从站有时间响应。
7、Done(完成位):初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作
二、PLC读取编码器参数的操作
各参数意义如下:
1、EN(使能):同一时刻只能有一个读写功能(即 MBUS_MSG)使能
注意:建议每一个读写功能(即 MBUS_MSG)都用上一个 MBUS_MSG 指令的 Done 完成位来激活,以保证所有读写指令循环进行。
2、First(读写请求位):每一个新的读写请求必须使用脉冲触发
3、Slave(从站地址):可选择的范围 1 – 247,如果一个PLC带多个编码器的话,PLC作为主站,编码器作为从站,需要对编码器进行地址设置。本例使用的编码器自带的EasyPRO设置软件,可以非常简单的可以设置编码器从站地址。
4、RW(读写请求):0 = 读
注意:
1. 开关量输出和保持寄存器支持读和写功能
2. 开关量输入和模拟量输入只支持读功能
5、Addr(读写从站):选择读写的数据类型,数据地址:30002
本例的编码器数据地址是30002
6、Count(数据个数):通讯的数据个数(位或字的个数)
本例的编码器数据位数是2 位
注意: Modbus主站可读/写的大数据量为120个字(是指每一个 MBUS_MSG 指令)
7、DataPtr(数据指针):
1. 如果是读指令,读回的数据放到这个数据区中
2. 如果是写指令,要写出的数据放到这个数据区中
8、Done(完成位):读写功能完成位
给MODBUS指令分配库寄存器
编译、下载,可以在状态图表里监控VD200数据
PLC读到的编码器数据存放在VD200里。一般的编码器读到的是编码器的原始数据,需要通过公式计算来转换成需要的数据.还有根据安装方法不一样,会需要调整编码器数据的方向,顺时针为面对编码器转轴端面, 顺时针旋转, 编码器数值增大。逆时针为面对编码器转轴端面, 逆时针旋转, 编码器数值增大。比如在起重大车的车轮上,一左一右,编码器都是装在外边,这时一个编码器顺时针,一个编码器逆时针. 本例的编码器可以使用EASYPRO软件简单调整编码器的每圈分辨率,旋转方向.读到的数据可以不用公式计算直接使用在程序中.