欢迎访问广州逸德自动化科技有限公司官网!
广州逸德自动化科技有限公司Guangzhou Yide Automation Technology Co., Ltd
全国咨询热线:158-0021-7858
产品推荐
相关常见百科
当前位置:主页 > 工控交流 >

PLC控制中通信协议宏的应用

时间:2013-07-03 00:00:00 来源:未知 点击:

          摘  要:文章详细介绍了PLC控制中一种新颖、高效的通信方式——通信协议宏的原理和实现方法,并将该方法成功地应用于港口门机的电气传动部分的改造,取得了令人满意的效果,最后对通信协议宏实际应用中一些应注意冯问题予以总结。

一、引言

随着微机控制技术、电力电子技术和电气传动技术的飞速发展,交流变频调速技术正以其优异的控制性能日益为工业界所接受,而可编程逻辑控制器(PLC)作为一种高可靠性的控制部件,也正以前所未有的速度在工业自动化领域迅速普及。在我国传统的钢铁冶金、交通运输、机械化工等各产业中,存在着大量的以继电器、接触器和直流调速为主的电气传动系统,这些系统存在硬件线路复杂、可靠性低、能耗大、生产维修量大等许多缺点,因此如何将PLC与交流变频调速技术相结合,对传统产业进行改造,是企业界正着力解决的问题。本文就某港务局与浙江大学合作,对其下属的煤运码头门机电气传动部分的改造进行了介绍。原有的门机传动部分分为3块,即门机抓斗的3个自由度,起升、变幅和旋转,均采用交流绕线式电机进串电阻调速,根据以往运行情况,主要缺点在于:能耗大,运行时机械、电气冲击大,故障频繁,维修任务繁重等,故决定将系统改造为PLC控制的交流变频调速系统。

二、系统构成

根据系统特点和生产工艺要求,选用适合小型应用场合的OMRON-C200HE型PLC,变频器采用英国CT公司的高性能通用变频器,为了显示系统工作情况及故障情况,系统还包括一块OMRON-NT620S型触摸屏。遵循以前的生产操作习惯,仍采用手柄操作,触摸屏仅用来显示相关信息,为系统维修提供支持。整个系统中PLC是控制核心——根据操作指令和内部逻辑向变频器发送指令,从变频器读回各种信息,并将这些信息送给触摸屏显示等。C200HE是OMRON系列PLC中较新的型号,具有很强的通信功能,而CT系列变频器也具有可选的通信模块。为了充分利用PLC和变频器的功能,最大限度地减少硬件连线,系统采用PLC与变频器之间以串行通信方式进行控制,硬件上采用适合工业场合的RS485连接,整个系统结构如图1所示。

 

由于系统生产工艺并不复杂,所以如何实现PLC与变频器之间的通信是整个工作的重点。C200HE型PLC除了通常用于RS232通信方式的TXD,RXD指令外,还提供了一种新颖、高效的通信方式,PMCR指令——通信协议宏功能。这种通信方式不仅适用于RS232通信方式,也适用于抗干扰能力强,传输距离远的RS485方式,而且其最大优点在于允许用户定义单独的数据传送序列和传送信息,用户可以用OMRON通信协议宏支持软件很容易地修改通信序列,从而大大简化编程,增加编程的灵活性,本文将对此进详细的讨论。

三、PLC控制中通信协议宏的实现

1、OMRON 通信协议宏

        通信协议宏功能是把同连接在RS232或RS422/485通用组件等各种通信机器之间的数据送收信息顺序,通过通信协议宏支持软件,让用户自由编制,以PMCR指令就能够实现的用户原始通信协议。

        要实现通信协议宏功能,必须有相应的硬件支持,即通信单元,C200HE包括COM01 ~ COM066种可选单元,其中COM04 ~ COM06支持通信协议宏功能。对于本文的工作,需要一个RS485的通信端口去控制变频器,所以选择COM06单元,其A口(RS485)与CT变频器通信。B口(RS232)与触摸屏进行通信,在选定连接好硬件之后,就可以进行通信协议宏的工作了。首先必须对通信单元作设定,根据变频器的设定,使用ASCII协议,数据通信连接 :1位起始位,7位数据位,1位停止位,偶校验,RS485两线制,波特率为9600,故对COM06要将切换开关SW1调整到“2”侧,终端电阻开关SW2设定为ON。另外,PLC的数据区DM6555、DM6556要设置成支持协议宏,并且通信连接的格式要与变频器设定一致,在设置完成之后,可以编写协议。用通信协议支持软件可以建立多达1000个通信序列,即000 ~ 999,每个通信序列最多由16步组成,通信序列每一步的结构及各参数的含义如表1所示。

参数

功能

参数设置

Repeat

设置重复步的次数

常数,IR/SRLRHRARDMEM区域

Command

设置通信命令

发送,接收或发送与接收

Retry

设置在执行发送和接收命令发生错误时,重新执行次数

0 ~ 9

Send Wait

设置在发送期间等候发送数据的时间

单位0.010.1s1s1min

Send Message

设置用于接收命令或发送和接收命令的发送数据

识别码,地址,长度,数据,错误检查码和终止符

Receive Message

设置用于接收命令或接收和发送命令的期望接受数据

识别码,地址,长度,数据,错误检查码和终止符

Array

设置用于接收命令或接收和发送命令的期望接受数据(最多15种类型),并按数据类型调整处理

识别码,地址,长度,数据,错误检查码,终止符和下一步处理

Response

设置是否写接收数据

/

Next

设置当前步顺利结束时转往的下一步

ENDGOTONEXTABORT

Error

设置当前步出现错误时转往的下一步

ENDGOTONEXTABORT

在通行序列各项参数的设置中,Send message和Receive Message是最重要的,因为它们不仅决定发送和接受信息的具体内容,而且其格式的设置要与具体的控制对象的通信协议相结合来确定,下文将对此进行详细讨论。

2、CT变频器的通信协议

根据系统要求,给每台Unidrive变频器配备了CT公司提供的UD-71插入式通信模块,该模块内含1片32位RISC处理芯片,对外提供RS232和RS485两个完全光隔的通信接口,可以方便地将变频器连如RS485网络。Unidrive变频器与上位机之间的通信采用的命令和数据都是字符串,它具有特定的通信协议,该协议由CT公司提供,包括两大类命令,即读数据命令和写数据命令,这两类命令的格式介绍如下。

(1)写命令

当上位机(PLC)想设定网络上某一台变频器的某一个参数时,上位机就发送下列格式的命令:

控制

地址

控制

参数

数据

控制

校验

EOT 

GA GA UA UA

STX

M1 M 2 P1 P2

D1……DN

ETX

BCC

EOT——复位码,STX——命令开始码,ETX——命令结束码,GA——组号,UA——单元号,M1、M2——参数号,P1、P2——参数在组内的序号,D1…DN——参数的值(D1为符号位),BCC——块校验和。

由于写命令可直接改变电机的运行状态,为防止发生意外,写命令的格式要求很严格,变频器地址、参数、数据缺一不可。如果该命令能被变频器识别,则变频器返回ACK(成功),否则NAK(不成功)。

例1 要将第1组的第2个变频器的参数“1.15”写为“1”,则传送的信息如下。

控制

地址

控制

参数

数据

控制

校验

EOT 
( 04 )

31 31 32 32

STX ( 02 )

30 32 32 35

 + ( 2B ) 31

ETX 
( 03 )

BCC 
( 3C )

(2)读命令

当上位机(PLC)想读取网络上某一台变频器的某一个参数时,上位机就发送下列格式的命令。

控制

地址

参数

控制

EOT

GA GA UA UA

M1 M 2 P1 P2

ENQ

如果该命令能被变频器识别,则变频器将返回如下结构的信息。

控制

参数

数据

控制

校验

STX

M1 M2 P1 P2

D1……DN

ETX

BCC

上述格式中的符号ENQ为查询码,其余符号含义与写命令相同。

例2 要读取第1组第2个变频器的有功电值“4.02”参数,则传送的信息如下。

控制

地址

参数

控制

EOT ( 04 )

31 31 32 32

30 34 30 32

ENQ ( 05 )

返回信息为

控制

参数

数据

控制

校验

STX ( 02 )

30 34 30 32

XXXXX

ETX ( 03 )

BCC

这里值得一提的是BCC校验和,为保证由变频器出入的信息在传输的过程中的准确无误,数据响应以块校验和数BCC字符结尾。BCC实际上是该命令中从STX控制码之后开始的所有字符的ASCII码的异或弛,若运算结果小于32,则加上20H,最终以ASCII码对应的字符加到读写指令中,上位机可以用该值来校验前面收到的数据的准确性。因此,例1中的BCC值为3C。

3、通信协议宏在本系统控制中的实现

前文已述及,在通信协议宏的编制中,发送信息和接收信息是最重要的,而发送信息和接收信息的编制是根据PLC通信协议宏的格式要求,以CT变频器的通信协议为基础来进行的。对变频器的控制,不管是写命令,还是读命令,都包括发送和接收两个信息(Send Message/Receive Message)。对于写命令,发送的信息是某个变频器的某个参数,接收的信息仅是1个位,即通信成功与否(ACK/NAK);对于读命令,发送的信息是某个变频器的某个参数,接受的信息是该参数的相关内容。因此,写命令和读命令的通信协议序列中,都包括发送信息和接收信息,即协议中Command参数应设为Send&Receive,确定通信协议序列之后,就可以编制具体的发送信息和接收信息。
Send Message和Receive Message结构如下
*Message Name Header(h) Terminator(t) Check Code(c) Length(l) Address(a) Data(d)其中(h)、(t)、(c)表示信息可开始位、结束位、校验位,它们是由通信控制设备的协议所决定的,当设置(t)时,(l)自动附加,(a)是指信息送往目标的标志符,(d)用于设置信息内容。这里结合PMCR指令,对Address(a)和Data(d)作进一步解释。通信协议宏在程序中是以PMCR指令来实现的,它的格式如下。

PMCR

C

S

D

其中C为控制字,第1位用于指定端口,1:A口,2:B口,后3位表示通信序列,S表示发送数据首字,D表示接收数据首字。
下面以本系统为例来说明通信协议宏的实现过程。

要用PLC将其控制的3台变频器的参数读回来,必须先将地址号和参数号发给相应的变频器,变频器识别后,再将返回的信息写到PLC指定的区域内。

实现过程分两步,第一步编写通信协议,关键的问题在于Send Messang和Receive Message中Address和Data的编写。首先需设置它们的属性——读(R)或写(W),对本例而言,Send Message中发送的地址号和参数号是从PLC的DM区中读出后发送的,所以其属性设为R;而Receive Message中接收到的信息是要写入DM区的,所以其属性设为W。设置了属性,就可以进行第2步:从指定字中读写地址或数据。有几种方法可以指定该字,一种通用的方法是用包括变量N的一阶方程用于地址或数据的引入,每当通信序列步中指定的重复计数器重复一步时,变量N加1,使用带N变量的方程计算地址或数据可实现地址和数据的动态传输。
根据CT变频器通信协议,读变频器参数信息时,每次先发送长度为8个字节的地址号和参数号,返回的信息长度不定,不妨每16个字节存放1条信息,数据长度由(t)确定后自动附加,Data中以通配符*表示。

由此编制Send message和Receive message如下。

*Message Name

Header

Terminator

CheckCode Length

Address

Data

Send1

EOT

ENQ

(R(8N), 4)

(h)+(a)+(R
(8N+4), 4)+(t)

Recv1

STX

EXT

(W(16N), 4)

(h)+(a)+(W(16N),*)+(t)

以上面的通信协议(序列号设为1),假设发送信息存在DM300开始的单元,接收信息存入DM800开始的单元内,则用下面的一条PMCR指令就可连续读取3台变频器的指定参数。

PMCR

#1001

DM0300

DM0800

四、总结

通信协议宏,可以用一条指令实现遵循同一个协议的多条信息传送,大大简化了编程,增加了编程的灵活性,这一功能被成功地应用于本系统中,不仅提高了程序的运行效果,而且在实际运行中取得了令人满意的效果。目前该系统已在现场正常工作了两个多月,整个系统的维修量和耗电量都大为降低。实践证明,通信协议宏在系统中的应用是成功、有效的。

在本系统的调试中,笔者体会到在使用通信协议宏时,一些细节的问题必须予以充分的考虑,否则,就不能充分发挥通信协议宏的功能,甚至会造成通信失败,这里列举几个调试中遇到的问题。

1、在程序中,有多条PMCR指令时,尽量使用@PMCR——上升沿有效指令,否则可能引起各条指令之间的冲突,从而造成通信失败。

2、当通信失败时,通信忙位28908(内部继电器)始终保持ON,必须在程序中有相应的复位手段,例如当28908保持ON超过一定时间时,可置通信复位继电器28911为ON,使通信复位。

3、通信复位时,虽然可恢复通信,但此时,往往会失去通信所需的上升沿条件,必须在复位的同时,补发一个上升沿,可采用28911的常开触点予以解决。

总之,通信协议宏作为一种新颖的PLC通信手段,与传统的方法相比,具有简单、高效的优点。但实际应用中必须在理解基本原理的基础上,充分考虑各种情况,才能真正发挥通信协议宏的优势。

 

在线客服
联系方式

热线电话

158-0021-7858

上班时间

周一到周五

公司电话

153-6081-0023

微信在线客服
线