文档库

最新最全的文档下载
当前位置:文档库 > 基于LabVIEW的ModbusASCII串行通信的实现

基于LabVIEW的ModbusASCII串行通信的实现

2008年6月 陕 西 理 工 学 院 学 报

June .2008第24卷第2期 Journa l o f Shaanx iU niversity of T echnology V o.l 24 N o .2

[文章编号]1673-2944(2008)02-0031-03

基于LabV I E W 的M odbus ASCII 串行通信的实现

王水鱼, 李 宁

(西安理工大学自动化与信息工程学院, 陕西西安 710048)

[摘 要] M odbus 协议是应用于电子控制器上的一种通用协议,通过此协议,控制器之间、

控制器经由网络和其他设备之间可以进行通信。由于此协议的简单和通用性,在工业控制系

统中得到了广泛的应用。在介绍M odbus ASC II 通信协议特点的基础上,详述了在LabV I E W

软件平台上基于M odbus ASC II 通信协议的上位机与下位机主从式串行通信的实现。

[关 键 词] LabV I E W; M odbus ASCII 通信协议; 串口通信; LRC 校验

[中图分类号] TP311; T M 561 [文献标识码] A

收稿日期:2007-11-06

作者简介:王水鱼(1958 ),男,陕西乾县人,西安理工大学副教授,主要研究方向为信号系统与电子测量。

随着科学技术的不断发展,工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。M odbus 通信协议就是工业控制器的网络协议中的一种,此协议简单通用,在控制器和其它设备之间进行通信中已得到广泛的应用。当采用M odbus 通信协议后,可以方便快速的实现对不同生产现场的控制设备进行组网,便于集中监控。

1 M odbus A SCII 协议简介

M odbus 通信协议是一种通用工业标准,通过此协议,我们可以快速地实现对不同生产现场的控制设备进行组网,便于集中控制。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它制定了消息域格局和内容的公共格式。当在M odbus 网络上通信时,此协议决定了每个控制器所要识别的控制设备的地址,可以按地址识别发来的消息进一步决定要产生何种动作。如需回应,控制器将生成反馈信息并用M odbus 协议发出。

M odbus 通信协议定义了两种数据传输方式,ASC II 模式和RTU 模式。控制器可以设置为两种传输方式(ASC II 或RTU )中的任何一种,用户可选择任一种模式;在配置每个控制器时,在一个M odbus 网络上的所有设备都必须选择相同的传输模式和串口参数。本文采用M odbus ASCII 模式进行通信。

1.1 M odbus ASCII 模式

当控制器以ASC II 模式在M odbus 总线上进行通信时,消息中的每8位字节都作为两个ASC II 字符发送;这种方式的主要优点是允许字符之间的时间间隔长达1s 而不产生错误。

代码系统:

十六进制,ASC II 字符0-9,A -F .

消息中的每个ASC II 字符都是一个十六进制字符组成。

每个字节的位:

1个起始位。

7个数据位,最小的有效位先发送。

奇偶校验时1位,无奇偶校验时0位。

1位停止位(有校验时),无校验时2个停止位。

错误校验区:

纵向冗余校验(LRC)。

1.2 M odbus ASCII 消息帧

使用ASC II 模式,消息以冒号(:)字符(ASC II 码3AH )开始,以回车换行符结束(ASC II 码0DH,0AH )。其他域可以使用的传输字符是十六进制的0,1,!,9,A,B ,!,F .网络上的设备不断侦测?:#字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。消息中字符间发送的时间间隔最长不能超过1s ,否则接收的设备将认为传输错误。一个典型消息帧如表1所示。

表1 ASC II 消息帧

起始位

设备地址功能代码数据LRC 校验结束符1个字符2个字符2个字符n 个字符2个字符2个字符

1.3 M odbus ASCII 错误检验域

ASC II 模式错误检测域包含两个ASCII 字符。这是使用LRC 方法对消息内容计算得出的,不包括开始的冒号符及回车换行符。LRC 字符附加在回车换行符前面。

1.4 M odbus ASCII 数据校验方式(LRC )

ASC II 模式采用LRC 校验方法,这个错误校验码是一个8位二进制,可作为2个ASC II 十六进制字节传送。计算LRC 码时,仅设备地址、功能代码、数据字节参加运算,而冒号?:#、回车符号(CR )、换行字符(LF)不参加运算。LRC 值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC ,并将它和接收到消息中LRC 域中的值比较,如果两值不相等,说明有错误。LRC 方法是将消息中的8位字节连续累加,丢弃了进位;接下来把计算出的8位字节取反,然后再加1产生的二进制补码,即为LRC 码。

2 基于Lab V IE W 的M odbus A SCII 在串行通信中的实现

LabV I E W 是美国N I 公司推出的一种基于图形编程语言(G 语言)的虚拟仪器软件开发工具,它包含了丰富的函数库和总线设备驱动程序。LabV I E W 采用了框图而非传统的文本方式的编程方法。用LabV I E W 软件设计的程序包括前面板和框图程序两部分,前面板是实现仪器的面板,而框图程序则实现了仪器的内部设计,是程序的真正?内核#。

2.1 基本功能函数及步骤

在LabV I E W 功能模版的Function >>Instrum ent I /O >>V IS A 程序库中包含进行串行通信操作的一些功能模块

基于LabVIEW的ModbusASCII串行通信的实现

:

(1)串口参数设置节点(V ISA Con fi g ure Serial Po r.t v i):

基于LabVIEW的ModbusASCII串行通信的实现

该节点主要用于对串口进行参数设置。

(2)串口写节点(V I SA W rite .v i):

基于LabVIEW的ModbusASCII串行通信的实现

该节点将需要送出的数据发送至串口的输入缓存器。

(3)串口读节点(V I SA Read .v i):

基于LabVIEW的ModbusASCII串行通信的实现

该节点可读出串口缓存中的数据。

(4)串口关闭节点(V I SA C l o se .v i):该节点将打开的串口关闭。

在LabV I E W 软件平台中通过调用串口通信函数,便可以实现主从设备之间的串口通信。基本步骤如下:

(1)串口初始化:利用V I SA Confi g ure Ser i a lPo r.t v i 节点主要用于完成串口参数的设置,包括所用串口号、波特率、一帧信息中有效数据的位数、停止位、奇偶校验、数据流量控制等。

(2)读写串口:利用V I SA W rite .v i 节点完成发送数据,利用V I SA Read .v i 节点来接收数据。

(3)关闭串口:利用V I SA C lose .vi 节点来将打开的串口关闭,停止所有读写的操作。

2.2 串口通信程序流程框图

V ISA 的调用流程如图1所示。通过对V I SA 节点的调用,可以方便、快速地实现系统上位机对下位机的实时监控。

32 陕 西 理 工 学 院 学 报 第24卷

图1 V ISA 调用流程图

通过LabV I E W 软件平台读取数据的程序框图如图2所示。

2.3 LabV I E W 中M odbus ASC II 协议检验码的实现方法

按照以下计算LRC 码的步骤进行软件设计,如图3所示。

?将运算的所有字节相加,保留所得之和,丢弃进位,并把结果送入8

位数据区。

%将上步计算出的8位字节取反或由FF H 减去该8位字节。

&将取反后的值加1产生的二进制补码,即为LRC 码。

3 结 语

M odbus 通信协议是工业控制器的网络协议中的一种,此协议简单通

用,在工业控制中得到了广泛的应用。在M odbus 通信协议中有两种数据传输方式,即ASC II 模式和RTU 模式,本文论述了基于LabV I E W 的M odbus ASC II 模式检验码的实现方法,并给出了程序框图,这种方法可使程序简单方便、效率高,可以应用在基于PC 机的串行通信系统

基于LabVIEW的ModbusASCII串行通信的实现

中。

图2

基于LabVIEW的ModbusASCII串行通信的实现

串行通信程序框图

图3 实现LR C 的程序框图

[ 参 考 文 献 ]

[1] 其其格,梁元,郭科.利用VC 实现M ODBU S 的两种错误检测方法[J].微计算机信息,2004,20(1):91 93.

[2] 陈金平,吴文英.基于L abV IE W 的M odbus 协议两种校验码的实现方法[J].仪表技术,2005,37(2):42 43.

[3] 侯艳华,王志选,王勋龙,等.基于L abV IE W 的串行通信动态链接库设计[J].煤矿机械,2005,26(4):75 77.

[4] 谢启,顾启民,涂水林,等.基于L abV IE W 的M odbus RTU 通信协议的实现[J].煤矿机械,2006,27(12):95 97.

[5] 潘洪跃.基于M ODBU S 协议通信的设计与实现[J].计量技术,2002,52(4):35 36.

[6] 张波,张振仁.基于M odbus 协议的C51软件编程[J].电测与仪表,2005,45(8):54 56.

[7] 徐涛,闫科,赵景林,等.基于M odbus 协议的串行接口实现与DCS 通讯[J].工业控制计算机,2002,15(3):56 57.

[8] 杨乐平,李海涛,赵勇,等.L ab V IE W 高级程序设计[M ].北京:清华大学出版社,2003.100 159.

[9] 刘君华.虚拟仪器图形化编程语言Lab V IE W 教程[M ].西安:西安电子科技大学出版社,2001.86 168.

[10] M odbus-I DA.MODBU S Appli cation P rotoco l Spec ifica ti on V 1.1[M ].http ://www.M odbus-I DA.o rg ,2004.

(下转第38页) 33 第2期 王水鱼,李宁 基于Lab V I E W 的M odbus A SCII 串行通信的实现

陕 西 理 工 学 院 学 报 第24卷

[2] 谭文恕.变电站通信网络和系统协议IEC61850介绍[J].电网技术,2001,25(9):8 11.

[3] 张结,黄德斌,唐毅.应用标准与IEC61850的引用和兼容关系[J].电力系统自动化,2004,28(19):88 91.

[4] 朱永利,黄歌,刘培培,等.基于IEC61850的电力远动信息网络化传愉的研究[J].继电器,2005,33(11):45 48.

R esearch o fm appi ng IEC61850t o I EC60870

GU I Cun bing

(Depart m ent o fE lectron ic,Zhongshan Polytechn ic schoo,l Zhongshan528404, China)

Abst ract: The prob l e m of co m pati b ility bet w een dev ices applying I EC60870and dev ices apply i n g ne w I E C61850in co mm unication shou ld be solved,as t h ere are m any dev ices apply i n g I EC60870in co mmunica ti o n pro toco l in SAS prestently.Th is paper co m pares the I EC61850w ith I EC60870in co mmun ica ti o n,pro vides the m ethod of m app i n g the co mmunicati o n pr o toco l of I EC61850to I EC60870-5-103/104accordding to the character of co mmunicati o n in SAS and the m app i n g pr i n ciple i n I EC61850,and brings up the dev ices app l y ing103/104pr o toco l into the ne w co mm un ication syste m i n SAS.

K ey w ords: I E C61850; I EC60870; co mm un ication protoco;l m apping

(上接第33页)

R eali zati on of m odbus A SC II protoco l i n serial co mm unicati on based on Lab V I E W

WANG Shui yu, LI N ing

(Schoo l ofAuto m ation&I n for m ati o n Eng i n eering,

X i?an Un iversity of Techno logy, X i?an710048, Ch i n a)

Abst ract: M odbus pro tocol is a un iversa l protoco,l w h i c h is w ide l y used in electron ic controller.The contro ller can co mm un icate w ith the net w ork and other equ i p m ent t h rough the m odbus pr o toco.l The protoco l is used in the monitori n g syste m because of its si m p l e ness.Th is paper i n troduces feat u res ofM odbus co mmunica ti o n pro toco.l The rea lizati o n o f serial co mm un icati o n bet w een the upper monitor co mpu ter and the lo w er si n gle ch i p based on LabV I E W so ft w are platfor m is presented i n deta i.l

K ey words: LabV I E W; M odbus ASC II co mm un ication pr o toco;l seria l co mm un icati o n; LRC checkout

38