- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于Modbus-RTU协议的交流电压峰值表设计
0 前 言
交流电压峰值是指交流电压的最大值(正峰值)或最小值(负峰值),是工业生产过程中一个非常重要的参数。为保证用电设备的安全,对供电电压的峰值进行检测具有重要意义。测量峰值的方法主要有示波器法、间接计算法、专用峰值表法。利用示波器虽然可直观地显示电压的波形和峰值,但在成本和便携性上示波器均不能作为现场监视设备;间接计算法只适用于标准正弦波,实用性不大;专用峰值表大都存在体积较大,携带不便,且与电脑或控制设备相连不便的缺点。针对以上缺点,采用MSP430系列单片机、MAX1270模/数转换器,并利用Modbus-RTU 协议,成功地开发出了低成本、便携、智能的峰值表设备。
1 测量原理
由于供电电网的波动及电网的电压波形是一种非标准正弦波,其峰值不能通过平均值或有效值间接计算。该系统采用对非标准正弦波在一个周期内多次采样,并通过冒泡法比较采样值,得到电压的最大值或最小值作为其正峰值和负峰值。显然只要采样密度适当,完全可以得到真实的电压峰值。我国交流电的频率为50 Hz,设计中采样频率设置为10 kHz,即每个交流波形周期中采样200次,足以正确地反映出电压的变化情况,从而确定电压的峰值。
2 硬件设计
设计中,以MSP430F449单片机、MAX1270模/数转换器为主要器件。前端A/D输入采用电阻分压方式将交流电进行降压;采用RS 485芯片作为通信接口芯片,硬件框图如图1所示。
2.1 A/D输入调理保护电路设计
以220 V交流电为例,其理论峰值电压为311 V,但考虑到电网波动、正弦波失真等,电压峰值很可能超过311 V,这时可根据工作经验和实测情况,选定一个电压值作为电压可能达到的最大值,假定为500 V。如果MAX1270的输入范围设置为±5 V,则分压电阻的分压比应设置为100:1。分压后的电压经过运放缓冲后作为A/D芯片的输入,为保护后级A/D转换芯片,设置两个稳压二极管组成限幅电路。输入调理电路如图2所示。
2.2 A/D转换电路
A/D转换电路采用MAX1270芯片,MAX1270是8通道、多量程双极性输入、串行输出、逐次逼近型12位A/D转换器,最高采样率为110 kS/s。在单+5 V电源供电下,可通过编程实现±5 V,±1O V,5 V,10 V量程。其中,双极性输入十分适合作为交流电压测量。
MAX1270转换电路如图2所示,由MSP430F449的I/O口线控制MAX1270的串行接口。由于MAX1270在5 V电压供电下,输出4.5 V以上高电平,而MSP430F449的I/O口电平为3.3 V,因此必须附加一个接口芯片,以实现5~3.3 V的电平转换,这里采用MAX3001双向电平转换芯片。A/D转换电路如图3所示。
2.3 RS 485接口电路
该设计采用RS 485总线,可通过电缆或光纤将信号有效地远传上千米,配合Modbus-RTU协议,可方便地与符合Modbus-RTU协议的控制设备连接。设计中采用MAX3485芯片作为RS 485接口芯片,电路如图4所示。
3 软件设计
设计中,主要的软件模块包括A/D转换,Modbus-RTU协议和串口编程。对于串口编程不再赘述,主要对MAX1270和Modbus-RTU协议进行说明。
3.1 MAX1270编程
MAX1270的控制字格式如表1所示,最高START为起始位,保持为“1”;SEL2~SEL0为输入通道选择位;RNG,BIP分别为量程和极性选择位;PD1和PD0为掉电和时钟模式选择位。各位的具体意义请参考MAX1270数据手册。该设计中,MAX1270设置为:量程10 V,双极性输入(即实现土5 V测量)、外部时钟25 CLK/s正常操作模式,使用通道CH0作为输入通道,控制字的格式为10000101。
3.2 Modbus-RTU协议
Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其他设备之间可以通信。Modbus -RTU是Modbus协议的一种传输模式,在该模式下,消息中的每个8 b包含2个4 b的16进制字符。Mod-bus协议的核心程序是CRC校验程序的编写。该系统中采用CRC-16校验法,具体程序实现如下:
3.3 其他重要子程序
程序中采用定时器中断触发每次采样,保证采集周期的精度,同时每次采集时都以过零点作为采集数据的开始。这两点都有利于提高系统精度。
4 测试结果
通过施加标准正弦波、非标准正弦波、三角波测试,可使该表的峰值测量精度高于1级,完全满足工业现场设备供电检测的需求。该表与工控组态软件MCGS配合,工作良好。此外,该表除了测量峰值以外,还扩展了电压平均值、有效值的计算,设计成一个具有多功能的智能仪表。
5 结 语
该设计以MSP430F449单片机、MAX1270为核心,编写了Modbus-RTU协议,同时利用RS 485接口可方便地进行数据远传或与符合Modbus_RTU协议的设备相连,该表的体积小,功耗低,可使用于电池或蓄电池供电,非常适合作为编携式设备,随身携带,也可作为功能模块直接安装在工业现场设备对电网供电电压峰值、有效值等参数进行监测。