欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

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

    • 资源ID:3155560       资源大小:37.52KB        全文页数:5页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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; / interface / 获取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 OPCServerName:=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 服务器的连接 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; / 创建 连接 OPC 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 Result := 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; / TvItemView.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 Count 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; end; 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.Add (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.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;

    注意事项

    本文(delphi用Automation接口编写OPC客户端.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开