实时数据库与驱动程序开发接口-解析

  • 格式:doc
  • 大小:31.00 KB
  • 文档页数:5

可编辑

精品文档,欢迎下载 实时数据库与驱动程序开发接口

V1.0 2006/12/29发布

1 引言

根据整个组态的结构描述,在驱动程序与实时数据库之间交换的内容包括采集的实时数据及由实时数据库向驱动发送的控制命令串,驱动程序要求实时数据库或其他驱动支持的功能。

2 实现方式

具体的实现方式是能过共享内存的方式进行数据传送。系统驱动所使用的共享内存全部编号使用,编号从0开始顺序递增,不同的驱动使用不同的共享内存编号,一般一个驱动使用一个共享内存,特殊情况下一个驱动可以使用一个以上的共享内存号。系统提供若干函数对共享内存的创建及使用进行支持。并且提供完整的温巡驱动程序,使用纯C语言编写。二次开发人员可以阅读,参照完成其他驱动的编写工作。另外对每一个驱动的开发需要在drive目录下建立一个单独的文件存储驱动的应用程序与设置文件.以omron为例,需在drive下建立omron目录.对每一个驱动程序写一个readme.txt文件和一个config.txt文件来描述开发的目的及驱动的用法及驱动程序的参数设置.

系统占用的共享享内存编号有如下几个, 其他程序请不要占用.

100 声音驱动使用

102 短信程序使用

103 电话语音报警使用

80 web驱动使用

3 驱动程序编写说明

共享内存的分配

命令标志

命令接收区

数据区

上传结构变量个数

上传结构变量内容

下传结构变量个数

下传结构变量内容 可编辑

精品文档,欢迎下载 3.1 数据区

驱动程序采集的量一般分为两种形式一种是实时数据量如遥信,遥测与遥脉等.

另一种类型是结构量,如SOE, 保护动作记录等。

实时数据量采用 0 - 1999进行编号, 驱动程序开发人员可自行安排其中的某一段为遥信,遥测或遥脉, 例如 0 - 100 为遥信, 101-200 为遥脉, 201 - 300

为遥测.对于遥信多的,将更多的编号分配给遥信,对于遥测多的将更多的编号分配给遥测。采集上来的量在组态的参数配置中按驱动编写的情况进行配置.

3.2 上传结构变量

结构型变量采用如下方法进行传送,系统提供若干个结构串位置,当将指定形式的若干个结构串放入结构串中时,同时将串个数告诉实时数据库。则实时数据库程序读入所有的串,并根据指定的格式进行存盘操作或命令操作。结构串的格式一般为一个特征码附加若干有效字串参数。

3.3 命令区

驱动程序从实时数据库中接收的内容一般是命令串,命令串中包括命令特征码及命令附带的数据,当收到退出命令时驱动程序应自动安全地退出. 退出命令是命令字符串 "EXIT"。

3.4 下行结构变量

下传结构变量一般是由实时数据库传送到驱动程序的下行结构变量。接收下行结构变量的程序一般有声音报警,电话报警,及调度程序等。

4 类接口说明

4.1 支持函数文件列表

1)ramdrive.h

2)ramdrive.c

4.2 使用步骤

1)使用方法bool CreateRam( int ramid );

完成共享内存的建立,参数为数据共享区的编号.

2)设置实时数据

void SetValue( int id, int iValue )

id 编号 iValue 实时值可编辑

精品文档,欢迎下载

3)设置结构串

void SetStruct( int iNum , char * chStruct )

iNum 串内容编号 chStruct 串内容

4)设置结构串个数, 当实时数据库读完之后会置0

void SetStructNum( int iStructNum )

iStructNum 结构串个数

4.3 实时数据库接收的命令

命令组成: 一般是一个标识开头,跟随着是一些参数

Synax0 = CONC 站号 开出号

Descr0 = 发出一个控制命令

Synax1 = COND 站号 命令编号 数字串

Descr1 = 发出一个带数字的控制命令

Synax2 = CONS 站号 命令编号 使用字符串代替参数设置内的内容下发

Descr2 = 发送指定的字符串下去 字符串中可能有空格

Synax3 = CONVALUE 站号 命令编号 数字串

Descr3 = 用于定值更改,会保存原始定值. 有默认取默认值,无则根据关联取出默认值, 如都没有则空出等输入

Synax4 = ASSIGNSYS 编号 值 save

Descr4 = 给系统总线上的某一个量赋值

Synax5 = SQL SQL语句

Descr5 = 执行一个可执行的sql语句

Synax6 = SOE yyyy mm dd hh mm ss ms ramid istate

Descr6 = 执行一个SOE语句 年 月 日 时 分 秒 微秒 遥信在共享内存内的编号 动作后的状态值

Synax7 = BPACT netaddr gztype yyyy mm dd hh mm ss ms data1 data2 data3

data4 data5 data6

Descr7 = 保护动作语句 网络地址 故障类型 年 月 日 时 分 秒 微秒

故障数据1 故障数据2 故障数据3 故障数据4 故障数据5 故障数据6

Synax8 = CMDTORUN CMDSTR可编辑

精品文档,欢迎下载 Descr8 = 给上位机的命令 CMDSTR为命令脚本

例如:CMDSTR为 DisplayMsg Hello ! 则在上位界面程序的状态栏显示Hello !

例如:OPENDLG … 为在上位机弹出指定的对话框

Synax9 = DDL ymramid timetype dataj dataf datap datag datas

Descr9 = 传送电度表量的语句 电度表量编号 时间种类 尖 峰 平 谷 总

对于时间类型 0 本月 1 上月 2 上上月

Synax10 = REMOTE remotetype ctlno ctltype

Descr10 = 调度上送命令

REMOTE 远程命令标志 固定使用

remotetype 远程命令类型 0 远方遥控 1 升降命令

ctlno 遥控号/对象号

ctltype 开关/升降错 开关的代码分别为0 1 升降错 的代码分别为0 1 2

例如:

REMOTE 0 1 1 意义为遥控号为 1 控制内容为关

Synax11 = EVENT netaddr eventtype evnetcode yyyy mm dd hh mm ss ms Parm

Descr11 = 设备事件消息命令

EVENT 事件关键字

netaddr 设备网络地址 相关设置表格:保护单元描述 保护单元地址

eventtype 事件类型代码 相关设置表格:事件类型

evnetcode 事件代码 相关设置表格:事件代码

yyyy mm dd hh mm ss ms 事件时间

Parm 事件参数 中间可以有空格多余一个空格会缩为一个空格

例如:

EVENT 0 1 1 2007 3 27 08 30 33 132 parm0 parm1

分析流程:

根据设备网络地址 –> 设备类型 (通过保护单元地址设置)

根据设备类型,事件类型,事件代码 –> 代码意义 (通过事件代码表格)

Synax12 = DZ filename

Descr12 = 保护定值传送命令

定值接口文件放在组态的temp子目录下。通常为c:\ctconfig\temp

或/usr/local/ctconfig/temp目录。向实时库传送时,只需要放入文件名即可.不要带路径.可编辑

精品文档,欢迎下载

接口文件定义如下:使用纯文本文件。

addr 1 //保护地址

zoneno 0 //保护定值区号0-3 对于压板类型固定设为 -1,以此标记设定为压板

data 0 1 10.1 //定值序号为0 性质1为投入 值为10.1

data 1 1 11.2 //定值序号为1 性质1为投入 值为11.2

data 2 1 12.3 //定值序号为2 性质1为投入 值为12.3

data 3 1 13.4 //定值序号为3 性质1为投入 值为13.4

查看指定的保护定值使用exec 命令。

exec browsedz.exe

Synax13 = displayalarm

Descr13 = 驱动要求界面强制显示指定的报警信息

displayalarm iStationid, iDataKind, iid berror date time stationdescr

alarmdescr alarmkind tellother devicename

displayalarm 关键字

iStationid, iDataKind, iid 点编号

berror 0 故障标志 黄色闪烁 1 事故标志 红色闪烁

date time 日期 时间

stationdescr 站点描述

alarmdescr 报警内容描述

alarmkind 报警类型

tellother 是否在网络上传输

devicename 采集设备描述, 表示从哪个设备上过来的报警

4.4 下行信息语法

此语法供调度类型的驱动程序接收

CDTSOE yyyy mm dd hh mm ss ms stationid yxid state

SOE语句 年 月 日 时 分 秒 毫秒 遥信站号 遥信编号 动作后状态

CDTBPACT netaddr gztype yyyy mm dd hh mm ss ms

保护动作语句 网络地址 故障类型 年 月 日 时 分 秒 毫秒

CDTEVENT eventtype evnetcode yyyy mm dd hh mm ss ms

事件动作语句 网络地址 事件类型 事件代码 年 月 日 时 分 秒 毫秒

.