基于LabVIEW的Modbus串口通讯协议的实现.docx

上传人:b****2 文档编号:25865200 上传时间:2023-06-16 格式:DOCX 页数:8 大小:112.26KB
下载 相关 举报
基于LabVIEW的Modbus串口通讯协议的实现.docx_第1页
第1页 / 共8页
基于LabVIEW的Modbus串口通讯协议的实现.docx_第2页
第2页 / 共8页
基于LabVIEW的Modbus串口通讯协议的实现.docx_第3页
第3页 / 共8页
基于LabVIEW的Modbus串口通讯协议的实现.docx_第4页
第4页 / 共8页
基于LabVIEW的Modbus串口通讯协议的实现.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

基于LabVIEW的Modbus串口通讯协议的实现.docx

《基于LabVIEW的Modbus串口通讯协议的实现.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的Modbus串口通讯协议的实现.docx(8页珍藏版)》请在冰豆网上搜索。

基于LabVIEW的Modbus串口通讯协议的实现.docx

基于LabVIEW的Modbus串口通讯协议的实现

二〇〇八年・第二期研究报告基于LabVIEW的Modbus串口通讯协议的实现

袁 雪 陈 斌 鲁中巍 管国强

(江苏大学机械学院 镇江 212013

摘 要 本文简要地介绍Modbus通信协议,详细的阐述以PC机作为上位机,Labview

711作为上位机软件开发平台的主从式串口通信程序的实现。

经过测试,该程序可在基

于labview的测控系统中加以实际应用。

关键词 Labview PLC 串口通信 Modbus协议

引言

LabVIEW(laboratoryvirtualinstrument2ingworkbench

境,

软件,。

LabVIEW,VXI,RS2232和RS2485,还内置了支持TCP/IP,ActiveX等软件标准的库函数,其图形化编程语言环境,简单直观,极大节省程序开发时间,可以完成各种各样的编程任务。

本文详细介绍基于labview711开发平台实现Modbus通讯协议的方法,该程序可用于上位机与下位PLC的串口通讯程序。

在实际测试中,上位机通过串口RS232转RS485与下位台达PLC进行通讯,被测参数的大量实时信号通过串口传送给上位PC机,上位机可以对接收到的这些参数进行实时数据显示、趋势图显示、数据查询和管理,还可以对下位PLC进行参数控制和曲线控制。

1 Modbus协议简介〔1〕

Modbus通信协议是应用于电子控制器上的一种通用语言,通过此协议控制器相互之间、控制器经由网络和其它设备之间可以通信,它已经成为一通用工业标准。

不同厂商生产的控制设备可以连成工业网络,进行集中监控。

111 Modbus协议两种串口传输方式

Modbus协议定义两种数据传输方式,即ASCII模式和RTU模式。

在标准的Modbus网络上,可以设置控制器为两种传输模式中的任何一种。

在配置每个控制器的时候,需选择想要的模式,以及串口通信参数(波特率、校验方式等,在Modbus网络上的所有设备都必须选择相同的传输模式和串口11

Modbus消息被传送设备作为,这就允许接收的设备在消息起始,读地址分配信息,判断哪一个设备被选中(广播方式则传给所有设备,判知何时信息已完成。

11211 ASCII帧 使用ASCII模式,消息以冒号(:

字符(ASCII码3AH开始,以回车换行符结束(ASCII码0DH,0AH。

其它域可以使用的传输字符是十六进制的。

网络上的设备不断侦测“:

”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域来判断是否发给自己的。

消息中字符间发送的时间间隔最长不能超过1s,否则接收的设备将认为传输错误。

一个典型消息帧(见图1。

起始位设备地址功能代码数据LRC校验结束符1个字符2个字符2个字符n个字符2个字符2个字符图1 ASCII消息帧

11212 RTU帧 使用RTU模式,消息发送至少要以315个字符时间的停顿间隔开始。

在网络波特率下多样的字符时间,这是最容易实现的(如图2的T12T22T32T4所示。

传输的第一个域是设备地址。

可以使用的传输字符是十六进制的。

网络设备不断侦测网络总线,包括停顿间隔时间内。

当第一个域(地址域接收到,每个设备都进行解码以判断是否发往自己的。

起始位

设备

地址

功能

代码

数据

CRC

校验

结束符T12T22T32T48位8位n个8位16位T12T22T32T4图2 RTU消息帧

2 LabVIEW中基于Modbus通信协议的串口通讯程序实现

211 Labview与串口通讯

13

现代仪器(www1moderninstrs1org1cn二〇〇八年・第二期

Labview针对串行口通信提供完整功能的组件,共有6个串口通信节点,分别实现初始化串口、串口读、串口写、串口缓存检测和串口暂停以及关闭串口等功能,能方便地规定主机串口地址、从机地址、传送的数据量及一帧串行数据的格式,包括波特率、数据位数、有无奇偶校验位和停止位位数等。

各节点端口参数表参见文献〔2〕。

利用图形化编程语言2G语言直观、快捷的优势,通过功能模块的组合和连接,能够比较方便地开发出适合各种不同通信协议的串行口通信程序。

在labview中进行串口通讯的基本步骤是:

(1初始化串口,设置串口参数与PLC下位机的串行通讯参数一致;(2读写端口;(3延时;(4关闭串口。

212 基于Modbus

根据Labview,照Modbus。

21211 在function面板中选择PropertyNode,将其reference端口和VISAresourcename相连,右键选择property2Serialset2ting,设定进行串口通信的波特率,通讯模式(RTU或ASCII,奇偶校验,流控制。

21212 串口请求模块 这个模块的功能是将mod2bus命令封装起来,对串口进行各种读写操作。

整个通讯模块可以做成一个子程序,入口参数是功能代码,数据在从机的起始地址,出口参数为读到的存储器的值,调用起来很方便。

完成这个功能需要以下几个子函数:

(1串口命令发送子函数 首先把命令消息帧按照Modbus协议格式化成为计算机可以识别的字符串形式,再发送到VISAWrite1vi端口。

在发送之前需要选择信息发送的模式,在ASCII模式下,采用LRC错误校验,这个错误校验码是一个8位二进制数,可作为2个ASCII十六进制字节传送。

计算LRC码时,仅设备地址、功能代码、数据块字节参加运算,而冒号(:

、回车符号(CR、换行字符(CF不参加运算。

具体计算LRC码的步骤为:

需运算的所有字节相加,所得之和丢弃进位;将上步计算出的8位字节取反或由FFFF减去该8位字节;将取反后的值加1即为LRC码。

接收端判断接收到的信息是否正确的简单方法是:

将除冒号(:

、回车符号(CR、换行字符(LF以外的所有字节,包括码相加并丢弃进位,若结果为0,则表明信息传送正确,否则出错〔3〕。

实现LRC校验的子程序框图(见图3。

图3 LRC

在RTU模式下,315个字符时间,200Bps,使用11s模式下采用CRC校CRC码,放置于发送信息帧的CRC值,两者比较如果相符,表示接收的消息帧正确无误,否则,说明接收的信息帧有误。

在进行CRC码计算时只用8个数据位、起始位、停止位及奇偶教验位都不参与CRC计算。

CRC码的计算方法:

a1预置2个16位的寄存器为十六进制FFFF,称此寄存器为CRC寄存器;b1把第1个8位二进制数据(即通讯信息帧的第1个字节与16位的寄存器的低8位相异或把结果放于CRC寄存器;c1把CRC寄存器的内容右移一位(朝低位,用0填补最高位,并检查右移后的移出位;d1如果移出位为0,重复第3步(再次右移一位;如果移出位为1,CRC寄存器与多项式A001进行异或;e1重复步骤C和d,直到右移8次,这样整个8位数据全部进行处理;f1重复步骤b到步骤e,进行通讯信息帧下一个字节的处理;g1将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换;h1最后得到的CRC寄存器内容即为CRC码〔4〕。

实现CRC校验的子程序框图(见图4。

(2串口命令接收子函数:

这个函数功能就是把写入串

图4 CRC码程序框图

口缓冲的Modbus消息命令帧读取出。

本框图程序采用顺序结构,顺序第1帧,利用VISARead节点从ByteCount端口读取一个字符数,并与指定的从

23

二〇〇八年・第二期

研究报告

机设备相比较,确定读取的从机号与实际从机相符合。

顺序第2帧,利用VISABytesatSerialPort1vi和VISARead1vi将串口输入缓存中的数据字节数全部读出。

同时,利用TickCount1vi计算整个读取命令帧的时间间隔,如果超过给定的超时时间(这里设为10000ms,程序会报超时错误。

另外,采用一个while循环结构,对读出字符串的校验码进行核对,如果不正确,重新读取,直到读出的校验码与发送的相符,中止循环(见图5。

顺序第3帧,添加一个子函数,String转ModbusDataUnit

1

图5 串口命令接收子函数程序框图

vi,其目的就是将读出的所有字符串按照Modbus

消息命令帧的格式将从机地址与功能代码和数据量

(ModbusDataUnit分开,为下一步解码提供函数

入口参数。

(3字符串解码子函数:

根据Modbus协议命令帧的功能代码,返回给用户实际读出的寄存器的值。

213 关闭串口结束通讯

3 结语

本文在labview711软件平台上,利用RS232转RS485串口,成功开发基于Modbus协议的串口通讯模块,可以方便地实现上位PC机与多台下位PLC的主从式串行通讯,作。

可以不加任,,运,运行良好可靠。

参考文献

1 MODICON,Inc1ModbusProtocolReferenceGuide〔Z〕119962 杨乐平,李海涛,杨磊.

labview程序设计与应用〔M〕,

北京:

电子工业出版社,2005

3 陈金平,吴文英1基于Labview的Modbus协议两种校验

码的实现方法〔J〕,仪表技术,2005,(2∶42~43

4 谢启,顾启民,涂水林等1基于Labview的ModbusRTU通

讯协议的实现〔J〕,煤炭机械,2006,27(12∶95~97

TherealizationoftheserialcommunicationprotocolbasedonLabview

YuanXue ChenBin LuZhongwei GuanGuoqiang

(JiangsuUniversity.Zhenjiang 212013

Abstract Thepaperfirstlygivesabriefintroductiontothemodbuscommunicationprotocol,thenexpatiatesthe

realizationofMaster2SlaveserialcommunicationprogrammerwithLabVIEWasthedevelopmenttoolandPCasthesupercompuer1ItisprovedthattheprogrammercanbetakenintopracticeinthetestandcontrolsystembasedonLabVIEW1

Keywords LabVIEW PLC Serialcommunication Modbusprotocol

(上接第26页

Therapiddeterminationoftracechromiuminmedicineastragalusbyflow

injectionchemiluminescencemethod

JiaoYanna RenXiaorong MaHongqiong LiHuiPangGuowei

(CollegeofChemicalEngineering,SichuanUniversity,Chengdu 610065,China

Abstract Anewandeffectivemethodchemiluminescence2flowinjectionisestablished1Itisbasedonthemeas2

urementofthelightemittedfromtheCr3+2catalysedoxidationluminolbyH2021Cr6+isreducedtoCr3+

byH2SO3,thusthetotalchromiumioncanbedetermined1Optimumconditionsareobtained:

appliedvoltageis2500V;lumi2

nolconcentrationis2150×1024mol/L;hydrogenperoxideconcentrationis4100×1022

mo1/L;pHofluminolis12,

pHofCr(Ⅲsolutionis51Thelinearrangeis1100×1026mg/mL~110×1024

mg/mLanddetectionlimitis6160

×1027mg/mL(S/N=3,Therelativestandarddeviation(RSDis016%for11measurementsof6100×10

26

mg/mLCr3+

standardsolution1ThemethodhasbeensuccessfullyappliedtothedeterminationofchromiumofthemedicinesamplesAstragalus1

Keywords Flowinjection Chemiluminescence Astragalus Chromium

3

3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1