自动化网-工控人家园官网移动版

主页 > 五金电气 > 通信/网络 >

基于一种MODBUS协议的工业智能通信模块设计方案

工业现场测量多采用独立的仪表,具有各参数监测的非实时控制以及人工采集数据重复劳动量大等缺点,且对采集系统的组网使用自定的协议,通用性和可移植性比较差。为此设计了基于MODBUS协议和RS-485总线的工业智能通讯模块,它可以对不同仪表的输出信号进行统一方式的数据采集并按照统一的通讯协议对数据进行远传。具有功耗小、结构简单、使用方便且抗干扰能力强等特点。

1 模块总体设计和功能

  自动化系统基本上是采用4~20 mA(或0~10 V)模拟信号或者带有标准的RS-232接口的仪表进行检测和控制的。总体的设计原则是要求通讯模块以其通用性、多功能和低功耗等特点,可以作为仪表本身传输数据以及组网的一种功能,直接组装到仪表内部,由仪表供电。也可以单独作为一种功能模块,与控制系统的检测仪表或模拟数据采集系统配合使用,由电池供电。并且通讯模块是基于远程控制的数据采集,不仅要求能够准确地接收、识别发送至通讯模块的命令字符串,还要求准确无误地返回设备的状态信息,同时还要根据命令字符串的控制指示对采集数据等进行正确的控制。

  通讯模块的总体设计大致分为硬件设计和软件设计两个部分。在硬件设计上尽可能地选用低功耗的器件,在软件编程上实现元器件的低功耗编程控制。

2 通讯模块硬件框图与设计原理

  通讯模块的硬件设计要求既能有数字通道对RS-232电平信号进行处理,又存在模拟通道对模拟信号进行处理和远传。其控制器核心采用的是Flash型超低功耗16位单片机MSP430F149o该单片机具有集成度高(片内集成12位A/D、硬件乘法器、模拟比较口以及双串行接口等模块)、功能丰富、超低功耗(在LPM4时可达0.1μA)等技术特点的单片机,它有多种功耗状态可以编程控制,并可利用双串口、低功耗等功能以及C语言编程来实现对整个通讯模块功能的设置。模块通讯模块硬件原理框图如图1所示。

图1 通讯模块硬件原理框图

2.1模拟信号通道

  在模拟信号传输通道中,模数转换的处理采用了AD7715,AD7715具有16位无误码输出,0.0015%非线性度,前端增益可编程、内设自校准电路和低功耗等优点。模拟电流和电压信号可转换为符合其输人范围内的电压信号,输人AD7715进行A/D转换。由单片机控制实现AD7715的初始化和数据采集等。

2.2 RS-232接口电路

  MAX3221采用单电源供电,电源接人方式简单,内部由1个线性驱动,1个接收器,带±15kVESD保护的双速电荷泵电路组成。可以实现RS-232电平到TTL电平的转换。MAX3221的另一优点是自动掉电功能。当无输入信号时,可通过单片机的控制驱动器和接收器都将关闭,进人很低功耗的待机状态(1μA),达到节能目的。

2.3 RS-485接口电路

  由于基于差分信号传输的RS-485总线本身具有抗干扰能力强等特点,系统采用RS-485的通讯方式与主控机进行远距离的通讯。要求无论是模拟信号还是RS-232信号通过单片机采集处理后,均可以用RS-485通讯方式进行远传。电路中采用了DC-DC隔离电源供电,并在单片机与RS-485通讯电路之间采用了高速光电耦合进行隔离,从而进一步提高了整个通讯模块系统的抗干扰能力。MSP430F149串口2的TTL电平到RS-485接口电平的转换采用的是芯片75176。通过RS-485总线的方式进行多机通讯时,如果某时刻某个75176的DE端电位为“1”,那么它的RS-485总线输出将会处于发送状态,占用了通讯总线,这时其他的分机就无法与主机进行通讯。如果某个分机出现异常情况下(如死机),就会一直占用总线,导致整个系统通讯崩溃。因此在电路设计时,要保证系统上电复位时75176的DE端电位为“0”,采用如图2的接法。由于MSP430在复位期间,I/0口电位为“1”,发光管不发光,光电三极管不导通,75176的DE端电位为“0”,释放总线,从而有效地解决复位期间分机“咬”总线的问题。增强了系统通讯的可靠性和稳定性,同时有效地解决了工,作现场与控制室之间的分离,保证了工作人员人身安全。

图2 RS-485接口原理图

2.4 单片机控制的M.DBUS通讯原理

  目前,工业上的MODBUS通讯协议已经成为电子控制器上的一种通用语言协议。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通讯。它已经成为一通用工业标准。用它来实现不同厂商生产的控制设备连成工业网络,进行集中监控。

  基于此,可以根据实际工业网络数据采集的一主多从的实际数据选择模型,该模块采用了此协议,因为协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通讯的。因此不管上位机是什么样类型的测控设备,就按固定的MODBUS通讯协议要求的协议格式来回应来自主设备的请求,并进行侦测错误记录。按照协议中要求的消息域格局和内容的公共格式回应。

  在MODBUS通讯网络上,此协议要求通讯时必须知道每个通讯模块的设备地址,每个通讯模块识别按地址发来的消息,根据功能码来决定要产生何种动作。如果需要回应,控制器将生成相应的反馈信息并用MODBUS协议发出。

  通讯模块在用MSP430F149单片机控制通讯时采用了MODBUS协议支持的两种数据传输模式:ASCII模式及RTU模式。ASCII模式中字符串每个8位字节分2个ASCII码发送。RTU模式字符格式中每8位字符分2个4位16进制格式数据传送。

  ASCII模式的消息格式如下:

  同种情况下,RTU模式传输速度要优于ASCII模式。从两种模式上可以看出,功能码占用8位,可以应用的功能有255个,在系统用MODBUS组网的过程中,主要应用了前4个功能码:01-读取线圈状态;02-读取输人状态;03-读取保持寄存器;04-读取输入寄存器。

  根据上述要求和通讯模块通用性的实际情况,该模块上添加了2个按键、1个8位拨码开关和多个指示灯进行例如数据_传输模式、波特率、地址、数据位等参数的设置。内部的软件编_程按照:按“设置”键,相应功能的指示灯亮,然后用拨码开关对其进行设置,按“确认”键读入单片机。如此可依次对数据传输模式、串口属性等进行设置。

3 软件实现

  系统软件以MODBUS通讯协议为核心基础,附以自定义的通讯协议,以标准的MODBUS通讯协议为对外接口,以自己定_义的通讯协议为对下位机的通讯接口,以此来实现通讯的连接转换。软件分4部分:

图3 通讯模块软件系统功能框图

(1)模数转换部分,实现模拟信号的数据采集。

(2)下位机的串口软件。由实际仪表的通讯协议定义的下位机通讯软件,重点是要看实际仪表的通讯方式。

(3) MODBUS通讯软件。重点是要分清每个通讯的数据帧的帧头和帧尾,特别是在RTU模式下,必须分清帧头在什么位置。做法是在串口中断中打开定时中断,在通讯间隔超过通讯3.5个字符时认为通讯一帧结束,再来串口中断就是下一帧的开始。

(4)数据处理软件。MODBUS通讯协议建立在CRC校验基础之上,因此通讯可靠性比较好,在软件中采用查表的方式来进行MODBUS校验,极大地提高了程序运行的效率。

4 结束语

  该通讯模块是针对工业上来自不同厂商生产的检测仪表进行组网数据采集的。可以对现场工业仪表输出的标准的模拟信号和RS-232数字信号进行软件处理,并以MODBUS通讯协议的形式上传到上位机控制系统,实现进一步的存储和控制等处理。在投人运行中,模块本身实现了实时性、可靠性、组网简单化等特点。随着工控组态软件的广泛采用,提高了系统的成功率和可靠性。带有标准协议的通用型数据采集模块有广泛应用。

(责任编辑:admin)