如何通过OPC自定义接口来实现客户端数据的读取

如何通过OPC自定义接口来实现客户端数据的读取,第1张

今天我把我在项目中封装的OPC自定义接口的程序分享一下。下面将会简单简单介绍下OPC DA客户端数据访问,以及搭配整个系统的运行环境。
OPC(OLE for Process Control)其实就是一套标准,我对这套标准理解不多,使用过程中就把它理解一套协议或者规范,主要用于工控领域。OPC中有很多规范,我主要使用OPC DA规范来进行数据的读写 *** 作。还有其他规范,比如OPC UA、OPC HDA等。如果你做的是OPC Server开发查下这方面的资料了解下,这篇博文主要介绍OPC Client开发的知识。
使用OPC DA进行Client的读写 *** 作时,我们使用Custom接口,出此之外还有Automation接口。以下是Custome接口开发时涉及到的三个关键对象:OpcServer、OpcGroup、OpcItem,下图是他们之间的逻辑关系:
在客户端开发时,要使用OpcServer对象来实现客户端与Opc服务器之间的连接。一个OpcServer对象下有多个OpcGroup,一个OpcGroup下有多个OpcItem,在自定义接口下的Client开发,是以Group为单位的 *** 作,数据读写都是通过OpcGroup进行的。
搭建程序运行环境
程序运行需要的软硬件环境:
Net Framework 40
Simatic Net 2008(Or Other) HF1
西门子300(Or Other) PLC
我们可以通过本机的配置来实现OPC的远程连接,我没有采用这种方式,一是这种配置比较麻烦,而是这种方式不稳定。所以我采用本机安装一个OPCServer来实现与PLC的交互。
对于OPCServer软件,我选择的是SimaticNet 2008 HF1(安装WinCC的时候会有选择安装SimaticNet的选项),没有特别的原因,就是比较熟悉了而已,而且PLC选用的是西门子的。
我们可以不写OPC Client程序来测试,如何通过OPCServer与PLC之间的交互。首先当我们安装完毕SimaticNet之后,需要对Station Configuration Editor进行配置,如下图:
首先我们要指定Station的名称,上图叫PCStation,点击下方的StationName可以进行更改。下一步在1号栈上选择一个OPCServer,3号栈上选择一个通信网卡。
接下来我们需要在Step 7中建立Station Configuration Editor与PLC之间的连接,我们暂且叫组态。组态的过程中要建立与Station Configuration Editor中对应的Opc Server和IE General(所在栈号相同),Station Configuration Edition起到桥接的作用 用,主要让PLC与Opc Server之间建立一条S7连接。暂时没有拿到组态图,以后补上。
当我们组态完毕时,如何判断组态是否正确呢?在SimaticNet的目录上有个叫Opc Scout(Opc Scout V10)的软件,打开如下图:
上图列出来了本机所有的Server,我们能使用名为OPCSimaticNET的Server。双击这个Server添加一个组,多次双击这个Server可以添加多个组,验证了上图的Server与Group的关系了。
我们双击新建的Group,进入如下图的界面:
上图列出了所有的连接。上文说到的组态中建立的S7连接可以在S7节点中看到,展开这个节点可以看到我们建立的S7连接,如下图:
上图列出了名为S7 connection_1的S7连接,展开Object对象,列出PLC的结构。我们选择一种来新建我们的Item,由于我这里没有PLC模块,所以无法截图给大家看。
至此我们的OPC Client的运行环境搭建完毕。
编写OPC Client端程序。
我们需要使用OPC Foundation提供的自定义接口来进行开发,在Visual Studio引用名为:OpcRcwComndll和OpcRcwDadll这两个DLL。
我们定义一个名为OpcDaCustomAsync的类,让这个类继承自:IOPCDataCallback,IDisposable
转载,仅供参考,祝你愉快,。

方法1 :里面建立两个数据库实例,一个作写,一个作读
方法2:服务器上建两个虚拟机,一个虚拟机放写数据库,一个放读数据库
方法3:服务器上放写数据库,再建一个虚拟机放写数据库
----------------------
实现方法:
数据库之间同步,然后修改代码读写分别指向相应的数据库,就可以了。

在B服务器上共享一个目录(可读写),然后A服务器添加一个磁盘映射到B这个共享目录
在A服务器上配置映射盘符的aspnet用户读写权限
这样每次保存的大文件都在B服务器上~

本来早想回答你,看你在线,想先密你。
1、安全性: 分开放置,可以提高数据的安全性,即使网站不幸有漏洞,被人拿站,但是不会影响数据的安全性。(网站访问数据库的部分进行加密,切用户权限设置合理。sa什么的话,安全就浮云了。)
2、效率: 数据库用于数据访问(废话),对磁盘读写、内存要求更高,如果是大型网站的话,数据库当然要一个专用的数据中心服务器。而网站要更新、修改等,在另外的服务器。
另外,多提醒你一点的就是,网站可能会在多个服务器,一个页面服务器出问题(比如被黑客攻击,DDos之类),立马修改域名跳转(立即生效的那种跳转),网站就可以马上恢复正常访问。
一个网站数据访问量过大,也有可能被机房封停(被DDos的话,也可能发生这种情况)。
有问题请追问。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13222743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-22
下一篇 2023-06-22

发表评论

登录后才能评论

评论列表(0条)

保存