您的位置:控制工程论坛网论坛 » 教程与手册 » iFix的n个经典问题解答

常青树

常青树   |   当前状态:在线

总积分:1421  2024年可用积分:0

注册时间: 2008-09-28

最后登录时间: 2012-05-30

空间 发短消息加为好友

iFix的n个经典问题解答

常青树  发表于 2009/1/6 7:51:28      2280 查看 0 回复  [上一主题]  [下一主题]

手机阅读

1:iFIX中如何使用vba开启和停止wsqlodc和alarmsODBC?

Description

The ability to stop or start the SQL task, wsqlodc, and to pause or continue the alarms to
 ODBC task used to only be available by launching Mission Control and manually controlling them. 

The ability to perform this control programmatically using VBA was added as part of a SIM for 
iFix 2.5. The function calls to allow this are not widely documented and are shown below: -

Resolution

Declare Function TurnOnSqlTask Lib "missionvba" (ByVal cmd$) As Long

'Turns on a SQL task.  The cmd$ parameter is the command line passed to the SQL task
'Return of 0 is a success.  Current logged in user must have security rights to turn
'on/off SAC.  If a non-zero error code is returned, you can use the err2str
'utility in the fix base directory to translate the error to a string

Declare Function TurnOffSqlTask Lib "missionvba" () As Long

'Turns off a SQL task.  Return of 0 is a success.  Current logged in user must
'have security rights to turn on/off SAC.  If a non-zero error code is returned,
'you can use the err2str utility in the fix base directory to translate the error to a string

Declare Function PauseAlarmODBC Lib "missionvba" () As Long

'Pauses the AlarmODBC task.  Return of 0 is a success.  Current logged in user does NOT
'have to have security rights.

'This function will execute regardless of the "Allow Operator to Pause Alarm Logging"
'Setting found in the iFIX ODBC Alarm Service Configurator of the System Configuration
'Utility.

Private Declare Function ContinueAlarmODBC Lib "missionvba" () As Long

'Resumes the AlarmODBC task.  Return of 0 is a success.  Current logged in user does NOT
'have to have security rights.

'This function will execute regardless of the "Allow Operator to Pause Alarm Logging"
'Setting found in the iFIX ODBC Alarm Service Configurator of the System Configuration
'Utility.

'All of these functions will block until the request is completed.

2:iFIX如何使用vba开启和停止基于时间和事件的调度?

Description:This solution shows how to start and stop a time-based or event-based schedule
 running in the background.
Resolution:STOP / START a EVENT BASED SCHEDULE
To Start:
Private Sub CommandButton1_Click()
Dim Var1 As Object
Dim Var2 As Object

Set Var1 = GetObject(, "FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject("SchedTest1.FIXEvent1")

Var2.StartEvent
End Sub

To Stop:

Private Sub CommandButton1_Click()
Dim Var1 As Object
Dim Var2 As Object

Set Var1 = GetObject(, "FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject("SchedTest1.FIXEvent1")

Var2.StopEvent
End Sub

STOP / START a TIME BASED SCHEDULE

To Stop the TimerObject:

Private Sub CommandButton1_Click()
Dim Var1 As Object
Dim Var2 As Object

Set Var1 = GetObject (,"FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject("Sched1.Timer1")

Var2.TimerEnabled = False

End Sub

To Start the TimerObject:

Private Sub CommandButton2_Click()
Dim Var1 As Object
Dim Var2 As Object

Set Var1 = GetObject (,"FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject("sched.Timer1")

Var2.TimerEnabled = True
Var2.StartTimer

End Sub 

3:iFIX如何使用vba进行网络打印机打印?
Description:
The following is an example of printing an Excel Document to a Network Printer or a printer other than the
 default printer on the machine.

Dim objXL As Object
Dim myDoc As Object

Set objXL = CreateObject("Excel.Application")
Set myDoc = objXL.Workbooks.Open("C:\testfile.xls", , True) 

myDoc.Printout copies:=1, preview:=False, ActivePrinter:="'\\SERVER\PRINTER", printtofile:=False, collate:=True 

myDoc.Close
Set objXL = Nothing
Set myDoc = Nothing 

References

If this script is used in a background schedule with FixBackgroundServer configured to run as a Service, the Fix
 service must run under a user account that has printers defined. See KnowledgeBase Article i013417 for more
information on this configuration.

The Printout command can be used for other document types (Word, PowerPoint, etc), however different syntax
is required, refer to http://msdn.microsoft.com for other examples.

4:iFIX报警状态代码以及意义?
Description:
FIX displays alarm status codes for each alarm in the Alarm Summary Link. What is the meaning of each of these codes?
Resolution

Priority --> Alarm Type --> Description

1 --> COMM --> Communication Error ("BAD" value)
1 --> OCD --> Open circuit detected
1 --> OVER --> Over Range
1 --> UNDER --> Under Range
1 --> ERROR --> Any Statistical Data block alarm
2 --> CFN --> Change from normal alarm (digital blocks only)
2 --> COS --> Change of State alarm (digital blocks only)
2 --> HIHI --> Block in HIHI alarm state
2 --> LOLO --> Block in LOLO alarm state
3 --> RATE --> Value exceeds rate-of-change setting
3 --> HI --> Block in HI alarm state
3 --> LO --> Block in LO alarm state
4 --> DEV --> Deviation Alarm
5 --> OK --> Block in normal state

5:如何禁止和使能7X驱动标签点(对驱动自动禁止特别有用)?
Dim opcDriver As New OPCDrv.OPCServer
Dim objDriver As Object
Dim strDRVAcronym As String
Dim strProgId As String
''Variables for GetChannel
Dim lngNumChannels As Long
Dim lngChanHandles
Dim strChanNames
''Variables for GetDevices
Dim lngNumDevices As Long
Dim lngDeviceHandles
Dim strDeviceNames
''Variables for GetDataBlocks
Dim lngNumDataBlocks As Long
Dim lngDataBlockHandles
Dim strDataBlockNames
Dim i As Integer
Dim j As Integer
Dim lngErrors
Dim myvar As Long
Dim readEnable
'strDRVAcronym = InputBox("Please enter the driver''s three letter acronym?" & vbCrLf & "(For Example: 
Enter ABR for the ABR Driver)", "What Driver are you using?")
'strProgId = "Intellution." & strDRVAcronym & "drv"
'strProgId = "Matrikon.OPC.Simulation.1"
'Set objDriver = CreateObject(strProgId)
lngNumChannels = opcDriver.GetChannels(lngChanHandles, strChanNames)
''Build Variables for SetPropertyData function.
lngHandle = lngDataBlockHandles(0)
varProperties = "Enabled"
varProperyData = "1"
opcDriver.GetPropertyData lngChanHandles(1), varProperties, readEnable
'对服器1置真
If readEnable = "0" Then
    lngErrors = opcDriver.SetPropertyData(lngChanHandles(1), varProperties, varProperyData)
End If
lngNumDevices = opcDriver.GetDevices(lngChanHandles(1), lngDeviceHandles, strDeviceNames)
lngNumDataBlocks = opcDriver.GetDataBlocks(lngDeviceHandles(0), lngDataBlockHandles, strDataBlockNames)
lngHandle = lngDataBlockHandles(0)
'读工作组
opcDriver.GetPropertyData lngDeviceHandles(0), varProperties, readEnable
If readEnable = "0" Then
    lngErrors = opcDriver.SetPropertyData(lngDeviceHandles(0), varProperties, varProperyData)
End If
'处理工作块
opcDriver.GetPropertyData lngDataBlockHandles(0), varProperties, readEnable
If readEnable = "0" Then
    For i = 0 To 1
        lngErrors = opcDriver.SetPropertyData(lngDataBlockHandles(i), varProperties, varProperyData)
    Next i
End If
Set opcDriver = Nothing




6:iFIX_如何使用脚本实现驱动(7x)的启动和停止?
Description

The following solution explains how to Start and Stop a 7.x driver through VBA code. This example uses 
the ABR driver. To implement this with another 7.x driver, change the ABR to the three letter acronym of 
the other driver and switch the reference to that driver.

Resolution


This code will only work with 7.x drivers. If you want to implement this is code in a new picture you 
need to set a reference to Intellution ABRDrv OPC Server 7.20 Library. To set a reference, use the following steps:

1) On the Tools menu in the VB Editor choose References.
2) Select the Intellution ABRDrv OPC Server 7.20 Library from the list.

Add two command buttons to your picture and name them cmdStart_Click and cmdStop_Click.

Then paste the following code into the picture:

Private Sub cmdStart_Click()

Dim ABRDriver As New ABRDrv.ABRServer
ABRDriver.Stop
Set ABRDriver = Nothing

End Sub

Private Sub cmdStop_Click()

Dim ABRDriver As New ABRDrv.ABRServer
ABRDriver.Start
Set ABRDriver = Nothing

End Sub 


7:iFIX_如何使用脚本实现驱动(6x)的启动和停止?
Description

This articles describes how to control (start or stop) the 6.x drivers through VBA, Command Script, 
or DOS rather than in Mission Control.

Resolution

The attached application DCTRL61.EXE enables you to do this. Below are the usage instructions.

Usage: DCTRL command driver acronym delay [sleep]

where command is:
START - start the driver
STOP - stop the driver from polling
STOP_EXIT - stop polling and exit
SLEEP - set new sleep time (period)
STATUS - displays current values
DELAY - Wait a Number of milliseconds before executing this command ( 1000 = 1 second).

The the dctrl61.exe must be located in the FIX32 or Dynamics directory. The command and driver
acronym must be in ALL CAPS.

Example from the DOS prompt: dctrl60 START MBR
Example from a iFIX VBA: Shell c:\fix32\dctrl60 "START MBR"
Example from a FIX32 script: Runtask c:\fix32\dctrl60 "START MBR"

8:iFIX_脚本进行调度的启动和关闭方法?
Description

This solution shows how to start and stop a time-based or event-based schedule running in the background.
Resolution


STOP / START a EVENT BASED SCHEDULE

To Start:

Private Sub CommandButton1_Click()
Dim Var1 As Object
Dim Var2 As Object

Set Var1 = GetObject(, "FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject("SchedTest1.FIXEvent1")

Var2.StartEvent
End Sub

To Stop:

Private Sub CommandButton1_Click()
Dim Var1 As Object
Dim Var2 As Object

Set Var1 = GetObject(, "FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject("SchedTest1.FIXEvent1")

Var2.StopEvent
End Sub

STOP / START a TIME BASED SCHEDULE

To Stop the TimerObject:

Private Sub CommandButton1_Click()
Dim Var1 As Object
Dim Var2 As Object

Set Var1 = GetObject (,"FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject("Sched1.Timer1")

Var2.TimerEnabled = False

End Sub

To Start the TimerObject:

Private Sub CommandButton2_Click()
Dim Var1 As Object
Dim Var2 As Object

Set Var1 = GetObject (,"FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject("sched.Timer1")

Var2.TimerEnabled = True
Var2.StartTimer

End Sub 


9:iFIX_excel报表实现的方法?
Private Sub CommandButton1_Click()
    '注释:  1。该程序需要安装ADO 2.0目标库并在本机注册
    '       2。Microsoft ActiveX Data Objects 2.1 Library 必须被引用 (Office 2000)
    '       3。Microsoft Excel 9.0 object libraries 必须被引用 (Office 2000)
    '       4。划===处可根据具体报表修改
    
    Dim strQueryAvg As String

    Dim c As Integer
    Dim r As Integer
    Dim Intyexcel As Excel.Application
    
    Dim MyDate, MyMonth, MyDay, MyHour, MyMinute, MySecond
    Dim StartTime, EndTime, Duration, DisplayDay, DisplayMonth As String

    '++===================================================================
    '报表中的 TAG
    Dim Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 As String
    Dim Items As Integer
    
    Tag1 = "TEST"
    Tag2 = "TEST1"
    Tag3 = " "
    Tag4 = " "
    Tag5 = " "
    Tag6 = " "
    Tag7 = " "
    Tag8 = " "
    
    '从历史库中取得域项, 2 - DATATIME, VALUE, TAG 共三项
    Items = 2
    '--====================================================================
    
    MyDate = Now()
    MyMonth = Month(MyDate)
    MyDay = Day(MyDate)
    MyHour = Hour(MyDate)
    MyMinute = Minute(MyDate)
    MySecond = Second(MyDate)
    
    StartTime = "2000" & "-" & MyMonth & "-" & MyDay - 1 & " " & "00:00:00"
    EndTime = "2000" & "-" & MyMonth & "-" & MyDay - 1 & " " & "23:00:00"

    '++==========================================================================
    '查询,根据报表修改
    strQueryAvg = "Select DATETIME, VALUE, TAG FROM FIX " & _
        "WHERE MODE = 'AVERAGE' and (TAG='" & Tag1 & "' or TAG='" & Tag2 & "'" & _
        " or TAG='" & Tag3 & "' or TAG='" & Tag4 & "' or TAG='" & Tag5 & "'" & _
        " or TAG='" & Tag6 & "' or TAG='" & Tag7 & "' or TAG='" & Tag8 & "')" & _
        "and INTERVAL = '01:00:00' and " & _
        "(DATETIME >= {ts '" & StartTime & "'} and " & _
        "DATETIME <= {ts '" & EndTime & "'})"
    '--===========================================================================
    
    
    Dim cnADO As New ADODB.Connection
    Dim rsADO As Recordset
    
    Set cnADO = New ADODB.Connection
    cnADO.ConnectionString = "DSN = FIX Dynamics Historical Data; UID = sa; PWD = ;"
    cnADO.Open "FIX Dynamics Historical Data", "sa", ""

    Set rsADO = New ADODB.Recordset

    rsADO.Open strQueryAvg, cnADO, adOpenForwardOnly, adLockBatchOptimistic
    '''如果执行上面的语句出错的话,则最大的可能性就是SQL语句有错误!
    r = 1
    Set Intyexcel = New Excel.Application
    Intyexcel.Visible = False
    
    
    
    '++============================================================================
    '打开的报表文件名
    Dim OutReportFile As String
    Dim InReportFile As String
    
    InReportFile = "C:\Dynamics\App\HIST1"
    
    Intyexcel.Workbooks.Open InReportFile & ".XLS"
      
    Intyexcel.Sheets("Sheet2").Select
    Intyexcel.Columns("A:Z").Select
    Intyexcel.Selection.ClearContents
    Intyexcel.Range("A1").Select

    While rsADO.EOF <> True
        With Intyexcel.Worksheets(2)
            For c = 0 To Items
                If rsADO(c) <> "" Then .Cells(r, c + 1).Value = rsADO(c)
            Next c
            r = r + 1
            rsADO.MoveNext
        End With
    Wend
    
    Intyexcel.Sheets("Sheet1").Select

'    Intyexcel.ActiveSheet.PageSetup.Orientation = xlPortrait       'xlLandscape
'    Intyexcel.ActiveSheet.PageSetup.PaperSize = xlPaperA4
    Intyexcel.ActiveSheet.PrintOut
    Intyexcel.DisplayAlerts = False
    Intyexcel.ActiveWorkbook.Save
    OutReportFile = InReportFile & "_00" & MyMonth & MyDay
    Intyexcel.ActiveWorkbook.SaveAs OutReportFile
    
    Intyexcel.Quit
    Intyexcel.DisplayAlerts = True
    Set Intyexcel = Nothing
    Set cnADO = Nothing

End Sub

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 组件选项,而且此选项成对随 SCADA Server 购买。

18:iFIX 冗余系统是如何实现的?
     首先安装在SCADA_A 和 SCADA_B 上的软件:
    1. iFIX HMI Pak 
    2. iFIX Redundancy 选项(随 iFIX安装时已安装)
 
     安装在客户机上的软件:iFIX Client 
 
     硬件连接:所有计算机通过以太网连接。SCADA服务器与硬件设备连接。
 
     功能描述:数据采集:SCADA_A 和 SCADA_B上的过程数据库的定义是完全一样的, 两台机器上的IO通讯
同时进行。SCADA_A配置成主机,SCADA_B配置成备用机。以上在 SCU中完成。
 
    冗余切换过程:在客户机一端设置远方服务器名时使用以下方式:逻辑名只有一个:LINE1,实际的名字
是两个:SCADA_A和SCADA_B,在选取数据源时,只会看到一个远端的计算机节点名:LINE1。服务器设置SCADA_A
的Partner是 SCADA_B,SCADA_B的Partner是SCADA_A。正常情况下,两台SCADA同时读取硬件数据,但是客户端只
从主服务器读取数据,即客户端只能看到 LINE1来的数据,报警和历史数据采集。iFIX内部有网络变量TAG,SCADA_B
不断通过以太网检查 SCADA_A的状况,如发现她出了故障,便将主备角色进行切换并将其成为主服务器的消息发
给客户机,客户机立即会将数据源切换到备用服务器,整个过程时间约为1-2秒,由于数据采集在两台服务器上同
时进行的,故不会发生丢失,并且 iFIX冗余选项可以进行网络报警同步,保证报警的一致性。
 
    系统修复过程:当主机修复后又回到网络中时,可以在客户端将主备状态重新手动切换回来。所有操作可
以通过iFIX安装时带来的网络和冗余角色操作画面完成。

19:iFix提供哪些方式与关系数据库连接相连?
主要通过ODBC和OLE DB。这两种方法的连接方式主要说明如下:
 ODBC:
使用此方式作连接主要有两种类型:在iFIX中使用关系数据库的ODBC驱动程序;在关系数据库中使用 iFIX的ODBC驱动程序。
 
在 iFIX 中使用 ODBC 驱动连接有如下几种方式:
 
1) 在 PDB 中使用 SQL 数据库块,操作原理是:
    使用控制面板中的ODBC数据源添加关系数据库源
    在 iFIX系统配置中配置上述数据源的ODBC任务
    在存放数据表的关系数据库中加入一张表存放要执行的 SQL 命令
    在 PDB 中定义相应的 SQT和SQD块,执行上述表中的命令,并存入相关数据。
 
2)在iFIX中使用 VBA 直接定义 ODBC 数据源,调用相应方法读取数据,然后将数据直接显示或写入iFIX数据库。
     在关系数据库中使用 iFIX 的ODBC驱动程序获取数据 
    可在相应关系数据库中建立一张表,使用链接表或输入表,可使用的数据类型为iFIX历史数据和实时数据,
然后通过查询的方式建立所需的数据表。
 
OLE DB:
 
    此方式多用于在iFIX中查询关系数据库的数据, Intellution 有现成的组件 VisiconX 通过 OLE DB 驱动
与相应的关系数据库通讯,VisiconX 是一套企业级关系数据库连接查询工具,实际是通过 ActiveX 的形式提
供查询连接。用户无需编程便可以通过这些控件显示关系数据库中指定的表或查询结果,若有复杂的查询条件,
用户可以通过 VisiconX的SQL 向导自动生成查询命令。
 
    如用户的VBA开发能力较强,也可用VBA命令通过 OLE DB的引擎进行数据交换。
 
OpenRDA:
 
    是第三方应用程序,提供超强的C/S结构关系数据库连接,在iFIX节点上安装 OpenRDA,则此程序作为 ODBC 
Server,可以将 iFIX数据与此Server交换,其他安装 OpenRDA Client 的机器可以没有iFIX,这就意味着可以跨
平台脱离iFIX将实时数据或历史数据传输。
 
    此程序还可以提供更多的 SQL 命令支持,可以在一条SQL命令中读取多个节点的数据,还支持数据分析命令如
 JOIN,还可以读取指定的网络上的任意一个iFIX节点上的历史数据文件中的数据。

20:iFIX WAN 连接方式如何实现?
 
    拨号网络:iFIX支持的拨号网络可以通过公共电话网或专线等其他方式,可以实现的功能与普通局域网相同,
但速度会比局域网慢,注意使用此方式时,要使用NT Server 并安装远程拨号服务RAS,原因在于只有NT Server
才支持多个拨号连接。
 
    iWebServer:通过 iFIX 的组件 iWebServer 可以将iFIX的实时数据在广域网上发布出去,用户可以通过标
准的浏览器看到实时信息。
 
    环境设置:iClient+iWebServer+IIS4.0。其中IIS提供标准的WWW服务,是在 NT Server环境中的,如在 
Workstation 上,可用 Peer Web Service实现。
 
    操作原理:实时数据的传播过程是这样的,iClient 将实时数据从iFIX Server的数据库读过来,iWebServer
将此数据进行转换,所有 iFIX 标准图形通过 iWebServer 的工具转换成 HTML格式文件和JDF文件,JDF文件中的
 Applet 将数据从iWebServer中取出,在标准的浏览器中动态更新。在浏览器中可以显示动态数据,动态图形,
实时和历史趋势,报警信息等。用户可以选择 Play Back选项,此功能为微软标准功能,可以回放历史数据和
历史趋势。IWebServer的数据可以用过代理服务器和网络防火墙。

1楼 0 0 回复