恭喜,你发布的帖子
发布于 2019-05-04 15:07:37
20楼
接上文,我们这里要介绍S7-200 smart和绝对值多圈编码器的通讯,S7-200 smart作为主站,绝对值编码器作为从站,首先是硬件准备:
1、西门子PLC S7-200 smart 1台
2、绝对值编码器GMX60 R12/12E10 RMLB(9600B),以下简称RMB编码器
3、装有STEP7-MicroWIN SMART软件的电脑
4、网线
西门子PLC S7-200 smart 的接线方式,如图1
还有编码器的接线方式
这里的接线编码器的电源从PLC里取
在进入PLC编程前可以对编码器进行一些小的设置,前面提到了,如果一个PLC带多个编码器的话,PLC作为主站,编码器作为从站,需要对编码器进行地址设置,RMB编码器自带的EasyPRO设置软件,非常简单的可以设置地址,Easy就是容易的意思。
使用MODBUS RTU总线信号的编码器进行多个(≤9) 编码器对一个 RS485 接口作从站连接时, 可分别给编码器设定不同的地址(如 01,02,03..)
这里注意最下面,“编程允许线接地时允许通讯握手”前面的√必须打上,如果不打√就是主动发送模式。
这里设置地址为1,这里在后面的PLC编程会体现出来。
设置完地址,可能需要设置波特率,PLC与编码器之间,双方约定一个相同的通信速度称之为波特率。 通讯中要求双方有相同的波特率, 以便正确地识别被传输的数据位。 波特率决定了通讯的速度,波特率越小, 通讯速度越慢, 同时出错率也越低。一般设置为19200,也有传输距离长的设置为9600;
这里我们设置波特率为19200,编程时会体现出来
然后可能会根据安装方法不一样,会需要调整编码器数据的方向,顺时针为面对编码器转轴端面, 顺时针旋转, 编码器数值增大。逆时针为面对编码器转轴端面, 逆时针旋转, 编码器数值增大。
比如在起重大车的车轮上,一左一右,编码器都是装在最外边,这时一个编码器顺时针,一个编码器逆时针,当然有人说可以在PLC里面用算法实现一顺一逆,可是编码器自带方向选择岂不是更方便。
接下来再介绍一个典型的应用功能,置位功能
外部置位值即编码器外部置位线(灰色线)和高电平接触后编码器回到的值,比如零位,也可以根据机械位置设置任意的值,比如中点置位。
这是个非常有用的功能,比如,我在机械位置开到零点时,只要对编码器进行置位,数据就可以回到零,如果没有这个功能,你可能就需要手动去找这个零位,现在社会什么最贵,人工最贵、时间最贵,你可能耗不起这个时间,RMB编码器可以实现。
再比如,有些特殊场合的卷扬机位置,我们经常会遇到需要吊装到水平面以下的,假设水平面上是10米,水平线下也是10米,就可以设置为中点置位,同样的只要把机械开到中间置位,数据就回到中点,简单方便,有些进口编码器只有零点置位,没有任意位置置位功能,调试中还真的不是很方便呢。
好了,编码器的最基本的设置完成后,可以连PLC进程序了:
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。这里就是之前介绍的设置为19200
4、Parity(校验):校验方式选择2=偶较验
5、Port(端口号):0 = CPU 集成的 RS 485 通讯口
6、Timeout(超时):主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒)
注意: 这个值必须设置足够大以保证从站有时间响应。
7、Done(完成位):初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作
二、PLC读取编码器参数的操作
给MODBUS指令分配库寄存器
编译、下载,可以在状态图表里监控VD200数据
PLC读到的编码器数据存放在VD200里
各参数意义如下:
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 的应用比如变频定位,和伺服配合的可以做位置闭环,当然编码器是在慢速端的,还有双电机同步,x y z三轴交叉同步或者互动,还有四个吊点的同步控制等等。
如果数据传输速度快的可以考虑用profinet通讯方式的,接下来我将整理 西门子PLC 1200和1500 与 profinet编码器的通讯连接方式……
请填写推广理由:
分享
只看
楼主