基于永宏PLC的串行口通讯原理及其应用

作者:FAtek 来源: 日期:2008-7-28 10:08:54 人气:3381 标签:
tu1.jpg
表1.1 DB-9引脚定义

       在由EIA制定的RS0-232C的标准中,规定了高,低电位形成的”0”和”1”讯号标准电压范围。在这个标准中,”0”和”1”的规定如图1.1所示。 
tu2.jpg

图2.1 RS-232电位标准电位图 

      在RS-232标准中,电压在+3V~+15v(一般使用+6V)之间称为”0”或者Space。一般用途是作为On。压在-3V~-15v(一般使用-6V)之间称为”1”或者Mark。一般用途是作为Off。与计算机内部一样,都是利用“高电位”与“低电位”的变化来组成一串数据。
       虽然串行通讯简单易用,但在工业领域中,常常存在着很多的噪声干扰源,在使用RS-232串行通讯时,经常会受到外界的噪声干扰。RS-232串行通讯的传输方式如下图1.2所示。 

tu3.jpg
图2.2 RS-232讯号传输方式
       由图1.2可知,RS-232为全双工工作模式,其讯号标准电位是参考地端而来的,在讯号由发送到接收,要保证两端的接电端同电位下,才能正确的识别传输的讯号。只有一对一的通讯功能。实际应用中传输距离可达15米。
       在传输过程中,若有噪声的干扰进入,干扰讯号同时在原始讯号线和地线上产生影响,原始讯号将叠加上干扰讯号,而地端的干扰讯号将被地电压抵消掉了,因此,传输讯号将发生曲扭,整个讯号也将发生错误。为了克服以上的干扰问题,RS-485串行通讯方式应运而生。
2.2 RS-485串行通讯
       RS-485的工作模式为半双工模式,通讯讯号是两条传输线的电位差,属于差动输入方式,抗干扰能力强;实际传输距离可达1200米。具有一对多站的通讯功能。RS-485的讯号传输方式如图1.3所示。 
tu4.jpg
图2.3 RS-485讯号传输方式
RS-485传输的讯号为:
DT=(D+)-(D-)
       当讯号线受到干扰时,D+讯号线和D-讯号线分别叠加上一个Noise讯号:(D+)+Noise和(D-)+Noise。那么此时的传输讯号将变为:
DT=[(D+)+Noise]-[ (D-)+Noise]= (D+)-(D-)
此运算结果与前一方式结果一样,证明使用RS-485可以有效的防止噪声的干扰。
3 永宏PLC的串行通讯功能
3.1 永宏PLC通讯硬件配置
       永宏FBs系列PLC的通讯功能十分的强大,标准主内建一个通讯端口Port0(RS-232或者USB,本篇以RS-232做为介绍),主要作用为作为上位机的编程或者HMI的监视与控制作用。另外根据实际的需要,可以选配通讯扩展板(FBs-CBXX)或者通讯扩展模块(FBs-CMXX)来增加通讯端口,总共可以扩展到5个通讯端口;接口界面支持RS-232、RS-485和以太忘界面。另外通讯速度高达921.6Kbps。足以满足控制系统的数据即使交换。
3.2 永宏PLC通讯协议 
       永宏FBs系列PLC提供永宏FATEK通讯协议,ModBus协议,以及自由口通讯协议。用户可根据不同的智能终端来选择通讯端口的通讯协议。在此需要注意的是主机的Port0口只支持FATEK标准通讯协议。此章节主要进行永宏通讯协议的介绍。
3.2.1 永宏FATEK通讯协议
       永宏PLC主机上各通讯端口在标准通讯模式下都适用此通讯协议,任何对PLC的数据读写操作,除了在硬件联机和通讯参数设定中必需通讯双方一致外,在通讯信息格式(Message format)方面也必需符合本通讯协议的格式,PLC才能正确响应。
       在永宏PLC的通讯结构上,永宏PLC是被定义为从站(SLAVE),而任何与永宏PLC联机的外围设备都为主站(MASTER),即由主站(外围设备)来主动发出命令,从站(永宏PLC)只有在收到命令信息后,才根据该命令的要求响应信息给主系统,而不能主动发出信息给主系统,如下的关系图1.4所示:
tu5.jpg
图3.1永宏PLC与智能终端的主从关系
 
3.2.2 FATEK通讯协议格式
       永宏PLC的通讯信息格式无论是命令信息(主系统发出)或响应信息(仆系统发出)都可大概分为6个数据区,如下图3.2所示。 
tu6.jpg
 图3.2 FATEK通讯协议格式
 
协议格式主要包含了:起始字符、总站号码、命令码、数据资料、校验码和结束字符6部分内容。
开头字符(STX):ASCI I码之开始字符STX。
从站号码:为两位数之16进制数值。
命令号码:为两位数之16 进制数值,为由主系统要求从系统所执行之动作类别。
本文资料:本文数据可为0(无本文数据)~500个ASCII字符。
侦误值(CHECKSUM): 侦误值系将前述~将各ASCII字符之16进制数码值(8位长度)从头至尾依序相加,但不考虑进位,因此最终结果为侦误值。
结尾字符(ETX):ASCI I码之结尾字符ETX之16进制数码为03H。

4. 永宏PLC的通讯应用
4.1 通讯系统的工程设计要领
       在通讯系统中,要保证两个(或者多个)智能设备之间正常的、可靠的进行数据通讯,需遵循以下几点要领:
(1) 硬件界面的选择
       在使用通讯时,首先要考虑硬件接口标准,即选择RS-232或者RS-485界面。这个选择根据系统的实际要求来确定。例如要进行多站远距离的通讯,那就要选择RS-485通讯。
(2) 保证主从站的通讯协议一致性
       所有的通信设备中,主站的数据格式必须与从站一致,才能保证从站识别数据。另外还需注意每个设备都要设定独有的站号地址。
(3) 通讯参数的设置
       在保证以上2个条件外,同时还需注意各个设备的通讯端口的参数设定,如波特率、数据位、停止位、校验位等,也要保证设定一样的参数。
(4) 通讯命令程序的编写
       程序的好坏直接影响整个系统的通讯质量,合理的通讯程序能有效的提高通讯效率。这个与编程软件操作的便利性、指令的简便性和个人的实践经验有这很大的关系。
4.2 永宏PLC通讯程序的介绍
       永宏PLC的编程软件WinProLadder提供相当便利的通讯指令FUN150ModBus和FUN151C-Link,同时配合表格命令格式来完成通讯数据的交换。
4.3 永宏PLC串行通讯的应用
(1) 永宏PLC之间的通讯联机
       永宏PLC之间的联机方式有2种:一种是一般链路方式(FUN151:MD0模式),另一种模式是高速链路方式(FUN151:MD3模式)。现分别介绍一下这两种通讯模式的使用。
       FBs-PLC的一般链路:将从站2的X0~X4传送到主站0的Y0~Y4;将主站的R100传送到从站2的D50。
通讯硬件选择与参数设定
       由于FBs-PLC的内建Port0口只能作为客户(SLAVE)模式,所以必须另外扩展通讯端口,在此我们选择FBs-CB25来扩展2个通讯口:Pott1(RS-232)和Port2(RS-485)。这里选择RS-232界面,参数设定为默认值:9600,E,7,1。根据永宏PLC的RS-232通讯端口引脚定义,通讯线接法如图4.1所示。 
tu7.jpg
图4.1 通讯线接线示意图
程序编写
       永宏提供免费的程序编辑软件”WinProLadder”。传统化的操作界面,丰富简便的指令使得程序的设计相当的便利。这个范例的程序单元编辑如下图4.2所示。
 
tu8.jpg
图4.2 一般数据链路程序
 
说明:当M1960 ON时,表示Port1在属于闲置状态,该通讯指令可以进行运行。M0为中间继电器,用于控制指令的ON/STOP。
当M9160-->ON时,这时接通M0时,FUN151指令将进入”0”工作模式(永宏PLC主站协议),并通过”Pt”指定的端口Port1将”SR”中的通讯命令传送到指定的从站中去,等待从站的响应,完成通讯控制。另外”WR”为指定FUN151的内部工作寄存器空间。其中该范例的通讯命令表格如图4.3所示。
 
tu9.jpg
图4.3 一般链路通讯表格
 
命令说明
第0笔命令:指定主站读取从站的X0状态,长度为5,即从X0~X4,并读取到主站的Y0~Y4上面去。命令输入方式如图4.4所示。 
tu10.jpg
图4.4 一般通讯命令输入(编辑)
 
类似,第1笔通讯命令则是将主站的R100(长度指定为1)传送(命令为写入)到从站的D50去。
到此,永宏PLC之间的通讯指令编辑已完整的结束。在笔者的使用过程中,永宏的PLC编程显得相当的方便。另外值得一提的是永宏PLC之间的高速链路。永宏PLC除了一般的通讯联机外,同时,可以通过Port2通讯端口做PCU间高速链路通讯,通讯不受扫描周期的影响,最高速度高到921.6Kbps。现就这一功能做一个介绍。
(2) 永宏PLC之间的CPU高速链路通讯
通讯硬件选择与参数设定:
       通讯端口方面永宏PLC指定只能通过Port2做高速链路控制。通过Port2的RS-485界面,做4个从站直接的数控链路,高速通讯端口参数设定指定为:15200,8,E,1。
程序编写:
       在通讯指令中,使用的仍然是FUN151指令,只是在”MD”模式中选择”3”模式,即代表Port2口通讯工作在CPU高速链路的模式。另外”SR”和”WR”的设定与MD0模式类似,只是要注意不要重复使用即可。FUN151的指令编辑如图4.5所示。
 
tu11.jpg
 图4.5 永宏PLC高速PCU链路程序 
 
说明:
       M1962-->ON状态时,表示Port2口正属于空闲状态,该指令可以运行。在M1-->ON时,FUN151将通过Port2,工作在”3”模式下(高速链路),与其他永宏PLC进行数据同步。”SR”的通讯命令表格如图4.6所示。
tu12.jpg
图4.6高速链路通讯表格
指令说明:
       第0笔通讯命令:表示将主站1的R0~R5(长度为6)6个寄存器的数据传送到第1~5从站的R0~R5。即网络中的所有从站中对应的寄存器数据都将与指令中指定的寄存器同步!
       第1笔通讯命令一样,是将从站3的D90~D93同步到所有PLC,包括主站1和从站2,3和4。具体通讯命令编辑如下图4.7所示。 
tu13.jpg
图4.7 高速链路通讯命令输入(编辑)
       在指令运行中,可以通过通讯命令表格的监视,来监视通讯的当前状态。或者建立监视页面来直接监视对应的寄存器和特殊中间继电器,如Port2使用M1962来指示端口的占用情况,M1963则指示通讯命令完成,R4158指示传送延时和接收异常状况。详细内容请参考永宏FBs-PL《使用手册》Ⅰ,Ⅱ。

5 结束语
       综上,永宏PLC自身的强大的通讯能力,便利的编程方法,完全可以胜任各个应用领域的通讯要求。合理的利用通讯功能不仅能完成系统数据的统一管理和监控,而且能有效的降低系统开发的成本。


  作者简介:
       孙恒孝(1980- ),毕业于合肥工业大学自动化系
       主要从事PLC行业的技术支持与行业应用工作 
       参考文献:
       [1] 永宏可编程控制器使用手册I 和使用手册II
       [2] 永宏PLC编程软件使用手册
       [3] 范逸之,陈立元.Visual Basic与RS-232串行通信控制.北京:清华大学出版社
       [4] 廖文辉,可编程控制器应用进阶篇.台北:全华科技图书股份有限公司

Write a comment

Comments: 0