基于霍尼韦尔SDC3002G协议的智能变送器研究郑贵林,黄雄辉(武汉大学自动化系,湖北武汉430072)造和软件设计思想,并说明使用FIX组态软件和API函数实现MODBUS主站通信的两种方法,该网络结构可以实现512个从节点与主站间的MODBUS通信。应用表明:该设计简单实用,发挥了MODBUS的主要性能优点,对其他同类型智能仪器及系统的设计开发有一定的借鉴作用。
霍尼韦尔SDC3002G智能变送器设计的智能变送器是在分体式液位压力模拟变送器的基础上改造而成,主要功能是采集和处理单路液位压力信号、解析和封装通信报文并实现MODBUS协议。智能压力变送器通过RS― 485通信总线接口连接主站(PLC或IPC)和其他从站设备,构建MOD-BUS网络,完成开放式远程数据采集和监控功能。
1.1硬件设计硬件电路部分以AT89C2051单片机为核心,使用12位串行A/D转换器ADS7816采集前端压力模拟信号,采集数据经半双工RS*485芯片SN65HVD3082E向MODBUS网络其他设备传输。硬件各部分大多选用尺寸小、功耗低、外围电路简单的新型工业级贴片元件,设计电路的结构简洁、紧凑。
硬件电路原理框图如所示。
1.1.1前端压敏元件及信号调理电路硬件电路原理框图0592MHz晶振,采用软件复位。
设计电路使用了AT89C2051的15根可编程I/O引线,其中P1口和P3口有8根引脚与8位DIP开关连接,用于设定MODBUS地址;P1.7~P1.5用作串行A/D转换器的片选、串行数据输出和时钟信号;P3.0、P31和P1.4接入SN65HVD3082E的接收输入、发射输出和收发使能端;P3.7用作,叩监控芯片IMP813L的看门狗输入信号。
电路使用的+5V电源采用BB公司的DC―DC芯片DCP012405BP.DCP012405BP是一种小型化、隔离型的DC*DC电源芯片,输入和输出电压分别是+ 24V和+5V,它的外围电路极少,仅在输入、输出与收稿曰期:2004-04- 30修改稿日期:2005*01*20地之间加入47呷电容改善纹波和荷载瞬态响应,且前端压敏元件及信号调理电路用于采集液位压力信号,进行滤波放大、零点校正、线性化、温度及灵敏补偿等信号处理,输出一路标准的4~20mA信号。这部分由模拟变送器组成,作为整个分体式压力变送器的前端,硬件的其他部分则置于接线盒内
1.1.2单片机及附属电路AT89C2051是ATMEL公司生产的高性价比单片机,其引脚功能和指令系统与MCS― 51完全兼容,只减少P0和P1口。电路中,AT89C2051不扩展片外存具有内部过热保护及输出短路保护等功能,用作供电电源非常适合。
1.1.3串行数据采集电路串行数据采集电路由八变换单元、电压基准源和串行A/D转换器组成。VA变换单元应用精度为0.1%,温度系数为*5X16/*C的高精密电阻,把前端输入的4~20mA信号变换成直流小电压信号作为串行A/D转换器的输入。A/D转换器的电压基准源1.2.2A/D采样子程序A/D采样子程序由通信子程序调用,完成接收和处理ADS7a6输出数据的功能。
如所示,当ADS7a6的CS接收下降沿信号时,A/D转换和数据串行输出过程完成初始化。ADS7816在DCLK接收的最初的1.5到来时,Dout输出信号有效,首先输出1个时钟周期的采用精密电压基准芯片REF02. A/D转换器采用12位的串行模数转换器ADS7816.其内部集成了大带宽跟踪/保持电路和串行接口,结构简单,转换速率高且功耗低,在体积、功耗和精度上都能满足智能变送器的要求。
1.1.4通信接口电路通信总线接口电路采用TI公司的RS*485接口芯片SN65HVD3082E.它将RS*485通信中各种故障(包括瞬变电压、ESD、电磁干扰、总线开路、总线短路、总线休闲、热故障等)的防范措施集成到一个芯片内,较好地解决了RS―485通信中常见故障。该芯片功耗极低,除负载外供电电流一般小于0.6mA,关闭模式下降到几nA.但它负载能力很强,可以支持256个收发器,强噪声环境中波特率最大可达200kbit/s. 485串行通信,SN65HVD3082E的收、发使能端共同连接AT89C2051 1.2软件设计软件设计主要由主程序、通信子程序和A/D采样子程序组成,采用查询方式实现与外部MODBUS网络的通信。
1.2.1主程序主程序由初始化、看门狗置位/清零、通信子程序组成。除通信子程序外,主程序主要进行本站内存单元分配、MODBUS地址读取、串行口等器件的工作方式和参数设置等任务,为系统正常工作创造条件。主程序框图如所示。
初始化部分完成AT89C2051的串行口、定时计数器1的参数的初值设定,分配各种数据所需的内存存储空间。其中定时器1运行在工作方式2,串口工作方式定为波特率可变的11位异步接收和发送方式(方式3),不允许多机通信,接收和发送的第9位数据位都为1,波特率为9600bit/s.通讯循环子程序的前后写入看门狗置位/清零语句,不断监视其循环运行。
低电平,然后依次输出12位模数转换数据,最先输出MSB位B11,最后输出B0.输出的每位串行数据在时钟的上升沿输出,在下降沿有效。在最后一位输出数据的同步时钟脉冲的下降沿到达时,当高电平信号输入CS引脚,Dout的输出将呈高阻态,同时结束一次完整的模数转换及数据串行输出过程。
A/D转换过程的时序图ADS7816串行数据接口的Dout和DCIK通常与AT89C2051串口的RXD和TXD连接,采用移位寄存器输入/输出方式(串口工作方式0)输出采样数据。但AT89C2051的串口实现RS― 485通信,故电路使用P1.7、P1.6和P1.5连接CS、Dct和DCLK引脚,模拟串口实现数据串行输出,其原理流程图如所示。
流程图中调整A/D转换数据高低位数据通过循环移位语句实现,丢弃第1次采集数据是剔除ADS7816采样保持器保存的前次采样数据,采样数据处理部分则抑制随机干扰误差,得到更可靠、准确的采样数据。
1.2.3通信子程序通信子程序实现MODBUS通信协议,是软件设计的核心部分。
通信子程序采用智能仪器常用的MODBUS停止位(无奇偶校验)构成。使用MODBUS的03和08功能,分别用于读取压力变送器A/D采样数值和回送各种通信诊断信息,其中03功能的数据格式如下。
地址功能码寄存器首地址寄存器数CRC校验码响应数据帧格式:地址功能码数据字节数采样数据CRC校验码03功能在MODBUS协议中是实现保持寄存器读取功能,此类寄存器地址设为4XXXX格式。对于所设计的压力变送器,主站只需读取1个寄存器的数据,即1路压力采样信号。
通信子程序采用查询方式实现单工通信,流程框如所示。
据流的形式传送,如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字符是一帧新报文的地址域。从可知,程序首先对SN65HVD3082E收发使能端清零,使只允许接收串行数据。然后,利用以下C51代码延时1.5个字符传输时间,判断是否接收到报文消息。
CLOSE;//延时1.5字符时间,若未收到数据转CUBE退出通信子程若没收到报文,退出通信子程序;若收到报文,通过对中断标志位RI进行清零操作,依次接收报文的各字符段。接收完一帧报文后,程序对收发使能端置位,使只允许发送串行数据。接着,程序依次检验CRC码、地址代码和功能代码,并依据MODBUS协议式进行二进制除法运算。为节省代码存储空间,选用二进制除法运算。
2MODBUS主站通信的实现FIX组态软件开发方式使用FIX7.0组态软件实现MODBUS主站通信的基本操作如下:10d驱动程序(MB1)。)的MB1DriverConfiguration驱动器配置,选择Channel通道,在Setup窗口设置端口、波特率、数据位、停止位、奇偶校验位、流量控制、报文传输模式、报文丢失重发次数、响应超时时间等通信参数。接着在MB1DriverConfiguration确定MODBUS从站名称和地址(DeviceName与PmaiyStation),把AddressingType和BitBase栏设为5一Digit和0~15,使用4XXXX形式表示保持寄存器地址,以0表示起始寄存器。然后在I/OBlock列表添加1条轮询记录,设置所查询的寄存器的起始地址、结束地址、数据类型等参数。最后保存驱动器配置各参数。
类型记录,在其AnalogInputBlock窗口设置基本参数:TagName设置记录名、ScanTimes设置轮询次数、HardwareSpecifications中的Device和I/OAddress设为MB1和“从站名称:寄存器起始地址”格式的参数。
0数据库轮询记录,实现MOBUS监控系统通信。
API函数开发方式使用IPC作为主站时,利用高级语言自编MOD-JS通信程序通常有采用MSComm或其他类似通信控件和调用API函数。方法一简单但不够灵活,设计在Vd6.0环境下调用API函数开发主站通信程序,其主要步骤如下:返回一个操作句柄,否则返回INVALIDHANDLEVALUE.设置与从站一致的串口通信参数。修改这些参数则使用设备控制块DCB结构体。
设置串口通信监视事件。程序在I/O中,将()函数设置事件屏蔽来监视指定通信资源上的这组事件。
进行超时设置,为通信中的中断、停止等不可预测事件的发生作安全防范措施。超时设置首先设定COMMTIMEOUTS结构中的5个变量,然后调用Set-对各种情况作出相应处理,最后退出通信子程序,完成1个循环查询工作周期。CommTimeouts()函数设定超时值。
计算CRC校验码有建立CRC校验码表和根据公(5)调用ReadFile(wrteFile()函数接收和发送报文数据,按照MODBUS协议的命令和要求实现与从站的查询一响应过程,实现数据监控系统通信。
3结束语MODBUS现场总线通信协议具备功能强、通信效率高、开放性好等优点,设计的智能压力变送器在某小型水电站监控系统的应用中取得良好效果,发挥了MODBUS的主要性能优点,对其它同类型智能仪器及系统的设计开发有一定的借鉴作用。
联系人:小费
QQ:2851759102
邮箱:2851759102@qq.com
传真:0592-5580710
电话:0592-2350124
手机:18050025437