10:IFIX中对事件调度有没什么限制?
曾经用过用500个事件调度没事。
11:IFIX中求模拟量一段时间平均值?
Dim strvalue1 As Variant
Dim strvalue2 As Variant
Dim strvalue3 As Variant
Dim strvalue4 As Variant
Dim strvalue5 As Variant
Dim strvalue6 As Variant
Dim strvalue7 As Variant
Dim strvaluep As Variant
Private Sub FixTimer4_OnTimeOut(ByVal lTimerId As Long)
'计算平均值
strvalue7 = strvalue6
strvalue6 = strvalue5
strvalue5 = strvalue4
strvalue4 = strvalue3
strvalue3 = strvalue2
strvalue2 = strvalue1
strvalue1 = Fix32.Fix.J001.a_cv
strvaluep = ((Val(strvalue1) + Val(strvalue2) + Val(strvalue3) + Val(strvalue4) +
Val(strvalue5) + Val(strvalue6) + Val(strvalue7)) / 7)
user.J001.CurrentValue = strvaluep
END SUB
12:在IFIX中如何显示用户信息?
在FIX32产品中,FIX内含一系列系统变量,存储当前系统信息,包括当前用户的注册信息,
如#GS_LOGIN.NAME。在IFIX中可通过VBA代码,实现显示或获得用户的注册信息。代码如下:
Private Sub Text1_Click()
Dim sUserID As String
Dim sUserName As String
Dim sGroupName As String
System.FixGetUserInfo sUserID, sUserName, sGroupName
Text1.Caption = sUserName
13:iFix PLUS版本与CLIENT版本的区别?
PLUS版本支持SCADA。CLIENT版本不支持SCADA。这是二者最大的区别。
PLUS版本的节点可以作为CLIENT版本节点的远程节点,供CLIENT版本的节点读取实时数据。
如果CLIENT版本的节点要对PLUS版本的节点的数据进行写操作,两个节点的安全设置权限必须一致,
否则写操作不会成功。 PLUS版本有单机版,CLIENT版本都是网络版。
两种版本的报价都与点数有关,不同点数的版本价格不同,价格随点数的增加而增加,PLUS版本的要
比CLIENT版本高很多。
14:如何在VBA窗体中实现定时器的功能呢?
使用user32中的timer函数:
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal
uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
‘这两个是对API函数SetTimer和KillTimer的引用。
SetTimer(0, 0, 150, AddressOf Timer_eg) 创建定时器
KillTimer(0, timerset) 销毁定时器
15:播放语音报警的实现方法?
播放语音文件(.WAV)可以通过API函数来进行,不需要单独的编写。播放WAV文件的函数有两个,对应
于同步和异步。所谓同步是指一次只能播放一个语音文件,不可以连续播放;而异步则可以同时打开多个语
音文件,一个个连续的播放,在多个报警同时到来时非常有用。
同步函数为:mciSendString
使用时首先要声明:Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal
lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal
hwndCallback As Long) As Long
用法:
Dim filename as String
Dim cmd As String
filename = "test.wav"
cmd = "open " & filename & " type WAVEAudio alias MyWav"
Call mciSendString(cmd, 0, 0, 0)
Call mciSendString("play MyWav", 0, 0, 0)
异步函数为:mciSendString
使用时首先要声明:Declare Function sndPlaySound Lib "winmm.dll"
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
用法:
Dim filename as String
filename = "test.wav"
Call sndPlaySound(filename, SND_SYNC)
可以连续调用sndPlaySound来进行连续多个语音文件的播放。
16: 如何实现报警存入报警历史库呢?本例以ACCESS作为报警历史库,来说明报警历史库的实现过程,
并给出实际的报警历史查询代码。
http://download.gongkong.com/file/2005/12/15/a.pdf
17:iFIX 冗余系统是如何定义的?
FIX的冗余支持可以分为五层功能,即PLC级、工业网级、SCADA级、LAN和VIEW 客户端级。
PLC 级冗余支持指对双 PLC 的支持,此项支持在 Intellution 驱动程序中配置, 即可以将下面冗余的
PLC 站号以主备 PLC 的形式定义。工业网级冗余即Intellution的驱动程序可以支持双工业网卡冗余,即常
说的双通道,LAN冗余指iFIX可以直接支持双以太网卡,即两个 NetBIOS 会话之间的冗余或两个TCPIP地址之间的冗余。
SCADA 级和客户端级冗余共同工作,构成 Auto FailOver 的功能,如要使用上述功能,需要购买 iFIX
的 Redundancy 组件选项, |