引言
近年来,基于公共网络的通信手段在工业远程监控中得到了广泛应用。这些远程通信手段包括公共电话网、Internet网络及无线网络等。无线通信网络不需要传输线,可以在覆盖范围内的任何地点进行通信,显然,这些优点是有线网络难以比拟的。
GSM(全球移动通信系统)网络是目前国内覆盖范围最广、应用最普遍的无线通信网络。因此,在构架远程传输系统时,完全可以利用现有的GSM无线网络,而没有必要重新建设基站。
目前利用SMS(短消息业务)进行远程监控的应用很多,例如电力远程抄表系统、远程水文监控系统、直放站远程监控系统、远程环境监控系统、远程配电监测系统以及其他远程信息查询系统。SMS适合传送数据流量较少的场合,而UPS(不间断电源)的状态信息和故障信息数据量较少,用SMS传送非常合适。
本文介绍的远程监控系统主要用于监控UPS,由于UPS出现故障的情况比较少,若每台UPS都配备值班人员,显然浪费人力、物力、财力;若放之不管,一旦出现问题,得不到及时处理,就可能造成严重的后果。利用现有的无线网络,只要在监控中心配备一名值班人员,就可以对所有的UPS进行监控,不但能够在任何时刻查询UPS的状态信息,还能够及时得到UPS的故障信息,节省了人力、物力、财力。
1 系统组成原理和系统实现的功能
1.1 系统组成原理
该系统由监控中心、值班人员和远程监控点组成。监控中心由PC机和GSM通信模块组成,监控中心只需要1个。远程监控点由监控对象和监控模块组成,UPS是监控对象,本系统测试使用超过10个的监控对象。监控模块由GSM通信模块和单片机组成,每个监控对象都需要一个监控模块。系统原理图见图1。
1.2 系统实现的功能
监控中心主要有4个功能:
a ) 对监控模块进行远程设置,如设置监控模块返回数据到监控中心的SIM卡号码;
b) 发送命令远程查询UPS的各种信息,并接收返回的数据;
c) 自动接收远程监控点返回的报警信息;
d) 存储UPS的状态信息和报警信息。
值班人员的作用是:在UPS发生故障时,监控模块除了将数据发送到监控中心,还会把数据信息发送给值班人员,值班人员可以及时赶赴现场,对UPS进行维修,把损失降到最小。
远程监控点的2个功能是:
a) 接收监控中心发送的查询命令并查询UPS,然后把UPS返回的数据发送给监控中心;
b) 空闲的时间不断查询UPS的工作状态,以判断是否发生故障,如果发生故障,则把故障信息发送给监控中心和值班人员。
1.3 GSM通信模块
目前,许多GSM通信设备厂商都生产GSM通信模块,如Wavecom公司的WM02系列和两门子公司的TC35系列,这些模块的功能、用法基本都相同。本系统在前期开发时使用Wavecom公司的Wismo2c模块,后期投入使用时使用西门子公司的TC35I模块。这2种模块都是符合E-GSM900/GSM1800(或E-GSM900/GSM1900)标准的第2代无线双频通信模块,并且符合GSM 07.07与07.05的AT控制命令。
2.2 监控中心的软件设计
2.2.1 数据传输的帧结构
数据传输需要遵循一定的协议,也就是要规定通信的帧结构。本系统使用的数据帧结构有以下两类:
a) 监控中心发送数据给远程监控点的数据帧结构,如图3所示。其中:命令类型是用来区分发送给远程监控点的命令是设置命令还是查询命令,如果是设置命令,开始字和校验字就不是必须的。
b) 远程监控点发送数据给监控中心和值班人员的数据帧结构,如图4所示。其中:返回的数据类型有3种:第1种是返回查询的状态信息;第2种是返回设置命令的确认信息,没有开始字和校验字;第3种是返回报警信息,如果是报警信息,则把数据发送给监控中心的同时,还将发送给值班人员。
2.2.2 监控中心的程序设计
在本系统中,监控中心采用VB语言进行编程,PC机与GSM通信模块之间通过AT指令进行通信。图5是监控中心程序流程图。
主程序通过按钮选择分成初始化设置子程序、发送查询命令子程序、接收数据子程序和修改用户信息子程序4个部分。
初始化设置子程序首先通过串口发送AT指令对监控中心的GSM通信模块初始化,其次对远程监控点初始化。初始化远程监控点命令发送后,程序会自动转向接收数据子程序模块,等待接收确认信息,如果确认信息是错误的,则可重新发送初始化命令。对远程监控点的设置只要一次,不必每次运行软件都设置。
发送查询命令子程序根据UPS的类型分成查询单进单出UPS子程序、查询三进单出UPS子程序和查询三进三出UPS子程序3部分。主要功能是发送查询命令给远程监控点,以获取需要的状态信息。同样,发送命令后,转向接收数据子程序,等待数据返回。
接收数据子程序主要用于接收远程监控点返回的数据。UPS可能随时发生故障,因此,在不进行其他操作的情况下,接收数据子程序总是运行的,这样可及时得到远程监控点返回的报警信息。接收数据子程序会把接收到的有用信息存进数据库,作为历史记录。
修改用户信息子程序主要用来设置打开此软件的用户名和密码,防止不法人员登录进行破坏性操作。
由于每台UPS都配备一张SIM卡,因此本系统通过SIM卡来识别UPS。在此系统中,事先把SIM卡号码存进数据库,通过循环的方式可以同时对多台UPS进行设置和发送查询命令,给管理带来极大的方便。本系统采用单字节读取串口缓冲区,如果短消息到来而系统又在发送数据,则先把短消息编号存进数组,等空闲之时再根据短消息编号自动去读取短消息,从而实现群发群收的功能。由于SIM卡存储的短消息数量有限,因此数据一旦存进数据库,程序就自动发送命令把SIM卡上的短消息删除。
3 远程监控点的系统设计
3.1 远程监控点的硬件设计
远程监控点主要由GSM通信模块、单片机和UPS组成。单片机主要有两个功能:一是控制GSM通信模块收发短消息;二是查询UPS的工作状态。由于单片机传输的是TTL电平,而GSM通信模块和UPS传输的是RS-232电平,因此在单片机与GSM通信模块之间、单片机与UPS之间用芯片MAX232进行电平转换。硬件原理图如图6所示。
从图6可以看出,这个系统中要用到两个串口,而AT89S52只有1个串口,如何解决呢?在本系统中用P3.2,P3.3来模拟串口的功能,从而解决问题。
由于单片机窄闲时就要查询UPS是否有故障,因此必须存储用来查询UPS工作状态的命令。不同类型的UPS有不同的命令,若把这些命令存储在程序存储器中,不同型号的UPS就要用不同的监控模块,这样就降低了监控模块的通用性。在本系统中用了一块AT24C04型E2PROM,只要监控中心把查询UPS工作状态的命令发过来,远程监控点就把这些命令存入AT24C04。这样,单片机就可从AT24C04中取出这些命令去查询UPS,也就是说,监控模块可以用于不同型号的UPS。至于监控模块用于监控何种UPS,只要通过监控中心设置就行,显然这种方案提高了通用性。
单片机与AT24C04通过I2C通信。AT24C04除了存放查询UPS工作状态的命令外,还用来存储监控中心和值班人员的SIM卡号码。
3.2 远程监控点的软件设计
远程监控点主要是单片机编程,采用汇编语言。汇编语言具有速度快、效率高等优点,可以提高系统的响应速度。本系统编程较复杂。
程序运行后,首先对GSM通信模块进行初始化,接着判断AT24C04中是否已经存储了监控中心的电话号码和用来查询UPS工作状态的命令。如果已经存储了,则把这些信息读取出来,如果还没有这些信息,则不作操作,等待监控中心发送命令设置。
监控中心任何时刻都可能给远程监控点发送命令,显然用查询的办法来判断短消息是否到来很浪费资源,因此,本系统采用中断的方式,即有短消息到来时就发生中断,并设置标志位。因此,在初始化后进入主循环,首先通过标志位来判断是否有新的短消息到来。如果有新的短消息,则通过渎取短消息头来判断短消息类型;如果足设置类短消息,则做相应的设置,并发送确认信息给监控中心,然后返回主程序;如果是监控中心发来的查询命令,则查询UPS状态,并把UPS返回的数据发送给监控中心,然后返叫主程序。
大部分时间,监控中心不会发送命令过来,这时就不需要处理新的短消息,而转去查询UPS的工作状态。如果UPS没有发生故障,则返回的数据是正常的,这时单片机不做任何操作,返回主程序。如果UPS发生故障,单片机就控制GSM通信模块,把故障信息发送给值班人员和监控中心,这样值班人员就可以及时到现场对UPS进行维修,把损失降到最低,而监控中心把所有的故障信息和状态信息都存人数据库。
4 结束语
现有的GSM网络技术成熟、运行稳定、覆盖面广。对于数据流量不大、监控点分散的数据采集系统,利用GSM网络的SMS来传送数据,具有永远在线、不需拨号、价格便宜等优势,可以大大地节省人力、物力和财力。本系统只要通过适当的修改就可以用于其他远程监控系统,具有一定的推广价值。