APP下载

Modbus协议在水质监测仪器中的应用

2011-01-10李慧青杨鹏程杜军兰

海洋技术学报 2011年4期
关键词:监测仪器触摸屏元件

哈 谦,王 宁,李慧青,李 燕,杨鹏程,杜军兰

(国家海洋技术中心,天津 300112)

Modbus协议在水质监测仪器中的应用

哈 谦,王 宁,李慧青,李 燕,杨鹏程,杜军兰

(国家海洋技术中心,天津 300112)

介绍一种水质监测仪器中,单片机与触摸屏之间应用Modbus协议进行串行通信的方法,简要介绍了Modbus协议,并给出了程序工作流程图。实际应用表明,该方案能够实现触摸屏与单片机之间稳定、可靠的连接。

Modbus;触摸屏;Dynamic C;多任务处理

监测仪器大多采用PC机作为控制终端,通过PC机上运行的界面程序实现对仪器的控制功能。触摸屏操作简便,能够直观、生动地显示运行参数和运行状态,同样可以作为控制终端使用。本文的水质监测仪器在原有PC机控制的基础上进行扩展,引入Modbus通信协议,建立触摸屏与单片机之间主从查询应答的通信机制,实现触摸屏对监测仪器的独立控制。

1 系统总体结构

水质监测仪器系统总体结构如图1所示,其中Rabbit 3000单片机作为核心处理单元,外围连接触摸屏、PC机以及若干测量设备。触摸屏和PC机通过两个RS232串行通信端口各自与单片机相连,二者独立完成发送指令、显示工作进程和测量数据的功能;RS485总线挂接若干测量设备。Rabbit 3000是一款高性能的8位微处理器,支持协作式多任务处理方式对外围连接设备的操作任务进行处理。触摸屏选用上海步科电气公司的MT4000系列,其采用32位RISC CPU和精简的LINUX内核,具有出众的处理速度和丰富的软件功能。

引入Modbus协议,扩展监测仪器的控制终端,实现触摸屏对监测仪器的控制,存在的问题主要有两点:

(1)建立通信连接。触摸屏内嵌Modbus协议模块,其发送、接收指令都按该协议进行处理,而单片机没有该协议模块,需要按照Modbus协议的要求编写单片机通信程序,才能使其与触摸屏建立通信连接。

(2)数据、状态信息的交换。触摸屏与测量设备没有直接相连,单片机是二者之间的桥梁:触摸屏的工作指令发送至单片机,由单片机保存并转发至测量设备;测量设备分析现场环境的水样,并将测量结果及工作状态信息返回至单片机保存,在触摸屏查询测量结果及工作状态时,单片机根据对应的保存信息向触摸屏做出应答。这要求单片机分配一定的存储区,在收、发Modbus协议指令的同时,对存储区内的数据、状态信息进行相应的读、写操作。

图1 系统总体结构

2 Modbus协议简介

Modbus是工业领域内全球最流行的协议之一,应用该协议的系统中有一个主机,可以有一个或多个从机,主机发起查询,从机进行应答。Modbus协议支持ASCII模式和RTU模式的数据传输。本文采用RTU模式,其信息帧结构如表1所示,从机地址是主机区分从机的标识,寻址范围是1~247,地址0留作广播地址。功能码告知从机执行何种操作,从机回传同样的功能码向主机确认已执行了该操作,或修改功能码以告知主机出现错误。数据区包含从机执行操作所需的相关信息,与功能码密切相关。例如,功能码03告知从机读一组保持寄存器,数据区规定了寄存器的起始地址以及读取寄存器的数量。主机与从机通过信息帧中的校验码判断信息在传送过程中是否出现差错[1-3]。

在本文的水质监测仪器中,触摸屏与单片机之间应用Modbus协议通信,在Modbus协议规定的主从通信机制下,触摸屏作主机,单片机作从机,从机地址默认设置为01H;结合触摸屏发送工作指令、显示工作状态和测量结果的需要,扩展部分Modbus功能码的功能,如表2所示,功能码01H查询从机工作指令状态切换开关的状态,实时监控从机的工作情况;功能码03H、04H读取从机保存的测量时间、结果等数据;功能码05H强置工作指令状态切换开关的状态,将功能元件对应的工作指令发送至从机。

表1 Modbus RTU信息帧格式

表2 扩展的Modbus功能码

3 通信连接

单片机能够解析Modbus查询指令并应答,是单片机与触摸屏建立通信连接的先决条件。按照Modbus协议的要求,触摸屏与单片机之间的一切读写操作,都按照查询应答的机制进行。触摸屏根据组态软件编辑的元件不断发送查询指令,单片机不断应答[4]。Modbus协议对数据帧格式有严格的定义,单片机接收查询指令和发送应答指令都需要符合此要求。接收数据帧时,判断从机地址码,接收主机发给自己的指令,若计算校验无误,进而执行存储区的相关操作;而后将保存的数据、状态信息按Modbus协议数据帧的格式封装,发送给触摸屏进行应答。

4 数据、状态信息交换

触摸屏在本仪器中的主要作用是,发送各项工作指令,监控仪器运行状态,并显示测量结果和时间等信息,涉及到的元件包括:位状态切换开关元件用于发送工作指令,对应元件类型0X;数值显示元件显示测量结果及相关信息,对应元件类型3X或4X。相关元件的数据、状态信息交换过程如图2所示。点击位状态切换开关,开关状态由OFF切换到ON,触摸屏发送强置开关状态指令,单片机解析,并在存储区内将对应的工作标志位置位,当单片机向测量设备发指令时,在标志位存储区域内检测到该标志位,则将相应的工作指令发送至测量设备。每个位状态切换开关的状态都可以由一个bit位标识,因此单片机内一个字节的存储区可以与8个位状态切换开关相对应。单片机读取测量设备在工作过程中产生的数据和状态信息,并保存在存储区,接收到触摸屏查询数据或状态的指令时,以存储区内的对应信息应答。这里涉及到了触摸屏页面显示的元件与单片机存储区之间的地址映射:

图2 数据、状态信息交换

(1)开关元件与状态标志位存储区之间的地址映射

(2)数值显示元件与数据存储区之间的地址映射

建立起明确的地址映射关系,才能在收发指令过程中,准确地对存储区进行读、写操作。

图3 主程序工作流程

图4 处理触摸屏查询指令的程序流程

5 单片机通信程序开发

本文的单片机程序应用Dynamic C集成开发环境编写。Dynamic C通过costate程序段支持分时多任务处理[5-6],每个单片机外围设备的操作任务与一个程序段相对应,多个程序段组成单片机所有外围设备的操作任务。主程序工作流程如图3所示。单片机上电初始化,然后进入while循环,分时处理各个外围设备的操作任务。

初始化部分分配状态标志位、测量数据等信息的存储空间,初始状态标志位全部为0,对应位状态切换开关的OFF状态,测量数据区内的数据为空,同时将串口初始化,主要操作包括:打开串口,刷新发送、接收缓冲区,并对串口通信参数和相关寄存器进行设置。触摸屏与单片机的串口通信参数必须一致,本系统中通信参数设置如下:

波特率:9600

数据位:8

奇偶校验:无

停止位:1

单片机对触摸屏查询指令的处理作为操作任务组成一个程序段,检测来自触摸屏的指令,按照Modbus协议解析指令,执行相关存储区操作,并发送应答信息。处理触摸屏查询指令的程序流程如图4所示。

以位状态切换开关置位操作为例说明单片机对触摸屏查询指令的应答处理过程,从机地址01H,功能码05H,位状态切换开关元件0X15,Modbus协议中规定该类型元件起始地址为0,FF00H与开关元件的ON状态对应,0000H与OFF状态对应,因此十六进制置位地址为000EH,置位命令为FF00H,触摸屏发送查询指令(如表3)。

表3 查询指令码

表4 应答指令码

单片机收到查询指令,按照图4所示流程,判断从机地址并计算校验值,符合条件再根据功能码进一步解析指令,由置位地址000EH寻址到单片机存储区对应的标志位,由置位命令FF00H对该标志位执行置位操作,根据Modbus对应答指令的要求,发送应答指令(如表4)。

单片机分时处理各外围设备的操作任务,在单片机进入处理测量设备操作任务的程序段时,检测到存储区内该标志位被置位,发送对应的工作指令到测量设备。这里需要注意的是,一个字节的存储区内保存了8个开关元件的状态,因此在对标志位进行置位、复位操作时,不能影响到该存储区域内相邻存储位的状态。

监测仪器的多台测量设备是独立的,相互之间的工作情况不受影响;一台测量设备的多个操作不能同时进行,在一台设备执行某一操作时,用户发送该设备的其他操作指令是无效的,该设备无法进行响应。为避免用户误操作,设置同一测量设备的多个位状态切换开关条件使能,在执行某一操作时,屏蔽其他操作;该操作完成时,清除对其他操作的屏蔽[7]。

6 结语

本文提出了一种Modbus协议在水质监测仪器中的应用方案。该系统已成功应用于近海水质监测中,实际应用情况良好。触摸屏操作简便、显示直观,Modbus协议在单片机中得到了实现,单片机与触摸屏之间的通信连接稳定、可靠,具有典型的应用价值。

[1]Modicon Inc.Modicon Modbus Protocol Reference Guide[Z],1996.

[2]李明伟,郭广峰,黄鸽.PIC单片机与触摸屏串行通信的MODBUS协议实现[J].电子技术应用,2005(9):40-42.

[3]路平,薛树琦.Modbus协议下单片机与eView触摸屏的通信方法[J].单片机与嵌入式系统应用,2007(1):46-48.

[4]尤慧芳.用MODBUS实现触摸屏与单片机的通信[J].工业控制计算机,2008,21(12):63-66.

[5]Rabbit Semiconductor.Rabbit 3000 Microprocessor Designer’s Handbook[Z],2006.

[6]Rabbit Semiconductor.Dynamic CUser’s Manual[Z],2007.

[7]KincoAutomation(Shanghai)Ltd.EV5000 使用手册[Z],2009.

Application of Modbus Protocol in the Water Quality Monitoring Equipment

HA Qian,WANG Ning,LI Hui-qing,LI Yan,YANG Peng-cheng,DU Jun-lan
(National Ocean Technology Center,Tianjin 300112,China)

A serial communication method is introduced.With this method,the microcontroller communicates with the touch screen by means of Modbus protocol in the water quality monitoring equipment.At the same time,Modbus protocol is briefly introduced and the flow chart of the program is given.The application shows that this method could achieve stable and reliable connections between the microcontroller and the touch screen.

Modbus;touch screen;Dynamic C;multitasking process

TP311;P71

B

1003-2029(2011)04-0042-04

2011-01-18

国家高技术研究发展计划(863计划)资助项目(2007AA092101,2010AA09Z101);海洋公益性行业科研专项经费资助项目(200805014)

猜你喜欢

监测仪器触摸屏元件
PLC和触摸屏在卫生间控制系统的应用
皮肤“长”出触摸屏
一种低功耗地下水位监测仪器的设计与实现
QFN元件的返工指南
在新兴产业看小元件如何发挥大作用
宝马i3高电压元件介绍(上)
浸入式水深监测仪器的设计
Cu4簇合物“元件组装”合成及其结构与电催化作用
投射式多点触控电容触摸屏
触摸屏项目移植在自动化系统升级中的应用