> 唯美句子 > 关OPC通讯的问题

关OPC通讯的问题

关OPC通讯的问题

抓包分析吧,可以向厂家请教包的内容

如何配置OPC DCOM

本文档根据各种不同的情况,讲述如何进行OPC DCOM配置。

对于远程访问OPC服务器,需要在客户和服务器计算机上都进行DCOM设置,以前我们采用的方式是: 客户、服务器都建立一个名字、密码相同的具有管理员权限的帐号,并分别以次登录,在服务器端将OPC服务器的启动方式设为交互式用户。这种方法虽然方便,但安全性较差,不利于在实际应用中推广。这里提供一些较合理的解决方案。(假定都是在工作组里)

(1) 序言

在使用了OPC技术,并有网络数据访问的应用系统中,不可避免地要进行OPC DCOM权限配置。

DCOM配置与windows操作系统的安全体系结合在一起,而各版本的操作系统(9x、NT、2000、XP等)的安全体现又或多或少地有所区别;同时,OPC服务器运行的方式也不尽相同(进程内、进程外、系统服务、有无界面……);而且,不同的应用系统对安全的要求也不同。总之,要想根据具体情况尽量合理地完成OPC DCOM配置并不是一件很轻松的事。

本文档根据各种不同的情况,讲述如何进行OPC DCOM配置。

(2) 准备

要进行DCOM安全配置,操作者通常必须拥有客户和服务器计算机的管理员权限。

【注意】一般情况下,DCOM通信是基于TCP/UDP的,所使用的端口不固定,很可能被一些防火墙软件屏蔽。如果本文下述配置不成功的话,请尝试关闭客户和服务器计算机上的防火墙,或者以带网络连接的安全模式启动系统(这时防火墙软件一般不被自动运行)。

(3) 最简单的情况

如果用户对网络安全基本上没有要求,或者处于客户、服务器程序开发阶段,......

(4) 服务器计算机始终有用户登录的情况(NT/2000)

这也是实际应用中比较常见的情况,但对于以NT服务方式运行的OPC服务器不适合。设置方法如下:

Ø 在服务器计算机上建立一个用户,如OPCUser,可以是管理员,也可以是一般用户,服务器计算机在运行OPC服务器时必须以这个用户登录。

Ø 在服务器计算机上建立一个用户组,如OPCClients。

(单一客户情况下可以不建立,建这个组的目的是管理方便)

Ø 在各个OPC客户计算机中,分别建立OPCUser用户,口令也要与服务器上的一致,可以设为普通用户以保证安全。

Ø 客户计算机运行时不必以OPCUser登录,比如使用ClientA登录,就要在服务器上建立相同的用户ClientA及相同的密码。并在服务器计算机上将ClientA加入到OPCClients组中。ClientA在客户和服务器计算机上都可以是普通用户。

Ø 服务器端DCOM配置

运行dcomcnfg,进行如下设置:

默认属性:

启用DCOM;

默认身份验证级别:连接

默认模拟级别:标识

默认安全机制:

默认访问权限:

至少要保证OPCClients组允许访问,也可放宽至Everyone;

默认启动权限:至少保证允许INTERACTIVE用户调用;

默认配置权限:一般情况下不需修改。

默认协议:保证面向连接的TCP/IP在最上,其它可以删除。

具体的服务器配置:

常规:身份验证级别为默认值;

位置:在这台计算机上运行;

安全性:使用默认的访问和启动权限,配置权限不要修改;

身份标识:交互式用户。

终结点:不修改。

OPCEnum程序配置:

在dcomcnfg程序的应用程序列表里找到opcenum.exe,对其按照上面具体服务器的配置进行设置。

Ø 客户计算机的配置:

为了保证OPC数据订阅等回调机制能正常运行,需要对客户计算机的DCOM权限进行配置。

默认属性、默认协议的配置和服务器端基本一致;

默认安全机制只需要修改默认访问权限。保证允许OPCUser访问。也可放宽至Everyone。

【注意】

在服务器没有用户登录的情况下,远程将无法启动OPC服务器;

对于有用户界面,并需要界面交互的OPC服务器,建议(可能必须)采用这种方式。

(5) OPC服务器为后台程序的情况(NT/2000)

这种情况下,服务器计算机可以没有用户登录。

做为后台程序,OPC服务器有两种运行方式:系统服务(service)方式和普通用户程序。

这里只介绍普通程序方式,系统服务方式的配置说明以后添加。

OPC服务器做为普通方式运行的后台程序,一般没有用户界面。完全可以按照(1)中有界面的方式进行配置,即设置为交互式用户启动。

但是(1)的配置方式限定了服务器计算机必须有用户登录,而且登录用户必须在客户计算机上有DCOM访问权限。所以,无界面的后台OPC服务器可以用另一种更灵活的方式运行。

配置方法:(未明确说明的部分与(1)相同)

在服务器端按照(1)中所述建立一个OPCUser用户,专门用来运行OPC服务器。然后在OPC服务器属性配置中,将启动方式改为指定用户,注意要输入用户密码。

这样,OPC服务器计算机可以用任意用户登录,当客户计算机发出连接请求时,系统负责以OPCUser的身份运行OPC服务器,如果已经运行则使用已有的OPC服务器。

【注意】还有一种启动方式,是“启动”用户。即系统以发连接请求的用户的身份启动OPC服务器,这可能造成服务器计算机上同时运行多个OPC服务器的实例,显然不妥。所以一般情况下不建议设置为“启动”用户,虽然它是缺省选项。

(6) Windows XP系统下的配置说明

在XP操作系统(SP1,不包括SP2及其以后版本)下,OPC的配置实际上和NT/2000基本一样,这体现在OPC DCOM相关的各项配置在注册表中的位置、名称都是一致的。

二者只是配置界面不同

求OPC中COM端口的read和Write的函数释义

在用ReadFile和WriteFile读写串行口时,既可以同步执行,也可以重叠(异步)执行。在同步执行时,函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞,从而导致效率下降。在重叠执行时,即使操作还未完成,调用的函数也会立即返回。费时的I/O操作在后台进行,这样线程就可以干别的事情。

ReadFile函数只要在串行口输入缓冲区中读入指定数量的字符,就算完成操作。而WriteFile函数不但要把指定数量的字符拷入到输出缓冲中,而且要等这些字符从串行口送出去后才算完成操作。

BOOL ReadFile(

HANDLE hFile, //文件的句柄

LPVOID lpBuffer, //用于保存读入数据的一个缓冲区

DWORD nNumberOfBytesToRead, //要读入的字节数

LPDWORD lpNumberOfBytesRead, //指向实际读取字节数的指针

LPOVERLAPPED lpOverlapped

//如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须,用这个参数引用一个特殊的结构。

//该结构定义了一次异步读取操作。否则,应将这个参数设为NULL

);

FILE_FLAG_OVERLAPPED

文件或设备被打开或创建异步I / O。

当后续的I / O操作完成这个句柄,OVERLAPPED结构中指定的事件 将被设置为有信号状态。

如果这个标志被指定,该文件可用于同时读取和写入操作。

如果没有指定这个标志,然后被序列化I / O操作,即使调用读写函数指定一个OVERLAPPED结构。

BOOLWriteFile(

HANDLEhFile,//文件句柄

LPCVOIDlpBuffer,//数据缓存区指针

DWORDnNumberOfBytesToWrite,//你要写的字节数

LPDWORDlpNumberOfBytesWritten,//用于保存实际写入字节数的存储区域的指针

LPOVERLAPPEDlpOverlapped//OVERLAPPED结构体指针

);

向大神求助,组态王 OPC SERVER 端口41190冲突

这不是组态王的问题 是opc服务器没能做好,找艾默生opc的客服去 让他们给补丁~

怎么用C#往PLC某个端口写数据

新建C#应用程序,命名为OPC Client,将OPCAutomation.dll引用,如图。 using OPCAutomation; 2. 定义OPC的三个接口类OPCServer类、OPCGroup类和OPCItem类;

关OPC通讯的问题:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!