《OPCServer及Client系统.pdf》由会员分享,可在线阅读,更多相关《OPCServer及Client系统.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章:Modbus通信最新发展1 OPC Server 及 Client 系统1.1何谓 OPC OPC为 OLE for Process Control 的缩写。是工业界最先进的资料交换标准。回顾自动控制系统的发展,无论是DCS、PLC、监控套装或控制器等系统,都会面临系统整合的瓶颈。各系统无法有效共享资料,对于相同的控制设备,每个厂牌的监控系统都要设计一套自有的通信Driver。当 MIS系统需要现场实时信息时,也需要一连串复杂的信息接口才能达到所要的功能。面对以上种种状况,由一群工业自动化领导厂商,诸如Fisher-Rosemount、Rockwell Software、Opto32、
2、Intellution、Intuitive Technology及 Microsoft等,于 1996年共同成 OPC Foundation,希望建立一个业界标准接口规格。由目前信息使用的发展方向来看,大多数的client端使用的系统为 MS Windows,故使用 OLE的架构有利与大多数的使用者整合,且利用现有的 COM、DCOM、ActiveX 等技术,可快速将系统建立完成,现有系统所要变动的项目最少等优点。故当OPC架构提出后,不到数年间已成为业界的标准,且成为自控系统都必须具备的通信功能。1.2OPC基本架构对于工厂自动化信息架构可分为三个主要层面:zPlant Floor:仪表信号
3、、现场控制器、各种资料收集设备等。此层次有各种的现场运转信息,设定系数、各种command等信息,需要与上层系统作资料交换。zProcess Floor:此为 DCS、SCADA 等统合控制及操作系统,此控制结果要下传至现场设备,也要将执行结果上传至MIS 系统。zBusiness Floor:全公司或全厂的管理系统,需要现场实时信息做回馈,也要将生产排程计划等资料下载至下层系统。系统会使用Database、Spreadsheet、MES套装等工具或系统。OPC就是一套介于以上三层系统间的通信标准接口规格。只要依据此接口规格所开发的软件系统,就可以做到系统间或设备间的资料交换,而不会受到不同系
4、统或设备的限制。应用系统架构图:图(5-1):OPC 接口基本架构图应用系统(A)OPC Client OPC Server Vendor AOPC Server Vendor BEthernet OPC Server Vendor C应用系统(B)OPC ClientzOPC Server 可依需求设计而提供此方面的服务,例如连接不同的自控设备,或特殊的数据处理及计算功能。zOPC Client可同时连接数个 OPC Server 以存取所要的资料。应用系统可为具有 OPC Client的套装监控系统,或自行开发的报表系统。z符合 MS COM、DCOM 架构,可以取入网络内任一个OPC S
5、erver 的服务。z由 OPC Client的角度来看,可达到下列的利益:?Client的开发者不需考虑Driver 的设计,此由 OPC Server 厂商提供此服务。?不需重复投入 Driver 的开发,只须向市场上购买该Driver 的 OPC Server即可。?即使不同操作系统或自控设备也可通信,只要符合 OPC接口规格。?当自控设备硬件改变时,只要更新 OPC Server 即可。符合使用者的最大弹性需求。?以往两个监控系统,不可能同时对同一个控制设备做通信,如今透过同一窗口 OPC Server 即可做到。?目前有太多的应用软件开发者,使用VB、Delphi、Power Bui
6、lder等等,以往对于存取现场实时信息束手无策,如今藉由OPC Server的联机达到完美的地步。zOPC如同一条无形的线连接自控硬设备与应用软件系统,也可将 OPC Server视同对象,买来即可使用,非常便利。OPC接口架构图:图(5-2):OPC 接口系统架构图OPC Custom Interface Interface PC Automation Local or Remote OPC Server(shared by memory client)Sever Data Cache VB 应用系统OPC Automation Wrapper Physical Device or Data
7、baseC+应用系统系统资料的交换可分为两大部分,一为与自控设备的连接,此依不同设备有不同的通信协议,需要设计不同的 OPC Server 与其相对应。另一为与 Server与 Client间的通信,此部份既为OPC的 COM 接口规格。如同大部分 COM 的设计方式,OPC也是 client/server架构。其中 Client要顾及大部分应用系统的开发者,简单易用、快速上线等原则,多数开发工具都具备OPC Client功能。另外 Server方面需要应付多数个 Client 的资料要求,且要面对不同自控硬件而有不同的通信协议,故要以 C+开发工具才可掌控所有的系统设计功能,都以专业公司设计
8、各种OPC Server,以提供使用者选择。1.3OPC主要功能OPC主要功能是工业界一种资料交换的通信接口标准。对于第一阶段的功能为三大类:Online Data Access、Alarm and Event Handling、Historical Data Access 等。其它功能如:Security、batch、Historical alarm and event data access 等属于下一次版本。OPC架构为 COM 的接口,希望能达到原则为:简单易用、适合多数厂商所需、提供高级语言的功能、有效率的资料交换等。所以OPC规格包含:一组 custom COM Interface
9、 以及 OLE Automation Interface 以供 VB、Excel等使用。并且利用DCOM 技术以作为 Remote Client的接口。zOnline Data Access:此为最基本的功能,也是绝大多数应用程序的需求。此包含Device、Group、Item等三种层次的对象,以对应一个现场的信号点。Device定义针对某一个特定的自控设备,具有该系统的通信协议。Group为某一群特定组合的资料,例如:Group代表一个特定的操作画面或报表的数据群。最后 Item就对应某一个信号点,此信号点依据控制设备的规格可以读取或写入,又信号种类可有不同的资料型式,例如:DI/O以 Bo
10、olean表示、AI/O 以整数或实数表示。OPC Client可设定通信间隔的 Polling Rate以因应资料的更新速率。每一个OPC Item具有 Value、Quality 及 Time Stamp等三种数值。Value为 VARIANT资料型态,表示信号真正数值可为实数、整数、Boolean或字符串等型式。Quality表示该信号的品质,例如:通信断线时,品质为Bad。Time Stamp纪录该信号取入的时间。zAlarm and Event Handling:此方面的 Interface是定义,当有特定的 Alarm或 Event发生时,会被通知的OPC Client。同时也允许
11、 OPC Client对Server做设定,以决定何种状态需要被通知。发生不正常的状况称为Alarm,例如:某一点 AI 发生超上限或超下限,或者某一个马达油位不足跳脱的 DI Alarm 等。Event是发生一件被定义的事件,需要OPC client被告知,例如:操作员激活主马达,控制系数被修改,系统发生不正常状况等。IOPCEventServer Interface 提供下列 OPC Client使用方法:?定义 OPC Event Server 所要提供的 Alarm 及 Event的型式。?将定义的 Alarm 及 Event登录于 Server上,并具有过滤(Filter)功能以取入
12、特定的 Event等。?Server如何处理所定义的Alarm及 Event。?Server提供查询 Alarm 及 Event的相关画面。zHistorical Data Access:目前大多数的历史趋势资料,都以自订的规格提供资料,各系统间并无兼容性。故需要再定义共同的规范,以做到随插随用的环境。为了适合各方面使用者的不同需求需要考虑到下列资料型式:?Simple Trend data servers:只提供单纯的原始资料,也就是由Online Data Access server 传过来的资料,包含Time Value and Quality。?Complex data compres
13、sion and analysis servers:除了原始资料的储存外,更提供资料加工,例如:各种统计分析功能、资料比较等,也提供资料批注的功能,更为便利使用。1.4Modbus OPC Server Demo System 本书提供 Modbus 及 Modbus/TCP等两种 OPC Server 试用版(Trial Version),符合 OPC Data Access V1.0 and V2.0规范,可以执行 2 小时的联机,当 Demo时间到时,就不做联机功能。以下说明OPC Server 的操作方法,并且将利用此 OPC Server 进一步说明,如何以 VB 程序设计一个 OP
14、C Client 功能。图(5-3):OPC Server Device Properties Dialog画面首先选择 Menu AddNew Device,显示出 Device Properties Dialog Box如上图所示,以建立一个新的Device。Dialog Box 的各字段说明如下:zName:Device Name必须是唯一的zDevice Type:联机的 Modicon PLC Type或 Modbus Device zComm Port:所连接的 Comm Port总共有 8 个 Port zAddress:Modbus Address 也就是每个 Modbus D
15、evice的 ID No.zTimeout:通信逾时时间,超过此时间表示通信断线zSimulation:选择此项目后,OPC Server 不会实际通信,提供仿真数据,此可以用来当未接实际Modbus设备时,显示仿真信号值提供给其它OPC Client程序联机测试用。zWord Swap:当所接到的 Modbus资料,其 16 bit integer依据 Protocol规定为 High Byte在前,Low Byte在后的顺序,但是某些Modbus设备所传送的资料格式相反,此利用此选项修正之。图(5-4):OPC Server Group Define Dialog画面然后选择 Menu A
16、ddNew Group,显示出 Group Dialog Box 如上图,输入 Group Name。图(5-5):OPC Server TAG Properties Define Dialog画面然后再选择 Menu AddNew Tag,显示出 Tag Properties Dialog Box如上图,以建立一个新的TAG。Dialog Box 的各字段说明如下:zName:TAG Name于此 Group内,此 Name必须是唯一的。zDescription:此 TAG 的说明,提供使用者更多的说明叙述。zLoaction and Type:该 TAG 的 Modbus信号 Type,具
17、有 Input Coil、Output Coil、Input Register、Output Register 等四种。Location表示该 TAG 的地址。zData Type:此 TAG 的资料型态。zNumber of bytes:所具有的 Byte数zScaling:原始信号值是否需要再做工程数值Range的转换,详见下图zSimulation signal:选择仿真计算方法。有Sin、Ramp、Random等三种方法。Scaling 画面说明:Range转换的设定画面zRaw Min:原始信号值 Range Low zRaw Max:原始信号值 Range High zUnit:工
18、程单位zMin:信号工程值 Range Low zMax:信号工程值 Range Low zConversion:转换用公式。有 Linear、Square Root等两种。图(5-6):信号工程单位转换定义画面选择 Menu EditPort 显示左边画面Modbus 的 COM Port 系数设定Port:通信埠,共有 COM1 COM8 Baud Rate:通信速度Parity:None、Odd、Even Flow:RTS、CTS 流程控制Data Bits:资料位Stop Bits:停止位图(5-7):COM Port Define画面选择 Menu EditIP Address&Po
19、rt 显示左边画面Modbus/TCP 的 TCP/IP 设定Port:TCP/IP 通信埠,供有 Port1 Port8IP Address:所要连接 Remote Modbus Device IP Address TCP Port:Modbus默认值为 502 图(5-8):IP Address&Port Define画面图(5-9):OPC Server 操作画面依据以上的操作方式,增加Device、Group、Tag等。如同上图例显示。画面右下角的 Status Bar显示,尚余的 Demo时间(最大为 120分钟)。当Demo时间到,会显示如下画面,同时不再通信,TAG 的 Qual
20、ity Flag会变成 Bad。图(5-10):OPC Server Demo Time up操作画面然后选择 Menu ViewMonitor就可以对外通信取入信号值。此功能用于确认所设定的内容是否正确,以及立刻通信以确认信号值是否正确。设定完成后,选择 Menu FileSave 将设定内容,存成一个 Configuration File其附档名为 tdb。然后停止 OPC Server。正式使用时,也就是当其它监控系统使用OPC Client功能 connect此 OPC Server后。OPC Server 会被激活于Background状态,主画面不会显示,此时 OPC Server
21、依据 OPC Client所联机的 TAG 开始通信。注意点:如果OPC Server 的Configuration File设定有 100个 TAG,但是某一个 OPC Client联机其中 10 个,此时 OPC Server 只就此 10个 TAG通信而不会 100个全部通信。当有第二个 OPC Client再联机其它 20个 TAG 时,此时 OPC Server 再增加 20个 TAG 的实际通信。如此系统运作弹性因应,以保持最佳反应状态。当所有的OPC Client都不联机后,OPC Server 自动停止程序。注意外界要使用某一个OPC TAG必须使用全名,例如:Device1.
22、Group.Tag1。各各名字中间要以逗号.相区隔。主要 Menu功能介绍:FileNew:建立一个新的 Configuration File。FileOpen:打开一个 Configuration File。FileSave:存入一个 Configuration File。FileSave As:存入一个 Configuration File,使用其它 File Name。FileExport CSV:将 Configuration File档转成 CSV格式存盘,因为 Excel可读取 CSV 档,所以非常方便将所设定的TAG Name,Loaction等转给其它监控系统使用。FileRe
23、export CSV:将同一个 Configuration File档再转成 CSV 格式存盘一次。FileImport CSV:将一个与上述 CSV档相同格式的内容,转成 Configuration File。同样道理,此种方式可由其它监控系统的TAG 转成 CSV档,然后由 Excel修改内容及格式,再利用此功能转换进来成为OPC Configuration File。FileReimport CSV:将同一个 CSV档再转成 Configuration File一次。AddNew Device:建立一个新的 Device。AddNew Group:建立一个新的Group。AddNew T
24、ag:建立一个新的Tag。AddMultiply:对于一个 Copy Tag可以建立多数个复制TAG。EditCut:取消一个 TAG,可供 Paste用。EditCopy:复制一个,可供Paste用。EditPaste:贴上一个 TAG。EditDelete:删除一个。EditPorts:定义 COM Port或 IP Address等通信系数。EditProperties:进入 Device、Group、Tag等 Properties Dialog Box。ViewMonitor:针对某一个选定的Group内 Tag对外做通信。ViewStatus Bar:显示或不显示 Status Ba
25、r。1.5VB 的 OPC Client Demo 程序功能介绍于系统整合上,有许多情形必须取得工厂的运转信号点,但是几乎所有的信号点都是存在于PLC、DCS、控制器等,而且每种通信协议都不一样,以前使用 VB 直接与控制系统相连接,设计通信Driver,并不是一个好办法,且效率差。本书提供 OPCClient_Demo VB 程序,可以连接 OPC Data Access V1.0 and V2.0 Server。读者以此为范例,可以延伸设计出实用的程序。本程序使用VB 6.0 设计,具有下列主要功能。z寻找 Local or Remote Server 的所有已经安装完成的OPC Serv
26、er。z输入 TAG Item 全名后,以同步(Snychronize)或异步(Unsnychronize)两种方式读取 TAG 值。z显示同步读取时的 TAG 值,最新时间及信号值品质(Quality)等。z可输出 TAG 值至 OPC Server 然后输出至控制设备。图(5-11):OPCClient_Demo 初期画面要使用 OPCClient_Demo 前,请先将两个 Trial Version的 OPC Server 安装完成。OPCClient_Demo 操作步骤如下说明:z上图为程序激活后的画面,首先输入Remote Server 的 IP Address或者将 IP Addr
27、ess值清除表示要连接Local Server。然后按 Search OPC Button,此时会显示该 Server所有安装完成的 OPC Server Name。例如:本书的两个 OPC Server Name 为:SunWareCorp.Trial_Modbus及SunWareCorp.Trial_ModbusTCP。z由 List Box 点选要联机的 OPC Server Name,会出现在最上面第一字段上。z于 TAG Item Full Name字段输入 OPC Tag全名。然后按 Connect Button连接之。程序出现讯息Box,如果联机成功后,其它Button变成可以选
28、取。本程序 Demo三个 TAG 的联机,如果有任何一个 TAG Name不对则会有错误讯息产生。z当联机成功,如果 OPC Tag值有任何变化,会马上显示于Unsync Value、Quality、Update Time等三个字段。也就是 OPC Server 主动通知所联机的 OPC Client称为异步读取。z按Sync Read Button,会由 OPC Client主动马上读取 OPC Tag值,然后显示于Sync Value字段上。此种方式适用于OPC Client立刻要取得目前最新值得情形。z当要输出某一个 Tag值时,于 Write Value对应字段输入 Tag值,然后按W
29、rite Value-1 、Write Value-2 、Write Value-3 等 Button。此Tag值会传送至 OPC Server,然后经过 OPC Server的实际通信输出至控制系统上。z输出时必须注意此 Tag不是 Read Only性质。此种 Tag依据不同控制系统而有不同的定义方式。例如:Modbus而言,只有 Output Coil、Output Register等两种才可以写入Tag值。z当 connect成功时,Demo程序会建立 Server connect、Group、Item 等三种 OPC系统用联机程序 Handle等。故要脱离联机时按Disconnect
30、 Button,或者 Demo程序结束时,就要将这些Handle全部 Remove。此时 OPC Server 接到此命令,就将与此 OPC Client相连的相关资料全部删除。如果是最后一个OPC Client做 Disconnect要求,OPC Server 就会自动停止程序。图(5-12):OPCClient_Demo操作结果画面1.6如何以 VB 设计 OPC Client程序建立一个新的 VB Project,首先选择 Menu ProjectReferences 进入组件Dialog Box,选取 OPC Automation 2.0。如果看不到此选项,请于winntsystem3
31、2目录内找寻 OPCDAAuto.dll增加之。如下画面所示:图(5-13):增加 OPC Automation 2.0选取画面使用OPC 的接口 API都于OPC Automation 2.0 组件内,其使用说明手册可以参考OPC Foundation 网站 http:/www.opcfoundation.org 下载OPC Data Access 2.0规格的文件 opcda20_auto.doc。本书所提供的 OPCClient_Demo 程序,为介绍设计OPC的连接程序最主要的用法,以提供读者一个快速了解连接OPC使用方式。当然整体OPC Client API 还有许多细部的用法,才能
32、将一个实务应用程序设计得更完美,兹将Demo程序的主要程序内容说明如下:zOPC变量宣称:OPC的变量都是一个对象(Object)。OPC的规格提到与 OPC Server 的接口机制为三阶层架构,第一层为OPC Server,第二层建立一个 Group集合用来管理许多连接的Group,第三层于每一个联机实际的 Group,建立此 Group内的许多 Item 对应于 OPC Tag。注意要点:既然前面提到OPC变量为对象 object,所以具有对象的properties、method、event等三大要素,程序的设计就是使用这三大要素构成应用程序,至于这些三大要素的用法就参考opcda20_
33、auto.doc内容设计。Option Explicit Option Base 1 定义 OPC Interface 对象 object Dim IconServer As OPCServer OPC server object第一层 Server Dim RemoteServer As OPCServer OPC server object用于找寻 OPC Server list Dim IconGroups As OPCGroups collection of groups第二层 Group集合Private WithEvents IconGroup As OPCGroup indivi
34、dual group各别联机的 Group Dim IconItems As OPCItems collection of items第三层于联机 Group建立许多 Item Dim OneItem_A As OPCItem Single item 再为每个 Write TAG 建立各别 Item Dim OneItem_B As OPCItem Single item Dim OneItem_C As OPCItem Single item item object以下为处理Item read/write 所需的变量Public OpcItem As IOPCItem Dim ClientH
35、andles(3)As Long Dim ServerHandles()As Long Dim Errors()As Long Dim pQuality As Variant Dim pTimestamp As Variant Dim ItemIDs(3)As String Dim AccessPaths(3)As String Dim Active(3)As Boolean Dim bServerStarted As Boolean Dim bReadOn As Boolean Dim ItemCount As Integer Dim ReadValue()As Variant zOPC S
36、erver List:当使用者输入 Remote Server IP Address 或者将 IP Address清成空白表示为 Local Server,然后按 Search OPC Button 激活下列程序。因为 RemoteServer 已经宣称为 OPC的 Server Object,所以使用 GetOPCServers(Node)method取入 OPC Server List。所得到的内容存于 AllOPCServers内,此变量宣称为Variant。最后以 for loop将AllOPCServers内容转存入 List Box 内。Private Sub Command7_C
37、lick()get remote OPC Dim AllOPCServers As Variant Dim Node As Variant Dim i As Integer Set RemoteServer=New OPCServer Node=Text2.Text If Node=Then AllOPCServers=RemoteServer.GetOPCServers it is local server Else AllOPCServers=RemoteServer.GetOPCServers(Node)it is remote server End If For i=LBound(Al
38、lOPCServers)To UBound(AllOPCServers)List1.AddItem AllOPCServers(i)Next i End Sub zConnect Server:首先以 IconServer 对象的 connect method 连接 OPC Server。联机成功后,取出 IconServer的一种 properies项目 OPCGroups,此为 Group的集合。然后 Set IconGroup=IconGroups.Add(Group One)建立联机 Group。本程序只建立一个“Group One”。再由联机的IconGroup取出 Item 集合对
39、象,然后建立许多Item。本程序建立三个Item,给予每个 ItemID要使用 OPC Tag的全名,例如:device1.group.tag1。最后如果 Item 为可以输出的 TAG 则再建立专门输出用的Item 对象。Private Sub Command1_Click()Dim Node As String Create opc server object Set IconServer=New OPCServer Establish connection to an OPC server Node=Text2.Text If Node=Then IconServer.Connect F
40、orm1.Text1 connect local OPC Server Else IconServer.Connect Form1.Text1,Node connect remote OPC server End If If TypeName(IconServer)=TypeName(Nothing)Then MsgBox Connect Error 无此 OPC Server Return Else MsgBox Connect OK End If 首先由此Server 对象取入group 集合对象Set IconGroups=IconServer.OPCGroups 然后于此group 集
41、合对象增加一个要数据通信的group 对象 要给该增加Group一个唯一的Name Set IconGroup=IconGroups.Add(Group One)IconGroup.IsSubscribed=True 此 group 对象取入Items 集合对象Set IconItems=IconGroup.OPCItems ItemCount=3 于该 Items集合对象,设定所要通信的每个信号点item 并且对每个Item要给予一个ClientHandle 此为往后对区别各信号用ItemIDs(1)=Form1.ItemID(1).Text ClientHandles(1)=1 ItemI
42、Ds(2)=Form1.ItemID(2).Text ClientHandles(2)=2 ItemIDs(3)=Form1.ItemID(3).Text ClientHandles(3)=3 增加 Item 的设定于Group one IconItems.AddItems ItemCount,ItemIDs,ClientHandles,ServerHandles,Errors,pQuality,pTimestamp 如果信号点为AO or DO 则再设定单独的one item 对象以 write data 用Set OneItem_A=IconItems.GetOPCItem(ServerH
43、andles(1)Set OneItem_B=IconItems.GetOPCItem(ServerHandles(2)Set OneItem_C=IconItems.GetOPCItem(ServerHandles(3)检查 error code If Errors(1)0 Then MsgBox Add Item Error Return no server Else MsgBox Add Item OK End If Command1.Enabled=False connect button Command2.Enabled=True disconnect button Command3
44、.Enabled=True Sync Read button Command4.Enabled=True Write value-1 button Command5.Enabled=True Write value-2 button Command6.Enabled=True Write value-3 button End Sub zRead Item:读取 Item value有两种方法。一种为 VB 程序主动读取称为同步方式,使用 IconGroup.SyncRead method既可。另一种为 OPC Server检查 TAG value有变化时主动通知称为异步方式。此方式必须建立一个
45、 Event Subroutine 才可以使得 OPC Server 主动通知时,进入此Subroutine处理。于程序最前端变量宣称时,建立Private WithEvents IconGroup As OPCGroup,表示此 Group会使用异步 Read。然后建立一个实际 Suboutine其名字必须使用Private Sub IconGroup_DataChange(),详见下面步骤:Private Sub Command3_Click()同步方式Read data IconGroup.SyncRead OPCCache,ItemCount,ServerHandles,ReadVal
46、ue,Errors If Errors(1)0 Then MsgBox Read Data Error Return no server Else MsgBox Read Data OK Form1.Value(14)=ReadValue(1)Form1.Value(15)=ReadValue(2)Form1.Value(16)=ReadValue(3)End If End Sub Data Change Event handler fired by group subscription callback 此由 OPC Server 对于该 OPC Client所设定的信号点,如果有数值改变
47、主动 call 此子程序,将新的信号值传入Private Sub IconGroup_DataChange(ByVal TransactionID As Long,ByVal NumItems As Long,ClientHandles()As Long,ItemValues()As Variant,Qualities()As Long,TimeStamps()As Date)MsgBox CallBack Data OK Dim i,m,n As Integer For i=1 To NumItems If ClientHandles(i)0 Then Form1.Value(ClientH
48、andles(i)=ItemValues(i)m=3+ClientHandles(i)Form1.Value(m)=Qualities(i)n=6+ClientHandles(i)Form1.Value(n)=TimeStamps(i)End If Next i End Sub zWrite Item:使用 connect时,已经建立的 Item对象的 Write method就可以将值输出。此值会传到OPC Server 然后经过通信 Driver 将值写入现场控制系统内。注意要点:此Item 必须为 Read/Write Enabled OPC TAG 否则 OPC Server 将不会处
49、理。至于 Read/Write TAG的规定则必须参照该 OPC Server 使用手册的 TAG 定义规格。Private Sub Command4_Click()Write value-1 Dim Value As Variant Value=SetValue(0)OneItem_A.Write Value AO output End Sub zDisconnect Server:解除联机,也是分成三阶层来看,首先Remove所联机的 Item,再来 Group集合,最后 Server Disconnect 等。注意要点:必须按照此三步骤顺序解除之,如果有任一步骤不确实,则 OPC Ser
50、ver认为此 OPC Client还在使用,因此产生一些系统问题。例如:前一个未解除,OPC Server 相关内存还保留,下次再次连接又建立新的资料造成内存浪费。当所有 OPC Client解除后,OPC Server 程序应该停止,但是因为保留未被解除的旧连接资料,故 OPC Server 永远于激活状态。此情形于 OPC Client开发除错阶段更是常常发生,设计者必须特别注意。Private Sub Command2_Click()Dim Error()As Long IconItems.Remove 3,ServerHandles,Error remove item first Ic