APP下载

基于C/S架构的嵌入式监控组态外设扩展机制研究与应用

2015-06-24熊俊吴丹李智勇

软件导刊 2015年6期
关键词:服务器端客户端

熊俊 吴丹 李智勇

摘要:针对现有组态软件外设接口单一、扩展困难等问题,结合嵌入式设备资源有限、实时性要求高等特点,提出一套基于客户端/服务器(Client/ Server,C/S)架构的嵌入组态软件外设扩展机制,对其客户端、服务器端和传输协议等关键技术进行重点介绍。通过使用即插即用的服务器端和客户端对外设变量和组态变量进行管理,实现组态与外设交互。通过将其应用于监控组态软件开发,证明该方法具有可行性,能有效解决传统方法中的资源浪费问题,灵活性好,稳定性高。

关键词:嵌入式组态软件;设备扩展;客户端;服务器端

DOIDOI:10.11907/rjdk.151498

中图分类号:TP301

文献标识码:A 文章编号:16727800(2015)006004704

作者简介作者简介:熊俊(1983-),男,江西萍乡人,硕士,三一智能控制设备有限公司嵌入式软件所所长、中级工程师,研究方向为组态软件开发、嵌入式软件开发、工程机械智能化;吴丹(1985-),女,湖南衡阳人,硕士,三一智能控制设备有限公司中级工程师,研究方向为显示组态、嵌入式软件技术;李智勇(1983-),男,湖南郴州人,三一智能控制设备有限公司中级工程师,研究方向为嵌入式软件技术。

0 引言

嵌入式组态软件(Embedded Configuration Software,ECS)因其友好的人机交互界面和强大的通信功能,已广泛应用于控制系统的实时监控中;嵌入式设备资源有限、实时性要求高,但数据处理能力较弱,计算能力差,难以实现复杂控制策略[1]。现有监控系统中,复杂计算和控制等功能主要由控制器、工控机等外设协助完成。现有组态软件外设接口单一,常采用直接固化外设驱动或通过标准数据访问机制(如OPC协议)实现组态软件[2]与外设通信。前者可扩展性不强;后者为兼顾大部分领域开发需求,功能较多,所耗资源大,不适合嵌入式显示设备低处理能力、低内存配置应用。因此,如何通过一种方便快捷的方式,实现嵌入式组态软件与外部设备之间的数据交互,是嵌入式组态软件开发领域急待解决的技术问题。

本文提出一套基于客户端/服务器架构的嵌入组态软件外设扩展机制,简称为C/S外设扩展(C/S peripheral expansion, CSPE)。引入客户端、服务器端思想分别对组态变量和外设变量进行管理[3],通过以太网等通信协议,实现组态软件与外设资源共享,以达到外部设备在组态软件中的真正的即插即用。通过其在某工程机械监控软件中的应用,证明此方法可行,有效解决了嵌入式组态软件外设扩展难,通用性差等问题。

1 体系结构与原理

首先介绍使用此协议的嵌入式组态软件(Embedded Configuration Software ,ECS)和对应的外部设备。

ECS由开发环境和运行环境两部分构成,开发环境主要包括组态的应用界面开发的图形编辑器和脚本编辑器;运行环境相对复杂,主要部分为实时数据库、外部设备驱动等[4]。用户在开发环境组态目标图形系统,加载外部设备变量描述文件、编辑控制脚本,编译成工程资源描述信息后下载至运行环境,运行环境加载工程资源描述信息后将其解析,根据目标图形系统实时显示工业现场信息。

外部设备是指与ECS运行设备(如显示屏)交换数据的设备,如控制器等。

CSPE主要包括CSPE服务器端、CSPE变量客户端及CSPE通讯协议三大模块,各部分功能相对独立又相互协作,形成统一整体。基本架构如图1所示。

CSPE服务端作为一个独立进程运行于外部设备(如控制器),主要完成两个方面工作:向上为CSPE客户端提供变量访问接口,向下完成变量数据获取。CSPE客户端包括变量信息获取和变量值获取两个模块,前者独立于ECS开发环境和运行环境,主要完成外设变量信息(设变量名、变量索引、变量值等)的获取和变量描述文件的生成。后者作为ECS运行环境中设备驱动的一部分,用于完成显示设备与外设的变量值交互。CSPE协议包括变量信息访问与变量值访问协议,分别与客户端的变量信息获取和变量值获取对应。

CSPE客户端与服务器端数据交互过程如下:①CSPE客户端向CSPE服务器端发出变量获取请求;②CSPE服务器端通过预留的变量操作接口遍历内部变量管理组,并通过CSPE通讯协议将变量属性信息(变量名、变量类型等)输出给CSPE客户端;③客户端生成组态开发环境需要的变量描述文件,对需此设备进行通信的组态工程,用户在组态开发环境中导入INI文件后,即可在项目中使用对应的外设变量,从而实现外设真正即插即用。组态软件开发环境编译生成工程资源描述信息后通过以太网下载至运行环境,运行环境加载工程资源描述信息后将其解析,CSPE客户端根据需求,向位于外设的CSPE服务器端发送读写变量请求,CSPE服务器收到请求后,完成外设变量相应读写操作。

2 CSPE关键技术与实现

2.1 服务端

CSPE服务端负责维护外设对外开放的变量信息,其通过数据存储区与外设主程序共享外设内部变量数据。收到CSPE客户端读变量信息请求后,CSPE服务端通过外设提供的变量访问接口获取外设的变量信息,并通过通讯接口将相关内容传送给CSPE客户端。CSPE服务端采用链表方式管理内部变量,结构如图2所示。

变量索引和变量名称为CSPE客户端提供访问变量接口;变量类型、变量子类型及变量地址指定该变量条目指向的变量信息,其可指定变量结构与变量所占内存大小;变量地址指定该变量条目对应变量在CSPE服务器中的内存起始位置。此设计的优点在于:①单个节点插入、删除时不需要更改其它节点的内存地址,提高处理速度;②链表可分散的空间地址可提高内存利用率,这对内存有限的HMI设备来说尤为重要;③链表大小不固定,可扩展性好,在外设变量个数无法预估的情况下非常适用;④初始化时根据偏移地址顺序排列变量节点,可提高变量查找速度。

2.2 客户端

为提高设备开发重用性,减少编程步骤,CSPE将客户端分为变量信息获取和变量值获取两个模块。为方便说明,本文将前者称为CSPE信息获取端,后者称为CSPE变量值获取端。对于不同的组态工程,在外设一定的情况下,信息获取端只需工作一次即可,生成的变量描述文件可供不同的组态工程使用,可大大提高开发效率。

2.2.1 信息获取端

变量信息获取端可看作是组态开发环境的辅助工具,主要完成变量信息获取和变量描述文件生成两项任务。向下端通过以太网与CSPE服务器端进行通信,获取CSPE的各种信息,向上为组态开发环境提供变量配置文件。

2.2.2 变量值获取端

变量值获取端可理解为I/0设备驱动,运行于ECS运行环境,是运行环境实时数据库与外设连接的桥梁,以动态链接库形式供ECS运行环境调用,从而减少与ECS其它模块的耦合性,屏蔽不同外设间的差异,易于独立扩展[5],变量获取端工作过程如图3所示。

外部设备变量缓存区存储设备变量信息,如变量在设备中的起始地址,偏移量等信息。实时数据库内存区存放变量在组态中对应的信息。变量链表用于描述外设缓存区与实时数据库的映射关系。组态工程读变量时,ECS运行环境的设备通信模块从外设读取变量后更新内存区对应变量值。变量值获取端通过数据源地址,查找变量链表,查找到源地址对应的变量节点;根据该节点中的实时数据库偏移地址找到其在实时数据库中的位置变量,进行修改。组态工程写变量时,设备驱动根据实时数据库偏移地址找到对应的变量链表节点,根据节点的数据源地址和其它变量信息组建数据包,通过通信协议发送变量数据,完成外设变量修改。

2.2.3 传输协议设计

客户端和服务器端通过可通过串口、CAN和以太网等进行通信。以太网传送速度快,在显示组态与外设通信中较常用,本文以此为例进行说明。Ethernet II和IEEE802.3生局域网中最常见的以太网,本文选用更适合工程机械的大数据量传输的Ethernet II协议作为传输协议。

客户端向服务器端发出请求后,服务器通过不同请求代码响应客户端请求(变量信息获取或者变量值获取),返回客户端所需信息。客户端与服务端变量获取过程如图4所示。

Step1:客户端向服务器端发送以太网连接请求。

Step2:服务器返回创建连接结果,结果为TRUE,继续进行后续步骤,否则结束;

Step3:客户端向服务器发送获取变量信息(或变量值)请求;

Step4:服务器端根据接口函数获取变量信息(或变量值);

Step5:客户端解析变量信息。

3 实验结果与分析

为验证本文所提CSPE的有效性,将其应用于三一自主开发的嵌入式组态软件,并在此平台上进行强夯机应用程序开发。组态开发环境运行于WIN7操作系统的PC机,组态程序运行环境运行于三一工业显示屏SYLD, SYLD操作系统为linux,CPU频率为200MHZ,内存64Mb,FLASH 频率为64Mb,支持100Mbps以太网传输。外设为三一运动控制器SYMC,SYMC应用程序开发环境为KW,支持100Mbps以太网传输。

变量信息获取端设置好待获取设备的IP和程序端口后,即可连接获取变量信息,如图5所示。

获取的变量信息保存为设备变量描述文件后,即可导入组态软件开发环境中使用,开发效果如图6所示。

将编译好的项目通过以太网下载至装有ECS运行环境的SYLD后,连接好显示屏与控制器,确保两者以太网通信完整,控制器的相关数据即可在显示屏上显示,也可通过对显示屏上的操作修改控制器变量,效果如图7所示。

4 结语

本文提出的CSPE通信机制,无需中间转换设备,结构简单,通用性好。用户在开发完控制器等外设工程后,可直接通过本文提出的CSPE通信机制获取控制器变量并将其存储为显示组态可用的格式,无需对控制器变量进行组建。在无控制器等外设情况下,根据其工程文件也可解析出所有变量信息,方便快捷,节约了前期开发成本。对于不同的外部设备,无需关心通信协议与外设结构,只需重写变量值获取端接口函数,即可完成组态程序与外设数据交互,大大缩短项目开发周期,有效解决了组态软件扩展难的问题。

参考文献:

[1]贺欢. 基于 WinCE 嵌入式组态软件设计[D]. 武汉:武汉理工大学, 2013.

[2]胡开明,傅志坚,葛远香.基于OPC与组态技术的自动控制实验教学仿真平台开发[J]. 实验技术与管理,2013,30(6):5153.

[3]王杰,高昆仑,王万召.基于OPC通信技术的火电厂DCS后台控制[J].电力自动化设备,2013(10):142147.

[4]金敏,吴丹,夏利锋,盛四华,等.车载设备嵌入式监控组态软件的研究与应用[J].电子测量与仪器学报.2012.10051010.

[5]陈云云,马捷中,蒋泽军.基于插件的组态软件设计与实现[J].计算机测量与控制,2013(2):436438.

责任编辑(责任编辑:陈福时)

英文摘要Abstract:Aiming at the lack of communication interface and the peripheral expanding difficult of the traditional embedded configuration software (ECS),Based on the characteristics of limited resources and high realtime requirements on vehicular embedded equipment,this paper proposes a design scheme of device extension of ECS basing on client/server (C/S) model.The key technologies including client, server and communication protocol.By using plug in client and server to manage the variable of equipment and ECS,and realize the interaction of equipment and ECS. This model has been tested on the development of monitoring software,which has been proved to be completelyfeasible,good versatility and extensibility,and can greatly reduce the waste of resources.

英文关键词Key Words: Embedded Configuration Software;Peripheral Expansion;Client;Server

猜你喜欢

服务器端客户端
Linux环境下基于Socket的数据传输软件设计
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
大枢纽 云平台 客户端——中央人民广播电台的探索之路
浅析异步通信层的架构在ASP.NET 程序中的应用
一种基于Java的IM即时通讯软件的设计与实现
客户端空间数据缓存策略
网页防篡改中分布式文件同步复制系统