正在加载图片...
VB下基于Modbus规约的串口通信 VB下基于Modbus规约的串口通信 Serial Communication Based on Modbus Protocol with Microsoft Visual Basic 董立君刘书伟侯逸青(航天空气动力技术研究院,北京100074) 摘要 主要介绍Modbus-RTU规约,并在分析其通信原理的基础上,结合一个应用实例给出了VB6.O编程环境下利用 MSComm通信控件实现基于该规约的工控机与数字显示表之间的串口通信编程方法。 关键词:MsComm控件,RS-485,Modbus协议,CRC校验 Abstract Modbus-RTU protocol is introduced briefly,and on the basis of analyse its communication principle,make use of MSComm ActiveX realize serial communication way of programming between IPC and digital display meter based on Mod- bus-RTU protocol under Microsoft visual basic6.0 integrate an application. Keywords:MsComm control,RS-485,Modbus protocol,CRC check 本文主要从应用的角度利用VB6.0的MicroSoft Com- 。P据能数显表数形量入优348口) munication控件和Modbus-RTU协议,成功实现了某锥位控 出可粒塔言谁过言地址勤位验码 制系统中工控机与带RS-485输出接口的智能数字显示表之间 01 0300000002 C40B 的串行通信功能。所用工控机为凌华Rack-610系列。DMP- 一内甲口发送的1进制命伞事 ANFA数字显示表应用于某锥位控制系统中锥位的显示,工控 康入的进制代风笔4入字节为意里我的量据 机通过读取其显示值作为反馈信号,实现锥位的闭环控制。 01030400000C667P19 1DMP-ANFA数字显示表的设置 数盈表10进重宽昆劳 在DMP-ANFA数字显示表的内部已经固化好Modbus- R几U通信协议及工作指令,允许用户预先设定本机的地址码。此 外,要注意通信波特率必须与工控机的波特率相匹配。 本例数字显示表设置: 2 开始 停止 通信地址码:01 通信波特率:9600 小数点:2位 图1工控机通信软件界面 显示最大量程:100.00 MSComm1..InputMode=comlnputModeBinary/设定为二进制的数 显示最小量程:0.00 据流方式 /一次全部读入缓冲区全部内容 2工控机通信软件 MSComm1.InputLen =0 MSComm1.PortOpen=True //打开通讯端口 本文的工控机通信软件主要是利用Visual Basic6.0中的 MSComm1.InBufferCount-0/清空接收缓冲区 Mscomm通信控件来实现的,在VB6.0中对串口进行编程使用 MSComm1.RThreshold=9/设置输入缓冲区字符输入门限 Mscomm控件可加快开发进度。该控件主要是为RS-232的通 (3 Modbus--RTU协议的CRC校验的实现方法 用串口而设计.所以为了利用工控机上现有的RS-232接口,通 冗余循环码(CRC)包含2个字节,即16位二进制.CRC码 常是使用RS232/485的转换器。通过转换器,我们就可以像开 由发送设备计算,放置于发送信息的尾部。接收信息的设备再重 发通用的RS-232串口一样来快速开发基于RS-485接口的工 新计算接收到信息的CRC码,比较计算得到的CRC码是否与 控机通信软件。 接收到的相符,如果两者不相符,则表明出错。 工控机通过RS232接口,经RS232/RS485转换模块与数 计算CRC码的步骤为: 字显示表相连接,数字显示表被赋予唯一的通讯地址码用以识 预置16位寄存器为十六进制FF干F(即全为1)。称此寄存 别身份,这样上位工控机即能通过RS-485总线实现对进锥系 器为CRC寄存器: 统锥位位置的采集与监控。 把第一个8位数据与16位CRC寄存器的低位相异或,把 (1)工控机通信软件界面 结果放于CRC寄存器: (2)MSComm控件初始化程序设计 把寄存器的内容右移一位(朝低位),用0填补最高位,检查 根据数字显示表的串行通信协议规定,在MSComm控件 最低位: 初始化程序中,主要是进行一些必须的串口初始化设定。具体的 如果最低位为0:重复第3步(再次移位):如果最低位为1: 操作如下面代码说明: CRC寄存器与多项式A001(1010000000000001)进行异或: MSComm1.CommPort =1 /设定需要使用的串口 重复步骤3和4,直到右移8次,这样整个8位数据全部进 MSComm1.Settings:="9600,n,8,1”/设定传输的波特率和校验方式 1994-201 China Academic Journal Electronic Publishingll rights reserved. http://www.cnki.net本文主要从应用的角度利用 !"#$% 的 &’()*+*,- .*/0 /12’(3-’*2 控件和 &*4516789: 协议,成功实现了某锥位控 制系统中工控机与带 8+7;<= 输出接口的智能数字显示表之间 的串行通信功能。所用工控机为凌华 83(>7#?% 系列。@&A7 BCDB 数字显示表应用于某锥位控制系统中锥位的显示,工控 机通过读取其显示值作为反馈信号,实现锥位的闭环控制。 ! "#$%&’(& 数字显示表的设置 在 @&A7BCDB 数字显示表的内部已经固化好 &*45167 89: 通信协议及工作指令,允许用户预先设定本机的地址码。此 外,要注意通信波特率必须与工控机的波特率相匹配。 本例数字显示表设置: 通信地址码:%? 通信波特率:E#%% 小数点:F 位 显示最大量程:?%%$%% 显示最小量程:%$%% ) 工控机通信软件 本文的工控机通信软件主要是利用 !’613G "36’( #$% 中的 &6(*// 通信控件来实现的,在 !"#$% 中对串口进行编程使用 &6(*// 控件可加快开发进度。该控件主要是为 8+7FHF 的通 用串口而设计。所以为了利用工控机上现有的 8+7FHF 接口,通 常是使用 8+FHF I ;<= 的转换器。通过转换器,我们就可以像开 发通用的 8+7FHF 串口一样来快速开发基于 8+7;<= 接口的工 控机通信软件。 工控机通过 8+FHF 接口,经 8+FHF I 8+;<= 转换模块与数 字显示表相连接,数字显示表被赋予唯一的通讯地址码用以识 别身份,这样上位工控机即能通过 8+7;<= 总线实现对进锥系 统锥位位置的采集与监控。 (?)工控机通信软件界面 (F)&+.*// 控件初始化程序设计 根据数字显示表的串行通信协议规定,在 &+.*// 控件 初始化程序中,主要是进行一些必须的串口初始化设定。具体的 操作如下面代码说明: &+.*//?$.*//A*)- J ? I I 设定需要使用的串口 &+.*//?$+K--’2L6JME#%%N2N<N?M I I 设定传输的波特率和校验方式 &+.*//?$O2P1-&*4K J(*/O2P1-&*4K"’23)Q I I 设定为二进制的数 据流方式 &+.*//?$O2P1-RK2 J % I I 一次全部读入缓冲区全部内容 &+.*//?$A*)-SPK2J9)1K I I 打开通讯端口 &+.*//?$O2"1,,K).*12- J % I I 清空接收缓冲区 &+.*//?$89T)K6T*G4 J E I I 设置输入缓冲区字符输入门限 (H)&*4516789: 协议的 .8. 校验的实现方法 冗余循环码(.8.)包含 F 个字节,即 ?# 位二进制。.8. 码 由发送设备计算,放置于发送信息的尾部。接收信息的设备再重 新计算接收到信息的 .8. 码,比较计算得到的 .8. 码是否与 接收到的相符,如果两者不相符,则表明出错。 计算 .8. 码的步骤为: 预置 ?# 位寄存器为十六进制 DDDD(即全为 ?)。称此寄存 器为 .8. 寄存器; 把第一个 < 位数据与 ?# 位 .8. 寄存器的低位相异或,把 结果放于 .8. 寄存器; 把寄存器的内容右移一位(朝低位),用 % 填补最高位,检查 最低位; 如果最低位为 %:重复第 H 步(再次移位);如果最低位为 ?: .8. 寄存器与多项式 B%%?(?%?% %%%% %%%% %%%?)进行异或; 重复步骤 H 和 ;,直到右移 < 次,这样整个 < 位数据全部进 行了处理; !" 下基于 &*4516 规约的串口通信 董立君 刘书伟 侯逸青 (航天空气动力技术研究院,北京 ?%%%U;) +K)’3G .*//12’(3-’*2 "36K4 *2 &*4516 A)*-*(*G V’-T &’()*6*,- !’613G "36’( 摘 要 主要介绍 &*4516789: 规约,并在分析其通信原理的基础上,结合一个应用实例给出了 !"#$% 编程环境下利用 &+.*// 通信控件实现基于该规约的工控机与数字显示表之间的串口通信编程方法。 关键词:&6.*// 控件,8+7;<=,&*4516 协议,.8. 校验 &*+,-./, &*4516 789: P)*-*(*G ’6 ’2-)*41(K4 5)’K,GQN324 *2 -TK 536’6 *, 323GQ6K ’-6 (*//12’(3-’*2 P)’2(’PGKN/3>K 16K *, &+.*// B(-’WKX )K3G’YK 6K)’3G (*//12’(3-’*2 V3Q *, P)*L)3//’2L 5K-VKK2 OA. 324 4’L’-3G 4’6PG3Q /K-K) 536K4 *2 &*40 516789: P)*-*(*G 124K) &’()*6*,- W’613G 536’(#$% ’2-KL)3-K 32 3PPG’(3-’*2$ 01234-5+Z&6.*// (*2-)*GN8+7;<=N&*4516 P)*-*(*GN.8. (TK(> 图 ? 工控机通信软件界面 !" 下基于 &*4516 规约的串口通信 <
向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有