- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用标准文案
文档
基于MODBUS协议的多机串口通信的
雪茄烟叶发酵温湿度监控系统的设计与实现
王刚
来凤县烟叶分公司
摘要:温湿度是雪茄烟叶发酵过程中的重要监测指标。为方便实时采集数据和分析,研制了一套基于RS485总线和MODBUS通讯协议RTU报文格式的温湿度监控系统,该系统通过RS485总线连接多个温湿度采集模块,RS485总线通过RS232隔离转换器与PC机串口相连,实现了以PC机为主机,多个温湿度采集模块为从机的多机通信。PC机通过轮询的方式向从机发送查询请示,从机返回温湿度数据被PC机接收。在通信编程的实现中,通过合理计算RTU帧间隔时间、从机轮询周期,并采用多线程、委托处理等编程机制,不仅有效的解决了多机通信可能引起的通信阻塞和线程冲突,实现了主机与从机的良好通信,同时实现了数据监控、数据显示和保存的并行处理,达到了系统稳定运行和良好交互的目的。
关键词:雪茄烟;温湿度;MODBUS;RS485;多机通信
0 引言
在来凤县生产雪茄烟叶的过程中,烟叶的发酵处理是生产后期一个重要的环节,发酵过程的控制直接影响烟叶质量的高低。温湿度作为发酵过程的一个重要指标,生产人员必须实时跟踪并采取反应措施。烟叶发酵场所要求空间相对封闭,尽量减少外部环境的干扰,且烟叶堆码内外和上下温度不同,要实时监测不同堆码和同一堆码不同位置的温湿度,不是一件很方便的事,因此想到了利用可编程温湿度传感器和PC机等硬件设备,通过自主编写监控程序,设计一套雪茄烟叶温湿度监控系统。
控制系统中一般分为上位机(主机)和下位机(从机)两大部分。上位机一般是指直接发出操控命令的计算机,同时在屏幕上显示各种信号变化;下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机之类的,下位机读取设备信息,反馈给上位机。
本文设计的系统中,将PC机作为上位机,下位机采取购买现成的温湿度传感器模块,通过程序二次开发,读取下位机数据。因此本文主要讨论的是硬件系统的装配和上位机系统软件的实现。
1 Modbus通信协议和RTU报文格式
1.1 Modbus协议简介
Modbus是一种工业上开放的现场总线协议,是目前通用的工业标准之一。该协议能够使得各个厂家之间的控制设备能够相互通信和进行数据传输,在工业过程控制中具有广泛地应用。在物理层,Modbus 串行链路系统可以使用不同的物理接口(RS485、RS232)。
MODBUS是一个请求/应答协议,并且提供功能码规定的服务。在同一时刻,只有一个主节点连接于总线,一个或多个子节点(最大编号为247 ) 连接于同一个串行总线。Modbus 通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。子节点之间从不会互相通信。主节点在同一时刻只会发起一个Modbus 事务处理。
主节点可以两种模式对子节点发出Modbus 请求:单播模式和广播模式。单播模式是主节点以特定地址访问某个子节点,子节点接到并处理完请求后,向主节点返回一个应答报文。在广播模式,主节点向所有的子节点发送请求。对于主节点广播的请求没有应答返回,一般用于写命令。
MODBUS协议包含三种传输模式:TCP、RTU和 ASCII 模式。其中RTU模式的主要优点是较高的数据密度,在相同的波特率下有更高的吞吐率,被广泛采用。本系统采用的传感器设备采用的是RTU模式。
1.2 RTU报文格式
使用RTU模式,每发一串完整的数据信息,称为一个RTU 帧。RTU报文帧格式表如下:
表1 RTU报文帧格式表:
起始间隔
地址码
功能码
数据区
CRC校验
结束间隔
≥3.5个字符
1字节
1字节
N字节
2字节
≥3.5个字符
当设备使用RTU 模式在Modbus 串行链路通信, 报文中每个8位字节含有两个4 位十六进制字符。其中,地址码指定要请求的从机地址,它所表示的从节点的有效地址范围是0~247,其中0表示广播地址。
功能码指定从节点要执行何种操作,从机响应报文发送的功能码与主机发送来的功能码一致。
数据区包含了从节点执行特定功能所需要的数据或者从节点响应请求时采集到的数据。
错误校验(CRC)占用两个字节,包含了一个16位的二进制值。CRC值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值相等,表示传输正常,否则就发生了错误。
每帧发送至少要以3.5个字符时间的间隔开始,在最后一个有效数据传输完成后,以一个3.5个字符时间的间隔作为该帧的结束。 整个报文帧必须以连续的字符流发送,如果两个字符之间的空闲间隔大于1.5个字符时间,则报文帧被认为不完整应该被接收节点丢弃。当没有活动的传输的时间间隔达3.5 个字符长时,通信链路被认为在“空闲”态。当链路空闲时, 在链路上检
文档评论(0)