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 22、intellution、intuitive technology公司于1996年8月发布的,目前opc基金会成员在全球已超过300多个,其中包括世界上几乎所有主要的控制系统、仪器仪表、过程控制系统生产厂家。 

      opc以ole/com/dcom技术为基础,是ole(object linking and embedding)for process control的缩写,是微软公司的对象链接和嵌入技术在过程控制方面的应用。与dde一样,opc也采用client/server模式。opc服务器是数据源的提供者,数据源可以是plc、dcs、条形码读取器等控制设备,随控制系统的构成不同,作为数据源的opc服务器既可以是和opc应用程序在同一台计算机上运行的本地opc服务器,也可以是在另外计算机上运行的远程opc服务器。opc客户是数据的使用者,它按照opc接口规范从opc服务器获取所需要的数据。
      opc服务器主要包括三部分:服务器(server)、组(group)和数据项(item)。服务器对象保存服务器和服务器作为opc组对象容器的所有信息。opc组对象包括公共组和局部组(私有组)两种,公共组由多个客户共享,局部组只隶属于一个opc客户。一个组可能代表一个特殊设备的数据项,opc 客户可以通过组对象来读写数据,并可以设定opc服务器应该提供给opc client数据的更新速率。opc 数据项是读写数据的最小逻辑单位(在实际应用中,可能是物理设备的寄存器或寄存器的某一位),其数据值以variant形式表示,每个数据项包括值(value)、品质(quality)和时间戳(time stamp)3个变量。在一个组对象中,opc 客户可以加入多个opc数据项。
      opc客户与opc服务器的接口有自定义接口(custom interface)和自动化接口(automation interface)两种形式。自定义接口是一组com接口,主要用于采用c++语言的应用程序开发;自动化接口是自动化的ole接口,主要用于采用vb,delphi等基于脚本编程语言的应用程序开发。对于客户端应用程序的开发,采用自定义接口的方式运行效率高,但开发难度较大;采用自动化接口的方式运行效率低,但开发简单。这两种接口与opc服务器的通信方式如下图所示。

      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里面贴些网上收集的代码。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PLC上位机程序S7.NET是一种用于与PLC进行通信和控制的软件。它基于S7协议,可以与西门子PLC进行数据交换和监控。S7.NET程序可以在Windows操作系统上运行,为用户提供了一个友好的界面来管理和监控PLC系统。 S7.NET具有强大的功能,可以读取和写入PLC的输入输出数据,以实现对控制过程的监控和操作。通过S7.NET,用户可以轻松设置和修改PLC的参数和逻辑功能,以满足实际应用的需求。 S7.NET还支持多种通信方式,如以太网、串口等,使用户可以根据需要选择合适的通信方式与PLC进行连接。此外,S7.NET还支持数据记录和远程访问功能,可以将PLC的数据保存到本地或远程数据库,方便用户进行数据分析和远程监控。 对于开发人员来说,S7.NET提供了丰富的编程接口和开发工具,使他们可以轻松地开发自己的应用程序。通过S7.NET开发人员可以自定义界面和逻辑,实现更高级的功能和定制化需求。 总的来说,PLC上位机程序S7.NET是一款强大而灵活的软件工具,它为用户提供了方便的操作界面和丰富的功能来管理和控制PLC系统。无论是对于终端用户还是开发人员,S7.NET都是一个重要的工具,能够大大简化PLC系统的维护和开发过程。 ### 回答2: PLC(可编程逻辑控制器)是一种广泛应用于工业自动化领域的控制设备,它通过编程控制各种外部设备的操作,实现对工程设备的自动化控制。而上位机程序是PLC通常使用的软件工具,用于监控和控制PLC系统的操作。 S7.NET是一种针对西门子公司所生产的S7系列PLC的通信协议。该协议是基于以太网的通信方式,允许计算机或上位机与PLC之间进行数据交换和通信。通过使用S7.NET协议,可以方便地实现对PLC的监控和控制,以及对PLC系统的各种参数进行调整和配置。 上位机程序通常由开发人员编写和设计,它通过与PLC系统进行通信,实时获取并分析PLC系统的数据。上位机程序还提供用户界面,用于操作者与PLC系统进行交互。通过上位机程序,操作者可以监视PLC系统的工作状态、收集和分析数据,并进行必要的控制调整。 S7.NET作为一种常用的通信协议,具有以太网通信的高速性能和稳定性,可以与各种上位机软件进行集成。通过使用S7.NET,上位机程序可以与S7系列PLC实现快速、可靠的数据交换和通信,使PLC系统的监控和控制更加方便和可靠。 总之,PLC上位机程序S7.NET是一种用于与S7系列PLC进行通信的软件工具,它能够实现对PLC系统的监控和控制,为工业自动化提供了便利和可靠性。 ### 回答3: PLC上位机程序S7.NET是一种用于与西门子S7系列PLC进行通信的程序。S7.NET提供了一套强大的API(应用程序接口),使开发人员能够从上位机中读取和写入PLC的数据,实现远程监控和控制。 S7.NET使用C#编程语言,可以在Microsoft Visual Studio等开发环境中进行编写和调试。它可以通过TCP/IP以太网或串行连接与PLC进行通信,支持支持多线程操作,允许同时与多个PLC进行通信。 通过S7.NET开发人员可以轻松地编写代码来读取和写入PLC的数据寄存器、位、字节等信息。还可以对PLC进行诊断和监控,实时显示PLC的状态信息。此外,S7.NET还支持对PLC程序进行远程下载和更新的功能,极大地简化了PLC程序的管理和维护过程。 对于需要与PLC进行通信的应用程序开发而言,S7.NET是一个非常有用的工具。它不仅提供了高效的通信接口,还具有丰富的功能和易于使用的API,使得开发人员能够快速地实现与PLC的数据交互和控制。 总而言之,PLC上位机程序S7.NET是一种用于与西门子S7系列PLC进行通信的程序,它提供了强大的API和丰富的功能,可以方便地实现对PLC的远程监控和控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值