vb下基于modbus规约的串口通信

vb下基于modbus规约的串口通信

ID:9224552

大小:367.28 KB

页数:5页

时间:2018-04-23

vb下基于modbus规约的串口通信_第1页
vb下基于modbus规约的串口通信_第2页
vb下基于modbus规约的串口通信_第3页
vb下基于modbus规约的串口通信_第4页
vb下基于modbus规约的串口通信_第5页
资源描述:

《vb下基于modbus规约的串口通信》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、万方数据8VB下基于Modbus规约的串口通信VB下基于M.Odbus规约的串口通信SeriaICOmmunicatiOnBaSedOnMOdbusPrOtOc01withMicrosOftVisuaIBasic董立君刘书伟侯逸青(航天空气动力技术研究院,北京100074)摘要主要介绍Modbus—RTU规约,并在分析其通信原理的基础上,结合一个应用实例给出了VB6.O编程环境下利用MSComm通信控件实现基于该规约的工控机与数字显示表之间的串口通信编程方法。关键词:MsComm控件,RS一485,Modbus协议,CRC校验AbslraclMOdbus—RTUprotocOIisintro

2、ducedbrIefly,andOnthebaSisOfanaIyseilscOmmunicatiOnprinciple,makeuse0fMSCOmmActiveXreaIizeseriaIcOmmunicatiOnwayofprogrammIngbetweenIPCanddIg.taIdispIaymeterbasedOnMod—bus—RTUprOtocOlunderMicrOsOftvisuaIbasIc6.OintegraleanappIicatiOn.Keywo州s:MsCOmmcOntrOl,RS一485,MOdbusprotOcOI,CRCcheck本文主要从应用的角度利用V

3、B6.O的MicroSoftCom-municalion控件和Modbus—RTU协议,成功实现了某锥位控制系统中工控机与带RS一485输出接口的智能数字显示表之间的串行通信功能。所用工控机为凌华Rack一610系列。DMP—ANFA数字显示表应用于某锥位控制系统中锥位的显示,工控机通过读取其显示值作为反馈信号,实现锥位的闭环控制。1DMP—ANFA数宇显示表的设置在DMP—ANFA数字显示表的内部已经固化好Modbus—RTU通信协议及工作指令,允许用户预先设定本机的地址码。此外,要注意通信波特率必须与工控机的波特率相匹配。本例数字显示表设置:通信地址码:01通信波特率:9600小数点:2

4、位显示最大量程:100.00显示最小量程:0.002工控机通信软件本文的工控机通信软件主要是利用VisuaIBasIc6.0中的Mscomm通信控件来实现的,在VB6.O中对串口进行编程使用Mscomm控件可加快开发进度。该控件主要是为RS一232的通用串口而设计。所以为了利用工控机上现有的RS一232接口,通常是使用RS232/485的转换器。通过转换器,我们就可以像开发通用的RS一232串口一样来快速开发基于RS一485接口的工控机通信软件。工控机通过RS232接口,经RS232/RS485转换模块与数字显示表相连接,数字显示表被赋予唯一的通讯地址码用以识别身份,这样上位工控机即能通过R

5、S一485总线实现对进锥系统锥位位置的采集与监控。(1)工控机通信软件界面(2)MSComm控件初始化程序设计根据数字显示表的串行通信协议规定,在MSComm控件初始化程序中,主要是进行一些必须的串口初始化设定。具体的操作如下面代码说明:MSComml.CommP0rt=1MSComml.setlings=叼600,h,8.1”∥设定需要使用的串口//设定传输的波特率和校验方式图1工控机通信软件界面MSComml.

6、nputMode=comInputModeBinary//设定为二进制的数据流方式MSComml.1nputLen=0//一次全部读入缓冲区全部内容MSComml.PorcOpe

7、n=True//打开通讯端口MSComml.InBuffe忙ount=O//清空接收缓冲区MSComml.RThreshoId=9//设置输入缓冲区字符输入门限(3)Modbus—RTU协议的CRC校验的实现方法冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的CRC码,比较计算得到的CRC码是否与接收到的相符,如果鼹者不相符,则表明出错。计算CRC码的步骤为:预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器;把第一个8位数据与16位CRC寄存器的低位相异或,把结果放于CRC寄存器;把寄

8、存器的内容右移一位(朝低位),用O填补最高位,检查最低位;如果最低位为O:重复第3步(再次移位);如果最低位为1:CRC寄存器与多项式A001(1010o00000000001)进行异或;重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;万方数据《工业控制计算机》2006年19卷第8期9重复步骤2到步骤5,进行下一个8位数据的处理;最后得到的CRC寄存器即为CRC码。根据上述规则,编写VB下CRC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。