干货!西门子200smart与RMB编码器的modbus通讯编程 点击:2284 | 回复:2



YGuang

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:66帖 | 35回
  • 年度积分:107
  • 历史总积分:527
  • 注册:2020年7月10日
发表于:2019-04-25 09:23:58
楼主

西门子S7-200 smart集成了1个RS485通讯口,该通讯口可以实现RS485自由口通讯,西门子 已经为客户开发Modbus RTU主站和从站通讯指令库-USS通讯指令库。


我们这里要介绍S7-200 smart和绝对值多圈编码器的通讯,S7-200 smart作为主站,绝对值编码器作为从站,那么西门子S7-200 smart与RMB绝对值多圈编码器编码器如何通信?


首先是硬件准备:

1、西门子PLC S7-200 smart 1台

2、绝对值编码器GMX60 R12/12E10 RMLB(9600B)-以下简称RMB编码器,RMB=人民币 好记。

3、装有STEP7-MicroWIN SMART软件的电脑

4、网线

  然后西门子PLC S7-200 smart 的接线方式,如图1

image.png


还有编码器的接线方式,如表1


芯缆颜色

信号输出

硬件对应接口

棕色

1030Vd工作电源

PLC的24VDC传感器电源输出 L+

蓝色

0V GND

PLC的24VDC传感器电源输出 M

黑色

RS485A编程、输出

PLC的port 0 9芯插头的3脚

白色

RS485B编程、输出

PLC的port 0 9芯插头的8脚

绿色

编程允许线

PLC的24VDC传感器电源输出 M

表1

这里的接线编码器的电源从PLC里取

 

在进入PLC编程前可以对编码器进行一些小的设置,前面提到了,如果一个PLC带多个编码器的话,PLC作为主站,编码器作为从站,是需要对编码器进行地址设置,RMB编码器的自带的EasyPRO设置软件,非常简单的可以设置地址,Easy就是容易的意思,如图2


image.png

图2

使用Modbus RTU总线信号的编码器进行多个(≤9) 编码器对一个 RS485 接口作从站连接时, 可分别给编码器设定不同的地址(如 01,02,03..)

这里注意最下面,“编程允许线接地时允许通讯握手”前面的√必须打上,如果不打√就是主动发送模式。

这里设置地址为1,这里在后面的PLC编程会体现出来。

 

设置完地址,可能需要设置波特率,PLC与编码器之间,双方约定一个相同的通信速度称之为波特率。 通讯中, 要求双方有相同的波特率, 以便正确地识别被传输的数据位。 波特率决定了通讯的速度,波特率越小, 通讯速度越慢, 同时出错率也越低。一般设置为19200,也有传输距离长的设置为9600,如图3


    image.png

图3

 

这里我们设置波特率为19200。

 

然后可能会根据安装方法不一样,会需要调整编码器数据的方向,顺时针为面对编码器转轴端面, 顺时针旋转, 编码器数值增大。逆时针为面对编码器转轴端面, 逆时针旋转, 编码器数值增大。 如图4


image.png

图4


比如在起重大车的车轮上,一左一右,编码器都是装在最外边,这时一个编码器顺时针,一个编码器逆时针,当然有人说可以在PLC里面用算法实现一顺一逆,可是编码器自带方向选择岂不是更方便。


接下来再介绍一个典型的应用功能,置位功能,如图5

image.png

图5

 

外部置位值即编码器外部置位线(灰色线)和高电平接触后编码器回到的值,比如零位,也可以根据机械位置设置任意的值,比如中点置位。


这是个非常有用的功能,比如,我在机械位置开到零点时,只要对编码器进行置位,数据就可以回到零,如果没有这个功能,你可能就需要手动去找这个零位,现在社会什么最贵,人工最贵时间最贵,你可能耗不起这个时间,RMB编码器可以实现。


再比如,有些特殊场合的卷扬机位置,我们经常会遇到需要吊装到水平面以下的,假设水平面上是10米,水平线下也是10米,就可以设置为中点置位,同样的只要把机械开到中间置位,数据就回到中点,简单方便,有些进口编码器只有零点置位,没有任意位置置位功能,调试中还真的不是很方便呢。

 

好了,编码器的最基本的设置完成后,可以连PLC进程序了:

1.打开 Micro/WIN SMARTimage.png软件 - -> 选好PLC型号 - -> ModbusRTU的指令在软件安装编程软件之后的库 菜单里面可以找到在“库”中调用“MBUS_CTRL”和“MBUS_MSG“两个子程序

image.png

image.png

使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制。

image.png

上图示例为编程插入指令

各参数意义如下:

1、EN(使能):必须保证每一扫描周期都被使能(使用 SM0.0)

2、Mode(模式):为 1 时,使能 Modbus 协议功能

3、Baud(波特率):编码器支持的通讯波特率为9600,19200,38400,57600,115200。这里就是之前介绍的设置为19200

4、Parity(校验):校验方式选择2=偶较验

5、Port(端口号):0 = CPU 集成的 RS 485 通讯口

6、Timeout(超时):主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒)

注意: 这个值必须设置足够大以保证从站有时间响应。

7、Done(完成位):初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作

二、PLC读取编码器参数的操作

image.png

给MODBUS指令分配库寄存器

image.png

编译、下载,可以在状态图表里监控VD200数据

PLC读到的编码器数据存放在VD200里

image.png

 

各参数意义如下:

1、EN(使能):同一时刻只能有一个读写功能(即 MBUS_MSG)使能

注意:建议每一个读写功能(即 MBUS_MSG)都用上一个 MBUS_MSG 指令的 Done 完成位来激活,以保证所有读写指令循环进行。

2、First(读写请求位):每一个新的读写请求必须使用脉冲触发

3、Slave(从站地址):可选择的范围 1 – 247,刚刚前面介绍的了,我们设为1

4、RW(读写请求):0 = 读

注意:

1. 开关量输出和保持寄存器支持读和写功能

2. 开关量输入和模拟量输入只支持读功能

5、Addr(读写从站):选择读写的数据类型,数据地址:30002

6、Count(数据个数):通讯的数据个数(位或字的个数)

注意: Modbus主站可读/写的最大数据量为120个字(是指每一个 MBUS_MSG 指令)

7、DataPtr(数据指针):

1. 如果是读指令,读回的数据放到这个数据区中

2. 如果是写指令,要写出的数据放到这个数据区中

8、Done(完成位):读写功能完成位

 

 

单个RMB编码器和西门子S7-200 smart 的应用比如变频定位,和伺服配合的可以做位置闭环,当然编码器是在慢速端的,多个RMB编码器和西门子S7-200 smart 的应用更多了,有双电机同步,x y z三轴交叉同步或者互动,还有四个吊点的同步控制等等。

 

双点同步的应用,比如在农业机械自动化中有需要多个设备的前后同步与协调工作,既有液压油缸也有电机,这些设备需要同步协调的运行,才能有高效而又不会忙中出错。双液压油缸同步,液压油缸与电机做同步控制,这就需要增加辅助编码器做各个位置比较,以此来比较位置差并做PID调整。Modbus RTU信号输出的绝对值多圈编码器,可以分地址接入同一个PLC控制器,给各个运动液压缸和电机之间做位置比较后的同步与联动协调。这种双路同步及多路联动,在饲料加工等农业自动化机械中主要是各种升降举升后的连续动作,举升平衡是用双液压油缸或者双吊点双电机的同步控制,并且有连续位置与其它运动动作联动。如图

image.png


在这里需指出,这是双路油缸的同步(也有电动缸的同步),这种大型的机械同步如果没有编码器位置辅助,很容易出现“别死”,造成机械的损坏。

 

三点同步联动的应用比如,各种封闭场合的起重设备,比如垃圾吊,电镀厂,全封闭的堆料场,洁净房等等室内桥式起重机,因为国家对环保的要求,需要全封闭的,操作人员无法在车间内操作起重机,所以需要对整台起重机的大车方向、小车方向和起吊高度都进行全自动定位控制。


编码器分别安装于大车轮、小车轮和葫芦的减速箱一侧,分别测长度、跨度和起升高度,编码器可以分别设置地址,工作时PLC可以分别读取3个编码器的当前位置值,然后根据程序将起重机运行到指定位置上料,再运行到指定位置下料,整个工作的过程完全无需人员操作,起重机的位置定位由绝对值编码器提供的数据完成,由于是机械多圈绝对值编码器无需担心运行过程中停电和各种干扰的因素,绝对值编码器总能最快最准确的提供当前位置数据。如果宽度超过40米,还需要做大车的同步纠偏。


image.png 

 image.png

多点的同步,比如模拟汽车道路行驶时减震器状况检测设备,如图,编码器是用于车轮x-y轴定位,整个系统需要8个编码器联动,根据不同的车型自动柔性调整位置,全程编码器绝对值位置可以实时监控,位置可靠准确,柔性可调,还可以安全记录, 实现位置闭环控制,当然也是采用S7-200 smart和RMB编码器实现的,成本大大降低,调试简单,位置误差小。


 image.png

image.png


另外由于传感器问题频发,所以对传感器的自身的安全检测也变得十分迫切,这颗RMB编码器带有4-20mA检测功能,可以用万用表量,使得现场的检修师傅检查故障点非常方便,也可以做成双回路,即数字量信号进控制系统实现各种控制功能,模拟信号进模拟模块、仪表或者远程联网,是使用者能够非常清楚的监测到编码器目前的状况。




楼主最近还看过



谢谢你的爱1999

  • [版主]
  • 精华:1帖
  • 求助:12帖
  • 帖子:717帖 | 3885回
  • 年度积分:23
  • 历史总积分:160147
  • 注册:2013年4月29日
发表于:2019-04-25 09:40:57
1楼

好帖子,多谢楼主分享

山乌木

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 213回
  • 年度积分:0
  • 历史总积分:193
  • 注册:2012年8月12日
发表于:2019-04-27 18:43:45
2楼

科普了一下,长知识


热门招聘
相关主题

官方公众号

智造工程师