Computer Science and Application
Vol.4 No.10(2014), Article ID:14245,8 pages
DOI:10.12677/CSA.2014.410031

Design and Realization of Parameter Configuration for PLC Equipments’ Remote Monitoring Based on SQL Server

Feiyan Huang1, Yanlan Yang1,2, Hongjun Chen1, Hua Ye1,2

1School of Automation, Southeast University, Nanjing

2Key Laboratory of Measurement and Control of CSE of Ministry of Education, Southeast University, Nanjing

Email: zhineng@seu.edu.cn

Copyright © 2014 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

Received: Sep. 1st, 2014; revised: Oct. 2nd, 2014; accepted: Oct. 10th, 2014

ABSTRACT

Remote monitoring system will receive data with different protocol from underlying equipment. In order to enhance the Remote Monitoring Website’s adaptation to the software of data analysis, the parameter configuration method and the method of data calculation are introduced in this paper based on SQL Server 2005. This paper presents the encapsulation of the database operation methods of ADO.NET to design the SQLHelp class with the help of VS2010 Asp.net integral programming environment according to the modular design concept. In addition, SQL statement and procedures are designed to simplify the operation of the database. Caching mechanism of data is designed to deal with the large amount of monitoring data which speed up the response of the browser. Through the test, parameter of different equipment can be configured and the data can be monitored conveniently and efficiently.

Keywords:PLC Equipment, SQL Server, Parameter Configuration, Remote Monitoring, Website

基于SQL Server的PLC远程监控参数
配置方法及其实现

黄飞燕1,仰燕兰1,2,陈洪俊1,叶  桦1,2

1东南大学自动化学院,南京

2东南大学复杂工程系统测量与控制教育部重点实验室,南京

Email: zhineng@seu.edu.cn

收稿日期:2014年9月1日;修回日期:2014年10月2日;录用日期:2014年10月10日

摘  要

远程监控系统会有接收来自底层设备不同协议数据的要求。为了提高远程监控网站数据解析程序的适应性,本文基于SQL Server 2005数据库管理系统设计了监控参数动态配置方法,及参数解析、计算方法。根据模块化思想,基于VS2010 Asp.net开发平台,设计SQLHelp类,实现了对ADO.NET数据库操作方法的封装;采用SQL语句和存储过程设计的数据库接口简化了数据库操作。针对监控数据量大的情况,设计了网页数据缓存机制,加快了浏览器的响应速度。通过测试,网站能方便、高效地对底层不同设备的PLC数据进行参数配置,并能正确监控数据。

关键词

PLC设备,SQL Server,参数配置,远程监控,网站

1. 引言

随着科学技术的发展,生产过程日益集成化、自动化,传统的工业监控方式已经不能满足现代工业生产的需求,设备远程监控系统已成为自动化设备行业中不可缺少的部分。在实际应用中,厂家的PLC往往用于控制不同设备,需要远程传输的数据数量不一样,同时在底层PLC存储区内数据的类型、单位、物理意义也不尽相同。为了实现网站解析程序的适应性,本文提出将数据和数据对应的参数信息分离的设计思路,一种被控设备配备一张参数配置表,保存同类设备的参数、对应存储区地址、数据类型、单位、物理意义等基本信息。PLC远程监控网站处理和显示的参数都是根据数据库中的配置表在线计算并动态生成,从而实现各类设备的兼容,增强了适应性。

2. 参数动态配置问题分析

以欧姆龙公司CP1H型号的PLC为应用背景,PLC控制不同的设备,系统需要监控的设备数据也有所区别。为实现统一管理,约定设备的参数存储于PLC的DM数据区D20000~D20499地址范围,每个地址存储一个字的数据,高位在前,低位在后。不同类型的设备上传参数数量、类型及其上传次序均存在差异;且在数据区的D20000~D20499地址范围中,通常只有部分地址上的数据代表着有效参数,剩余地址均为预留。

为此,首先在数据库中设定一张按字存储的原始数据表,远端PLC将设备的参数存入DM数据区后,再将数据上传至原始数据表。根据原始数据表结构,网站系统只能获得目标地址上用字表示的原始数值,该地址具体代表的参数含义、实际值均无法得知。

此时待解决的主要问题有以下两个:

1) 目标地址的辨识

解决思路:建立目标地址与其代表参数一一对应关系,根据地址值就可以得知参数名称。

2) 目标参数的解析

解决思路:建立目标参数与其解析配置信息的一一对应关系,按照参数对应的解析配置信息,就可以计算目标参数的解析值。

因此,引入PLC-设备参数配置表,即一种设备配备一张参数配置表,该表管理PLC监控的同类设备原始数据与实际值的对应关系。每添加一类设备,需要增加一张参数配置表。

PLC远程监控网站的参数动态配置方法如图1所示。系统获取原始数据之后,根据参数配置表动态生成具有实际物理意义的参数值。网站通过数据库访问接口获取参数值之,将其显示在数据监控页面。另外网站也可对参数配置表进行管理。

3. 参数配置表设计及应用

3.1. 参数配置表设计

根据上节分析,参数配置表需解决目标地址辨识和参数解析两部分问题。

1) 目标地址的辨识

参数配置表添加“参数ID”作为标识列,用于建立内部关联。PLC每地址区可存储一个字的数据,但由于部分实际数据较大,需占两个字,表中应添加“所占字数”,用于区分单字数据和双字数据两种类型。“起始地址”、“参数名称”和“单位”三个数据列则建立目标地址与参数的对应关系。

2) 目标参数的解析

数据的“参数类型”分为整型、浮点型和布尔型3种,分别各占字节数为1、2、1;“比例系数”和“保留位数”用于参数的计算解析过程;“最大、最小值”限制存入参数数值的范围;此外,设置“可见权限”用于区分对外开放级别。

配置表的命名方式为:“Config_设备标识”,表结构见表1

3.2. 参数解析与计算

根据已设计的参数配置表和原始数据,不同设备的参数解析与计算步骤如下:首先从原始数据表中获取目标PLC的编号、数据地址以及原始数据值,根据PLC编号对PLC信息表和PLC型号表联合查询,获取该PLC监控的设备标识,得到配置表名;再从配置表中获取参数的配置信息,计算并生成具有实际物理意义的参数值。整个参数解析计算过程如图2所示。

以编号为10021的PLC在D20001地址上存储的参数为例,从信息表和型号表中查询到该PLC监控的设备标识为1,则其配置信息表名为:Config_1。其中,D20001地址上的参数配置明细如表2所示:

在原始数据实时表中获取10021号PLC中D20001地址上的数值为:12,根据表2提供的信息,可

Figure 1. The diagram of parameter configuration

图1. 参数配置框图

Table 1. Structure of parameter configuration table

表1. 参数配置表结构

Figure 2. The process of parameter calculation

图2. 参数计算过程

Table 2. Configuration information of D20001in Config_1

表2. Config_1表中地址为D20001的配置信息

查得其数据类型为double类型,比例系数为0.1,保留的小数位数为2,解析计算得到的最终的结果为:参数名称“流量”;参数值“1.20L/s”。

4. 数据库接口设计

数据库中参数配置表的应用主要包括参数的管理和读写(配置表的写由远端PLC和服务器软件实现,与本文无关,这里不作介绍)。参数配置管理提供了参数的添加、修改、删除和清空配置表的功能。这些功能与参数的读取均需要与数据库进行交互。对此,本文首先设计了数据库访问类,以简化数据库访问程序。此外,设计了参数管理接口和数据读取接口,对数据库进行相应的操作。

4.1. 数据库访问类设计

采用SQL Server 2005为数据库服务器,具有性能稳定、管理方便、功能强大、安全性强等优点[1] 。网站与数据库主要通过ADO.Net进行数据存取,但ADO.Net访问数据库的过程比较繁琐,代码冗长。为了将逻辑处理部分与数据库通讯分离,软件采用模块化设计思想,设计了数据库通讯接口SQLHelp类,针对数据库的访问需求,编写对应的成员函数,将ADO.Net的定义、创建、连接、打开、读取、关闭等一系列数据库操作封装成简单的SQLHelp函数,简化业务逻辑层对数据库的操作。

封装后的数据库通讯类SQLHelp在进行数据库访问时只需进行创建对象和执行操作两步,即可完成数据库操作,并将返回内容保存在DataTable中。封装后的数据库操作示例如下:

SQLHelp helper = new SQLHelp ("Select * From Real_Data Order by PLC_ID");

DataTabledt = helper.ExecuteQuery();

对于不同的数据库访问请求,封装了不同的执行函数,包括:执行查询函数:ExecuteQuery();执行增删改SQL语句或存储过程函数ExecuteNonQuery();获取首个查询结果函数ExecuteScalar()[2] 。

4.2. 参数管理接口

4.2.1. SQL语句

删除和清空配置操作在数据库中删除满足条件的记录,采用简单SQL语句就能实现。例如删除中配置表Config_1中地址为D20000的记录时,可采用如下SQL语句,返回值为所删除记录的行数,当返回值大于0时,认为删除成功。

SQLHelp helper = new SQLHelp ("Delete From Config_1 Where Data_Addr = 20000");

int row = helper. ExecuteNonQuery ();

清空配置表的操作类似。

4.2.2. 存储过程

添加和修改操作的参数包含参数配置表中所有数据项,且要判断是否添加或修改成功、是否有数据冲突项、引起添加或修改失败的原因等。若在网站后台程序中判断,需要与数据库进行其他的交互,造成更多的访问,增加网络负担。对此在数据库中编写存储过程,网站后台程序仅需传入参数,并根据返回的参数判断,其余操作都在对应的存储过程中完成。由于存储过程只在创建时进行编译,之后每次执行存储过程都不需再重新编译,而直接调用SQL语句每执行一次就编译一次,因此存储过程的调用也提高了数据库执行速度[3] 。

在数据库中编写了insert_config和update_config存储过程,用于添加和修改参数操作。

4.3. 参数读取接口

参数读取接口操作也比较简单,根据用户选择的条件,向数据库询问对应的配置表和原始数据,采用SQL语句就能实现。

5. 参数配置网页设计

5.1. 网站基本结构

PLC设备远程监控网站采用B/S三层基本架构,系统分为信息管理子系统和监控子系统两大部分。信息管理子系统主要是对设备、用户以及客户的基本信息进行管理;监控子系统分为地图模式、数据监控、参数配置三大模块,对设备的数据信息、运行状态进行监控、维护。用户通过界面表示层下发用户请求,逻辑业务层中的各个模块接收到请求,通过数据库接口访问数据库,获取所需信息,再将信息处理后向上返回至用户界面。网站的结构如图3所示。

Figure 3. Structure diagram of the website

图3. 网站结构示意图

参数配置页面提供用户对参数信息进行配置,而数据监控页面则将数据库原始数据解析后显示在页面上,并设置定时刷新和实时刷新两中数据更新方式,实现设备运行状态的监控。下面重点介绍这两个网页。

5.2. 参数配置页面设计

5.2.1. 前台样式设计

不同设备的参数信息以表形式存储在数据库中,参数信息显示采用GridView控件。GridView控件内置分页、排序、更新等功能,并可以自定义外观样式[4] 。网站采用DropDownList控件实现设备下拉选择。使用标签页,进行单双字数据类型的选择。使用Button控件实现添加、修改、删除和清空参数配置表操作。参数添加和修改窗口采用Table形式弹出,管理人员可配置参数信息。

5.2.2. 前台脚本函数

当用户在参数配置页面操作时,部分功能需要在浏览器端完成,前台采用用javascript函数实现。参数配置页面的脚本函数主要实现初始化页面、更改外观、验证用户输入、前后台关联等功能。

5.2.3. 后台逻辑处理

ASP.Net开发设计网页时,将html代码和业务逻辑代码分开。业务逻辑部分在后台通过.cs文件的C#实现[5] 。后台主要根据前台的用户操作命令,调用数据库访问接口,获取相应数据,并对数据进行解析和封装处理,最后将数据或指令绑定于对应控件,交付于前台显示。

5.3. 数据监控页面设计

数据监控网页主要显示设备的运行参数,根据参数配置表将原始数据生成具有实际意义的参数值,通过GridView控件显示在界面上,每隔10 s刷新一次数据,也可进行手动刷新。

每台设备数据最多为500个字,当设备量较大时,页面初始化时加载全部设备的数据过于庞大,导致网页加载时间过长。但若只加载当前选择页面的数据,用户查看其他设备时需要再次从数据库中获取,并在线计算数据,显示在界面上,使得操作耗费的时间也较长,也加重数据库的频繁操作。由于数据监控的实时性要求不高,因此设计以下缓存机制。

1) GridView控件单行显示的数据有限,一次无法显示500个字,另外当行数较多时,采用分页显示。因此在初次加载时,设定默认设备,只从数据库中请求该类设备的参数配置表以及第一页数据,加快页面加载速度。

2) 当页面加载完成后,向数据库请求所有参数配置表以及全部原始数据,计算后存储在DataTable中。当用户请求显示其他数据时,直接将对应的DataTable绑定在GridView上即可显示,加快响应速度。

3) 当页面刷新时(定时刷新或者手动刷新),重复步骤1)和2)。

上述缓存机制实现方式为:在后台.cs文件的网页加载函数Page_Load中实现步骤1)的初步加载;步骤2)通过重载页面加载完成的消息响应函数OnLoadComplete[6] ,在OnLoadComplete函数中完成所有数据的计算和缓存。

6. 网站运行测试

页面开发完成后,将Visual Studio中建立的Web工程发布到IIS服务器上,完成网站的部署。建立的测试环境如图4所示,两台不同设备分别安装欧姆龙公司CP1H型号的PLC作为控制器,PLC外部连接发射器,定时将PLC存储区内的数据上传并保存至数据库的原始数据表。录入两种设备的参数配置表后,多个操作员可同时登录网站页面,进行参数配置管理和数据监控。

6.1. 参数配置测试

参数配置页面能正确显示两种设备的参数配置信息。选择某个参数进行修改或添加,提交填写信息后,提示更新成功,在重新加载的页面上可以看到更新的参数信息。进入数据库查看对应参数配置表的数据,也可看到该参数信息已在数据库中更新。参数配置添加或更新参数数据时页面效果如图5所示。

6.2. 数据监控测试

进入数据监控页面选中设备,可以显示数据更新时间、部分参数。当定时刷新或手动刷新时,数据库中最新的设备数据显示在界面上。经长时间测试,不同设备根据参数配置解析出的数据始终正确,网

Figure 4. Testing environment

图4. 测试环境

Figure 5. Parameterconfiguration page

图5. 参数配置页面

Figure 6. Data monitoring page

图6. 数据监控页面

站运行正常且稳定。数据监控网页效果如图6所示。

7. 结束语

本文对基于SQL Server的PLC远程监控系统的参数配置方法进行了设计。详细介绍了参数配置、数据库接口和网页界面的实现过程,并对网站进行了发布和测试。通过测试,网站运行正常,设备数据解析正确。参数配置方法的实现,为PLC远程监控提供了高效的数据管理性能。管理人员根据底层设备的变化,通过参数配置页面方便地设计、修改、维护和配置数据库,提高了PLC远程监控软件的适应性。本方法对其他有类似需求的远程监控系统具有较好的应用推广价值。

参考文献 (References)

  1. [1]   刘暾东, 郭敏, 陈力 (2008) 基于GIS的智能路灯监控网站设计.照明工程学报, 4, 70-74.

  2. [2]   叶霞, 李俊山, 韦素媛 (2009) 数据库原理及应用.吉林省教育学院学报.学术版, 39-41.

  3. [3]   潘瑞芳 (2012) 数据库技术与应用. 清华大学出版社, 北京.

  4. [4]   郭文波 (2012) ASP.NET GridView控件的高级数据绑定与应用. 电脑开发与应用, 7, 54-58.

  5. [5]   肖健 (2002) ASP.NET编程基础. 清华大学出版社, 北京.

  6. [6]   Duthie, G.A., 李万伦 (2002) Microsoft ASP.Net程序设计. 清华大学出版社, 北京.

期刊菜单