自定义脚本撰写说明

Navigation:  iCentroview系统的配置 > 配置客户端 > 服务端配置 > SCADA节点总览配置 > 转储配置 > 自定义脚本转储配置 >

自定义脚本撰写说明

Previous pageReturn to chapter overviewNext page

自定义脚本撰写包含以下几类函数:

u必须实现的函数

u可选择实现的函数

u可调用的函数


u必须实现的函数

setEnviron(functionContainer):传递主程序的回调函数供使用,之后通过functionContainer.function()来调用相应的函数,我们已经提供了默认实现,将functionContainer赋值给全局变量functions,之后的函数调用可以通过functions来使用。

initRule():初始化函数,可在其中进行初始化工作。

finiRule():清理函数。

 

u可选择实现的函数

如果插件需要操作事件,可以在initRule和finiRule里注册和注销事件(注册和注销事件参见可调用的函数),并提供事件回调:

def onEvent(event, szAreeas)

参数说明:

szAreas:事件的报警区

event:传进来的事件对象,它是一个字典类型,包括下列属性:

"almID":ID

"eventLoginName":登陆名

"appName":产生事件的应用名称

"tag":对应的tag名称

"tagDescription":tag秒数

"msg":事件消息内容

"className":类名

"subSystemName":子系统名

"sec":时间戳秒数

"usec":时间戳微秒数

 

如果插件需要操作报警,可以在initRule和finiRule里注册和注销报警(注册和注销报警参见可调用的函数),并提供报警回调:

def onAlarm(alarm, szAreas)

参数说明:

szAreas:事件的报警区

alarm:传进来的报警对象,它是一个字典类型,包括下列属性:

"almID":ID

"valueType":数据值类型

"valueSize":数据值长度

"value":数据值

"nodeName":报警节点名

"tagName":报警变量名

"tagDesc":报警变量描述

"confirmPerson":确认人

"egu":egu类型

"className":类名

"subSystemName":子系统名

"category":报警目录

"type":报警类型

"priority":报警优先级

"status":报警状态

"occurSec":报警产生时间戳秒数

"occurUsec":报警产生时间戳微秒数

"confirmSec":报警确认时间戳秒数

"confirmUsec":报警确认时间戳微秒数

"recoverSec":报警恢复时间戳秒数

"recoverUsec":报警恢复时间戳微秒数

"repetition":报警重复次数

 

如果插件需要操作定时器,可以在initRule里注册定时器(注册定时器参见可调用的函数),并提供定时回调,这种情况往往用在数据转储中:

def onTimer(sec, usec, id)

参数说明:

sec:时间戳秒数

usec:时间戳微秒数

id:定时器号,注册定时器时传入,方便用户区分不同的定时器。

 

getTimeRepr(sec, usec):传入秒数和微秒数,返回对应的字符串描述。

 

u可调用的函数

regEvent(strAreasFilters):注册事件,参数为报警区过滤条件,返回句柄

unRegEvent(hProvider):取消事件注册,参数为注册时得到的句柄

regAlarm(strAreasFilter):注册报警,参数为报警区过滤条件,返回句柄

unRegAlarm(hProvider)):取消报警注册,参数为注册时得到的句柄

execSql(name, sql):执行sql语句,参数为数据存储目标(与sqltransfer配置文件中相对应)和sql语句

createTable(name, sql)):建表语句,参数为数据存储目标(与sqltransfer配置文件中相对应)和sql语句

regTimer(act, long nInterval, long nOffset, int bIsOffsetOfNow ):注册定时器,参数为定时器号(用户确定,来区分注册的不同定时器)、周期、相位、是否是当前偏差

regGroup():注册rda的group,返回group句柄

addTag2Group(hProvider, strTagName, strFieldName):往group里加数据块,参数为group句柄,变量名称,属性名称,返回对应的句柄

addTag2GroupEx(hProvider, strFieldName):往group里加数据块,参数为group句柄,变量全名,返回对应的句柄

unRegGroup(hProvider):注销group,参数为group句柄

readGroup(hProvider)):读取group,参数为group句柄

readValueByHandle(hProvider, hTag):读取数据值,参数为group句柄和tag句柄,返回一个字典,其中"ret"属性为返回码,"value"为数据值的字符串表示。

readValueByName(tagField):读取数据值,参数为变量全称,返回一个字典,其中"ret"属性为返回码,"value"为数据值的字符串表示。

readVTQByHandle(hProvider, hTag):读取数据详细值,参数为group句柄和tag句柄,返回一个字典,其中"ret"属性为返回码,"value"为数据值的字符串表示,"quaity"表示数据质量,"timeSec"是时间戳的秒数,"timeUsec"是时间戳的微秒数。

getRMStatus():获取冗余状态。