delphi用Automation接口编写OPC客户端.docx

上传人:牧羊曲112 文档编号:3155560 上传时间:2023-03-11 格式:DOCX 页数:5 大小:37.52KB
返回 下载 相关 举报
delphi用Automation接口编写OPC客户端.docx_第1页
第1页 / 共5页
delphi用Automation接口编写OPC客户端.docx_第2页
第2页 / 共5页
delphi用Automation接口编写OPC客户端.docx_第3页
第3页 / 共5页
delphi用Automation接口编写OPC客户端.docx_第4页
第4页 / 共5页
delphi用Automation接口编写OPC客户端.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《delphi用Automation接口编写OPC客户端.docx》由会员分享,可在线阅读,更多相关《delphi用Automation接口编写OPC客户端.docx(5页珍藏版)》请在三一办公上搜索。

1、delphi用Automation接口编写OPC客户端delphi 用Automation接口编写OPC客户端 一,首先是OPCAutomation 的安装 1)使用regsvr32 注册 OPCDAAuto.dll 2)在 Delphi 的project菜单中,选导入类型库 OPC Automation 2.0。 二 编写程序 声明 OPC 的类与接口 FOPCServer:TOPCServer; FOPCGroup :TOPCGroup; FOPCb :OPCBrowser; FOPCItems :OPCItems; / interface FOPCItem :OPCItem; / int

2、erface / 获取OPC Server 列表 function TForm1.OPCServerList: Boolean; var OPCServerList,OPCServerName:OleVariant; j,i:integer; begin Result := false; try FOPCServer := TOPCServer.Create(Self); OPCServerList:=FOPCServer.GetOPCServers; i:=VarArrayHighBound(OPCServerList,1); for j:=1 to i do begin OPCServer

3、Name:=VarArrayGet(OPCServerList,j); lboxServerName.Items.Add(OPCServerName); end; except Result := False; end; end; / 连接 OPC Server function TForm1.OPCServerConnect(sServerID:string): Boolean; begin Result := true; try FOPCServer.Connect1(sServerID); except Result := False; end; end; / 断开与 OPC 服务器的连

4、接 procedure TForm1.OPCServerDisconnect; begin if Assigned(FOPCServer) then begin if Assigned(FOPCGroup) then begin FOPCServer.OPCGroups.RemoveAll; FOPCGroup.Free; FOPCGroup := nil; end; FOPCItems := nil; FOPCItem := nil; FOPCServer.Disconnect; FOPCServer.Free; FOPCServer := nil; end; end; / 创建 连接 OP

5、C Group function TForm1.OPCGroupConnect(AGroupName: OleVariant): Boolean; begin Result := True; try FOPCGroup := TOPCGroup.Create(Self); FOPCGroup.ConnectTo(FOPCServer.OPCGroups.Add(AGroupName); FOPCGroup.UpdateRate :=1000; FOPCGroup.IsActive := True; FOPCGroup.IsSubscribed := True; / 事件支持 except Re

6、sult := False; end; end; procedure TForm1.BrowseItem(curNode:TTreeNode); var i: Integer; sItemName:WideString; begin with FOPCb do begin Filter:=*; DataType:=0; AccessRights:=0; ShowBranches; for i:=1 to Count do begin sItemName:=Item(i); TvItemView.Items.AddChild(curNode,sItemName); end; / TvItemVi

7、ew.Selected.Expand(true); end; end; procedure TForm1.ADDBrowserItem; var i,iOrg:integer; sItemName:WideString; begin FOPCb:=FOPCServer.CreateBrowser; iOrg:=FOPCb.Get_Organization; if iOrg=2 then /平坦式结构 begin with FOPCb do begin Filter:=*; DataType:=0; AccessRights:=0; ShowLeafs(true); for i:=1 to Co

8、unt do begin sItemName:=Item(i); TvItemView.Items.AddChild(SerVerNameNode,sItemName); end; end; end else begin /树状结构 BrowseItem(SerVerNameNode); end; end; procedure TForm1.SetBrowsePosition(sPosition:string); begin try FOPCb.MoveToRoot; caption:=sPosition; FOPCb.MoveDown(sPosition); except ; end; en

9、d; procedure TForm1.TvItemViewClick(Sender: TObject); var i: Integer; sItemName:WideString; begin ListBox1.Clear; SetBrowsePosition(TvItemView.Selected.Text); with FOPCb do begin Filter:=*; DataType:=0; AccessRights:=0; ShowLeafs(true); for i:=1 to Count do begin sItemName:=Item(i); ListBox1.Items.A

10、dd (sItemName); end; end; end; procedure TForm1.TvItemViewExpanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean); begin if not TvItemView.Selected.HasChildren then begin SetBrowsePosition(TvItemView.Selected.Text); BrowseItem(TvItemView.Selected); end; end; /添加一个项 procedure TForm1.

11、OPCItemAdd(sItemName:string); begin FOPCItems := FOPCGroup.OPCItems; FOPCItems.DefaultRequestedDataType:=0; FOPCItems.DefaultIsActive :=true; FOPCItem:=FOPCItems.AddItem(sItemName,ItemIndex); end; /读取指定项 function TForm1.ReadData(ItemName:string):OleVariant; var Value, Quality, TimeStamp: OleVariant; begin FOPCitem :=FOPCItems.Item(ItemName); if not Assigned(FOPCItem) then Exit; FOPCItem.Read(OPCDevice, Value, Quality, TimeStamp); ReadData :=Value; end;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号