文档库 最新最全的文档下载
当前位置:文档库 › 第一部分OPC服务器

第一部分OPC服务器

第一部分OPC服务器
第一部分OPC服务器

第一部分OPC服务器

一、服务器工具包简介

(一)OPC简介

OPC(OLE for Process Control)是工控行业的软件接口标准,它试图按照标准的方法完成不同设备之间数据交换的问题。OPC 基金会是OPC规范的制定者,制定了数据访问、历史数据访问、事件与报警、批处理、OPC DA XML等一系列标准。OPC基于微软的COM技术,它具有如下的优点:

(1)高速的数据传输;

(2)基于分布式COM 的安全性管理机制;

(3)降低开发成本;

(4)实现具有高度柔韧性功能的系统;

(5)实现具有高可靠性的系统;

(二)工具包的特点:

北京图灵开物技术有限公司从事着OPC 的研究与开发工作。开发完成的工具包提供对OPC Data Access 2.04 规范(以下简称OPC DA 规范)的支持,工具包具有以下特点:(1)完全符合OPC Data Access2.04 标准;

(2)开发人员不需要了解COM机制及OPC数据访问服务器接口细节;

(3)支持多种开发工具,如VC、BC、VB、Delphi 等;

(4)不要求开发人员了解OPC技术中关于COM的具体技术,如ATL 等;

(5)用户开发简单容易;

(三)工具包对构建服务器的一些限制:

(1)工具包只支持构建进程外(EXE)服务器,不支持构建进程内(即DLL形式的)服务器。

(2)工具包对OPC DA规范要求的必选项提供全部支持,对于可选项,提供了部分支持,见下表

二、服务器端DA开发流程

(一)用工具包开发OPC服务器的框架

利用工具包开发的OPC服务器通常有如上图的结构。工具包并不是一个OPC服务器。用户必须对它进行包装,使得在工具包基础上建立的应用程序成为一个OPC服务器。

(二)调用工具包接口的流程图如下

关于上面流程的说明:

1.用户首先调用InitOPCSvr进行初始化。

2.初始化成功之后,注册回调函数(详见下一小节)。

3.用户通过CreateTag向OPC运行库可添加多个标签。

4.通过SetTagProperties函数设置标签属性。

5.调用RunSvr函数,运行服务器,这时,服务器可以向客户端提供服务。

6.用户和驱动通信,得到标签数据后,调用UpdateTag等函数刷新OPC运行库中标签的数据。

7.在服务服务器退出时,调用UninitOPCSvr。

(三)回调函数的注册与使用

在工具包有三个回调函数,当有某些事件发生时,OPC运行库通过三个回调函数通知用户或向用户发出请求。

1.当有客户端请求写标签数据时,OPC运行库调用通过EnableWriteNotification注册的函数。

2.当有客户端请求读设备数据时,OPC运行库调用通过EnableDeviceRead注册的函数。

3.当有客户端断开连接时,OPC运行库调用通过EnableDisconnectNotification 注册的函数。

(四)在DA的开发过程中,用户必须完成一些工作:

1.建立应用程序,加载OPC运行库。

2.按照工具包的提供的接口进行正确的函数调用。

3.与设备进行通信。

(五)工具包说明

OPC服务器作为一个COM 服务器,必须提供注册与反注册的功能。所以客户创建的应用程序,必须要有处理/regserver和/unregserver两个命令行参数的能力。当命令行参数为

/regserver时,用户调用RegServer函数注册服务器,当命令行参数为/unregserver时,用户调用UnregServer反注册服务器。

三、服务器工具包的接口描述

以下接口均采用stdcall调用规范。

(一)注册函数

1、BOOL RegServer(LPCSTR lpCLSID, LPCSTR lpSvrName, LPCSTR lpDescr,

LPCSTR lpExePath);

[功能说明] 该函数用来注册服务器。

[参数说明]

2、BOOL UnregServer(LPCSTR lpCLSID_Svr, LPCSTR lpName);

[功能说明] 该函数用来反注册服务器

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE

(二)初始化函数

1、BOOL InitOPCSvr(LPCSTR lpCLSID_Svr, UINT uServerRate);

[功能说明] 该函数用来初始化工具包动态库。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE

[附加说明] 一般情况下在动态库被加载时应被调用。如果函数调用成功,在动态库被卸载时应调用UninitOPCSvr()。

2、void UninitOPCSvr();

[功能说明] 该函数用来清理OPC 运行库。

3、BOOL RunSvr();

[功能说明] 调用该函数函数后,服务器开始客户端提供服务。

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

[附加说明] 函数的调用必须在成功的调用InitOPCSvr 初始化之后。建议在添加完标签后调用此函数。

(三)标签函数

1、HANDLE CreateTag (LPCSTR lpName, VARIANT Value, WORD wInitialQuality,

BOOL IsWrite);

[功能说明] 该函数用来添加标签。

[参数说明]

[返回值] 如果函数成功,返回非零标签句柄,否则返回零。

[附加说明] 用户应该保存该句柄,对标签的其他操作需要该句柄作为参数。2、BOOL SetTagProperties(HANDLE hTagHandle, DWORD dwPropertyID,

LPCSTR lpDescription, VARIANT Value);

[功能说明] 该函数用来设置标签的属性。

[参数说明]

[返回值] 如果函数成功,返回非零标签句柄,否则返回零。

3、BOOL UpdateTag(HANDLE hTagHandle, VARIANT Value, WORD wQuality); [功能说明] 该函数用来刷新标签的值和数据质量。成功调用后的标签的时间戳为当前时间。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

4、BOOL UpdateTagWithTimeStamp(HANDLE hTagHandle, VARIANT Value,

WORD wQuality, FILETIME TimeStamp);

[功能说明] 该函数刷新标签的值、数据质量及时间戳。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

5、BOOL UpdateTagByName(LPCSTR lpName, VARIANT Value, WORD wQuality); [功能说明] 该函数通过标签的ItemID 修改标签的值和数据质量。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

[附加说明] 如果添加了相同ItemID 的标签,只刷新第一个被添加的标签。

6、BOOL StartUpdateTags()

[功能说明] 该函数开始快速批量刷新标签。

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

[附加说明] 如果函数成功,调用UpdateTagToList 进行数据更新,最后必须调用EndUpdateTags 函数。

7、BOOL UpdateTagToList(HANDLE hTagHandle, VARIANT Value, WORD wQuality); [功能说明] 快速刷新标签列表。刷新后的标签时间戳为当前时间。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

8、BOOL EndUpdateTags();

[功能说明] 结束快速批量刷新标签。

9、BOOL ReadTag(HANDLE hTagHandle, PVARIANT lpValue);

[功能说明] 该函数读取标签的值。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

10、BOOL ReadTagWithTimeStamp(HANDLE hTagHandle, PVARIANT lpValue,

PWORD lpQuality; PFILETIME lpTimestamp);

[功能说明] 该函数读取标签的值、数据质量及时间戳。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

(四)回调注册函数:

1、BOOL EnableWriteNotification(WRITENOTIFYPROC lpCallback);

[功能说明] 该函数用来注册写回调函数。如果添加了可写标签,则应该注册写回调函数。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

[附加说明] WRITENOTIFYPROC 声明:

void WRITENOTIFYPROC(HANDLE hTagHandle, PVARIANT

pNewValue, PDWORD lpDeviceError);

[参数说明]

[附加说明] 如果不注册该函数,OPC 服务器将对所有的客户端请求

返回错误。OPC 运行库保证向WRITENOTIFYPROC 传

递的新值能够转换为用户指定的标准数据类型,如果用户

指定了一个模拟量标签的上下限(详见OPC DA 2.04 规

范 4.4.6),OPC 运行库保证向WRITENOTIFYPROC

传递的新值在上下限范围之内。注册RITENOTIFYPROC

函数应该支持多线程。OPC运行库保证不并发

WRITENOTIFYPROC 函数,但不能保证线程的唯一性。

2、BOOL EnableDeviceRead(DEVICEREADPROC lpCallback);

[功能说明] 该函数用来注册读设备回调函数。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

[附加说明] DEVICEREADPROC 声明:

void DEVICEREADPROC(HANDLE hTagHandle, PVARIANT lpValue,

PWORD lpQuality, PFILETIME lpTimeStamp);

[参数说明]

[附加说明] 如果不注册该函数,服务器将把所有的读设备请求转换

为读缓存请求。注册的DEVICEREADPROC 函数应该支

持多线程。OPC 运行库保证不并发访问

DEVICEREADPROC 函数,但不能保证线程的唯一性。

3、BOOL EnableDisconnectNotification(DISCONNECTPROC lpCallback);

[功能说明] 该函数注册客户端断开回调函数,当有客户端从设备断开时,调用

EnableDisconnectNotification 注册的函数。

[参数说明]

[返回值] 如果函数成功返回TRUE,否则返回FALSE。

[附加说明] DISCONNECTPROC 声明:

BOOL DISCONNECTPROC(DWORD dwNum);

[参数说明]

(五)工具包激活函数:

function ActiveCode(const UserName, Password: PChar): BOOL;

[功能说明]该函数用来激活工具包,用于序列号加密的版本。如果不调用此函数,

则工具包被当做DEMO版本处理。

[参数说明]

(六)服务器信息函数:

1、void SetMajorVersion(WORD wMajorVersion);

[功能说明] 该函数用来设置服务器主版本号。默认为零。

[参数说明]

2、void SetMinorVersion(WORD wMinorVersion);

[功能说明] 该函数用来设置服务器副版本号。默认为零。

[参数说明]

3、void SetBuildNumber(WORD wBuildNumber);

[功能说明] 该函数用来设置服务器版本创建号。默认为零。

[参数说明]

4、void SetVendorInfo(LPCSTR lpVendorInfo);

[功能说明] 该函数用来设置服务器厂商信息。默认为空。

[参数说明]

5、void SetBandWidth(DWORD dwBandWidth);

[功能说明] 该函数用来设置服务器的带宽。默认值为0xFFFFFFFF。

[参数说明]

6、void SetServerState(OPCSERVERSTATE SvrState)

[功能说明] 该函数用来设置服务器的运行状态。默认值为PC_STATUS_RUNNING。[参数说明]

[附加说明] OPCSERVERSTATE 声明:(在OPC DA 规范中定义)

enum tagOPCSERVERSTATE

{

OPC_STATUS_RUNNING = 1,

OPC_STATUS_FAILED = OPC_STATUS_RUNNING + 1,

OPC_STATUS_NOCONFIG = OPC_STATUS_FAILED + 1,

OPC_STATUS_SUSPENDED = OPC_STATUS_NOCONFIG + 1,

OPC_STATUS_TEST = OPC_STATUS_SUSPENDED + 1

}OPCSERVERSTATE;

四、服务器OPC Demo样例

以Delphi 为开发工具,利用工具包实现只有两个标准的DA 服务器。开发步骤如下:1.在Delphi 中建立一个应用,应用起名为OPCDemo。

2.将开发版的和放在搜索路径下。

3.OPC 运行库的引出函数和回调函数进行声明。

在工程中加入一个Unit,起名为,在该文件头引用Windows 和opctypes文件。

在对的引出函数进行声明以及CLSID、ProgID 和服务器的描述进行定义,在

Interface 部分加入如下代码:

interface

type

//写回调函数类型的声明

WRITENOTIFYPROC=procedure(handle:THandle;pNewValue:

PVARIANT;pDeviceError: PDWORD); stdcall;

//客户端断开类型函数的声明

DISCONNECTPROC = procedure(Numbr: DWORD); stdcall;

Const

//定义服务器的描述

SvrClsID : string= '{87A8CF77-32A4-44B0-B8ED-147B176C96F8}'; //定义CLSID

SvrName : string='OLKIT.2'; //定义ProgID

SvrDesc : string='OPC Server';

//对OPC 运行库的引出函数进行声明

function InitOPCSvr(pCLSID_Svr: LPCSTR; ServerRate: UINT): BOOL;

stdcall;external '';

procedure UninitOPCSvr; stdcall;external '';

function RegServer(pCLSID_Svr: LPCSTR; Name: LPCSTR; Descr: LPCSTR;

ExePath: LPCSTR): BOOL; stdcall;external '';

function UnregServer(pCLSID_Svr: LPCSTR; Name:LPCSTR ): BOOL;

stdcall;external '';

function RunSvr: BOOL; stdcall; external '';

function CreateTag (Name: LPCSTR; Value: VARIANT; InitialQuality: WORD;

IsWriteable: BOOL): THandle;stdcall; external '';

function SetTagProperties(TagHandle: THandle; PropertyID: DWORD;

Description: LPCSTR; Value: VARIANT): BOOL; stdcall;external '';

function UpdateTagWithTimeStamp(TagHandle: THandle; Value: VARIANT;

Quality: WORD; timestamp: FILETIME): BOOL; stdcall;external '';

function UpdateTag(TagHandle: THandle; Value: VARIANT;

Quality: WORD): BOOL; stdcall;external '';

function UpdateTagByName(Name : LPCSTR; Value: VARIANT; Quality:

WORD): BOOL; stdcall;external '';

function EnableWriteNotification(lpCallback: WRITENOTIFYPROC): BOOL;

stdcall;external '';

procedure WriteTag(Handle: THandle; pNewValue: PVARIANT;pDeviceError: PDWORD); stdcall;

function EnableDisconnectNotification(lpCallback: DISCONNECTPROC): BOOL;

stdcall;external '';

procedure SetServerState(SvrState: OPCSERVERSTATE); stdcall;external '';

4.工具包回调函数。

在文件中interface 部分加入如下代码:

procedure WriteTag(Handle: THandle; pNewValue:PVARIANT;

pDeviceError: PDWORD);stdcall;

procedure DisConnectServer(Numbr: DWORD); stdcall;

在impememnt 部分加入以下代码

//WRITENOTIFYPROC 回调函数

procedure WriteTag(Handle: THandle; pNewValue:PVARIANT;pDeviceError: PDWORD);stdcall;

begin

… … //对设备进行写操作

pDeviceError^ := 0; //假设设备永远成功。

end;

//DISCONNECTPROC 回调函数

procedure DisConnectServer(Numbr: DWORD); stdcall;

begin

if Numbr = 0 then //如果客户的连接个数为零

begin

UninitOPCSvr; //清理OPC 运行库

nate;//应用程序退出

end;

end;

5.对服务器的注册和注销参数进行处理,进行服务器的初始化和标签的初始化。

在主窗口单元内引用和opctypes 单元,添加主窗口创建事件OnFormCreate,在事件中添写如下代码:

if ParamCount>=1 then

begin

//如果传递的参数为“/regserver”,注册服务器

if LowerCase(ParamStr(1))='/regserver' then

begin

if RegServer(PChar(SvrClsID),PChar(SvrName),PChar(SvrDesc), PChar(me)) then

MessageBox(handle,'OPC 服务器注册成功...','提示',MB_OK) else

MessageBox(handle,'OPC 服务器注册失败...','提示',MB_OK);

nate;

end;

//如果传递的参数为“/unregserver”,注销服务器。

if LowerCase(ParamStr(1))='/unregserver' then

begin

if UnregServer(PChar(SvrClsID),PChar(SvrName)) then

MessageBox(handle,'OPC 服务器注销成功...','提示',MB_OK) else

MessageBox(handle,'OPC 服务器注销失败...','提示',MB_OK);

nate;

end;

end;

//初始化OPC 运行库

if InitOPCSvr(PChar(SvrClsID),500) then

var

H: THandle;

Begin

//注册WRITENOTIFYPROC 函数

EnableWriteNotification(@WriteTag);

//注册DISCONNECTPROC 函数

EnableDisconnectNotification(@DisConnectServer);

//设置服务器运行状态

SetServerState(OPC_STATUS_RUNNING);

//创建“TAG1”标签,得到“TAG1”的句柄

//以后对TAG1 标签操作都需要标签的句柄,所以用户需要对标签的句柄进行保存。

H:=CreateTag('TAG1', 0,192,true);

H:=CreateTa g('TAG2', 0,192,true);

… … //保存H

end;

6.创建一个定时器,在OnTimer 事件中进行标签的刷新。

在OnTimer 时间中添写如下代码;

//得到保存的TAG1 的标签句柄

H := …

//刷新标签数据

UpdateTag(H,Random(100),192);

H := … /

UpdateTag(H,Random(100),192);

7.注册服务器。

在开始—运行中输入”C:\Program Files\HuaFu\OPC Server\SAMPLES\dpsvr\” /regserver完成对开发完毕的OPC程序的注册。

8.服务器的发布。

五、附录:

(一)OPC DA规范中关于标签数据质量的描述

在OPC 中每个标签都必须有数据质量这个属性,OPC 的数据质量的数据类型为VT_I2,服务器通过该标签属性向客户发布标签的数据质量。OPC 基金会对标签数据质量的各个位做了一些定义,高八位由厂商自行定义,低八位的定义如下:低字描述为SSSSLL

Q:主状态

S:子状态

L:限定状态

低八位的高两位定义:

中间四位的定义:1.状态为0:

2.主状态为1:

3.主状态为3:

低两位的定义:

以上是OPC 数据质量的大致描述,详见OPC DA 规范6.8。

(二)OPC DA 规范中关于标签的属性

OPC 中每个标签都有自己属性,每个属性都要有属性ID,属性的数据类型,属性的值及属性的描述。其中规定有六种属性是必须有的,它们是:

另外,OPC 也定义一些其他可选的属性,详见OPC DA 2.04 规范 4.4.6;

(三)COM相关知识

使用工具包进行OPC DA 服务器的开发,需要掌握两个COM 的概念:

1.CLSID:用来标识一个COM 对象,是一个128 字节的数组。ActiveOPC 应用程序中提供产生CLSID 的方法。

2.ProgID:一个COM 对象的字符串标识,一般采用三段式格式,每段用“.”隔

离。产品名.厂商名. 版本号,例如.1。

(四)如何发布服务器

以下程序应随服务器一同发布

1.,安装路径%windir%\system32。

2.Opccomn_ps.dll,安装路径%windir%\system32。

3.运行版的和,安装路径为服务器软件的搜索路径。在客户的机器注册, Opccomn_ps.dll 对两个动态库,注册DA 服务器软件。

第二部分OPC客户端

一、工具包简介

(一)OPC简介:

OPC(OLE for Process Control)是工控行业的软件接口标准,它试图按照标准的方法完成不同设备之间数据交换的问题。OPC基金会是OPC规范的制定者,制定了数据访问、历史数据访问、事件与报警、批处理、OPC DA XML等一系列标准。

OPC基于微软的COM技术,它具有如下的优点:

(1)高速的数据传输;

(2)基于分布式COM的安全性管理机制;

(3)降低开发成本;

(4)实现具有高度柔韧性功能的系统;

(5)实现具有高可靠性的系统;

(二)工具包的特点:

北京图灵开物技术有限公司开发的OPC工具包提供对OPC Data Access 2.04规范(以下简称OPC DA规范)的支持,工具包具有以下特点:

(1)完全符合OPC Data Access2.04标准;

(2)开发人员不需要了解COM机制及OPC数据访问服务器接口细节;

(3)支持多种开发工具。如VC、BC、VB、Delphi等;

(4)不要求开发人员了解开发工具中实现COM的具体技术。如ATL等;

(5)用户开发简单容易;

二、O PC 客户端程序开发流程

(一)O PC客户端程序开发用到的相关知识

一个OPC客户端可以和一个或多个OPC服务器进行连接。如图2-1

OPCDA远程连接设置

OPC DA远程连接设置 局域网内OPC DA客户端访问OPC DA服务器是基于DCOM组件的远程调用。新的OPC U A协议通过证书互换的方式可以更为简单的进行远程连接。如OPC服务器支持OPC U A建议使用OPC U A协议进行通讯,因实际工程的需要此次试验OPC D A的远程访问。 网上查阅的资料大部分通过大范围的开放DCOM调用权限来进行OPC DA通讯,通过测试和深入了解发现OPC访问的设置并不复杂,而且可以通过针对性的配置降低安全风险。 试验硬件: 局域网; 架设C(客户端)电脑和S(服务器)电脑; 保证两台PC相互ping 通; 试验软件: KEPserverEX V6(OPC客户端)安装于客户端电脑; Applicom console (OPC服务器)安装于服务器电脑;(只支持OPC DA) 关键设置: 1、用户配置(C和S都要配置) 2、防火墙配置(开启防火墙的PC需要配置) 3、本地电脑的DCOM配置(C和S均需要配置) 4、OPC服务器程序的DCOM配置(仅S需要配置) 一、创建用户账户 在C和S 上分别创建一个拥有管理员权限的同名同密码账号,例如:PMI; 要进行OPC D A远程接,C必须使用该账户登录系统,通过配置S可以以该账户登录系统。 二、配置防火墙 一般防火墙默认情况是开启的,如果C和S都不开防火墙,可以省略防火墙的配置,建议先关闭防火墙进行连接测试,测试连通后再开启防火墙进行配置。 关于防火墙的配置在最后说明。

三、配置本地电脑的DCOM 运行comexp.msc -32 进入32 位DCOM组建服务界面,一般OPC软件位32 位,如果软件为64 位,运行comexp.msc进入64 位DCOM组件服务界面进行配置。 1、客户端C和服务器S 的DCOM配置 两台电脑均进入组件服务—我的电脑—属性 如下图进行设置:

远程访问OPC服务器设置

远程访问OPC服务器设置 OPC客户端一方面可以访问本机上的OPC服务器,另一方面,它还可以利用微软的DCOM机制,通过网络来访问其它计算机上的OPC服务器,从而达到远程数据连接的目的。访问本地服务器比较简单,只要检索本地的OPC服务器,并配置相应的组(Group)和数据项(Item)即可,通过网络访问时需要考虑较多的网络连接因素,大体上来说大概有如下的几个需要配置的方面(以WINXP Xp2为例): 一. 运行OPC客户端的计算机和运行OPC服务器的计算机需要彼此能互相访问。 1.1要保证其物理连接,也就是网线正确的连接着两台计算机。 1.2在这两台计算机上分别建立同一个账号及密码,比如用户名[opcuser],密码[123456](注 意:用户密码最好不要设置为空),在这两台计算上使用这个账户都可以登录系统。关于增加账号及密码请参考对应Windows操作系统的帮助文档。 1.3启用各自Windows操作系统的Guest权限。 完成上面几步后,应该达到的效果是:从任何一台计算机搜索另一台计算机,都可以搜索到,并且可以访问对方计算机的共享目录及共享打印机等资源。如下图: 即便用户没有共享任何东西,也会显示空的共享文件夹,而不会产生诸如”不能访问”

等信息。 如果不能访问对方的计算机,首先用ping命令来保证网络的连通,如果必要的情况下,可以关闭这两台计算机的防火墙(无论是winxp xp2自带的防火墙还是专用的防火墙)以及杀毒软件,以杜绝可能产生的问题。 如果访问另一台计算机产生”拒绝访问”的错误,可从网络查找相关资源进行解决。 二. 配置OPCServer所在的计算机 2.1 注册OPCEnum.exe。 opcenum.exe是运行在服务器端的用于枚举本机OPC服务器的服务程序,由OPC基金会提供。注册opcenum有如下几种方式:a)将opcenum.exe拷贝到系统目录下,然后用命令行运行opcenum /regserver 来注册它。b)安装一些OPC服务器程序时会自动安装并注册这个服务程序,比如iconics的模拟OPC服务器程序。c)运行OPC基金会的OPC Core Redistributable安装包,其中包含必要的模块程序。 考虑到远程访问OPC服务器应用较少,以及opcenum.exe对一般用户在系统安全方面带来的混淆,在HMIBuilder中的OPC服务器本身不带OPCEnum.exe,用户根据自己的需要自行注册。 2.2 配置本机的DCOM安全 2.2.1 在命令行运行dcomcnfg,如下图: 产生配置界面如下:

OPC 连接名 配置

用SIMATIC NET通过ETHERNET 建立OPC 服务器与S7 PLC 的S7 连接 1.OPC 服务器与PLC S7 连接通讯的组态 步骤一:配置PC 站的硬件机架 当SIMATIC NET 软件成功安装后,在PC 机桌面上可看到Station Configurator 的快捷 图标,同时在任务栏(Taskbar)中也会有Station Configuration Editor 的图标。 图1: Station Configurator 桌面快捷图标 图2:任务栏中的图标 1) 通过点击图标打开Station Configuration Editor 配置窗口

2) 选择一号插槽,点击Add 按钮或鼠标右键选择添加,在添加组件窗口中选择OPC Server 点击OK 即完成。 2) 同样方法选择三号插槽添加IE General

插入IE General 后,即弹出其属性对话框。点击Network Properties,进行网卡参数配置 4) 网卡的配置 点击Network Properties 后,WINDOWS 网络配置窗口即打开,选择本地连接属性菜单设置网卡参数,如IP 地址,子网掩码等。 5) 分配PC Station 名称 点击“Station Name”按钮,指定PC 站的名称,这里命名为PCStation。点击“OK”确认即完成了PC 站的硬件组态

步骤二:配置控制台(Configuration Console)的使用与设置 1) 配置控制台(Configuration Console)是组态设置和诊断的核心工具,用于PC 硬件组件和PC 应用程序的组态和诊断。 2) 正确完成PC 站的硬件组态后,打开配置控制台(start→simatic→simatic net→Configuration console),可以看到所用以太网卡的模式已从PG mode 切换到Configuration mode,插槽号(Index)也自动指向3。

opc服务器与s7-plcs7连接的建立

一、实验名称:OPC服务器与S7-PLC S7连接的建立 二、实验目的:本试验通过ETHERNET使用OPC技术, 实现matlab与西门子s7300的数据交 换。 三、实验设备 1、硬件要求 S7-300PLC;西门子交换机X208;PC机。 2、软件要求 西门子step7;SIMATIC NET。 四、实验内容及步骤 通过ETHERNET 建立OPC 服务器与S7 PLC 的S7 连接(基于先进的PC组态)。 1、OPC 服务器与PLC S7 连接通讯的组态 步骤一:配置PC 站的硬件机架 当SIMATIC NET 软件成功安装后,在PC机桌面上可看到Station Configurator 的快捷图标,同时在任务栏(Taskbar)中也会有Station Configuration Editor 的图标。 1) 通过点击图标打开Station Configuration Editor 配置窗口 2) 选择一号插槽,点击Add 按钮或鼠标右键选择添加,在添加组件窗口中选择OPCServer 点击OK即完成。

3) 同样方法选择三号插槽添加IE General 图4:添加IE General

插入IE General 后,即弹出其属性对话框。点击Network Properties,进行网卡参数配置。 4) 网卡的配置 点击Network Properties 后,WINDOWS 网络配置窗口即打开,选择本地连接属性菜单设置网卡参数,如IP 地址,子网掩码等。步骤如图6,图7,图8。确认各步设置后,网卡配置完成。 图6: 本地连接

图7:网卡属性选择 图8:分配普通网卡参数

AB PLC通过OPC方式通讯的连接方法

AB PLC通过OPC方式通讯的连接方法 Rockwell Automation 的A-B PLC是一个著名的可编程控制器产品。其产品体系基本上涵盖了工业控制产品的各个领域,由于A-B的PLC的种类繁多,且各种类型的PLC支持的通信协议不尽相同,使得第三方的HMI软件都不能很好的与A-B PLC进行连接。RSLinx软件是A-B PLC通用的通信配置软件(2.2以上的版本支持对以太网的网关配置),目前主要有以下几个版本:RSLinx OEM、RSLinx Professional 、RSLinx Gateway、RSLinx SDK四个版本。且均支持OPC服务(2.3版以上支持OPC2.0版)。 多数上位机软件已内嵌了OPC服务功能,支持OPC客户端和OPC服务器的工作方式。这样就可以很方便的与A-B PLC进行通信。具体的配置方法如下: 与A-B PLC进行OPC的配置是必须要有A-B PLC及相关的通讯附件。 1、安装A-B PLC 、通讯卡、相关的软件,并作物理连接。 2、使用RSLinx连接A-B PLC的通讯网络。 配置通讯卡(参加图1),选择ConFigure Drivers。 图1 弹出入下的配置窗口(参见图2)。

图2 选择对应的通讯卡,并进行端口配置(可参照附带的安装手册),配置成功后将显示所配置的设备的运行状态。 使用RSWho命令查找连接的PLC设备(参见图3)。 参见图3 RSWho命令成功的执行后,将在设备列表中列出与本机连接的所有硬设备(参见图4)。

图4 使用Topic Configoration来进行OPC服务的配置(参见图5)。 图5 在Date Source配置框中配置Topic,选择一个物理设备(PLC),按New按钮即可建立一个Topic,在DATA SOURCE中选中你所要连接的物理设备,选中后,单击Done即可(参见图6)。

OPC服务器开发的几种方法

OPC服务器开发的几种方法 陈丹丹钱美夏立邵英 (武汉海军工程大学 湖北 武汉 430033) 摘要:简要介绍了OPC DA规范,描述了OPC DA(数据访问)服务器开发的三种方法:使用MFC的COM库函数开发OPC服务器、通过ATL开发OPC服务器和利用工具包快速开发OPC服务器,最后对三种方法的特点作出了比较。 关键词:OPC;ATL;服务器开发 Abstract: Simply describe the OPC DA specification ,then three Methods of server model design based on OPC DA(Data Access) specification are introduced. The three methods are using MFC ATL and the fast developmentToolkit to develop OPC server.At last, compare the characteristics of three methods . Key words: OPC;ATL;Server development 1.引言: OPC DA (OPC 数据访问规范)是OPC基金会最早发布的一个工业标准,主要是对现场设备的在线数据进行存取,目前已经发展到OPC DA 3.0版本。OPC基于微软的OLE/COM原理,采用客户/服务器模式。OPC 数据访问服务器主要由服务器对象、组对象和项对象组成。OPC 服务器对象维护服务器的有关信息并包容OPC组对象,可以动态的创建或释放组对象;而OPC 组对象维护有关其自身的信息并包容OPC项,逻辑上管理OPC项;OPC项则标识了与OPC服务器中数据的连接。OPC项不可以由OPC客户直接操作,所有对OPC项的操作都是通过包容该项的OPC组对象进行的。而OPC服务器对象和组对象是聚合关系,即OPC服务器对象产生OPC组对象后,将组对象的指针传递给客户,由客户之间操作对象。这样既提高了数据存取的速度也易于功能扩展,体现了组件软件的重用性。 它支持COM技术的双向通信机制,具有事件驱动功能,当OPC服务器的数据发生变化时它能自动通知OPC客户。在OPC1.0规范中事件驱动使用的是COM的通报连接机制,在OPC2.0规范中又增加了对连接点的支持。而一般的数据采集应用程序,从数据源读数据是主动的,相当于客户主动访问服务器的数据。这就要求客户不断地查询服务器的数据,不管服务器的数据是否发生了变化,增加了系统的开销。因此OPC DA的效率大大高于一般的数据采集应用程序。 2.OPC 服务器开发概述 OPC 服务器的设计与实现是一个较为复杂与繁重的任务,设计者需要有很高的编程水平,熟悉OPC规范,同时也必须掌握相应的硬件产品特性。OPC 数据服务器大致可以分解为不同的功能模块:OPC 对象接口管理,Item 数据项管理以及服务器界面和设置等[1]如图1。 图1.OPC服务器结构图 一个设备的OPC服务器主要由两部分组成,OPC标准接口的实现和与硬件设备的通信。OPC服务器的开发必须以OPC规范为基础,实现各个对象及其接口。下面将就OPC标准接口

局域网内远程连接OPC配置方法详解

局域网内远程连接O P C 配置方法详解 The manuscript was revised on the evening of 2021

一.运行环境 OPC服务器操作系统:Win7,客户端操作系统:Win7,如果是XP系统则配置方法类似(见后面)。 由于OPC(OLE for Process Control)建立在Microsoft的COM(Component Object Model)组件对象模型基础上,并且OPC的远程通讯依赖Microsoft的DCOM(Distribute COM),安全方面则依赖Microsof的Windows安全设置。 二.配置 (配置前先对注册表备份,特别是关键的几个项单独导出 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DCOM和 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole) 1.保持OPC Server服务器与客户端的用户名密码相同。(服务器端与客户端) 分别在客户端和服务端上添加相同的账户名和密码,一定要确保相同。因为访问是通过windows验证的,在远程访问时需要有着相同的账户和密码。操作如下: 若是为了安全考量,请保持密码不为空。要想使新创建的用户有使用DCOM的权限,需要将用户加入“Distribute COM Users”用户组。 2.关闭防火墙或在防火墙设置中将相应的程序和端口加入到例外(服务器端与客户端)

服务器端的防火墙设置中OPC服务器软件端口例外 3.组件服务配置(服务器端) 操作:开始--》运行--》输入:dcomcnfg 在“组件服务”管理器的左侧树形菜单,选择“组件服务\计算机\我的电脑”,在鼠标右键的弹出菜单,选择“属性”项目,在弹出的“我的电脑属性”,选择“默认属性”标签页,如下图: 注意,若“我的电脑”显示红色向下箭头,右键无“属性”项,处理如下: a.在运行中输入msdtc –resetlog; b.在命令行下运行 msdtc -uninstall,删除了 msdtc(Distributed Transaction Coordinator)服务 c.重新启动机器后,在命令行下运行 msdtc -install,安装 msdtc 服务。

opc服务器

Opc 1、在控制领域中,系统往往由分散的各子系统构成;并且各子系统往往采用不同厂家的设备和方案。用户需要,将这些子系统集成,并架构统一的实时监控系统。 2、这样的实时监控系统需要解决分散子系统间的数据共享,各子系统需要统一协调相应控制指令。 3、再考虑到实时监控系统往往需要升级和调整。 4、就需要各子系统具备统一的开放接口。 5、OPC(OLE for Process Control) 规范正是这一思维的产物。 6、OPC 基于Microsoft公司的Distributed interNet Application (DNA) 构架和Component Object Model (COM) 技术的,根据易于扩展性而设计的。OPC规范定义了一个工业标准接口。 7、OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。 8、OPC定义了一个开放的接口,在这个接口上,基于PC的软件组件能交换数据。它是基于Windows的OLE——对象链接和嵌入、COM——部件对象模型(Comp onent Object Model)和DCOM——分布式COM(Distributed COM)技术。因而,OP C为自动化层的典型现场设备连接工业应用程序和办公室程序提供了一个理想的方法。 OPC应用领域 1、工控解决方案用户 2、楼控解决方案用户 3、工控解决方案厂商 4、楼控解决方案厂商 5、工控解决方案集成商 6、楼控解决方案集成商 7、All Automation Fields OPC是为了连接数据源(OPC服务器)和数据的使用者(OPC应用程序)之间的软件接口标准。数据源可以是PLC,DCS,条形码读取器等控制设备。随控制系统构成的不同,作为数据源的OPC服务器即可以是和OPC应用程序在同一台计算机上运行的本地OPC服务器,也可以是在另外的计算机上运行的远程OPC服务器。 OPC接口既可以适用于通过网络把最下层的控制设备的原始数据提供给作为数据的使用者(OPC应用程序)的HMI(硬件监督接口)/SCADA(监督控制与数据采集),批处理等自动化程序,以至更上层的历史数据库等应用程序,也可以适用于应用程序和物理设备的直接连接。所以OPC接口是适用于很多系统的具有高厚度柔软性的接口标准。

ABLC通过OPC方式通讯的连接方法

A B L C通过O P C方式 通讯的连接方法 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

AB PLC通过OPC方式通讯的连接方法 Rockwell Automation 的A-B PLC是一个着名的可编程控制器产品。其产品体系基本上涵盖了工业控制产品的各个领域,由于A-B的PLC的种类繁多,且各种类型的PLC支持的通信协议不尽相同,使得第三方的HMI软件都不能很好的与A-B PLC进行连接。RSLinx软件是A-B PLC通用的通信配置软件以上的版 本支持对以太网的网关配置),目前主要有以下几个版本:RSLinx OEM、 RSLinx Professional 、RSLinx Gateway、 RSLinx SDK四个版本。且均支持OPC服务版以上支持版)。 多数上位机软件已内嵌了OPC服务功能,支持OPC客户端和OPC服务器的工作方式。这样就可以很方便的与A-B PLC进行通信。具体的配置方法如下: 与A-B PLC进行OPC的配置是必须要有A-B PLC及相关的通讯附件。 1、安装A-B PLC 、通讯卡、相关的软件,并作物理连接。 2、使用RSLinx连接A-B PLC的通讯网络。 配置通讯卡(参加图1),选择ConFigure Drivers。 图1 弹出入下的配置窗口(参见图2)。

图2 选择对应的通讯卡,并进行端口配置(可参照附带的安装手册),配置成功后将显示所配置的设备的运行状态。 使用RSWho命令查找连接的PLC设备(参见图3)。 参见图3 RSWho命令成功的执行后,将在设备列表中列出与本机连接的所有硬设备(参见图4)。

PCS7远程访问OPC服务器设置

OPC服务器设置 OPC客户端一方面可以访问本机上的OPC服务器,另一方面,它还可以利用微软的DCOM机制,通过网络来访问其它计算机上的OPC服务器,从而达到远程数据连接的目的。访问本地服务器比较简单,只要检索本地的OPC服务器,并配置相应的组(Group)和数据项(Item)即可,通过网络访问时需要考虑较多的网络连接因素,大体上来说大概有如下的几个需要配置的方面(以WINXP Xp2为例): 一. 运行OPC客户端的计算机和运行OPC服务器的计算机需要彼此能互相访问。 1.1要保证其物理连接,也就是网线正确的连接着两台计算机。 1.2在这两台计算机上分别建立同一个账号及密码,比如用户名[opcuser],密码[123456](注 意:用户密码最好不要设置为空),在这两台计算上使用这个账户都可以登录系统。关于增加账号及密码请参考对应Windows操作系统的帮助文档。 1.3启用各自Windows操作系统的Guest权限。 完成上面几步后,应该达到的效果是:从任何一台计算机搜索另一台计算机,都可以搜索到,并且可以访问对方计算机的共享目录及共享打印机等资源。如下图: 即便用户没有共享任何东西,也会显示空的共享文件夹,而不会产生诸如”不能访问”

等信息。 如果不能访问对方的计算机,首先用ping命令来保证网络的连通,如果必要的情况下,可以关闭这两台计算机的防火墙(无论是winxp xp2自带的防火墙还是专用的防火墙)以及杀毒软件,以杜绝可能产生的问题。 如果访问另一台计算机产生”拒绝访问”的错误,可从网络查找相关资源进行解决。 二. 配置OPCServer所在的计算机 2.1 注册OPCEnum.exe。 opcenum.exe是运行在服务器端的用于枚举本机OPC服务器的服务程序,由OPC基金会提供。注册opcenum有如下几种方式:a)将opcenum.exe拷贝到系统目录下,然后用命令行运行opcenum /regserver 来注册它。b)安装一些OPC服务器程序时会自动安装并注册这个服务程序,比如iconics的模拟OPC服务器程序。c)运行OPC基金会的OPC Core Redistributable安装包,其中包含必要的模块程序。 考虑到远程访问OPC服务器应用较少,以及opcenum.exe对一般用户在系统安全方面带来的混淆,在HMIBuilder中的OPC服务器本身不带OPCEnum.exe,用户根据自己的需要自行注册。 2.2 配置本机的DCOM安全 2.2.1 在命令行运行dcomcnfg,如下图: 产生配置界面如下:

局域网内远程连接OPC配置方法详解

Win7系统局域连接OPC配置 一.运行环境 OPC服务器操作系统:Win7,客户端操作系统:Win7,如果是XP系统则配置方法类似(见后面)。 由于OPC(OLE for Process Control)建立在Microsoft的COM(Component Object Model)组件对象模型基础上,并且OPC的远程通讯依赖Microsoft的DCOM(Distribute COM),安全方面则依赖Microsof的Windows安全设置。 二.配置 (配置前先对注册表备份,特别是关键的几个项单独导出 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DCOM和 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole) 1.保持OPC Server服务器与客户端的用户名密码相同。(服务器端与客户端) 分别在客户端和服务端上添加相同的账户名和密码,一定要确保相同。因为访问是通过windows验证的,在远程访问时需要有着相同的账户和密码。操作如下: 若是为了安全考量,请保持密码不为空。要想使新创建的用户有使用DCOM的权限,需要将用户加入“Distribute COM Users”用户组。 2.关闭防火墙或在防火墙设置中将相应的程序和端口加入到例外(服务器端与客户端) 服务器端的防火墙设置中OPC服务器软件端口例外

3.组件服务配置(服务器端) 操作:开始--》运行--》输入:dcomcnfg 在“组件服务”管理器的左侧树形菜单,选择“组件服务\计算机\我的电脑”,在鼠标右键的弹出菜单,选择“属性”项目,在弹出的“我的电脑属性”,选择“默认属性”标签页,如下图: 注意,若“我的电脑”显示红色向下箭头,右键无“属性”项,处理如下: a.在运行中输入msdtc–resetlog; b.在命令行下运行msdtc -uninstall,删除了msdtc(Distributed Transaction Coordinator)服务 c.重新启动机器后,在命令行下运行msdtc -install,安装msdtc服务。

局域网内远程连接OPC配置方法详解

wn 系统局域连接OPC 配置 一.运行环境 OPC 服务器操作系统: wn ,客户端操作系统: wn ,如果是XP 系统则配置方法类似(见后面)。 由于 OPC ( OLE for Process Control )建立在 Microsoft 的 COM ( Component Object Model )组件对象 模型基础上,并且 OPC 的远程通讯依赖 Microsoft 的DCOM ( Distribute COM ),安全方面则依赖 Microsof 的Windows 安全设置。 二?配置 (配置前先对注册表备份,特别是关键的几个项单独导出 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Wi ndows NT'DCOM 和 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole ) 1. 保持OPC Server 服务器与客户端的用户名密码相同。 (服务器端与客户 端) 分别在客户端和服务端上添加相同的账户名和密码,一定要确保相同。因为访问是通过 win dows 验证的,在 远程访问时需要有着相同的账户和密码。操作如下: 若是为了安全考量,请保持密码不为空。要想使新创建的用户有使用 的权限,需要将用户加入 a Distribute COM Users ”用户组。 2. 关闭防火墙或在防火墙设置中将相应的程序和端口加入到例外 (服务器端与客户端) 十算机管理侔地) 0揺工具 L- G 睁网曲 A 期事 件査看器 崑共享文件夹 M 期不地用户和组 J 用户 4组 宜设备管理器 存擔 冒磁盘管理 勺服务和应用程序 名称 匚 Administrator *-ASPNET ■ FixIOUser Guest 儿OPC 全名 描述 管理计 https://www.wendangku.net/doc/a314863819.html, Machin... Account L FixIOUser A 匚count f 供来宾访叵 OPC OPC 常规 隶属刃配蚤文件 _________________ 隶于Oi ): Admini s trat ors Distributed COM Users

WINCC-OPC服务器配置

两台WinCC 之间OPC通讯方法(WinXP ) OPC客户端 1登陆计算机名及密码要与服务器端(OPCServer)一致。 a)女口:用户名:admi ni strator 密码:1234 2、OPC客户端要与服务器端处于同一个网络。 a)女口:OPCServer IP: 192.168.0.100 b)女口:OPClient IP: 192.168.0.101 3、关闭Windows防火墙或者在弹出Window安全警报Loader for WinCC datamage中选择解除阻止。 4、运行DCOMCNFG .EXE a)在弹出的组件服务右击我的电脑->选择属性->选择COM安全 b) 或

一 r 访问权隈 塔可昼编辑默认僭谊下允许访问应用程序的用P.您也可以 在应甬程序上设置限制以决定蔑权限. 翳输眼制(!)….| 歸默认値斬鸟 启动和激活权限 您可以编辑默认焙呪下允许启动应用程厚或激活对彖的用 P.您也越以在应用程序上设置限制以决足茸权限. ■辑限制?…I 編辑款认值?) ■…I 确定] 取稱 | _ c) 在访问权限中选择编辑限制 *三|;沖一 遐或用 P 宕称⑤ gjABijmiUS llXkiN Everyone 新)om ) | ttf^r R ANOFTMO^ LO (?3U 的和艰 Igi 允许 拒绘 本地访何 回 □ □ 确定 I 常规1 选项 1默认愿i 谿人协议 COM 安宝 我的电店扉牲 MSDTC

d) ANONMOUS LOGON 组中选中远程访问。 5、剩下的就是在WinCC创建客户端项冃。效杲如图: < V.wIT-FfT tei OPC: 1 50 1J 6 、 D * ■卜■ ■ ■,?.t? LriXbtl*ru -「匕?M1AI 1TLQ订nUKBUlcmiCLTmjECrsWrrTHQ -□! M| jtPrtFf 義聲I

OPC与PLC连接配置

本次以MelsetExplorer为例讲述如何与三菱PLC的以太网连接1,打开OPC软件如下图 在左边空白处右击,左击New Device(新设备)如下图

出现了如上图所示的新设备设置,可以暂时全部选择默认然后直接点击OK 当新建完设备之后出现如上图所示的界面,右击Device,选择新建Group,并且命名,命名完之后就点击OK,之后再在新建的Group中右击新建一个新Tag,这个Tag值就是与PLC设备中可以相对应的地址可以自行设定地址tag设置如下图: 名称可自己更改,PLC处的可以选择很多,这边以数据寄存器来示范,

设定是数据号如上图就是D0,另外DataType设定数据的类型(short表示字节)表示一次可以发送一个字节的数据 2,到此界面处的设置已完成,但是与外部PLC的连接部分还未设置,下面就对OPC 与PLC连接的部分的设置: 点击菜单栏中Project下的Port setting 如下图: 如果使用的是COM口的话直接就用现成的COM口,但是如果使用的是网络与PLC的以太网模块用网络相连,所以需要点击New port创建一个新的 如上图,名字随意取,Select port:当选择以太网的时候选择第二个Ethernet port 点击下一步之后会出现下图的界面:

Adapter IP的设置根据自己电脑无线或者有线的IP地址设置 MELSEC IP Address的设置是所需要连接的PLC以太网模块中所设置的IP地址 3,当新建完port之后,再回到第一步中新建完Device的设置,对设备的设置进行更改一下,右击左上方的Device,点击properties(属性)中设置端口,如下图:

最简单的访问OPC服务器方法

最简单的访问OPC服务器 在网上搜了很多关于编写客户端访问OPC服务器的资料,同时也根据KEPWARE提供的案例源代码,同时进行研究,最后花了一个星期的时间进行研究,才粗略有了一点头绪,现共享出来,希望后来的初学者有所帮助。 一.要建一个OPC服务器 1)安装OPC服务器软件,KEPware是大家比较常用的,我使用的是Kepware OPC 。如图,添加CHANNEL,添加TAG.把Plc的点位添加进去,我建了6个变量(item)。具体添加的方法需要自行去学习。我添加的三菱Q系列的PLC,PLC采用以太网通讯的方式,在局部网就可以访问了。 2)设置DCOM,这个步骤很重要,具体的设置方法,网上很多资料,按步骤设置就可以。我原来按照组态王提供的方法,总是不成功,后来上了微软网站,按微软提供的方法设置肯定可以成功。 完成了以上两步,你的电脑就变成OPC服务器了。 二.访问服务器 1.利用组态软件访问OPC服务器。 如果用组态王访问,那就太简单了,左边列表,选opc服务器,点击添加服务器,就会弹出一个窗口,把本机的OPC服务器列成清单。在清单里面就可以发 现KEPSERVER的名称:选择,然后按确定,就完成了添加服务器。

在组态王的数据词典,新建变量,I/O变量,连接设备选择OPC服务器,寄存器可以看到KEPserver的变量(item),建立之后,就可以利用组网王,开发监控应用,组态软件的使用在此就不赘述了,总之,利用组态软件访问OPC是最简单的。 2.用开发客户端访问 访问opc服务器,必须使用OPC基金会提供的。学习过程,最好下载说明书,《OPC_20_Automation_Interface》,网上可以下载。

通过OPC转发数据的配置方法

Cybercontrol通过OPC通讯方式向外转发数据配置方法,此处只说明配置过程,不说明为什么这么配置,由于我也不清楚OPC到底是怎么个通讯机制,此处还请高手们补充。 类型一:OPC服务器和客户端在同一台电脑 这种情况下不需要配置DCOM,只需将Cybercontrol数据库中需要转发的数据在“静态标志”中将“参与OPC”勾上,然后启动OPC服务器“CspaServer”即可,客户端即能搜索到“CspaServer”。 类型二:OPC服务器和OPC客户端分别在不同电脑 该情况下首先配置服务器数据库,将Cybercontrol数据库中需要转发的数据在“静态标志”中将“参与OPC”勾上,然后启动OPC服务器“CspaServer”,这样我们的数据库就算配置好了。下面还要配置服务器和客户端的DCOM,下面将具体介绍DCOM的配置方法。 首先要注意,不同操作系统的DCOM配置方法是不一样的,但是需要配置的地方时一样的,只是途径不同。这里以XP SP3操作系统为例介绍安装了Cybercontrol的计算机做为OPC服务器的DCOM配置方法。 第一步:关闭服务器和客户端的防火墙; 第二步:进入WINDOWS控制面板,双击“WINDOWS防火墙”图标,打开“WINDOWS防火墙”设置对话框,选中“例外”选项卡,把相应客户端程序(以OPC Client为例)和Server 程序(CspaServer)添加进例外列表。同时添加Microsoft Management Console (mmc.exe 在Windows\System32目录下)和OPC 应用程序OPCEnum (opcenum.exe 在Windows\System32 目录下) 到例外列表中。最后确保“文件和打印机共享”也被选中在例外列表中。

WINCC_OPC服务器配置

两台WinCC之间OPC通讯方法(WinXP) OPC客户端 1、登陆计算机名及密码要与服务器端(OPCServer)一致。 a) 如:用户名:administrator 密码:1234 2、OPC客户端要与服务器端处于同一个网络。 a) 如:OPCServer IP:192.168.0.100 b) 如:OPClient IP:192.168.0.101 3、关闭Windows防火墙或者在弹出Window安全警报Loader for WinCC datamage中选择解除阻止。 或 4、运行DCOMCNFG.EXE a) 在弹出的组件服务右击我的电脑->选择属性->选择COM安全 b)

c) 在访问权限中选择编辑限制

d) ANONMOUS LOGON组中选中远程访问。 5、剩下的就是在WinCC创建客户端项目。效果如图: 6、

OPC服务器端 1、登陆计算机名及密码要与服务器端(OPCClient)一致。 a) 如:用户名:administrator 密码:1234 2、OPC客户端要与服务器端处于同一个网络。 b) 如:OPCServer IP:192.168.0.100 c) 如:OPClient IP:192.168.0.101 3、关闭Windows防火墙或者在弹出Window安全警报Loader for WinCC datamage中选择解除阻止。 或 4、运行DCOMCNFG.EXE d) 在弹出的组件服务右击我的电脑->选择属性->选择COM安全 e)

f) 在访问权限中选择编辑限制

g) ANONMOUS LOGON组中选中远程访问。 5、打开DCOM配置。如图: a) b)选择OPCEnum和OPCServer.WinCC项。 c)

OPC配置方法

OPC接口配置指南 1.1OPC简介 OPC接口,在BMS集成占绝大部分,现阶段,项目中一般都会有三到四个子系统提供的第三方接口为OPC接口。 一般来说OPC接口配置,在操作系统中同一系统配置都比较方便,不同系统之间,配置麻烦一点。例如XP对XP 关于OPC的详细资料可参考https://www.wendangku.net/doc/a314863819.html,/view/135910.htm 1.2OPC远程访问配置 1.2.1基本设置 关闭防火墙 关闭服务器/客户端的“防火墙”。默认情况下,防火墙将阻止外部“未被请求”的连接通过网络,而管理员可以在规则之外设置特定的应用程序或端口来响应外部“未被请求”的连接。 更改帐号 同时服务器/客户端操作系统有用户名和密码必须一致。 1.2.2DCOM配置 运行—dcomcnfg—组件服务—计算机—我的电脑右键—属性: 1.点击“开始”->“运行”。输入DCOMCnfg,回车,打开“组件服务”窗口。 2.双击“控制台根目录”下的“组件服务”展开“组件服务”文件夹,同样方式,展开“计算机”文件夹,右键点击右侧窗口的“我的电脑”图标,点击“属性”,打开属性对话框。

3. 进入DCOM的总体“默认属性”页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。 4.选中“COM 安全”选项卡,注意这里有4个按钮可供点击进入配置。

5点击上图中红色方框,进入相应用户权限配置页面。 将5个用户(administrator、everyone、interactive、network、guest)允许权限都打上勾。如果用户不存在,可“添加”—“快速查找“

上位机程序OPC服务器配置

通过ETHERNET 建立OPC 服务器与S7 PLC 的S7 连接 (基于先进的PC 组态) 一.OPC 服务器与PLC S7 连接通讯的组态 1. 配置PC 站的硬件机架 当SIMATIC NET 软件成功安装后,在PC 机桌面上可看到Station Configurator 的快捷图标,同时在任务栏(Taskbar)中也会有Station Configuration Editor 的图标。如图1。 图1:Station Configuration Editor 的图标 2. 通过点击图标打开Station Configuration Editor 配置窗口,如图2. 图2:Station Configuration Editor 配置窗口

3. 选择一号插槽,点击Add 按钮或鼠标右键选择添加,在添加组件窗口中选择OPC Server 点击OK 即完成。如图3. 图3:添加OPC Server 4. 同样方法选择三号插槽添加IE General,如图4. 图4:添加IE General

插入IE General 后,即弹出其属性对话框。点击Network Properties,进行网卡参数配置。 图5:网卡属性 5. 网卡的配置 点击Network Properties 后,WINDOWS 网络配置窗口即打开,选择本地连接属性菜单设置网卡参数,如IP 地址,子网掩码等。步骤如图6,图7,图8。注意,IP 地址要和PLC的IP地址处于同一网段内(PLC的IP地址为192.168.9.1)。一般两台工控机的IP地址分别为192.168.9.110和192.168.9.111。确认各步设置后,网卡的配置完成。 图6: 本地连接

OPC配置方法(含防火墙)

第一种方法:(如配置不成功,尝试第二种方法) 在WINDOWS XP SP2系统中使用OPC的DCOM配置方法V1.0 大多数OPC Clients和OPC Servers利用DCOM通过网络进行通信。在XP SP2中,经由DCOM的OPC 通信是默认关闭的,本文讨论了当使用XP SP2时重建OPC通信的必要设置方法。 由于OPC使用的回调方法使得OPC Client转变为DCOM server同时使OPC Server转变为一个DCOM client,所以本文中提供的配置方法应在包含有OPC Server和OPC Client的客户端节点上分别进行设置。 配置WINDOWS 防火墙 WINDOWS防火墙是基于“例外”的,也就是默认情况下,防火墙将阻止外部“未被请求”的连接通过网络,而管理员可以在规则之外设置特定的应用程序或端口来响应外部“未被请求”的连接。 防火墙的例外可被归入两种层次的情况,一是应用程序层次,二是端口与协议层次。前者可设置特定的程序来对“未被请求”的连接进行响应,后者可设置特定的TCP或UDP端口来允许相应的通信。为了使OPC 程序可以通过DCOM正常工作,必须在这两个层次上都进行设置。 防火墙的配置过程如下: 1.为了给系统提供必须的保护,WINDOWS防火墙是默认启用的。(个人)不推荐关闭WINDOWS防火墙,若通信连接失败,在调试过程中可以暂时关闭防火墙以确实问题是否是由防火墙所引起。如若确定

永久关闭防火墙,下面所述关于防火墙的设置均可忽略。 2.进入WINDOWS控制面板,双击“WINDOWS防火墙”图标,打开“WINDOWS防火墙”设置对话框,选中“例外”选项卡,把相应OPC Client和Server程序添加进例外列表。同时添加Microsoft Management Console (mmc.exe 在Windows\System32目录下)和OPC 应用程序OPCEnum (opcenum.exe 在Windows\System32 目录下)到例外列表中。最后确保“文件和打印机共享”也被选中在例外列表中。 (注:只有EXE程序可以被添加到例外列表中,对于DLL和OCX等类型的OPC Server 和OPC Client ,必须添加调用它们的EXE程序;本步设置可能要用到“添加程序”和“浏览”按钮。)

一个OPC服务器的简单实例

首先我们先来看一下什么是OPC OPC (OLE for Process Control——用于过程控制的OLE)是基于Microsoft公司的DNA (Distributed Internet Application)构架和COM(Component Object Model)技术的一个工业标准接口,是根据易于扩展性而设计的。 再来了解一下OPC的用途 OPC主要适用于过程控制和制造自动化等应用领域。OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来然后我们再来看看OPC Server的组成 一个设备的OPC Server主要有两部组成,一是OPC标准接口的实现;二是与硬件设备的通信模块。 实现OPC 标准接口 在这些接口中,IOPCServer 是OPC Server的主接口,通过它实现OPC Server在操作系统中的安装和注册。此接口是必须要实现的,其所有方法也必须实现。其它的接口都是可选的我们就不做介绍了,下面主要来介绍如何实现IOPCServer接口。 在IOPCServer接口中共有六个法: 1、IOPCServer::AddGroup HRESULT AddGroup( [in, string] LPCWSTR szName, [in] BOOL bActive, [in] DWORD dwRequestedUpdateRate, [in] OPCHANDLE hClientGroup, [unique, in] LONG *pTimeBias, [in] FLOAT * pPercentDeadband, [in] DWORD dwLCID, [out] OPCHANDLE * phServerGroup, [out] DWORD *pRevisedUpdateRate, [in] REFIID riid, [out, iid_is(riid)] LPUNKNOWN * ppUnk ; 此方法是在OPC Server上建立一个组。下在我们来实现这个方法: …. …. 首先要对组名(szName)进行检查,看是否有效或是否已经有这个组。 if (szName != NULL) { RequestedName = szName; if (RequestedName == "" RequestedName = pSvrObject->DefaultGroupName(); } else RequestedName = pSvrObject->DefaultGroupName(); for (i=0; iNumbrGroups(); i++)

相关文档