iFIX的调度

更新时间:2023-11-30 02:52:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

使用iFIX的调度

独立的调度可以作为前台或者后台任务运行。 当在前台运行调度时,可以方便地在运行时环境下调试和测试脚本。 当错误发生时,VBE脚本编辑器会自动启动,提示进行编辑和保存修改的内容。 在编辑状态下不能运行脚本。

当调度作为后台任务运行时,它的运行不考虑工作台是在运行时环境还是编辑环境下,也不考虑工作台是否运行。 如果修改输入,它会自动重启动。 当工作台在运行时环境下,可以查看每个输入的运行状态诊断信息和统计数据,包括每个输入启动的次数和最后一次启动的时间。

调度管理器也可以在后台作为Windows的服务来运行。 因为调度管理器可以作为服务运行,所以Windows的节点无论注销用户还是用户重新登录都不受影响,无论工作台是否运行,输入都会正常地被触发。

用户可以创建多个调度,这些调度方便用户组织和维护输入。 每个调度都可以被独立的配置为前台或后台任务运行。 当然作为添加到调度中的事件,可以选择是否马上监视,或者选择到下次工作台启动时再监视。

调度管理器具有很强的查找和替换功能,可方便用户快速地修改调度信息。 查找和替换功能的详细内容请参阅了解iFIX手册的查找和替换数据。

调度入门

在启动输入之前,首先应该了解调度管理器是如何执行脚本的。 调度管理器可以按前台或后台任务来运行。 在前台运行调度时,它是和Proficy iFIX工作台运行在同一个线程里,且允许用户快速地在运行时环境下测试和调试脚本语言。 在后台运行调度时,它和Proficy iFIX工作台运行在不同的线程里,用于监视系统和触发调度事件。

调度管理器不是循环运行,而是等待事件的发生。 当被选的事件发生后,在后台运行的调度中的脚本被触发,它被添加到队列中且在前面的脚本执行结束之后再执行。 所以按后台方式运行的调度执行对于

监视任务是非常理想的。 它与在Proficy iFIX工作台里以前台方式运行的调度脚本的触发是完全一致的。

创建调度在前台运行通常用于测试和调试。 一旦在前台调试和测试通过,我们建议把它放到后台运行。

这部分介绍了如何使用调度:

使用调度

调度程序是一个电子表格,分别是基于时间触发(time-based entries)的输入和基于事件触发(event-based entries)的输入。 双击调度中的空白行,弹出输入对话框。 创建输入之后,可以编辑调度表格中的独立单元格来修改调度,而不需要重新启动对话窗口。

基于时间的输入创建一个计时器对象,而基于事件的输入创建一个事件对象。 这些iFIX对象具有在VBA中能使用的相关属性、方法和事件。 这些对象显示在系统树中。作为对象,它与调度的脚本相关联。

保护调度

iFIX的调度保护功能可以防止未授权的用户访问或者修改调度。 要配置调度的安全属性,可在属性窗口中输入安全区。 更多安全配置的信息请参阅实现安全中的相关内容。

预处理调度(概述)

在调度中每个数据源的数据库信息都被保存在文件或磁盘中。 当调度在运行时环境下执行时,若数据库信息不是最新的,则iFIX将查询数据库并预处理标签定义。 这个费时的过程会减慢调度的运行。

预处理调度将会去除iFIX查询数据库的需求。 所以,预处理后调度在运行时环境下执行速度加快。 我们建议在完成过程组态后预处理调度。 预处理功能对调度和画面都是有效的。

如果在预处理调度之后过程数据库作了如下修改,则需要重新预处理调度。 这些修改包括:

? 装载了其它的数据库。

? 删除了数据库的标签。

运行前台和后台调度

调度可以在前台或后台运行。 当创建新的调度时,默认在前台运行。 作为前台任务运行调度,工作台必须处于运行时环境下。 调度在前台运行时对测试和调试VBA脚本是非常有用的。

调度在后台运行,则要启动FixBackgroundServer任务。 如果FixBackgroundServer没有运行,当调度被添加到后台任务时,则自动启动该任务。 为了建立在后台运行的调度,必须改变调度属性对话框里的默认设置,可以通过单击调度右键从弹出菜单中选择调度属性。 可以使用这个对话框来改变后台运行的新建调度或已有调度的默认设定。 可以选择在前台或后台运行,也可以通过设定窗口属性,修改静态刷新速率。

注意:当数据库标签配置为具有电子签名发生未签字的写操作时,您可不需签名直接将数值写到该标签。 如果在安全环境中启用了电子签名,必须知道无签名写对过程数据库的影响。 无签名写可来自于调度程序。 参阅使用电子签名对数据库写操作的含义章节获取更多信息。

利用后台调度打开画面

当在配置模式下编辑另一个画面或者调度时,在后台运行的调度打开了一个画面,可能会发生不可预见的情况。 在某些情况下,这些画面若在有模式对话框之上打开,则将无法返回原来的对话框。

要避免这些问题,建议当给正在引用画面的后台调度添加输入时,您编写一个自定义脚本设置调度,让其检查对象,在打开一个画面之前确定它是在运行模式下还是配置模式下。

注意: 建议设置成后台运行的调度不要引用画面。 如果您在打开一个画面之前没有检查工作台是否在运行模式下,工作台在配置模式下是无法尝试打开的,因为FixBackgroundServer 不能在配置模式下打开画面。

下列VBA代码给出了一个例子,说明了计时器对象在打开一个 MyPicture.grf的画面之前如何检查工作台是否在运行模式下。 如果工作台实在配置模式下,该画面不能打开,程序会另外运行Task.exe 。 在本例中计时器对象从后台调度运行。

Private Sub FixTimer3_OnTimeOut(ByVal lTimerId As Long)

Dim WrkSpcApp As Object

Set WrkSpcApp = GetObject(\

'If the object is in run mode open the picture

If WrkSpcApp.Mode = 4 Then

OpenPicture \

'Otherwise, just run this program called Task.exe

Else

Task.exe

End If

Set WrkSpcApp = Nothing

End Sub

关于创建调度和使用调度管理器属性对话框的有关内容请参阅创建编辑调度和输入的有关章节。

调试VBA脚本

如果在调度运行时脚本出现运行错误,VBE编辑器会自动启动,以便用户可以快速地修改调试并且保存脚本。 当VBE启动时,调度正在前台运行,对脚本的修改会自动地在调度中保存。 当VBE启动时,调度正在后台运行,请关闭VBE,重新进入 Proficy iFIX工作台,针对脚本进行必要的修改。 对脚本的修改会自动地保存到调度中。

注意:为了在调度中保存脚本修改,必须在Proficy iFIX工作台中启动VBE。 在FixBackgroundServer任务中启动VBE而进行的脚本修改不会保存到调度中。

在后台任务启动列表中添加调度

通常希望在iFIX启动过程中同时启动调度。 如果要做到这一点,必须把调度添加到后台任务启动列表中。 如果将输入添加到以后台方式运行的调度中时,可以选择是否马上启动监视输入。

实现前台调度

下面概述了创建前台调度的所需步骤:

1. 在Proficy iFIX工作台配置环境下创建前台调度。

2. 在Proficy iFIX工作台运行时环境下,如果需要可以监视输入。

实现后台调度

当创建在后台运行的调度时,可以直接创建一个后台调度,也可以创建一个前台调度并把该前台调度转换为后台调度。 下面概述了创建后台调度的所需步骤:

1. 在Proficy iFIX工作台配置环境下创建后台调度。

2. 度。

在后台任务启动列表中添加调度,在用户首选项对话框中选择按后台当时启动的调

3. 在Proficy iFIX工作台运行时环境下,如果需要可以监视输入。

设计调度

本章介绍在设计调度时需要考虑的事项。 在创建调度时,有两种可以选择的输入:基于时间和基于事件的调度。 本节将介绍两种调度以及每种调度可以使用的触发器。 更多信息请参阅以下部分:

多命令脚本向导和调度

当在添加计时器输入或者添加事件输入对话框的操作区内选择一个行动时,您可以单击运行向导按钮打开多命令脚本向导。 您也可以双击已有的计时器或事件输入的操作区打开多命令脚本向导,然后在出现的对话框中单击运行向导按钮。

向导中您可以选择一个或多个需要操作的命令,每个命令都配置使用了一个专家。 您给每个专家提供了相应的信息后,就可以生成对应的VBA脚本。 之后您可以在向导中重组或者删除命令编辑脚本,页可以在VB编辑器中自定义脚本。

注意:

? 尽管多命令脚本向导的目的是为了完全自动处理VBA命令脚本,您还是可以用VB编

辑器手动编辑生成的脚本。 您可以在脚本编辑工具栏线上(***** Scripts Authoring Tool *****)的任何地方添加或编辑VBA脚本,或者直接在\和\语句间编辑。 不要在向导生成的脚本中的注释区域内编辑。 如果多命令脚本向导检测到不合适的自定义VBA脚本,您可能碰到问题。

? 多命令脚本向导不检查命令串以确保命令的逻辑顺序。

如果您不想使用多命令脚本向导,您也可以选择VB编辑器对您经常执行的任务自定义编写脚本。 有关在调度管理中如何创建自定义脚本的相关信息请参阅为调度管理器编写脚本。

创建和编辑调度及输入

调度管理器可以帮助用户创建多个调度且快速容易地组织和维护触发事件。 当创建新调度时,可以通过调度属性对话框控制其属性。

如下列表列出了调度属性对话框中可以控制的属性:

标签 属性 运行时间状态 前台运行 后台运行 窗口属性 窗口高度 窗口宽度 窗口样式 状态刷新 计时器统计刷新速率(秒) 事件统计刷新速率(秒) 后台文件 列出所有在后台运行的调度。 该内容不能在该标签中修改。 在Proficy iFIX工作台编辑环境下可以创建新的调度。

注意:iFIX 不支持使用与本地节点名相同名称的调度。 因此,不能创建与本地节点名相同的调度。

一旦创建调度后,调度和它的输入会出现在系统树的调度文件夹中。 可以在任何时候通过双击系统树中调度名称打开该调度,浏览或者编辑相关属性。

一旦创建调度后,您可以通过多命令脚本向导或在VB编辑器中自己编写脚本增加新的输入。 通过选择整个输入或输入中的某个单元格,可以编辑现有的输入。 还可以把已创建好的输入从一个调度中拷贝或者移动到其他的调度中。

为调度编写脚本

调度管理器中有脚本编写专家,这些专家可以生成在输入触发时执行的脚本语言。 这些专家对常用任务例如切换数字指针或者产生报告等都可以使用,可以用多命令脚本向导访问。

您也可使用VB编辑器为需要执行的任务创建自定义脚本。 本节的代码例子可以帮助您编写用于调度的脚本。 包括以下部分:

? ? ?

窗体的脚本实例代码

按钮脚本代码举例

生成脚本实例代码

有关其他例子,请使用VBE查看iFIX中提供的专家、按钮和窗体的代码。 关于如何编写VBA脚本,请参阅编写脚本的相关内容。

调度程序对话框

调度程序包括了下列对话框(以字母顺序排列):

? 添加事件输入对话框

? ? ?

添加计时器输入对话框

调度程序属性对话框

脚本编辑向导对话框

调度程序属性对话框

调度程序属性对话框会显示如下内容:

运行时间状态

项 描述 前台运行 在Proficy iFIX工作台运行时环境下,让调度以前景任务运行。 后台运行 让调度以后台任务运行,独立于Proficy iFIX工作台。 基于时间和基于时间的脚本将根据调度运行,甚至在Proficy iFIX工作台不在运行的时候-条件是脚本已经添加到FixBackgroundServer 任务,且FixBackgroundServer 任务已经运行。 窗口属性

项 描述 窗口高度 您可以配置当前打开的iFIX调度的高度。 窗口高度以逻辑单位测量。 参考创建画面电子手册获取逻辑单位的更多内容。 窗口宽度 您可以配置当前打开的iFIX调度的宽度。 窗口宽度以逻辑单位测量。 参考创建画面”子手册获取逻辑单位的更多内容。 标题栏 在运行时启用或禁用调度程序标题栏。 系统菜单 启用或禁用调度程序系统菜单。 可变大小 确定运行时间中的调度程序窗口大小是否可调。 总在最前端 确定运行时,Proficy iFIX工作台里调度程序是否一直在其他窗口之前。 状态刷新

项 描述 计时器统计刷新率 您可以以秒设置运行时基于时间的输入统计刷新频率。 设置高刷新率会占用CPU时间。 事件统计刷新率 您可以以秒设置运行时基于事件的输入统计刷新频率。 设置高刷新率会占用CPU时间。 后台文件

显示在FixBackgroundServer 任务中当前加载的所有调度。

创建新的调度

1. 在WoorkSpace中,在标准工具栏上单击新调度按钮。 出现一个新调度窗口

2. 在调度窗口中右击任一区域,选择添加新计时器输入。 显示添加计时器输入对话框。

- 或 -

在调度窗口中右击任一区域,选择添加新事件输入。 显示添加事件输入对话框。

3. 选择需要的计时器或者事件选项。

4. 从工作台菜单中选择另存为。

5. 在文件名称一栏,输入该调度的名称。 iFIX调度以一个 .EVS 扩展名保存到数据库

(PDB)路径中。

6. 单击保存

使用调度程序来创建报警ODBC监视器

2009-10-07 17:28:59 作者:qianlx 来源: 浏览次数:601 网友评论 0 条

如果您想使用调度来创建一个监视以监控报警ODBC连接的状态,请在您的时间项目中使用下列自定义代码。 对于任一情况,请用您实际希望的活动代替 [...]内容。Private Declare Function GetAla...

如果您想使用调度来创建一个监视以监控报警ODBC连接的状态,请在您的时间项目中使用下列自定义代码。 对于任一情况,请用您实际希望的活动代替 [...]内容。

Private Declare Function GetAlarmODBCStatus Lib \

Private Sub FixTimer3_OnTimeOut(ByVal lTimerId As Long)

Dim IntODBCstatus As Integer

IntODBCstatus = GetAlarmODBCStatus

Select Case IntODBCstatus

Case 0

' 正在连接

[..]

Case 1

' 未连接

[..]

Case 2

' 已连接

[..]

Case 3

'连接丢失

[..]

End Select

End Sub

建议您运行的基于时间相关的项目间隔时间为20秒,以便获得准确数据,因为SQL连接的超时中断为60秒。

不像在FIX ODBC报警服务配置对话框的连接丢失中的标签域,本例中您可以创建一个监视从而监控状态并生成反馈报告。

本文来源:https://www.bwwdw.com/article/0uit.html

Top