新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM9和GPRS的实时电力负控管理系统的设计

基于ARM9和GPRS的实时电力负控管理系统的设计

作者: 时间:2012-05-21 来源:网络 收藏

2.2 软件

2.2.1 负控管理终端的软件

在负控管理终端的整体流程是终端上电后,初始化串口,启动拨号,建立TCP连接成功后,主站向负控管理终端发送登陆帧,负控管理终端监听到登陆帧后(主站和负控管理终端建立通信前,主站要知道负控管理终端中模块的SIM卡号),发出确认帧,主站与负控管理终端就可以开始通信。负控管理终端接收到数据时,先判断是不是主站发送过来的控制命令,如果是,将该命令透明传输给电能表,电能表通过解析判断其要是采集数据命令,就将相应的电能数据返回给负控管理终端,负控管理终端收到数据后通过TCP发送给主站;如果不是控制命令,说明是电能表的返回数据,同样通过TCP协议发送给主站。在没有任何命令时,负控管理终端进入低功耗模式,间隔一定时间发送心跳包,以确定它与主站没有断开连接。每隔15 min,负控管理终端会定时采集电能数据,并将其存储在NANDFLASH中,等待主站随时调用。此外,当负控管理终端处于异常状态,或者发生一些特殊事件时,比如事故报警信息,负控管理终端通过遥信控制主动上报给主站,以做出适当处理。

负控管理终端的应用软件主要包括数据采集及处理程序和网络通信程序。数据采集及处理程序完成电能表数据采集,并进行处理。网络通信程序完成将处理后的数据传送到主站。另外,网络通信程序还要发送主站的控制指令。

该部分的软件编写采用自上而下的思路,以模块化设计为原则,采用C语言编程,通过建立数据采集与处理线程、网络通信线程、按键控制线程,使其相互协调地运行。

结合上面给出的设计思路,下面重点介绍如何利用多进程技术和管道技术来实现抄表和发送数据的功能。

在进行网络通信之前,先设定网络端口最大允许接入的客户端数、父进程和子进程设定的2个状态变量。

c.JPG

进入主函数,创建管道和子进程,分别启动父进程和子进程,开始数据采集和网络传输,function_farther()函数和function_child()函数分别为父进程和子进程的主函数。

d.JPG
e.JPG


tcp/ip相关文章:tcp/ip是什么


电能表相关文章:电能表原理


评论


相关推荐

技术专区

关闭