单片机与触摸屏基于MODBUS协议通信的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机与触摸屏基于MODBUS协议通信的应用
作者:黄月明
来源:《中国新技术新产品》2017年第07期
摘要:本文以自动温控鼓风机为例,介绍了触摸屏与单片机控制系统组成人机交换界面。重点讲述了基于MODBUS RTU协议的触摸屏与单片机的通信方法,并讲述应用程序设计方法,提供了通用的软件硬件设计方法。目前该系统已通过实践证明可以可靠稳定地运行。
关键词:触摸屏;单片机控制系统;MODBUS协议
中图分类号:TP393 文献标识码:A
自动控制系统经常需要观察运行状态或输入输出相关的参数,触摸屏能直观生动地显示运行参数和状态,具有良好的人机交互性。单片机广泛应用于工业控制中,与触摸屏配合使用可以构成良好的人机交互界面。但现有工控触摸屏都只支持与PLC的接口通信,没有支持与单片机的接口通信的工控触摸屏,故给单片机和工控触摸屏组成控制系统带来了很大的障碍。本文以自动温控鼓风机项目为例,以MODBUS协议为载体,搭建单片机与工控触摸屏通信的通用平台。
一、MODBUS通信协议介绍
1. MODBUS协议简述
Modbus协议是广泛应用于电子控制器上开放性通用语言。MODBUS协议在一根通信线上使用主从应答式连接,在一根单独的通信线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备,然后,终端设备发出的应答信号以相反的方向传输给主机。MODBUS协议只允许在主机和终端设备之间通信,而不允许独立的终端设备之间的数据交换,这样终端设备不会在它们初始化时占据通信线路,而仅限于响应到达本机的查询信号。
2.查询
查询消息中的功能代码告之被选中的从设备要执行何种功能。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量及错误检测。
3.回应
如果从设备产生正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:如寄存器值或状态。如有错误,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。
4.传输方式
传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与MODBUS协议–RTU方式相兼容的传输方式。
每个字节的位:
·1个起始位 ·8个数据位,最小的有效位先发送
·无奇偶校验位 ·1个停止位
错误检测(Error checking):CRC(循环冗余校验)
Modbus消息帧的组成
错误校验(CRC)域占用两个字节,包含了一个16位的二进制值。正常的通信过程中由于涉及了CRC校验问题,而这个校验过程是需要占用软件时间的,它将影响终端的应答速度。本设计采用了查表法计算CRC,速度非常快,能够满足高速通信的需要。
5.触摸屏系统的设定
本系统触摸屏采用Easy Builder Pro组态软件实现人机界面的设计,单片机作为从机,触摸屏作为主机。触摸屏设置为:PLC类型为MODBUS_RTU Server,通信口类型设置为RS-232,站号为0,将波特率9600bit/s,数据位个数8,校验位0,停止1位。
二、系统构成
系统以自动温控鼓风机项目为例,用触摸屏与单片机控制系统组成人机交换界面。通过MODBUS RTU协议实现触摸屏与单片机系统的通信,使用触摸屏作为单片机系统的输入输出设备,实现在触摸屏上控制单片机系统并可以随意修改系统运行参数,在实践中取得非常令人满意的效果。
三、实例分析
1.系统介绍
以自动温控鼓风机项目为例,以单片机为控制核心,以工控触摸屏作为输入输出设备,以八路开关及鼓风机电机作为控制对象组成自动温控鼓风机。功能主要为:(1)通过触摸屏控制八路独立开关。(2)系统温度由单总线数字温度传感器DS18B20读取,并经触摸屏显示。(3)可以在触摸屏上设定鼓风机工作的温度,当系统温度高于设定温度时鼓风机自动开始工作,当温度低于设定温度10C时,鼓风机自动停止工作,以实现温度自动控制。实践证明,本系统运行稳定,取得非常好的应用效果。
2.工控触摸屏的介绍
采用威纶通MT8000系列工控触摸屏设计,威纶通MT8000工控触摸屏支持通用、台达、西门子、欧姆龙、三菱、富士等多种PLC及MODBUS协议,具有较强的通用性和扩展性。
3.单片机系统的介绍
系统采用IAP15W1K29S系列51单片机,是性能强大的51单片机,设计中单片机作为下位机完成数据采集和基本数据处理及控制功能,触摸屏作为主机完成数据显示与参数设定以及报警功能。采用RS-232通信方式,此接口电路可以实现RS-232在各种波特率下的稳定通信功能。
4.通用平台介绍
为了提高程序的通用性、扩展性、和可移植性,通过指针与数组在单片机内部寄存器与触摸屏软元件之间建立对应的映射关系。以方便日后对系统进行改造与升级,同时也大大加强本系统的可移植性。
4.1 有关数据宏定义
本系统通信程序所使用数据量较大,而且数据之问关系较为复杂,为了能够方便读懂数据之间的联系,采用较多的宏定义,主要包括以下内容:功能码宏定义。由于MODBUS协议功能码有几十种,在本系统只定义最常用的几功能码如:01、05、03、06其他则不列出。
(1)通信数据排列意义宏定义。
(2)各种功能指令对应数据长度宏定义。
(3)CRC校验查表数据定义。
4.2 系统初始化
本系统程序由多个子程序构成,每个子程序完成不同的功能,主要由两大类组成,通信子程序及功能子程序,不同的子程序完成不同的功能。
(1)串口通信中断子程序如下:
本系统由于功能子程序较多,故在通信中断程序中只实现数据的收发,其他功能都在功能程序中实现,以提高效率。
(2)功能子程序
MODBUS协议支持的功能码有以下几种,本系统所取用威纶通MT8000系列触摸屏支持功能码及对应元件读写列表如下:
地址类型:0X、4X、4X-BIT、5X、6X(读/写);1X、3X、3X-BIT(只读)。
功能码:01/05输入位寄存器、02输出位寄存器、04输入寄存器(字)、03/16输出寄存器(字)。
对MODBUS RTU设备进行读写,触摸屏上的元件中使用什么样的地址类型,取决于RTU设备所支持的功能码、目标对象是位地址还是字地址控制、以及是否要进行写入。如:功能码05:强制(写)单线圈(输出)状态强制(写)一个逻辑线圈通断状态(ON/OFF)。
结语
系统用单片机通过Modbus协议实现与触摸屏通信实现自动温控鼓风机控制,当波特率达到115200bit/s时本系统通信仍然稳定可靠。本系统连接电路简单、组态灵活、通信可靠性高等特点。降低了系统设计成本,并提高了设备的通用性。触摸屏可实时显示系统动行中所需要的信息,通过触摸屏界面可以方便地进行各种工作状态设置,目前该系统已通过用户的验收并投入使用。由于Modbus协议的开放性,国内外的串行通信控制器绝大部份都支持该协议,因此通过Modbus协议实现通信控制有非常广泛的应用价值。
参考文献
[1]潘永雄.单片机原理与应用[M].北京:电子工业出版社,2005.
[2]何立文.单片机应用技术选编8[M].北京:航空航天大学出社,2000:200-230.
[3] Easy Builder使用手册2014.[Z].