基于Cortex-M3的无线电表采集器的研制
扫描二维码
随时随地手机看文章
1.引言
如今,随着信息化应用的发展,将无线通信技术、智能采集技术和自动控制技术综合应用于现代企业信息化管理,已成为一种趋势。
企业也迫切需要将各种有利于提高生产效率的信息因素收集汇总,用于分析与管理,而设备的消耗电能与运行时间正是十分重要的一种生产信息。本文所设计的电表采集器是生产采集系统的核心部件,通过电表上的通讯接口,实时地读取表中的数据,并通过无线网络将数据传送到服务器中。这使得企业能够及时准确地了解生产运行情况,在避免手工抄表中不及时和易出错情况的同时,也为合理利用资源及有效维护设备提供了丰富的数据支持。
2.采集系统的结构
近年来,电表的数字化程度越来越高,大多提供标准的通信总线结构,便于设计人员编程实现对电表数据的读取。在生产采集系统中,分散于厂区各个配电间的电表采集器与多个电表通过通讯接口相连,构成点对多点的主从网络,定时采集各表的电度值与电流值;在将整理后数据通过WIFI网络上传至WEB服务器的数据库中存储;终端客户可通过网络访问和查询服务器中的各个设备运行情况。
3.采集器的硬件设计
电表采集器以嵌入式Cortex-M3微控制器为核心,使用MAX485芯片与PZ162L型电表进行RS485总线形式通信,获取电表内部寄存器的数据;使用SD2405芯片获取系统时钟,以判断发送的时间;使用WIFI232模块连接WIFI网络,将组帧数据传送至服务器。电表采集器的硬件设计如图1所示。
3.1 主要部件的选择
电表采集器使用TI公司生产的32位Cortex-M3内核微控制器LM3S8962,存储方式为哈佛结构,其独立的指令总线和数据总线使得该芯片可以同时进行读写指令和数据的操作。
该芯片工作频率可达50MHz,有256K的FlashRAM,3个UART串口和一个I2C总线接口。通用I/O口功能设计为:MAX485接UART0,即Rx端接PA0口,Tx端接PA1口,控制口接PF0口;WIFI模块接UART1,即Rx端接PD2口,Tx端接PD3口,其电源控制口接PF1口;SD2405接I2C总线接口,即SDA端接PB2口,SCL端接PB3口;异常指示灯连PF2口;电度测试按键连PE0口,电流测试按键接PE1口。
WIFI模块采用第三方提供的串口与WIFI数据包的双向透明转发模块,型号为U S R -WIFI232-X,采集器将数据组帧以串行方式送至WIFI模块,WIFI模块则以网络终端形式再将数据转送至服务器。
系统时钟芯片SD2405是一种内置晶振、充电电池、具有标准IIC接口的实时时钟芯片,可通过5位地址寻址来读写片内32字节寄存器的数据(包括时间寄存器、报警寄存器、控制寄存器、通用SRAM寄存器)。
3.2 采集器与电表通信的实现
厂区使用的P Z 1 6 2 L型数字电表集成了RS485通信协议,因此设计增加了MAX485芯片来完成LM3S8962的RS485通信。微控制器采用UART0串口与MAX485传输数据,通信模式为8位数据位,1位停止位,无校验位,波特率为9600.而采集端的电表波特率也为9600,而表的A、B端与MAX485的A、B端相连,并共用地线。设计中使用通用接口PF0作为MAX485的控制口,置高电平时向总线发数据,置低电平时从总线接收数据。另外,由于每个采集器要采集多个电表,在对电表配置时,需保证使每个表的编号唯一,以免因目标冲突引起采集错误。
3.3 WIFI模块的供电控制
在电表采集器中,WIFI模块耗电量和发热量都较大,且实际每天仅需一次连接无线网络,故在硬件设计中加入了WIFI模块的供电控制电路。该电路使用ST111电压控制转换芯片,可将电路电压稳定在WIFI模块所需的3.3V上,而芯片的控制端则与通用接口PF1相连。
每天在需要传送数据前,微控制器将PF1口置1,启动ST111芯片使WIFI模块上电,而在传送数据结束后,将PF1口置清0,使WIFI模块断电。这种工作方式可以减少采集器的能耗与发热,延长无线模块的使用寿命。其供电控制电路如图2所示。
4.采集器的软件设计
电表采集器的整体设计方案是先检测电表的编号与个数,并在指定时间点发送控制字获取每个表的相应信息,再将得到的数据组成数据帧发送给服务器,其软件设计流程图如图3所示。
设计流程中,初始化部分是对LM3S8962的GPIO引脚进行初始化,如UART初始化,设定指定引脚的功能、通讯模式、波特率,还有I2C的初始化。此外还包括时钟的初始化,以及维护时的屏幕和按键的初始化。
鉴于工厂中各电表不一定能按顺序排列,需要采集器检测总线上实际的电表数量和编号,才能准确的发送查询命令,因此加入了电表信息检测部分。该设计部分使采集器的通用性增强,具备了一定的自动化功能。由于检测电表信息仅执行一次,如要新增电表,需重启采集器,就能检测到新添加的电表的数据了。
发送时间的判断主要通过读取SD2405的系统时间,与设定时间相比较,判定是否要为WIFI模块供电。未到发送时间,则每分钟检测一次各个电表的电流,当电表电流大于设定阈值时认为设备正在运行,对应时间计数器自增1,该计数器即为设备实际运行的分钟数;到达发送时间,则为WIFI模块上电,从总线获取各电表的电度值并组帧发送,将时间计数器值作为设备运行时间并组帧发送,再将计数器清0,并将WIFI模块断电。在实际设计中,发送信息设置为每天一次,因此采集的数据为某生产线的每日电度值和运行时间。
5.采集器的运行测试
根据厂方的实际要求,在厂区车间共安装了3个无线电表采集器,采集各生产线对应的18个电表。所设计的采集器能够自动检测总线上的电表的编号及个数,且读取电表的数据与电表显示值一致,发送给服务器的数据帧也完整无误,服务器后台的数据库能记录到各个电表的电能和机器运行时间。图4为服务器接收到数据后处理生成的设备生产运行界面。
6.结论
综上所述,本文设计的无线电表采集器能够准确检测电表当前的电能和电流等信息,并经过数据处理后,上传至服务器,可得到企业所需的生产电力成本和设备运行时间,以利于企业快捷有效的统计成本,准确把握机器运行状况,并能对生产做出合理调整。此外,采集器充分利用了厂区覆盖的WIFI网络传送数据,还具有布点灵活、节省成本的特点。