Modbus协议在智能信号变送器中的应用
2011年 第6期
仪表技术与传感器
Instrument Technique and Sensor2011
No.6
Modbus协议在智能信号变送器中的应用
付 青,丁金华,王 辉,王朋亮,王炜富
(大连工业大学机械工程与自动化学院,辽宁大连 116034)
摘要:针对工业上的需求,文中基于Modbus协议设计了一种嵌入式智能传输数据的仪表,CPU采用C8051F系列的微处理器,上下位机通过RS-485总线进行通讯。下位机采用C语言来编程,通过ADC和脉宽调制功能实现数据的采集和变换;上位机采用C#来开发Modbus协议通信软件,采用主线程和辅线程机制来实现Modbus协议通信,将数据显示在界面上,同时绘制数据的动态曲线图,方便观察数据,系统整体实用性较高。关键词:Modbus协议;RS-485总线;C#
中图分类号:TN915;TP212 文献标识码:A 文章编号:1002-1841(2011)06-0026-03
ApplicationofModbusTCPProtocolinIntelligentSignalTransducer
FUQing,DINGJin-hua,WANGHui,WANGPeng-liang,WANGWei-fu
(SchoolofMechanicalEngineering&Automation,DalianPolytechnicUniversity,Dalian116034,China)Abstract:Accordingtoindustrialneeds,thispaperdesignedanembeddedintelligentdatatransmissioninstrumentbasedonModbusprotocol.TheCPUadoptedC8051Fseriesmicroprocessor,theupperandlowercomputerrealizedcommunicationthroughtheRS-485bus.ThelowercomputeradoptedCprogramminglanguage,throughtheADCandpulsewidthmodulationfunctiontorealizedatacollectionandconversion,PCusedC#todevelopModbusprotocolcommunicationsoftware,usedthemainmechanismofurban-ruralbenefitreadjustmentandprocesstorealizedatacommunicationbasedonModbusprotocol.Itdisplaysdatainthehostcomputerinterface,whiledrawsdataonthedynamicgraph,itisaconvenientandpracticalsystemasawhole.Keywords:Modbusprotocol;RS-485bus;C#0 引言
ModBus通讯协议是一种开放式现场总线通信协议,其功能完善、使用简单、协议开放,正在成为仪表及智能终端的工业标准[1]。
工业上通常需要把温度、压力、速度、角度等物理量的变化转换成模拟量电信号才能传输到几百米外的控制室或显示设备上,这种将物理量转换成电信号的设备称为变送器。工业上最广泛采用的是用4~20mA电流来传输模拟量[2]。
文中介绍了基于modbus协议的智能隔离变送器,设计合理,稳定性、可靠性较好,在工业控制领域会有广泛的应用前景。1 系统整体设计
系统通过RS-485—RS-232转换器,进行主从机数据通信,PC机作为主机,24个隔离器作为从机,最多可扩展到255台从机。整体结构图如图1所示。
3 软件设计
3.1 下位机程序编写
下位机程序主要用到串口中断UART0,当接收到数据时,首先判断首字节和自己的地址是否吻合,如果正确则依次接收,在最后一个传输字节之后,必须要有至少3.5个字符的停顿时间来标定一帧消息的结束。结束之后从机对接收到的消息进行CRC校验。如果校验结果与帧消息包含的CRC校验码吻合,则表示通信正常,否则该帧通信有错误,通知主机重发命
图1 系统结构图
图2 系统硬件框图
信号源4~20mA,经过调理电路,将电流信号转换为电压,经低温漂运算放大器OP07将电压放大后加到V/F变换器LM331的输入端,LM331将输出的频率信号转换成TTL电平,进过6N137光电耦合器送给C8051F340单片机的I/O口进行脉宽调制,串口通讯则通过MAX485进行转换。硬件原理框图如图2所示。
令帧。接收数据流程图如图3所示。3.2 上位机程序编写
上位机软件主要实现上下位机串口通信和Modbus协议实隔离器的输出显面上。
2 硬件设计
基金项目:辽宁省教育厅2009—2010科学技术研究项目(2009A083)
:201118
第6期
付青等:Modbus协议在智能信号变送器中的应用
27
图4 上位机工作界面
图3 下位机数据接收流程图
Modbus串口通信程序采用多线程方式,主线程完成对串口的初始化、设置,发送控件则启动定时器,定时向串行口发送请求数据帧,发送完毕后需要放开发送总线,以便下位机占总线。接收线程监视串行口,当串行口收到从机数据时,接收线程向主线程发送消息,通知主线程从串行口取得从机的数据并进行相应的处理。如果经过校验接受数据正确,则设备地址加1,采集下个隔离器的数据。反之,重新发送数据帧。如果多次从机无应答,则提示通讯错误,停止通讯,此时可在上位机手动将该从机跳过以便其他从机继续运行。
(1)计算机发送查询电流信号消息给隔离器,如表1所示。
并可以通过选择一个隔离器将实时曲线显示出来,界面如图4所示。
上位机串口通信是采用VisualStudio2005开发工具中Se-rialPort类的设计方法,采用多线程,完成对通信数据的打包、数据解析以及通信的连接。实现了串口的初始化、串口参数设置、串口事件监视等。串口数据的读取用了事件触发方式,在SerialPort类中有DataReceived事件,当串口的读缓存有数据到达时则触发DateReceived事件。SerialPort.DataReceived事件运行比较特殊,其运行在辅线程,不能与主线程直接进行数据传输,所以用到了同步委托的方法Invoke
。
表1 查询数据消息
地址01
功能码03
存储地址高8位
00
存储地址低8位
00
数量高8位
00
数量低8位
02 {
if(ctlisTextBox) {
if(=="textBox"+snumber) {
((TextBox)ctl).BackColor=Color.Red; } }
MessageBox.Show("站号:"+snumber+"出现问题,请处理");
timer1.Enabled=false; port1.Close(); } }
privatestringcrc16(byte[]buffer,Int16length)//CRC校验 {
stringresult="";
byteuchCRCHi=0xFF;//highbyteofCRCinitialized byteuchCRCLo=0xFF;//lowbyteofCRCinitialized intuIndex;//willindexintoCRClookuptableo0;gt++校验码高8位
ai
校验码低8位
ao
主要代码实现:
privatevoidsenddata(){
port1.RtsEnable=true;//占总线
port1.DiscardInBuffer();//删除缓冲区的数据if(number>=24)number=1;//循环24个从机buffsend[0]=number;//从机地址snumber=Convert.ToString(number,10);
buffsend[1]=HexStringToBinary(TBfucnum.Text);//功能码buffsend[2]=(byte)(HexStringToUInt16(TBadress.Text)/256);buffsend[3]=(byte)(HexStringToUInt16(TBadress.Text)%256);buffsend[4]=(byte)(HexStringToUInt16(TBshul.Text)/256);buffsend[5]=(byte)(HexStringToUInt16(TBshul.Text)%256);buffsend[6] =ai;//校验码高8位buffsend[7]=ao;//校验码低8位
port1.Write(buffsend,0,buffsend.Length);port1.RtsEnable=false;count++;
if(count==5)//重发5次没有反应报错{
ctl.nt
28
{
uIndex=uchCRCHi buffer[i];
InstrumentTechniqueandSensor
result=converHex(uchCRCHi); result+=converHex(uchCRCLo); returnresult; }
Jun.2011
uchCRCHi=(byte)(uchCRCLo auchCRCHi[uIndex]); uchCRCLo=(byt …… 此处隐藏:3836字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




