一、什么是OPC
OPC(OLE for Process Control,用于过程控制的OLE)是 Microsoft COM/DCOM 技术在工控领域的应用。
OPC提供一套统一的标准,采用 C/S 模式,硬件厂商或其外包公司完成具有统一OPC接口标准的Server程序,软件厂商只需按照OPC标准编写Client程序访问Server程序,即可实现与硬件设备的通信。
// 连接 OPC Server
function TFrmMain.OPCServerConnect(AServerProgID:WideString): Boolean;
begin
Result := True;
try
FOPCServer := TOPCServer.Create(Self);
FOPCServer.Connect1(AServerProgID);
except
Result := False;
end;
end;
// 连接 OPC Group
functionTFrmMain.OPCGroupConnect(AGroupName: OleVariant): Boolean;
begin
Result := True;
try
FOPCGroup := TOPCGroup.Create(Self);
FOPCGroup.ConnectTo(FOPCServer.OPCGroups.Add(AGroupName));
// 定位到一个 Item
function TFrmMain.OPCItemOneStart():Boolean;
begin
Result := False;
ifnot OPCServerConnect(cnServerProgID) then
begin
OPCServerDisconnect;
Exit;
end;
ifnot OPCGroupConnect(cnGroupName) then
begin
OPCServerDisconnect;
Exit;
end;
try
OPCItemCreateOne(cnItemName);
Result := True;
except on E: Exception do
begin
OPCServerDisconnect;
ShowMessage(E.Message);
end;
end;
end;
// 断开与 OPC 服务器的连接
procedure TFrmMain.OPCServerDisconnect;
begin
ifAssigned(FOPCServer) then
begin
if Assigned(FOPCGroup) then
begin
FOPCServer.OPCGroups.RemoveAll;
FOPCGroup.Free;
FOPCGroup := nil;
end;
FOPCItems := nil;
FOPCItem := nil;