- 1 -
中国科技论文在线
基于 Android 的工业控制监控软件设计#
彭鑫1,谭彰2,黄文君1,王兴华2**
基金项目:国家自然科学基金资助项目(61273100)
作者简介:彭鑫,(1987-),男,硕士研究生,主要研究方向:Android\iOS 开发。
通信联系人:黄文君,(1972-),男,教授,主要研究方向:自动控制技术、实时分布式控制系统、工业以
太网技术。
(1. 浙江大学智能系统与控制研究所,工业控制技术国家重点实验室,杭州 310000;
2. 浙江中控技术股份有限公司,杭州 310000) 5
摘要:提出了一个基于 Android 平台的工业控制移动监控软件的解决和设计方案,采用面向
对象和层次化设计,利用 2D 图形开发、无线网络通讯等技术开发了一个具有良好实时性的
流程图数据在线显示、报警推送等功能的监控软件。在工厂网络中架设移动终端服务器而不
需要改变原有网络拓扑结构即能实现本方案。采用 Android NDK 开发、多级页表地址映射
技术和异步网络传输的方式提升位号点实时数据的传输速度,保证数据的实时性和准确性。10
实际应用测试表明该软件具有良好的实时性与实用性,为现场人员带来了便捷。
关键词:计算机应用;Android 系统;移动监控;控制系统;工业流程图;报警推送
中图分类号:TP319
Design of Control System Mobile Monitoring Software 15
Based on Android
Peng Xin1, Tan Zhang2, Huang Wenjun1, Wang Xinghua2
(1. State Key Laboratory of Industrial Control Technology, Institute of Cyber-Systems and
Control, Zhejiang University, HangZhou 310000;
2. Supcon Technology Co.,Ltd., HangZhou 310000) 20
Abstract: This paper puts forward a solution and design which is an Android based industrial
control mobile monitoring software. By using the objected-oriented and hierarchical design ,2D
graphic development and wireless LAN communication technology it develops a monitoring
software with real time flowchart and alarm pushing functions. This design can be realized by
erecting mobile terminal severs in the factory network without changing the original network 25
topology. Based on the Android NDK development, multi-level page table address mapping
technology and asynchronous network transmission, the software enhance the tags' real-time data
transmission speed, which ensure the accuracy and real-time of the data. The practical application
of the tests show that the software has a good real-time performance and practicality, bringing
convenience for field operators. 30
Keywords: computer application; Android OS; mobile monitor; control system; flow chart; alarm
push
0 引言
传统控制系统监控上位机软件一般运行于 PC 机端,现场监控人员需要固定在中心监控35
室中进行查看操作,给工作人员带来了较大的不便。同时在传统工业现场中设备维护与调试
一般需要用对讲机实现现场操作人员与中心控制室的通讯和信息交换,这提高了设备维护巡
检的难度。而在某些重要的工业现场如燃气、油站对设备的防火等级都有严格的规定,传统
的 PC 机与笔记本不能被带入现场,这样进一步提高了改进维护方式的难度。
基于上述缺点,监控软件移动化逐渐成为工业控制系统未来发展的方向。以 iOS 和40
Android 为代表的智能移动终端迅速发展,为工业控制系统监控软件的革新提供了技术保障。
目前国外已有 SPEL 公司推出了基于 iOS 系统开发的相关产品[1],并在市场中得到极大
的反响。但是,在移动智能终端系统占有率最大的 Android 系统平台上的相关产品却没有出
- 2 -
中国科技论文在线
现,在国内外一直处于空白状态。另一方面 SPEL 公司出品的相关软件仅支持国外部分工业
控制系统,其对国产控制系统几乎不支持,这使得设计一款基于 Android 设备的用于国产控45
制系统的监控软件非常有必要。
本文介绍了一种基于 Android 设备开发用于国产 WebField GCS-3 工业控制系统[2]的监
控软件。它能够获取 RTU(Remote Terminal Unit,远程测控终端)控制器的实时数据,动
态更新流程图画面,接收报警推送。它填补了国内外 Android 设备相关产品的空白,有效解
决了传统上位机软件的诸多不便,具有广泛的应用市场和前景。 50
1 Android 架构
Android 系统是新一代移动通信平台,它拥有更加先进的硬件和软件架构[3],是 Google
公司于 2007 年底发布的开源手机操作系统,如今已经发布至 版本系统[5],它提供极其丰
富的应用层 API,支持多种无线通信方式,支持强大的硬件配置。
Android 系统主要是基于 Linux 内核、面向移动终端设备的开源操作系统,其架构主要55
分为 4 个层次,即应用层、应用框架层、组件库和虚拟机、Linux 内核层[4]。处于最底层的
Linux 内核层为系统提供诸如进程管理、内存管理、设备驱动等基本功能;组件库和虚拟机
包含重要的 C 库文件和 JAVA 运行时环境,提供对应用框架层的支持;而应用框架层则是
开发应用程序所关心的部分,Android 应用程序都是基于应用框架层所提供的基本框架和
API 进行开发。 60
针对大多数 Android 应用开发,Google 发布了 Android SDK(software developing kits)
[4]。其中包括了若干开发工具集和一整套基于 JAVA 开发的 API。其后 Google 公司又针对
C/C++开发者提供了 NDK(native developing kits)[5]。NDK 开发的程序仍需通过 JNI(JAVA
Native Interface)[6]方式与 JAVA 层代码进行交互才能构成一个完整的应用程序。NDK 开发
能在一定程度上加快程序运行的速度,但是会增加程序开发的复杂度[5]。 65
2 系统总体结构设计
系统总体结构设计充分考虑与传统工厂控制监控系统之间的兼容性,做到尽量降低系统
升级的成本。在不改变传统控制监控系统网络拓扑结构的前提下,通过在工厂局域网络中加
入移动终端服务器和铺设 Wifi 路由器或 VPN 服务器来构成整体通讯链路。
70
图 1 系统总体结构图
Fig. 1 Total structure figure of the system
系统总体结构如图 1 所示。图中左侧部分显示了传统控制监控系统的结构[7]:工厂中各
- 3 -
中国科技论文在线
个控制点的数据经由变送器和 IO 模块传输至 RTU 控制器,RTU 控制器则通过以太网的方75
式连接到工厂局域网中,中心服务器负责为 PC 端监控站等提供报表、趋势、报警等服务功
能。
系统总体结构图右侧显示了移动控制监控系统的核心结构。移动终端服务器通过工厂局
域网与中心服务器相连,从而获取报警等功能的相关数据。在移动终端服务器获取到报警信
息之后通过一个短信猫将报警信息通过 SMS 短信息推送到 Android 设备,发起报警推送。80
由于移动互联服务器与中心服务器实际为两个独立服务器,即使移动互联服务器受到了攻击
或自身崩溃,也同样不影响原有的控制监控系统的运作,这样提高了整体系统的可靠性和安
全性。
为了节约流量,在有条件的工厂进行 Wifi 网络覆盖,这样 Android 客户端可以直接通
过本地局域网访问。而在某些恶劣的工厂环境中,则采用 3G 转 VPN 的方式接入到工厂网85
络中进行访问[8]。Android 设备直接与 RTU 控制器通讯连接,以获取实时流程图数据。
3 移动监控系统软件开发
流程图软件的设计
(1)流程图软件结构
流程图软件结构层次见图 2 所示。位于最顶层的是绘图逻辑层,主要用来实现各种的图90
元的静态绘制、动态效果、动作响应等逻辑。该层次采用面向对象的流程图设计方法进行开
发[9],主要抽象出 Shape、Animation、Action 三个基类。不同形状的图元、动画效果、动作
响应分别继承自这三个基类。
绘图逻辑层向下一层分别是基础绘图层、XML 解析层、实时位号数据获取等。基础绘
图层中是 Android 提供的绘图方法,Canvas 类提供一个画布的抽象,包含多种绘制不同形状95
的方法。Paint 则提供一个画笔的抽象,能够设置画笔颜色等属性[10]。XML 解析层提供对流
程图 XML 文件和位号点信息解析功能。流程图 XML 文件和位号点信息 XML 文件分别记
录了流程图中各个图元对象的信息和位号点的相关信息。文件解析使用 XPP(XML Pull
Parser)方法,相对于传统的 DOM 和 SAX 解析方法,它具有占用内存少、更高效、更轻量
的优势[11]。对在资源受限以及为了提高性能的情况下,是一种理想的选择。 100
图 2 流程图软件层次结构图
Fig. 2 Hierarchical chart of the flowchart software
- 4 -
中国科技论文在线
为简化流程图显示部分的开发工作,绘图逻辑层与 xml 解析等均采用 AndroidSDK 开发
的方式,有效提高了开发效率。网络通讯和数据订阅部分采用了 Android NDK 的开发方式,105
极大提高了位号实时数据通讯的速度和实时性的要求。NDK 开发与 SDK 开发之间通过 JNI
调用的方式进行交互。
(2)流程图实时数据获取
实时数据订阅接口为上层流程图显示部分提供了一个实时数据传输的通道,接口层内部
维护不同位号点的唯一 ID 识别码来方便的对数据进行存取。位号点数据的格式和 ID 识别110
码有如下对应关系:
TAG=Path+Index+Offset+Len ID
位号点由 Path、Index、Offset、Len 唯一确定,其中 Path 表示 RTU 控制器在局域网中
的唯一地址,用于唯一标识控制器设备。Index 表示位号点数据在 RTU 控制器存储器的分区
索引号,Offset 表示数据在 RTU 控制器存储器分区中的偏移地址,Len 表示数据的长度,单115
位是字节。Index、Offset、Len 共同决定位号点数据在 RTU 控制器中的地址和长度。
图 3 数据映射示意图
Fig. 3 Tags’ data mapping
120
为使位号点数据的存取速度加快,保证流程图中数据得到实时更新,引入了一种数据存
储映射机制。软件为每个位号点开启一段内存,用于映射到对应 RTU 控制器中的位号数据
存储区,这样上层流程图显示部分就只需从映射区获取数据,整个数据传输过程变的透明化。
数据映射过程如图 3 所示。
Index
22 20
PN1 PN2
14
PO
8 0
索引
(2bit)
一级页表 二级页表 页内偏移
(6bit) (8bit) (9bit)
null
null
125
图 4 多级页表映射机制示意图
Fig. 4 Multilevel page table mapping
位号数据是由工作人员进行组态,同一张流程图中的数据能够紧凑的分布于 RTU 控制
器,数据拥有良好的空间局部性,因此数据的映射机制可以考虑采用多级页表映射方式[12]。130
这样既能够有效降低页表的存储空间,同时也能简化数据的存取,加快寻址速度。考虑到数
据传输过程需要尽量减少网络传输的负荷量,降低发包次数,同时兼顾到 UDP 传输的特性,
软件应尽量将包大小控制在 512 字节左右,因此软件设定多级页表映射的页内偏移大小定为
512 字节。由此我们可以得到图 4 所示的数据多级页表映射机制。
- 5 -
中国科技论文在线
图 4 中假设 Index 分区索引为 2Bit,即有 4 个分区。Offset 长度为 21Bit,即每个分区可135
寻址 8MB 空间,对单设备的总寻址空间为 32MB。如果索引和页表所指向的地址没有被订
阅,则将其置为空,以减少地址空间的占用。
网络通讯管理过程见图 5所示,通讯采用异步发送接收而非阻塞等待的模式来保证每个
位号点数据都能得到公平快速的发送。通过定义发送和接收队列管理器,避免直接对数据区
进行操作,还能够保证数据多线程访问的同步性。当接收队列管理器收到应答网络数据帧(图140
中步骤 5)后会通知发送管理器回收对应正处于等待状态的发送数据(图中步骤 6),并将
数据写入数据映射区中(图中步骤 8)。
图 5 网络通讯管理过程
Fig. 5 Network communication management 145
模块定义三个不同的子线程:发送数据帧子线程定时循环发送队列缓冲中的数据并更新
其时间戳标志,包括重发次数和发送时间;接收子线程一直处于监听状态,收到网络数据帧
后将数据通过接收管理器推入接收队列缓冲;清理子线程负责将超时或重发次数超过最大限
制的垃圾数据清理出队列。 150
报警和登录模块的设计
(1)报警推送
报警推送的整体流程见图 6 所示。报警推送采用短信方式来发起报警连接请求,服务器
端通过一个短信猫来进行报警提示短信的发送,在发生报警时移动终端服务器会给注册过的
客户端发送一条短信通知。客户端程序通过扩展系统提供的 BroadcastReceiver 类来得到短信155
接收通知,在程序中过滤特殊号码的短信及内容。确认收到短信后客户端对报警服务器发起
一次连接,请求获取实时报警的信息,报警的数据采用 JSON[13]的方式来组织。JSON 是一
种常用的轻量级数据交换格式,常被用于网络数据交换。
- 6 -
中国科技论文在线
图 6 报警推送流程 160
Fig. 6 The step of alarm push
软 件 将 接 收 到 的 报 警 数 据 存 储 于 SQLite 的 数 据 库 并 通 过
_SERVICE 在 系 统 通 知 栏 中 产 生 一 个 通 知 信 息 , 通 过
_SERVICE 产 生 震 动 提 示 并 通 过 _ 165
NOTIFICATION 产生一个声音提示。产生的历史报警信息都可以在报警功能模块中进行查
看。报警信息以分组列表的形式展示。用户可以在报警界面中手动确认报警,这时 Android
客户端将会给服务器发起一次报警确认连接的请求。
(2)登录认证
本软件需接入至工厂网络,因此软件安全变得极其重要。为了满足安全性要求,软件增170
加了一个安全认证过程,过程见图 7 所示。在初始运行软件时,会有一个登录认证过程,软
件将用户输入的用户名和密码以及本机的手机号码和设备码通过密文方式发送至服务器,服
务器端维护一个所有用户信息的数据库,认证用户名、密码、手机号、设备号均一一对应后
才能进行后续操作。同时客户端待机超过 15 分钟后,软件需要重新进行登录认证才能进行
操作。 175
图 7 登录认证过程
Fig. 7 Login authentication process
4 结论 180
本文介绍了基于 Android 平台的控制系统移动监控软件的设计和开发。相对于传统的控
- 7 -
中国科技论文在线
制系统监控软件,本软件创新性的将平台放在了移动终端领域。它迎合了计算移动化的趋势
[3],具有更多便捷性和实用性的特点。
经测试,本系统很好的完成了流程图实时数据展示、报警推送信息等功能,具体如图 8
所示。其中以 Moto defy 手机(Android )系统为测试设备,测试结果如下: 185
1、流程图中 2000 个节点位号能够在 1s 中之内动态刷新数据。达到实时性要求。
2、一幅 大小的 XML 流程图文件能够在 6s 之内进行解析并显示。
3、手机能够及时收到报警推送,并成功报警。
4、对于不在服务器注册的手机和用户无法使用本软件。
190
a) b) c)
图 8 软件截图。a)实时流程图;b)主界面;c)登录界面
Fig. 8 software screenshot. a)flowchart ; b)main screen; c)login screen
致谢 195
感谢浙江中控技术公司的谭彰先生和王兴华先生,是你们的大力支持和指导才有此项目
的快速推进。感谢浙江大学黄文君老师,没有您提供这么有意思的方向和平台,我也不可能
进行此项目的开发。
[参考文献] (References) 200
[1] Product website[OL].[2012-9-5].
[2] 浙江中控.Webfield GCS 系列控制系统[OL]. [2012-9-6].
[3] Sayed . Pro Android2[M]. California:apress,2010.
[4] 耿东久,索岳,陈渝. 基于 Android 手机的远程访问和控制系统[J].计算机应用,2011,31(2):559-561,571.
[5] developer website[OL].[2012-9-1].. 205
[6] Native Interface Specification [OL]. [2012-9-1].
[7] 郭晓瑛.国内外长输管道 SCADA 系统标准现状[J].油气储运,2011,30( 2):156-159.
[8] 史翔.基于 3G 的 SCADA 系统虚拟专用监控网络[J]. 计算机工程与设计 ,2011,32(5):1558-1562.
[9] 贾宏宇.工控软件流程图设计[J].计算机工程与应用,1999,35(5):60-61,101 210
[10] 叶炳发,孟小华.Android 图形系统的分析与移植[J]. 电信科学,2010,2: 65-68
[11] 冯进.XML 解析技术研究[J].计算机工程与科学,2009,31(2):60-61,101
[12] Randal ,David 'Hallaron. Computer Systems:A Programmer's Perspective,Second Edition[M].
New jersey: Pearson Education,Inc.,2011
[13] JSON[OL]. [2012-9-1]. 215