发表于:2005-11-28 17:03:00
楼主
使用数据系统控件来对组进行读写
数据系统控件(Data System OCX)是一个逻辑控件,提供了柔性读写能力,允许执行读写组到一个数据库。通常利用脚本执行读写,包含以下步骤:
1. 创建数据项(DI)。
2. 验证和添加DI到OPC服务器。
3. 写值到DI中 。
这个过程能从容完成,因为数据项必须在OPC服务器中处理。如果OPC服务器正在低速运行,那么处理过程要画相当长时间。数据系统控件简化了这个处理过程,而且不需要写一个单独的数据项过程,改变读写过程如下:
1. 创建数据项(DI)。
2. 验证和添加DI到OPC服务器。
3. 将DI存入内存,创建并验证其它的DI,并读写在一个组中的DI。
因为数据系统控件允许对组的读写,所以它优化了对大量数据点的读写。能从VB脚本中创建组并在任意时刻写入。
注意:要使用Datasystem控件,必须确认这个OCX控件包含在工程中。可以利用Intellution Datasytstem的访问控制来决定这一切。可以从工具菜单中选择参考来访问这个控制。参考对话框会弹出,然后选择Intellution FD Datasystem数据访问控制。
下面的例子说明了如何利用数据系统控件来创建一组数据库标签并执行对一个组的读和写。
下例写一个值“50”到一组数据库标签:
例:成组写
Public Sub WriteValueToGroup()
'Create the Data Server Object.
Dim FDS As Object
Dim DIItem As Object
'Create an instance of the Data System control.
Set FDS = CreateObject("FixDataSystems.Intellution FD Data _
System Control")
'You do not need to call CreateObject if you include a
'reference to the FIX Data System. This control can handle
'multiple groups. For this example, we only need one group.
'We will add all the data sources with new alarms to the
'group and do a group read and then a group write.
FDS.Groups.Add "TankGroup"
'Add all the Tank tags to the Data System OCX's Data Item
'collection. You can add or delete groups without affecting
'the order of the group should the position of an item
'change. This is achieved by specifying a group name
'("TankGroup")rather than listing item numbers.
FDS.Groups("TankGroup").DataItems.Add "FIX32.MYNODE.TANK1.F_CV"
FDS.Groups("TankGroup").DataItems.Add "FIX32.MYNODE.TANK2.F_CV"
FDS.Groups("TankGroup").DataItems.Add "FIX32.MYNODE.TANK3.F_CV"
FDS.Groups("TankGroup").DataItems.Add "FIX32.MYNODE.TANK4.F_CV"
FDS.Groups("TankGroup").DataItems.Add "FIX32.MYNODE.TANK5.F_CV"
FDS.Groups("TankGroup").DataItems.Add "FIX32.MYNODE.TANK6.F_CV"
FDS.Groups("TankGroup").DataItems.Add "FIX32.MYNODE.TANK7.F_CV"
FDS.Groups("TankGroup").DataItems.Add "FIX32.MYNODE.TANK8.F_CV"