基于MSP430单片机的智能仪表设计

2015-01-27 03:13刘忠超殷华文郭抒颖
自动化与仪表 2015年2期
关键词:智能仪表字节继电器

刘忠超,殷华文,郭抒颖

(1.南阳理工学院 电子与电气工程学院,南阳 473004;2.北京林业大学 工学院,北京 100083)

仪表是工业控制系统中的核心组成部分,而传统的控制仪表精度不高、功能单一、通信联网功能不强,鉴于此,开发了基于MSP430单片机的智能仪表,该仪表具备检测K型热电偶、Pt100热电阻温度信号、4~20 mA/1~5 V模拟信号、继电器信号、高速脉冲信号等多种信号输入功能,同时还具有继电器控制输出、变送输出、上位机通讯、组网等多种功能。

1 智能仪表硬件设计

智能仪表硬件设计的核心是控制器的选型和硬件电路的设计,该智能仪表主控模块选用当前工业应用中使用最多的超低功耗MSP430单片机作为控制器[1];双向多路开关CD4051作为多路开关选择器;可编程仪用放大器AD526作为仪用放大器;并行输入模数转换器TLC7528CN作为A/D转换器;同时基于MAXIM公司的电平转换芯片MAX232和MAX485,设计了光耦隔离型RS-232和RS-485的通讯接口。设计的智能仪表系统结构如图1所示。

图1 智能仪表结构图Fig.1 Diagram of intelligent instrument structure

1)数字量输入检测电路

为了能让仪表具有简易PLC的部分功能,设计了8路具有光耦隔离的数字量输入电路。数字量输入电路如图2所示。为减少电气干扰,提高可靠性,使用PC817线性光电耦合器使之前端与负载完全隔离,图2中R62和R69组成分压电路,保护光耦不被损坏,R71和C38组成RC低通滤波器,滤除干扰。工作原理是当外接的按钮1、2端子接通时,PC817光耦导通,连接到主控器MSP430相应的引脚检测到高电平,当外接按钮断开时,PC817光耦不会导通,单片机的检测管脚为低电平信号,即表示外部开关量断开,从而可进一步的在程序中处理[2]。

图2 数字量输入电路Fig.2 Digital input circuit

2)采样放大电路

智能仪表需有检测多种输入信号的能力,而每种输入信号因信号性质不一样,因此有不同的检测电路,在使用时通过多路切换开关CD4051来实现相应信号的检测,其检测电路如图3所示。为节约成本,该智能仪表A/D转换方式采用分时复用技术,图4是采用CD4051模拟多路开关的电路图[3]。图中CD4051的管脚A、B、C的控制端来自单片机发送的控制信号,通过外接不同输入信号发送相对应的地址来选通相应的通道进入A/D中进行处理。

图3 信号检测输入电路Fig.3 Detection signal input circuit

图4 输入端多路选择电路Fig.4 Input multiplexer circuit

由于不同的检测信号其需要进行放大的倍数也不一样,所以设计了增益为1、10、16和50的4种程控放大器,放大器增益倍数通过软件控制MSP430的单片机管脚来控制CD4051的A、B、C管脚,从而可以选通相对应的增益通道。程控放大电路如图5所示。

3)4 ~20 mA 电流输出电路设计

智能仪表4~20 mA电流输出是其最基本的功能,大多数仪表直接使用集成芯片来产生4~20 mA电流,如仪表中经常使用的XTR101芯片,但是专用集成芯片价格较昂贵,为节约成本,该仪表采用PWM调制方式输出电流信号[3],其原理如图6所示。为防止干扰,该电路中数字量和模拟量之间用TP521光电耦合器进行隔离,并使用二极管IN4148进行单向保护。电路中单片机产生的PWM信号通过光耦TP521输入,并且由R42和C19无源低通滤波器来滤除干扰。为了能够产生恒定电流输出,使用运算放大器OP07和9013三极管按照电流负反馈连接,运算放大器输出端通过控制三极管产生恒定的电流信号,单片机通过调节PWM信号的占空比来产生4~20 mA相对应的电流输出。

图5 程控放大电路Fig.5 Programmable amplifying circuit

图6 4~20 mA电流输出电路Fig.6 Circuit of 4~20 mA current output

4)继电器输出电路设计

如图7所示为继电器输出电路,电阻R14为三极管Q2基极的限流电阻,同样采用PC817光电耦合器来防止信号之间的干扰。单片机产生的通断控制信号通过光耦PC817来控制三极管Q2的导通,Q2工作在开关模式下,当Q2导通时使继电器线圈吸合,常开触点闭合。二极管D4为TVS瞬态抑制单极性二极管,它的作用是泄流,通过D4放掉继电器断开时上线圈中所带的电荷,防止反向击穿,其工作电压为12 VDC,并钳制线圈电压不超过额定电压[4]。

图7 继电器输出电路Fig.7 Relay output circuit

2 智能仪表软件设计

1)软件系统介绍

设计的智能仪表在运行时要有条不紊地完成初始化、通信、显示、检测、控制、输出和报警等相关任务,在设计的主程序中,单片机通过循环监控来捕捉相应的中断服务子程序,比如按键程序、温度补偿程序、非线性校正程序、通讯处理等。软件系统功能模块划分如图8所示。

2)监控程序

智能仪表软件系统中的各个功能模块采用在主程序中轮询检测等待的方式去执行,即每到一定时间执行相应函数。智能仪表上电工作时首先完成初始化,并打开中断轮询检测标志位。程序中功能软件的监控标志设置为定时信号和动作信号组成,比如检测到时间到并且A/D转换标识到后执行相应的A/D转换,各个标志位没有到来时主程序不断循环检测等待,直到有相应的功能程序标识的到来,监控程序流程图如图9所示。

图8 软件系统功能模块Fig.8 Software system function module

图9 监控程序流程图Fig.9 Monitor program flow chart

3)Modbus通信协议

Modbus协议是世界上第一个真正实际用于工业现场的总线协议,是由Modicon在1979年发明的,其可以采用ASCII和RTU 2种模式进行传输。该智能仪表采用Modbus的ASCII协议与上位机进行通讯,在消息中的每个8位字节都作为2个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1 s而不产生错误,通讯稳定[5]。通讯协议中ASCII信息帧采用的格式如表1所示。

表1 Modbus协议的ASCII信息帧格式Tab.1 Modbus protocol of ASCII information frame format

起始位为1字节值为3AH的ASCII码;设备地址为 1字节 2个 ASCII码,范围 0~255(即 0~0x0ffH);标志为 1字节 2个 ASCII码,即 bit0~bit7,当 bit0=0为读,bit0=1为写,bit1=0时不打包。bit3bit2=00时数据类型为字节。bit3bit2=01时数据类型为字。bit3bit2=1x时数据类型为浮点数。数据地址为2字节4个ASCII码即0x0000~0xffff;数据字节数为1字节2个ASCII码,其值为实际读写的数据的字节数。数据就是实际传送的数据转换为ASCII码,个数为字节数乘2。LRC校验比较简单,检测了消息域中除了开始和结束的标识外的内容,它仅仅是把每一个需要传输的数据按字节叠加后取反加1即可;结束标识位以回车换行结束,其为十六进制的0x0D和0x0A[6]。

4)专家PID算法

智能仪表具有控制器功能,其在控制算法上采用专家PID,专家PID控制的实质是基于受控对象和控制规律的各种知识,无需知道被控对象的精确模型,利用专家经验来设计PID参数。专家PID控制是一种直接型专家控制器。

令e(k)为离散化后的当前采样时刻的误差值,e(k-1)、e(k-2)分别表示前 1 个采样时刻和前 2 个采样时刻误差,M1、M2是设定的误差界限,M1>M2>0;则有

根据当前采样时刻的误差及其变化率,该智能仪表设计的专家PID控制算法按5种情况设计:

①当∣e(k)∣>M1时,表明此时误差的绝对值已经很大,无论误差变化率趋势如何,都应该考虑控制器按定值输出,已达到能迅速调整误差,使误差以最快的速度减小,同时避免产生超调。此时控制器相当于实施开环控制。

②当 e(k)Δe(k)>0 或 Δe(k)=0 时,表明此刻误差在朝误差绝对值增大的方向变化,或者此时误差为某一常数。

如果|e(k)|<M2,说明此刻虽然误差朝绝对值增大的方向变化,但是误差绝对值并不是很大,可以考虑施加一般的控制作用,改变误差变化趋势减小误差,控制器输出为

③当 e(k)Δe(k)<0,Δe(k)Δe(k-1)>0,或者Δe(k)=0时说明此时误差的绝对值往减小的方向变化,或者已经达到了平衡的状态,应该使控制器的输出保持不变。

④当 e(k)Δe(k)<0,Δe(k)Δe(k-1)<0,表明误差处于极值状态,如果此时可以考虑施加较强的控制作用,即:

⑤当 e(k)≤ε(精度)时,表明此时误差绝对值很小,此时加入积分环节,进一步减小稳态误差。

上述算法中 em(k)是误差 e的第 k个极值,u(k)是控制器第k次输出;u(k-1)是控制器第k-1次输出;k1为增益放大倍数,k1>1;k2是抑制系数,0<k2<1;k是控制周期序号;ε是任意小的正实数。

3 智能仪表实现及测试

设计的智能仪表功能强大,可接多路信号。该智能仪表性能的测试主要通过工业中常用的温度控制对象来测试。温度检测使用Pt100热电阻温度传感器,内部自编专家PID算法,通过继电器控制加热,系统原理图如图10所示。

通过编写Modbus通信协议,在上位PC机的组态王软件中实现温度监控结果如图11所示。

图10 温度控制原理图Fig.10 Temperature control principle diagram

图11 锅炉温度控制曲线图Fig.11 Boiler temperature control curve

在图11的温度测控中,当设定温度值由45℃阶跃到55℃时,根据调试,把专家PID算法的相关参数分别设置为误差上限M1根据控制要求分别设置为 3.0、1.0、0.8;误差下限 M2=0.2,增益放大系数k1=1.5,抑制系数k2=0.4,ε=0.1。经过专家PID控制调试最终使其温度能够稳定在55℃,稳态误差为±0.18%,而且可以达到没有超调。

4 结语

以MSP430单片机为核心设计的多功能智能仪表可分为信号采集处理、程序算法控制、上位机软件监控3部分。该智能仪表功耗低,工作稳定可靠,集多信号检测、多形式输出、显示、联网、存储、控制等功能于一体,经实际测试各项功能均能正常实现,智能化程度高,具有很好的市场应用前景。

[1]葛士斌,张志,郑恩明,等.基于MSP430单片机的无线测温装置设计与实现[J].仪表技术与传感器,2014(5):18-22.

[2]何涛焘,文华北,田陆.基于STM32的智能钢水测温定氧仪表[J].仪表技术与传感器,2014(1):44-46.

[3]夏云生,吴胜继,徐桥松.工业智能仪表标准电流信号输出电路设计[J].电子测试,2011(9):74-76.

[4]彭大恒,李元宝,张涛,等.串行通信在多路温度智能仪表中的应用[J].煤矿机械,2013,34(8):216-218.

[5]李娜.基于MODBUS协议的智能仪表的设计[D].北京:北京邮电大学,2008.

[6]刘忠超,翟天嵩.基于AVR的智能仪表的嵌入式以太网接口设计[J].中国农机化,2012(1):169-172.

猜你喜欢
智能仪表字节继电器
No.8 字节跳动将推出独立出口电商APP
智能仪表的抗干扰和故障诊断研究
继电器控制及诊断在电动汽车动力电池包的应用
便携式继电器测试台的研制和应用
No.10 “字节跳动手机”要来了?
计算机联锁复示继电器电路改进方案探讨
计算机联锁点灯灭灯继电器控制方案探讨
智能仪表软件开发自动化技术分析
智能仪表技术及工业自动化应用发展分析
轻量级分组密码Midori64的积分攻击