Ifix与数据库通讯

来源:互联网 发布:手机怎么登网页淘宝 编辑:程序博客网 时间:2024/05/18 03:48

Ifix

与数据库通讯

 

概述

 

Intellution

公司提供的驱动程序几乎可以与大多数智能终端交

换数据

,

用户能够快速直观地建立面向过程的实时窗口

,

具有监控、

警、历史趋势、

统计等功能。基于微软工业标准的开放式数据库互连

(ODBC) 

,

最新版

iF 

IX

可以支持多种关系型数据库

,

Oracle

Ò、

Sybase

Microsoft

Ò 

SQL Server

。通过使用自带的系统配置工具

SCU, iFIX

可设置

SCA2DA

服务器从一个过程数据库访问多个关系数据库。

iF IX

过程数据库原理如下

: SCADA

服务器在启动时会载入一个过程数据

库。

过程数据库是由一系列的不同类型的数据块组成

,

I/O

驱动器或

OPC (OLE for process control)

服务器中读取的各个生产数据项

就记录在相应类型的数据块中

,

例如一个模拟量寄存器块

(AR

)

可以

记录某个温度值

,

一个数字量寄存器块

(DR

)

可以记录某个开关的状

态。两个或两个以上的数据块就构成一个数据链

,

通过应用数据块和

数据链使得

iF IX

过程数据库能完成一些特殊的处理数据任务

,

例如

下面要讲的

SQT

块与

SQD

块组成的数据链就可以实现与外部关系型数

据库的通信。

 

iFIX

与关系型数据库的通信

 

iFIX

与关系型数据库的通信使用了结构化查询语言

( SQL) 

SQL 

关系数据库使用的标准语言

,

用来检索、更新和管理数据。尽管它为

应用提供了公共的语法

,

但不提供公共应用程序接口

(AP 

I) 

。开放式

数据库互连

(ODBC)

Microsoft

的标准

AP 

I,

用来访问、显示和修改多

 

种关系数据库数据

[ 2 ] 

iF IX

允许使用两种方法通过

ODBC AP I

提供访问

SQL

数据源

iF IX SQL

接口选项

,

又称为

iF IX ODBC; 

Microsoft Visual Basic for App lications 

中利用

DAO

RDO

尽管可以使用

VBA

iF IX ODBC

访问

SQL

数据源

,

但是它们各自有不同

的特点。在多数情况下

,

VBE ( visual basic editor)

写脚本可以

更快和更容易地访问和处理

SQL 

数据源。而

iF IX ODBC

不需要具备

 

VBA

脚本知识

,

就能执行所有的

SQL

任务

[ 1 ] 

。如果想确定数据库收

到确定性的数据

,

应当使用通过

iF 

IXODBC

可获得的数据库块。当使用

数据库块时

,

数据在每个扫描时间内被及时送到数据库。

iF IX ODBC

在与

SQL

数据源的通信中更加可靠

,

易于查找出错原因

,

且配置简单

,

不用编写大量程序。

 

数据库块

 

iFIX 

ODBC

主要由

SQL 

任务、

SQL 

触发

SQT)

数据库块、

SQL 

SQD)

数据库块

3

个部分组成。

其中

SQT

块用于指定

SQL

命令的名称

,

可被基于

时间或者事件的调度所触发

; SQD

块则定义了需采集传送的数据块和

数据传送的方向。当

SQT

块被触发后

, SQL

任务从

SQT

块读取

SQL 

命令名。根据接收到的

SQL

命令名

SQL

任务从关系数据库中用户已建

立的

SQLL IB

表中查找与其对应的

SQL

命令。

SQL

命令指定了命令的具

体作用以及作用的数据表。

SQL

任务从

SQD

块读取指定的块并从

iFIX

数据库读和写这些标签相关的值

,

执行

SQL

命令插入数据到关系数据

库或从关系数据库选择数据。

如果

SQL

命令是一个

SELECT

命令

,

检索的

 

数据被写到

SQD

块定义的

iF IX

标签中。对于用户来说

,

具体要做的任

务就是配置

iFIX

SCU

和过程数据库的

SQL

,

并且在关系数据库中正

确建立相应的表。

  

配置过程

 

一方面与

PLC

之间通过

OPC

驱动程序执行扫描、报警等主要任务

,

另一

方面将从

PLC

中接收到的实时工业数据记录在

SQLServer

中。

SCADA2 

SCADA1 

互为冗余

,

配置完全相同

,

大大提高了整个系统的可靠性。

Terminal Server

作为

iClient

节点

,

SCADA1

提供的工业数据通过生

 

动的画面发布给使用者

,

用户可由因特网拨入

VPN,

使用

Windows

操作

系统自带的远程桌来访问

,

从而实现了远程监控。

 

SCADA1

SQL Server

的配置过程如下

(1) SQL Server

的配置。

 

①安装

MS SQL Server 2000

建立对象数据库。

 

②在对象数据库中建立数据表。

根据工业数据记录的要求建立多个相

应数据表。表的列名要易于理

 

,

方便使用者的查询分析。

 

③根据数据表的结构建立

SQLL IB 

表。

SQLL IB

表中保存需要执行的

SQL 

命令

,

仅包含两列

: SQL 

命令名列和

SQL 

命令列

,

分别用来保存

SQL 

命令名和

SQL

命令内容。每个

SQL 

命令必须以“

”作为结束

 

,

SQL

命令的长度不能超过

255 

B,

否则

iF 

IX

无法识别

(

这就要求数

据表的列数不能太多

,

列名不能过长

 

④建立

SQLERR 

表。

SQLERR 

表用来记录

iF IX

MS SQL Server

通信发

 

生的错误代码。具体方法见

 

(2) SCADA1

的配置。

 

①建立数据源。配置为系统

DNS

,

系统安全级别更高。

 

②配置

SCU

。分为两步

首先

,

添加

SQL

账户。

把建立好的

ODBC

数据源加入

SQL

账户对话框

,

填写

的用户名应具有读写数据库的权限。

其次

,

配置

SQL 

任务。

启动

SQL 

,

在数据库

ID

域中填写

ODBC

数据源的名称

; SQL

命令表域和错误记

录表域分别填写

SQLL IB 

SQLERR

。点击确定后

, SQL

任务自动作为

服务被添加到

SCU

的启动任务表中。

 

③配置过程数据库。建立相应的

SQT

块和

SQD

,

确保

SQD

块与相应

SQT

块组成数据链。

SQT

块的

SQL

名域填写在

SQLL 

IB

表中的命令名

,

数据库

ID

域填写

ODBC

数据源名

,

根据需要选择相应的触发条件。

SQD

块作为相

SQT

块的下一块

,

每块最多可记录

20

个数据块名

,

若要记录的数据块

名超过

20

,

可新建一个

SQD

,

作为老

SQD

块的下一块。

 

(1)

如何确定

SQT

块的触发条件。

 

SQT

块支持两种触发方式

:

时间触发和事件触发。

通过设置起始时间和

时间间隔

iFIX

可以持续以一固定时间间隔向数据库里写入数据。但

这种方式不能顾及实际现场生产状况

,

即使生产处于停机状态仍记录

 

不需要的数据

,

将浪费大量磁盘空间。本例采用事件触发。在过程数

据库中基于

SIM

驱动程序建立一个虚拟数字量输入块

,

在正常生产时

,

此数字量输入块能够以固定时间间隔切换自身值

;

在生产停止时

,

数字块值不变

(

这在

PLC

中很易做到

。通过将此数字块设置为

SQT

 

的触发块

,

实现了高效的数据记录。

 

(2)

如何记录

SQT

块的触发时间。

 

数据分析师不仅要知道某些事件发生时生产的状态

,

而且往往需要知

道某事件的发生时间

,

这就要求在数据库中记录下每次读写数据库的

时间

,

iF IX

自身并没有时间纪录功能。

iF IX

开发工程师开发了一

TDS( time date stamp )

,

安装这种数据块后

,

iF IX

过程数据

库中就多了一种

TDS

,

可同样以虚拟数字量输入块作为此

TDS

块的触

发块

,

记录数字块值变化瞬时的具体时间。从而巧妙实现了记录事件

的同时也记录下事件发生的时间。为事后分析数据提供了方便。

 

(3)

如何查找通信中的错误。

 

关系数据库中的

SQLERR 

表虽然可以记录实时的通信出错信息

,

但记

录的错误码不易理解

,

对于没有经验的使用者毫无用处

,

且一旦数据

库管理系统本身出错

, SQLERR

表便无能为力了。

iF IX

自身提供的任

 

务控制工具

,

可以在线控制

SQL 

任务的启动和停止

,

可以显示出错信

,

对于调试者更加容易使用。


0 0
原创粉丝点击