QQ登录

只需一步,快速开始

S7-200PLC怎么连接绝对值编码器

[ 复制链接 ]
S7-200PLC怎么连接绝对值编码器

西门子控制系统介绍的连接绝对值编码器有以下几种信号界面: SSI、EnDat、profibus-DP、profinet。没有连接的界面是Hiperface、Biss、Canopen、EtherCAT等其他的绝对值编码器信号。

然而上面介绍的可连接绝对值编码器的接口,S7-200PLC都没有。已经经常有S7-200的用户(包括SMART的1200的)需要选用绝对值编码器,而找到编码器厂家询问如何选型,如何编程,我这里借S7-200技术论坛宝地一并介绍一下怎么选绝对值编码器以及如何连接编程。

S7-200PLC选什么样的绝对值编码器方便连接?目前市场上可以选用连接的几种绝对值编码器信号界面,一种是4—20mA信号输出的绝对值编码器,另一种是RS485信号接口的编码器。而选用Easypro绝对值编码器(单圈绝对值编码器或多圈绝对值编码器),同时具有4—20mA信号输出和RS485输出接口。

关于4—20mA信号进模拟量接口,其实就和其他传感器一样(例如压力、温度传感器的4—20mA信号),先确定一个量程,4mA定义一个起始点值,20mA定义一个终点值,中间是线性的比例系数换算关系。无论是360度以内的单圈绝对值编码器,还是超出360度工作的多圈绝对值编码器,都以设定角度对应,注意多圈绝对值编码器是不分多少圈,每圈多少位的。例如0—180度对应4—20mA,或者2圈的720度对应4—20mA,甚至1圈半的是360度+180度=540度的对应4mA至20mA。以此总量程换算到每个角度对应系数,进入编程。用模拟量接口输出的绝对值编码器优点是编程与调试简单,维修更方便,用一个万用表也可以完成检查,缺点是精度略低,一般保证全行程内0.1%左右的精度。这种用法特别适合户外的启升设备高度、位移或者船上的设备,维修检查方便,一个电工一个万用表就可以了。


另一种是关于RS485输出信号接口的绝对值编码器,需要接入PLC的通讯接口,这样的信号是纯数据格式的,PLC获得的数据不分多少圈和每圈多少位,是对应最小分辨率的一串总数字。打个比方,1小时20分钟,在这里表述的是80分钟----只有最小分辨率分钟的总数。这类RS485信号的通讯内容又有多种形式需要预先了解:

一,Modbus RTU Easypro。符合国际标准的Modbus RTU通讯规约,与所有具有modbus RTU的PLC兼容。Easypro编码器具有自有软件设置界面,可智能化可设定编码器的地址,波特率,以及编码器分辨率与零点位置等,PLC的RS485通讯接口可总线型连接1—9个分地址Easypro编码器。目前很多PLC已经内置有modbus RTU编程协议。


二,Easypro 1.0(ASCII码)自由协议。针对modbus RTU的寻址通讯较慢的问题,Easyro1.0设置成编码器为通讯主机模式,接收端(PLC或单片机)为接收模式,这样无需寻址,可直接快速读取数据。可在Easypro编码器的编程软件界面中设置地址为0,波特率和编码器分辨率都可按用户所需设置可调。例如常用的19200。简化的通讯协议:

数据格式:8位(Bit)数据位,1位停止位,无校验,

ASCⅡ编码方式:13位(byte)数据,“=”起始,1位(byte)符号,10位码值;“↙”结束。


注意:可连接PLC的RS485通讯接口。但由于编码器设置成主机广播模式,而PLC端为被动接受模式,这样PLC的一个通讯接口仅可连接一个Easypro1.0编码器。

编码器主动发送模式下,接收端无需始终接收信号,而只在需要编码器数据的时候,CPU扫描读取此编码器发送的通讯,首先找到起始位,按通讯规约顺序读取数据并解码。


三,Easypro 1.1(ASCII码)含地址模式的自由协议。Easyro编码器地址设定为1-9,编码器为总线型通讯被动模式,接收端(PLC或单片机)为总线主机模式。Easypro编码器的设置地址为1-9的其中一个,可便于PLC主机根据地址读取数据,波特率和编码器分辨率都可按用户所需设置可调。该版本与modbusRTU比较,简单省时。缺点是由于输出速度的原因,这样的总线型连接仅能连接9个编码器。

数据格式:8位(Bit)数据位,1位停止位,无校验,

ASCⅡ编码方式:13位(byte)数据,“=”起始,1位(byte)符号,10位码值;“↙”结束。

可连接PLC的RS485通讯接口。PLC接收端为主机模式(编码器为寻址被动模式),一个通讯接口可连接1至9个Easypro1.1编码器。注意,连接编码器越多,寻址循环读取的时间周期就越长。大部分情况下每个编码器读取数据所预留的时间为50ms.


与S7-200的通讯编程请看下面的ASCII码自由协议编程程序介绍。


四,Easypro 2.1(纯二进制码主动模式自由协议)。此为更简单易解的RS485纯二进制码(BIN)通讯,含有校验码,错码率低,抗干扰能力强,适合所有PLC自由通讯协议,也适合用户自主单片机开发。

Easypro2.1绝对值编码器(单圈绝对值或多圈绝对值)为主动广播型发送模式(可多接收端接收,例如两个以上的PLC接收作为同步对比),19200波特率,8ms一次间隔发送,16位纯二进制码,含和校验和异或校验码,解码容易,错码校验剔除。

可连接PLC的RS485通讯接口。由于接收端为被动接受模式(编码器为主动广播发送模式),一个PLC通讯接口仅可连接一个Easypro2.1编码器。但一个Easypro2.1编码器的通讯发送可有多个接收端接收(PLC或单片机,工控机或RS仪表),可实现近地PLC控制远地显示屏双控双显,或现地自动化控制+物联网组网。

编码器主动发送模式下,傻瓜式的每隔一段周期的发送数据(例如8ms) ,PLC接收端其实无需始终接收此广播信号,而只在需要编码器数据的时候,CPU扫描到此读取此编码器程序时再读取,首先找到数据帧头、起始位,按通讯规约顺序读取数据,并读取校验码校验。


与S7-200的通讯编程请看下面的BIN码自由协议编程程序介绍。


五,Easyrpo通讯与各种PLC的连接:

Easypro通讯RS485型编码器已经有8年大量的与各种PLC连接应用的历史,包括西门子200、西门子1200PLC、欧姆龙PLC、台达PLC,以及国产的矩形PLC等等,尤其是打破了过去国内市场上绝对值多圈编码器仅有profibus-DP和SSI可选的格局,为经济型PLC连接使用绝对值编码器带来了极大的方便性。

1,Modbus RTU Easypro的典型应用:水闸组网信息自控,各类PLC,尤其是西门子、施耐德、欧姆龙PLC应用较多。

2,Easypro1.0的典型应用:包装机械,印刷机械的对位同步,进口经济型PLC与国产PLC有较多应用。由于是傻瓜式发送模式并含校验模式,数据抗干扰能力很强。

3,Easypro1.1的典型应用:2-3个编码器总线型组网控制应用,例如通讯天线和太阳能发电的转角与仰角控制,其中有配套某PLC的高端通讯天线项目已经大批量出口。


关于编码器的信号的主动模式和被动模式发送:主动模式的优点是间隔快,不受外部干扰影响的傻瓜式往外送数据,也可以多台接收设备接收这一个编码器信号(可做现地或远程,双轴的同步等)。缺点是PLC只能一个通讯接口连接一个编码器。被动模式PLC的一个通讯口可以接收多个编码器,但是缺点是慢了,而一旦PLC发出的指令被干扰了,易引起编码器因没有接收到指令而不发出数据的死机。

RS485信号的缺点是输出速度受到限制(包括PLC端的RS485响应速度限制),还不适合直接用于伺服电机控制,更快的通讯编码器有没有?更快的通讯要求,建议选用SSI的同步串行通讯绝对值编码器,后面另有文章介绍。

老式的日系PLC连接并行输出的绝对值编码器(格雷码),需要多少位的绝对值编码器就要选多少个输入开关点,随着绝对值编码器位数的提高已经早已过时了。而且日系的并行输出的绝对值编码器(格雷码)是单极性NPN的,与西门子PLC其实并不匹配,容易受到干扰或烧坏,这里不推荐选用了。

下面附RS485信号接收程序简介。




----------西门子S7-200与绝对值编码器RS485信号(ASCII码)的通信

GAX60,LSB(代号9600)的输出RS485通信协议:

波特率为 EasyPro 设定值,一般为 19200 数据位 8 位, 停止位 1 位,无 奇偶校验,无控制流,编码器为主动模式时,即编码器主动向上位机发送数据。数据长度为 13  位 16 进制 ASCII 码,格式为:=±DATA↙,即:


1


2


3


4


5


6


7


8


9


10


11


12


13




=


±


DATA




其中, “=”为前导字母,±为符号位。DATA 为数据,ASCII 格式,10 位,由 0~9 构成,范围为-9,999,999,999~+9,999,999,999。最后是回车符(0D) 。

6360996489151049405273830.jpg

6360996490147994585795444.jpg

6360996491105874513902378.jpg

VB0是接收到RS485发送过的字节位数,VB1-VB13分别对应如下表格数据:


1


2


3


4


5


6


7


8


9


10


11


12


13




=


±


DATA




(即vb1=“=”,vb2=“+”或“-”这里取决于编码器输出值,vb3=编码器输出值的第10位。。。Vb12=编码器输出值的个位值,vb13=“↙”


----------西门子S7-200与纯二进制码自由协议的通信案例

通信协议:

数据通讯格式为:19200bit/s;数据位8位、停止位1位、无奇偶校验位。编码器发送的数据帧格式:

6360996542904480251731220.jpg

6360996544399869319162727.jpg

6360996547037514598871683.jpg

VB0是接收到RS485发送过的字节位数,VB1-VB10分别对应如下表格数据:

6360996550562701374302609.jpg

即:vb1=16#AB, vb2=16#CD, VB3=16#05, vb4=编码器输出值的高8位,vb5=编码器输出值的低8位,vb6与vb7厂家内部使用,vb8=【A】+【B】+【C】+【D】+【E】低八位,vb9=【A】^【B】^【C】^【D】^【E】低八位,vb10=16#3D


-----非常不错的例子,请楼主补齐程序。点赞。




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索