首页 > 代码库 > PLC及其编程起步[.net]
PLC及其编程起步[.net]
声明:本人非专业人士,也未从事该领域的工作,若有错误地方,请多包涵。
概述
在工业控制领域,常常提到PLC,也就是Programmable Logic Controller(PLC)。随着工业的发展,传统的智能设备之间及智能设备与控制系统之间采用专门驱动程序实现信息共享的通讯方式已不能满足工业控制系统的发展需要。因此,为了能够解决工业系统硬件设备的升级改变为软件系统带来的不便,更好的实现不同设备厂家硬件产品的集成互连,增强系统的稳定性与可靠性,工业自动化软件接口的标准化、统一化成为工业控制领域必须面临的一个问题。
于是出现了PLC服务器,由服务器负责与底层的硬件通讯;PLC客户端不再直接与硬件直接通讯,而是通过PLC服务器中转。如此,客户端不需要再针对不同的硬件使用不同的通讯协议,而是使用统一的协议与PLC服务器通讯,大大简化了开发难度和时间。其架构示意如下图所示(图中使用的是OPC的服务器,下面会讲到)
DDE&OPC
PLC服务器与客户端之间通讯方式大体分为2种:DDE和OPC。
1. DDE
DDE即动态数据交换,最早由微软提出。动态数据交换基于windows消息机制,各应用程序间通过传递消息进行对话交换信息。windows dde消息传递采用client/server模式,客户(client)是数据的请求和接受者,而服务器(server)是数据的提供者,两者之间通过请求、应答、传输三个步骤来完成数据的传送。dde协议使用服务(service)、主题(topic)和数据项(item)三级命名来标识dde所传递的数据单元。一般情况下,服务(service)就是应用程序的文件名,主题是对服务器有意义的信息单元。每次dde客户与服务程序之间的对话都是先由客户启动的,所以在每次客户启动之前,dde服务器应当首先投入运行。
DDE的工作方式有冷连接(cool link)、温连接(warm link)和热连接(hot link)等3种。在冷连接方式下,当server中的数据发生变化后不主动通知client,但client可以随时从server读写数据;在温连接方式下,当server中的数据发生变化后马上通知client,client得到通知后将数据取回;在热连接方式下,当server中的数据发生变化后马上通知client,同时将变化的数据直接送给client。
DDE的网络形式称为netdde,它包含了dde的全部特征,是动态数据交换(dde)的扩充,可以在跨越网络的计算机之间使用。采用netdde后,两个或更多网络上的应用能够通过dde共享来建立网络上不同工作站之间的连接,从而实现站站之间的动态信息共享。
如果需要在.net平台开发PLC,可以使用NDde:https://ndde.codeplex.com/。这是一个开源库,dde的方式比较简单,基本上参照例子可以完成需要的功能。需要测试时,直接打开一个excel就可以作为服务器,连接格式:excel|sheet1!’r1c1’,“excel”是固定的,“sheet1”是指第一个sheet,“r1c1”是指第一行第一列。
DDE已经逐渐被淘汰,微软也已经把DDE从新操作系统中去除(貌似xp是最后一版)。
2.OPC
OPC全称是OLE for Process Control,相比较DDE复杂多。最初阶段的opc规范是由opc基金会的先驱fisher-rosemount、rockwell、opto
OPC的数据访问主要有同步数据访问和异步数据访问两种方式。同步数据访问时,opc服务器在将按照opc应用程序要求的数据返回之前,opc应用程序一直处于等待状态,也就是说,同步方式的数据访问在要求的动作没有完成前不能执行任何opc应用程序侧的处理。与之相比,异步方式的数据访问在对opc服务器提出数据访问要求后,立即返回到opc应用程序侧的主处理程序中,opc服务器完成数据访问时通知opc应用程序,opc应用程序从而得到数据访问结果。当opc应用程序采用自动化接口访问opc服务器时,同步和异步数据操作分别由syncread、syncwrite和asyncread、asyncwrite四个opc组对象的方法函数来实现。
OPC版本
OPC发展至今,存在3个版本,这也是初次接触的人会搞不清的地方。
version 1.0:OPC Classic
version 2.0:OPC Unified Architecture (UA)
version 3.0:OPC .NET 4.0 (formerly OPC Express Interface or OPC Xi) ,is based on Microsoft’s .NET Framework and uses Windows Communications Foundation (WCF) in place of COM/DCOM. The specification includes backward compatibility with OPC Classic.
OPC Version 1.0
现在大多数的服务器都支持1.0的版本。下面主要说说这个版本,也是我接触过的版本。
OPC Classic中又分为下面三个部分:
数据采集技术(DA):OPC技术通常在数据采集软件中广泛应用。现在众多硬件厂商提供的产品均带有标准的OPC接口,OPC实现了应用程序和工业控制设 备之间高效、灵活的数据读写,可以编制符合标准OPC接口的客户端应用软件完成数据的采集任务。
历史数据访问(HDA):OPC提供了读取存储在过程数据存档文件、数据库或远程终端设备中的历史数据以及对其操作、编辑的方法。
报警和事件处理(AE):OPC提供了OPC服务器发生异常时,以及OPC服务器设定事件到来时向OPC客户发送通知的一种机制,通过使用OPC技术,能够更好的捕捉控制过程中的各种报警和事件并给予相应的处理。
开发资源
.net库: 去OPC基金会的官网下载,https://opcfoundation.org/。不过貌似要是会员才行。所以去网上能搜到,csdn就有,注意版本。
测试工具:
支持V1.0的工具, 下载matrikonopc的免费工具就行matrikonopc explorer, matrikonopc server for simulation,官网http://www.matrikonopc.com/。
支持V2.0的工具,下载unified-automation提供的服务器、客户端,官网http://www.unified-automation.com/
支持V3.0的工具,3.0没研究过,不知道。:(
例子:相比DDE,使用OPC的二次开发库,想实现需要的功能还是有点难度的(针对第一次弄的人)。会在另一篇blog里面贴些网上收集的代码。
PLC及其编程起步[.net]