您的位置:控制工程论坛网论坛 » 工业无线 » 基于GPRS路灯无线监控系统的实现

leo1314

leo1314   |   当前状态:在线

总积分:104  2024年可用积分:0

注册时间: 2012-08-19

最后登录时间: 2012-09-10

空间 发短消息加为好友

基于GPRS路灯无线监控系统的实现

leo1314  发表于 2012/8/31 17:06:49      1737 查看 1 回复  [上一主题]  [下一主题]

手机阅读

 

城市路灯是和人民生活密切相关的公共设施。它在一定程度上反映了城市的繁荣程度及发展水平。在过去很长一段时间内,路灯的更新多是局限于其照明部分。随着城市发展速度的加快,城市路灯覆盖范围扩大,社会对亮灯率、亮灯质量、亮灯效果的要求也大大高于以往。依靠时钟、光电的低压侧开关控制方式,依靠人工巡检的工作方式已远远不能满足城市的发展需求。随着公共网络的通讯手段在远程监控中得到初步的应用,特别是GPRS技术的不断成熟,将其与因特网结合起来,越来越多的城市采用基于GPRS的路灯无线监控系统。
  一、GPRS简介
  GPRS(general
packet radio
service)是通用分组无线业务的简称,是一种基于GSM系统的无线分组交换技术,提供端到端的、广域的无线IP连接,能提供比现有GSM网9.6kbit/s更高的数据传输速率。
  GPRS具有“实时在线”、“按量计费”、“快捷登录”、“高速传输”、“自如切换”等优点,使其特别适用于间断的、突发性的或频繁的、少量的数据传输,也适用于偶尔的大数据量传输,这一特点正好适合传输路灯监控系统的间断、突发、频繁的数据。
  二、基于GPRS路灯监控系统

  (一)远程测控终端
  远程测控终端RTU采用模块化结构,具有独立监控的功能,在监控中心没有参加工作的情况下,能进行自动控制和数据采集记录工作,由电压/电流互感器、混合信号处理器和GPRS模块组成。
  (二)GPRS无线数据传输
  本系统是通过GPRS无线DDN传输业务来实现远程测控终端和监控中心的无线数据传输的。GPRS无线DDN组网迅速灵活,建设周期短、成本低,网络覆盖范围广,特别适用于突发性、高频率、点多分散、小流量的数据传输。
  GPRS无线DDN系统由数据中心、数据传输通道(GPRS网络)、用户数据终端单元(GPRS
DTU)构成。DTU可直接与用户设备通过RS-232或RS-485接口连接,数据中心的组网略微复杂一些,根据数据中心接入方式不同可分为:专线接入,GPRS接入和Internet接入。
  采用专线接入需要向电信申请专线且需要一台支持GRE隧道功能的路由器,投入成本比较高;采用GPRS接入需向电信申请APN服务,传输带宽受到限制;而采用Internet接入成本较低,且不存在跨区域的问题。综合各方面的因素,本系统采用Internet固定IP接入。
  (三)监控中心
  采用固定IP地址的Internet接入要求系统稳定、永久地连接到Internet。在本系统中,监控中心具有一台连接Internet的服务器,该服务器具有固定公网IP地址。考虑到服务器的稳定运行问题,通常不允许在服务器上安装其他应用软件,将数据中心安装在工业控制计算机上,工业控制计算机与服务器之间采用局域网进行通信。由于工业控制计算机没有公网IP地址,必须在服务器上进行必要的设置,利用Windows
2000 Server或者winRoute Pro等软件提供的网络地址转换(NAT)功能,将端口映射到工业控制计算机上,以便GPRS
DTU的数据经过Internet传输以后能够传输到装有数据中心的工业控制计算机上。
  三、GPRS通信系统流程(见图2)
  四、GPRS通信系统实现的关键技术
  (一)平台调用服务
  本系统所采用的H7112C
GPRS模块是深圳宏电技术开发公司H7000无线DDN通信系统推出的系列模块之一,该公司专门为该通信系统系列模块的使用提供了函数开发包,主要是DSC(Data
Service Center)软件。DSC是用于接收DTU数据和向DTU发送数据的服务软件,和DTU之间通讯使用开发包动态链接库gprs_dll.dll,
该文件包括和DTU通讯所需要的全部API函数,包括服务的启动、数据发送、数据接收、关闭服务等,DSC实际上是架构在gprs_dll.dll所提供的功能之上的数据处理软件。

  由于系统软件的开发平台.NET开发环境是一个托管环境,而gprs_dll.dll是一个非托管的动态链接库,因此,在托管环境中调用非托管的.dll函数是在.NET开发环境下实现H7112C
GPRS模块成功通信的关键。
  .NET提供了平台调用(P/Invoke)服务,利用平台调用服务,托管代码可以调用在动态链接库(DLL)(如Win32
API
中的DLL)中实现的非托管函数。“平台调用”依赖于元数据在运行时查找导出函数并封装其参数。使用平台调用服务,必须引用System.Runtime.InteropServices
命名空间,它提供各种各样支持COM interop及平台调用服务的成员

  在C#.NET中调用gprs_dll.dll的托管代码如下:
  using
System.Runtime.InteropServices;
  public class
GprsDll
  {
  //启动服务函数
  [DllImport("gprs_dll.dll")]
  public static
extern int start_gprs_server(IntPtr Hwnd,uint wMsg ,
  int 
ServerPort,[In,Out] StringBuilder  mess
);
  }
  (二)消息响应
  因为windows是基于消息驱动的,底层服务接收到远端DTU的数据后,会向启动服务时作为参数传递给启动函数的窗口发送一个消息,因此,通信程序框架中应该有一个响应消息的函数。
  本系统的数据收发中心窗口应用程序应使用WM为前缀的消息—WM_USER,
其消息值的划分如表1所示:
表1 消息值的范围
  

 


     
根据函数开发包中提供的数据,选用标志符为WM_USER+0x67(0x0467)消息值作为数据收发中心窗口可以响应的消息值。采用C#中提供的Form.WndProc()方法进行侦听消息,部分代码如下:
  [PermissionSet(SecurityAction.Demand,
Name="FullTrust")]
  //注:此处属性设置目的是为程序集设置请求权限
  protected override void 
WndProc(ref Message m)
  {
  int read_result;
    
GPRS_DATA_RECORDrecdPtr=newGPRS_DATA_RECORD();//初始化数据包接口结构
  //侦听消息
  switch(m.Msg)
  {
     
case
MYMESS://事先设定的常量值,为0x0467
  //*GPRS模块上传的消息,读取该数据并处理*//
  break;
  …
  default:
  base.WndProc(ref
m);
//返回消息给原来的系统处理函数
  break;
  }
  五、结语
  采用GPRS通信技术,不仅很好地实现了路灯监控系统的“三遥”控制,而且使监控的实时性和可靠性得到了大大提高。随着通信技术的发展以及通信技术不断与网络技术相结合,必将带来路灯监控系统的又一大飞跃。

1楼 0 0 回复
  • dzsczl

    dzsczl   |   当前状态:在线

    总积分:262  2024年可用积分:0

    注册时间: 2012-08-16

    最后登录时间: 2013-10-29

    空间 发短消息加为好友

    dzsczl   发表于 2012/9/5 9:39:14

    多谢分享,谢谢
    2楼 回复本楼

    引用 dzsczl 2012/9/5 9:39:14 发表于2楼的内容

总共 , 当前 /