如题所述
ãã使ç¨OPC
DAè¿è¡Clientç读åæä½æ¶ï¼æ们使ç¨Customæ¥å£ï¼åºæ¤ä¹å¤è¿æAutomationæ¥å£ã以ä¸æ¯Customeæ¥å£å¼åæ¶æ¶åå°çä¸ä¸ªå
³é®å¯¹è±¡ï¼OpcServerãOpcGroupãOpcItemï¼ä¸å¾æ¯ä»ä»¬ä¹é´çé»è¾å
³ç³»ï¼
ããå¨å®¢æ·ç«¯å¼åæ¶ï¼è¦ä½¿ç¨OpcServer对象æ¥å®ç°å®¢æ·ç«¯ä¸Opcæå¡å¨ä¹é´çè¿æ¥ãä¸ä¸ªOpcServer对象ä¸æå¤ä¸ªOpcGroupï¼ä¸ä¸ªOpcGroupä¸æå¤ä¸ªOpcItemï¼å¨èªå®ä¹æ¥å£ä¸çClientå¼åï¼æ¯ä»¥Group为åä½çæä½ï¼æ°æ®è¯»åé½æ¯éè¿OpcGroupè¿è¡çã
ãã•æ建ç¨åºè¿è¡ç¯å¢
ããç¨åºè¿è¡éè¦ç软硬件ç¯å¢ï¼
ãã1..Net Framework 4.0
ãã2.Simatic Net 2008(Or Other) HF1
ãã3.西é¨å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ï¼æ们è½ä½¿ç¨å为OPC.SimaticNETç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å¼ç¨å为ï¼OpcRcw.Comn.dllåOpcRcw.Da.dllè¿ä¸¤ä¸ªDLLã
ããæ们å®ä¹ä¸ä¸ªå为OpcDaCustomAsyncçç±»ï¼è®©è¿ä¸ªç±»ç»§æ¿èªï¼IOPCDataCallback,IDisposable
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 4.0
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,我们能使用名为OPC.SimaticNET的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引用名为:OpcRcw.Comn.dll和OpcRcw.Da.dll这两个DLL。
我们定义一个名为OpcDaCustomAsync的类,让这个类继承自:IOPCDataCallback,IDisposable
转载,仅供参考,祝你愉快,满意请采纳。本回答被提问者和网友采纳
使用OPC DA进行Client的读写操作时,我们使用Custom接口,出此之外还有Automation接口。以下是Custome接口开发时涉及到的三个关键对象:OpcServer、OpcGroup、OpcItem,下图是他们之间的逻辑关系:
在客户端开发时,要使用OpcServer对象来实现客户端与Opc服务器之间的连接。一个OpcServer对象下有多个OpcGroup,一个OpcGroup下有多个OpcItem,在自定义接口下的Client开发,是以Group为单位的操作,数据读写都是通过OpcGroup进行的。
搭建程序运行环境
程序运行需要的软硬件环境:
.Net Framework 4.0
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,我们能使用名为OPC.SimaticNET的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引用名为:OpcRcw.Comn.dll和OpcRcw.Da.dll这两个DLL。
我们定义一个名为OpcDaCustomAsync的类,让这个类继承自:IOPCDataCallback,IDisposable
转载,仅供参考,祝你愉快,满意请采纳。