C#编程实现Modbus通信协议

C#编程实现Modbus通信协议

ID:43484531

大小:674.90 KB

页数:4页

时间:2019-10-07

C#编程实现Modbus通信协议_第1页
C#编程实现Modbus通信协议_第2页
C#编程实现Modbus通信协议_第3页
C#编程实现Modbus通信协议_第4页
资源描述:

《C#编程实现Modbus通信协议》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第31卷第8期新乡学院学报2014年8月Vol.31No.8JournalofXinxiangUniversityAug.2014C#编程实现Modbus通信协议崔晶,徐晓光,倪康,夏雯娟(安徽工程大学电气工程学院,安徽芜湖241000)摘要:运用C#编程语言开发了Modbus通信系统,实现温湿度采集。系统下位机采用具有Modbus通信功能的温湿度检测模块,多个模块通过RS485总线连接,并通过RS232-RS485转换器将通信总线连接到PC机串口。系统以Modbus协议访问每个温湿度模块,实现了多点温湿度采集。关键词:C#;SerialPort;

2、Modbus;温湿度中图分类号:TP274文献标志码:A文章编号:2095-7726(2014)08-0030-040引言代码系统是由8位二进制数或2位十六进制数C#是一种安全、稳定、简单、高效及面向对象(0~F)组成,在传输过程中,数据共包含1个起始的编程语言,它解决了C/C++语言内存泄露和缓位、8个数据位、1个奇偶校验位(如无校验则无此冲区溢出等问题,具有很好的错误处理能力。C#位)和停止位。当有校验位时停止位占用1位,无校语言是在VisualStudio.NET平台下进行代码演验位时停止位占用2位。练。.NET是一种全新的编程环境,主要负责

3、运行1.2CRC校验代码,确保代码的安全性和准确性,同时负责管理内消息中包括了一个基于CRC(循环冗余检[1]测)[2]方法的错误检测域,检测整个消息的内容。存、线程调度等核心服务。运用C#编程容易实[2]现Modbus协议的串行通信,并具有更好的安全性。CRC码包含2个字节,即16位二进制数。在目前,温湿度检测系统不断趋于规模化及远程CRC校验前,将16位寄存器全部预置为1。在进行化,基于C#编程的Modbus通信系统实现的温湿校验时,除8位数据位外,起始位、停止位和奇偶校度采集,可在RS-485总线上进行远距离多点温湿验位都不参与计算。度检测。

4、此研究内容在环境监测、工业数据采集等在计算CRC时,先将8位数据和寄存器中存储方面具有一定的实用价值。的数据相异或,得到的数据向低位移一位,然后把最[2]1Modbus协议高位补为0,再对最低位检查。如最低位为1,则把寄存器中的内容与预置数相异或;若最低位为0,1.1Modbus协议简介则不进行异或运算。重复8次,即进行8次移位。Modbus协议是应用于PLC或其他控制器上的一种通用语言。通过此协议,控制器与控制器、控接着,下一个8位数据再和此时寄存器中的内容相制器通过网络(如以太网)与其他设备之间可以实现异或,这个过程也重复8次。全部信息处理完以

5、后,串行通信。该协议已经成为通用工业标准[2],运用寄存器中所存储的内容即为CRC码。这个CRC码[2]将以低字节先加入、高字节后加入的顺序,跟随在Modbus协议,不同厂商的控制设备可以互连成工业网络,实现集中监控。数据之后,由发送设备发送。文中Modbus通信协议采用的是RTU模式,2C#的SerialPort类当控制器设置为在Modbus网络上以RTU(远程终微软自推出VisualStudio2005开发工具开始,端单元)模式通信时,消息中每8位包含两个十六进其.NETFramework类库中就包含了SerialPort类,制字符。在相同的波

6、特率下,这种方法比ASCII方实现了串口通信的绝大部分功能。采用SerialPort式传送的数据量大。类实现上位机与温湿度变送器之间的串口通信,通过收稿日期:2014-02-12作者简介:崔晶(1988-),女,山西长治人。硕士生,研究方向:数据融合与信息检测。崔晶,徐晓光,倪康,夏雯娟:C#编程实现Modbus通信协议·31·改变SerialPort类的方法和属性,可实现串口的打在进行通信前,需确定主、从机的波特率(波特率不[3]开和关闭,并实现对串口的波特率等属性的设置。同会致使通信不成功)。该变送器PCB上的两位拨SerialPort类的属性

7、及方法见表1。码开关即是波特率设置开关,通过开关状态的设置表1SerialPort的常用属性及方法可实现波特率的设置。本通信系统设置波特率为名称说明9600bps,拨码开关都设置为OFF。温湿度变送器BaudRate获取或设置串行波特率的Modbus通信参数如表2所示。DataBits获取或设置每个字节的标准数据位长度表2温湿度变送器的Modbus通信参数Parity获取或设置奇偶校验检查协议波特率数据位停止位校验位StopBits获取或设置每个字节的标准停止位数用户选择设置81无获取或设置通信端口,包括但不限于所有可PortName用的COM端口

8、该温湿度变送器的主机命令帧有8个字节,包括获取一个值,该值指示SerialPort对象的打IsOpen开或关闭状态地址码、

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

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

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