台达PLC串行通讯应用原理
2008-01-09
作者:袁 斌
摘 要:本文根据串行通讯" title="串行通讯">串行通讯的基本原理,以台达" title="台达">台达PLC与松下变频器通讯为案例,详细讨论台达PLC的串行通迅功能及在项目中实际应用" title="实际应用">实际应用。主要介绍如何使用台达PLC完善的通讯功能完成各种实际应用,体现了台达PLC强大的通讯技术特性。
关键词:串行通讯 PLC RS485 MODBUS协议 变频器、自由口通讯 EASY LINK
1引言
随着计算器技术的发展,通讯传输在工业自动化控制领域得到越来越广泛的应用。由于串行通讯方式具有使用线路少、成本低、简单易用,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。现在各PLC生产厂家都极其重视通讯在PLC推广中的应用,并且各具有优势特点,合理利用PLC串行通讯功能将极大的降低自动化项目成本,提高产品竞争力。
2 串行通讯简介
计算机通讯即是不同的设备通过线路互相交换编码数据,其主要目的在于将数据从某端传送到另一端,实现信息的交换。通讯通常有并行和串行两种方式,由于并行传输方式在数据电压传送的过程中容易衰减互扰,并且线路工程费用较高,而串行通讯方式则能很好的解决这些问题,因此在工业应用中绝大多数使用串行通讯。
串行通讯的基本接口方式分为RS-232和RS-485两种标准。
2.1 RS-232接口
(1) RS-232-C接口连接器一般使用型号为DB-9的9芯插头座,只需三条接口线,即“发送数据”、“接收数据”和“信号地”即可传输数据,其9支脚位的定义如下表1所示。
表1 RS-232-C接口连接器定义
(2) 在RS232的规范中,电压域值在+3V---+15V(一般使用+6V)之间称为“0”或“ON”;电压在-3V----15V(一般使用-6V)之间称为“1”或“OFF”;计算机上的RS-232“高电位”约9V,而“低电位”则约-9V。
(3) RS-232为全双工工作模式,其讯号准位是参考地线而得,分别作为数据的传送和接收;实际应用中其传输距离可以达到15米。只具有单站功能,即一对一通讯。
2.2RS485接口
(1)采用正负两根信号线作为传输线路。
(2)RS-485的电气特性:逻辑“1”以两线间的电压差为+(2—6) V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。
(3)RS485为半双工工作模式,其讯号是正负两条线路讯号准位相减而得,是差动式输入方式,抗共模干能力增强,即抗噪声干扰性好;实际应用中其传输距离可达1200米。具有多站能力,即一对多的主从通讯。
3 台达PLC的串行通讯功能
台达DVP系列PLC各型主机均内建2个通讯口的标准配置,即一个RS232和一个RS485通讯口,其RS232口主要用于上下载程序或作为与上位机、触摸屏通讯,而RS485口主要用于组建485网络,实现通讯控制。尤其值得一提的是EH机型可通过通讯功能卡扩充一个RS232或RS485通讯口,使得在组建多重通讯网络更加方便。
相对于通讯口的硬件配置,台达PLC在软件指令上对通讯的支持也是相当丰富和便利,主要通过以下三种方式完成485通讯功能:
3.1自由通讯方式
该方式通过串行数据传输指令RS来完成主站与从站之间的数据交换,可以实现无协议的自由通讯。许多接口设备如变频器、仪表等…若配备RS-485串行通讯,且该设备之通讯格式也有公开即可由PLC使用者以RS指令设计程序来传输PLC与接口设备之间数据。
3.2MODBUS通讯方式(GB/Z 19582)
MODBUS协议是目前国际上公开的标准串行通迅协议,也是中华人民共和国国家标准化指导性技术文件GB/Z 19582:基于Modbus协议的工业自动化网络规范。台达PLC通讯符合MODBUS协议,并且台达其它产品如变频器、温控仪、司服控制器等485通讯均符合MODBUS协议,对于符合MODBUS之通讯格式的产品,台达PLC提供了更加便利的通讯指令MODRD 、MODWR、MODRW来实现数据的读写,程序编写中不需关注传送的字符,校验码的转换等等,只需要确定通讯地址及写入读出的数据即可,不过在多指令读写时需要考虑通讯时序问题,避免通讯冲突。
3.3台达PLC最有特色的通讯命令EASY LINK
基于MODBUS通讯协议" title="通讯协议">通讯协议,台达EP/EH系列PLC机型提供了更为方便快捷的通讯方式——EASYLINK。EASY LINK通讯是台达PLC最有特色的通讯命令,可以提供主站与32个从站通讯,每个从站读写各100项数据的能力,且不需要复杂编程即可高速快捷的完成通讯控制,节省大量的编程时间。
综合比较上述三种通讯方式,自由通讯方式的编程最为复杂,但它可以与非MODBUS协议的设备通讯,设备选择自由灵活不受限制;MODBUS通讯方式的编程则简单的多,且也具有一定的编程灵活性,如可优先与某个从站通讯;而EASY LINK通讯方式是针对符合MODBUS协议互连设备最简单的通讯方式,几乎不需要编程即可完成,不需要考虑半双工通讯方式中通讯时序问题,只需要指定读出写入数据的寄存器和数据项数,启动LINK连接即可完成设备之间的数据通讯。因此对于符合MODBUS协议的设备建议采用LINK通讯方式。
3.4串行通讯工程要点问题
在工业自动化控制中,有许多数据信号需要采集、处理,特别对于远距离的设备,一般的传感器电压讯号如果传输距离过远的话,会造成讯号的衰减,如此一来,将得不到正确的结果,因此,采用传感器讯号就地处理,而数据传输通过数字通讯方式能够有效的解决这一问题,保证数据的正确性与准确性;但通讯同样也会受到外界的干扰,使得通讯质量下降,甚至根本无法建立通讯。要保证通讯正常,在组建通讯网络时应该注意以下几点:
(1)保证通讯协议一致,所有联机之从站接口设备波特率及通讯格式需与主站相同,合理分配各从站的站地址,避免地址冲突。
(2)合理布线,减少外界干扰对通讯的影响。走线走得好,可以很大程度减少干扰的影响,提高通讯的可靠性,走线应遵循两个原则:远离电源线,变频器等干扰源;当网线不能与电源线等干扰源避开时应与电源线垂直,不能平行,并采用质量高的双绞线走线
(3)通讯速率的选择,一般来说提高通讯波特率能够提高通讯效率,但并非一味的提高就肯定好,传输速率的提高同时加大了传输错码率,使传输质量下降,特别是在工业控制场合外界干扰比较大的情况下,有时适当降低传输速率会得到更好的传输效率。
(4)正确编制通讯程序。PLC通讯程序的编制在实现串行通讯中也是非常关键的一步,一个合理的通讯程序能够提高通讯效率,而不完善的通讯程序则会导致通讯效率下降,甚至通讯失败,使PLC出现运行错误。由于RS485通讯采用半双工的工作模式,因此通讯程序的编写主要是对通讯指令的分时处理程序,在此用以下两个通讯程序来描述如何合理编制PLC通讯程序,程序主要是PLC通过485通讯方式读写三台变频器的频率,均实际测试运行过。
3.5 台达PLC通讯程序要点
(1)“固定时序通讯程序”是台达PLC通讯技术工程处理通讯常用方法,利用固定计时的方法来实现分时通讯,这样的写法比较容易造成通讯时序上的问题。Modbus 通讯规格是采用主/从模式,也就是主站发通讯命令给从站,从站收到之后再回应主站,这一收一回才算完成一个完整的通讯资料交换,该程序有使用到M1127来判断,但是决定下一个通讯指令是否运行的接点开关却不是由通讯旗标" title="旗标">旗标来决定,而是由100ms 的 timer来决定,这样很容易有问题生成,因为通讯的整个时间包含通讯资料在线上传输的时间加上通讯资料在主/从站处理的时间,若这时间超过100ms,那就很容易造成从站回传,而主站送资料出去,造成资料在线上碰撞,因而影响传输的正确性,如果把timer时间延长,还是会碰到有问题,因为这种写法,通讯旗标的动作与决定传送的旗标本身并未同步,因而会有时间差,造成资料不正确。该程序在EH机型上测试,发现通讯速度比较慢,且读回来的数据有时会发生交叉的现象,即从站2的频率读到从站4的寄存器上,错误读写的情况可见图一。使用这种编程方法在通讯正常时没有问题,一旦当通讯数据错乱时,就会造成数据传送错误,严重时甚至导致PLC死机,参见图1。
图1 错误读写,红圈部分信道D200数据变为K3000,应该是K1000
(2)“通讯旗标方式程序”是调整后的程序,可以比较一下,其主要区别在于Modbus Read/Write 指令在程序使用上搭配M1127, M1129, M1140, M1141 来判断,由这几个旗标的状态来决定下一个通讯指令的运行时间,能够很好的处理串行通讯的时序问题,保证通讯的可靠及效率,正常通讯监控画面如图二。在用固定时序通讯中,即使通讯正常完成,那末也要等到100MS以后做下一个通讯,比如写指令通讯完成耗时20MS,则需要等待80MS,降低了通讯效率,而采用通讯旗标会在通讯完成或出现错误的情况下转入执行下一个通讯指令,有效利用了时间,参见图2。
图2 正常通讯监控画面
3 台达PLC与松下变频器通讯案例
采用台达ES系列PLC,用通讯方式来改变松下VF0C系列变频器的设定频率,PLC端使用485口,无协议方式来模拟VF0C变频器的通讯协议。
3.1通讯协议
VF0C系列变频器留有485通讯口,并提供内部通讯协议如下:
写:% [站号] #WD [功能号] [起始地址] [结束地址] [数据] [BCC] \CR
读:% [站号] #RD [功能号] [起始地址] [结束地址] [BCC] \CR
如果写正确,返回:%01$WD BCC\CR
如果读正确,返回:%01$RD [数据] BCC\CR
分别规定了字节数,在以下表格以写数据为例做详细说明:
起始码 站号 间隔 功能 功能号 起始 结束 数据 校验码 结束码
% 01~31 # WD D 00000 00000 0000 BCC \CR
1 2 1 2 1 5 5 4、… 2 1
起始码 |
站号 |
间隔 |
功能 |
功能号 |
起始 |
结束 |
数据 |
校验码 |
结束码 |
% |
01~31 |
# |
WD |
D |
00000 |
00000 |
0000 |
BCC |
\CR |
1 |
2 |
1 |
2 |
1 |
5 |
5 |
4、… |
2 |
1 |
在松下VF0C系列变频器中,站号默认为01,通讯格式为9600、N、8、1,通讯方式是ASCII方式,数据为十六进制,存储模式为8位模式。设定频率的地址是DT237,而读设定频率的地址为DT133,而且在DT237和DT133的数据都是以0.01Hz为单位的。下面以写频率为例,来做详细说明。
3.2实例说明
假设要写入的频率是43.5Hz,那么需要写入的数值应为10FE(4350),变频器的存储模式为8位模式,应从低位开始写入,那么应该先写FE后写10。校验码是把从起始码到数据码所有的字节进行异或所得。
XOR:%01#WDD0023700237FE10=52(HEX)
那么得出以下所有通讯格式码:
%01#WDD0023700237FE1052\CR
通讯方式是ASCII方式,数据是十六进制格式,把这些格式码按正确的次序发出,就可以把数据43.5HZ写入到变频器设定频率DT237中。
3.3 梯形图设计
在PLC中,无协议通讯也是从低位开始发送数据的,可选用8位模式和16位模式传送,不同就在于发送数据寄存器中的8位数据还是16位数据,在这里以16位模式做说明。梯形图如下:把格式码数据253031235744443030323337303032333745463130520D按照从低位到高位的顺序依次存入到D0~D11中去,占用12个连续的数据寄存器,就是说有24个字节的数据。设定通讯参数9600,N,8,1,ASCII方式,16位模式。当M0接通一次,就可以发送一次数据,写一次频率。
3.4 程序优化
如果再加上读频率的程序,就可以做成小闭环,完成读写频率的程序优化。因为在写频率的数据发送成功后,可做延时3秒后读频率,在读成功以后,把读回的频率数据和要写入的频率数据做比较,如果相等,则通讯程序停止,如果不相等,再执行写频率——>读频率——>比较。
4 结束语
综上所述,台达PLC具有强大的串行通讯功能,且相关应用指令丰富,能够很好的完成各种通讯需求,合理利用通讯功能将大大降低设备的制造成本,节省配线,提高抗干扰能力,由于台达产品均符合MODBUS协议,因此可以把台达产品通过通讯方式整合在一起,实现各种各样的功能要求。
参考文献
[1]台达PLC编程用户手册.台达电子集团
[2]VF0C系列变频器使用手册.松下电工(中国)有限公司