我想用Delphi7实现和OPC的通信,在网上参考了些别人的代码,能够连接上去,但一旦写数据或者读数据的时候就出错,不知道怎么回事,现把代码拷贝下来,大家一起看看。
Delphi7.0加载Siemens动态库:
1.打开Delphi7.0,点击Project->Import Type Library
2.在Import Type Library里面找到Siemens OPC DAAutomation 2.0 (Version 1.0),在Class Nams里面可以看三个类方法(TOPCGroups,TOPCGroup,TOPCServer),默认的Palette Page为ActiveX,单击Install…
Delphi7.0中编写客户端程序:
1.连接OPC服务器
在Form上面添加三个OPC控件:
OPCGroup1: TOPCGroup;
OPCGroups1: TOPCGroups;
OPCServer1: TOPCServer;
连接OPC
var
Group:OPCGroup;
testItem:OPCItem;
OPCItems:string;
OPCItemsValues:string;
OPCServer1.Connect1(‘kingview.view.1‘,‘结点名称(OPC主机名称)‘);//连接OPC服务器
OPCServer1.OPCGroups.DefaultGroupUpdateRate:=500;//设置更新频率
Group:=OPCServer1.OPCGroups.Add(‘MyGroup‘); //添加Group
testItem:=Group.OPCItems.AddItem(‘SCADA.YPA1_SILO_CHARGEWEIGHTACT.F_CV‘,1);//添加OPC数据项
读取OPC数据
var
myvalue,myquality,mytimestamp:OleVariant;
begin
testItem.Read(OPCDevice,myvalue,myquality,mytimestamp);
Edit1.Text:=myvalue;
end;
写OPC数据
var
myvalue:OleVariant;
begin
testItem.Write(myvalue);
end;
断开OPC
begin
OPCServer1.OPCGroups.RemoveAll;
OPCServer1.Disconnect;
end;