项目那点事之OPC

原创 2013年12月02日 17:29:37

这段时间实验室做一个智能监控的项目,涉及到现场多个设备的控制以及数据采集。计划采用PLC通过485总线与各个设备进行数据交互,同时增设一台工控机进行上位机操控,与PLC进行数据通信,一方面通过上位机程序对各设备进行控制,另一方面实时显示各设备的运行状态。

我主要负责工控机这边上位机程序,采用LabVIEW语言编程,需要跟PLC进行通信,然后再借由PLC与现场设备进行数据交换。实验室采购的PLC型号是西门子的S7-1200系列,该型号PLC支持两种通信方式,一是485,二是以太网,由于PLC不仅需要跟工控机通信,而且项目也计划在远端增设一个监控室,远程去对现场设备进行监控,因此决定选择以太网进行通信,采用TCP/IP进行数据通信,这里又存在一个问题,如何确定服务器和客户端?按理来说,数据采集端也即PLC应作为服务器,工控机和远程监控室计算机作为客户端去访问PLC,这种思路去设计程序是比较合理的,但是也不知道当时是怎么想的,硬是将工控机作为了TCP服务器,PLC和远程监控室计算机作为客户端了,这样设计的话,相当于将工控机作为一个数据转发的平台,一方面将PLC采集到的设备数据显示在本地,另一方面将数据转发给远程计算机;而对于远程计算机所发出的控制指令,也通过工控机进行中转后,再发送给PLC,最后经由PLC将控制指令送达各设备。

大方向就不用说了,不管那个作为服务器哪个作为客户端暂且不管,接下来最大的问题是如何设计这个网络应用程序,我的第一反应是采用TCP/IP协议,也就是说我们需要直接操作OSI 7层模型中的传输程,在LabVIEW中,已经给我们提供了进行网络通信的各种VI,可直接调用这些VI即可完成一个基于服务器/客户端模型的网络应用程序,但是事情往往没想象那么简单,首先,工控机与PLC进行数据交换的协议虽然LabVIEW已经给我们做好,但是仍然需要我们对每个数据定义出自己的封装,也就是需要重新数据帧格式,另外,由于TCP/IP协议只是提供了两个应用程序进行通信的底层协议,具体的比如说服务器的建立,侦听以及接受客户端连接等所有过程还是需要我们自己在程序中去设计,因此总的来说,我们还是需要编写大量的代码去实现就算是一个温度采集或者远程开关这么小的功能。因此,采用TCP/IP进行编程不是一个最优的方法。

我们知道TCP/IP协议属于网络层,直接操作需要对该层协议有充分的理解,如果能够避开该层操作,有现成的应用层协议可以使用的话将大大减少开发的难度。如果大家都遇到类似的问题,那么总有解决方案为之应运而生了,这里OPC技术挺身而出了。

什么是OPC,全称是OLE forProcess Control, 也即微软的对象连接与嵌入技术在工业过程控制中的应用,OPC基金会负责OPC协议的制定和发布。什么是OPC,说白了也是一种网络协议,封装了TCP/IP协议,因此该协议处在应用层。它能够为我们的编程带来什么好处?首先,在我们传统的工业过程控制中,现场设备种类繁多,并且各个设备之间的通信没有固定的协议标准,有的采用485通信,有的采用以太网通信等等,这带来的麻烦就是,我们需要对每个设备都要编写不同的驱动程序,如果设备进行升级或者硬件上的微小改动,都有可能导致驱动程序的重新设计,因此系统集成商和开发商急需一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序,在这种情况下,OPC标准应运而生。现在市场上的大多数工业控制设备均支持OPC协议,因此大大简化了我们编程的难度。

首先,s7-1200自带OPC Server,另外也非常惊喜的发现LabVIEW的DSC 2012模块支持OPC协议,并且包含有S7-1200驱动程序,也就是说我们只需要在工控机上采用LabVIEW编写一个Client就可以利用OPC强大的数据访问能力完成工控机与PLC的数据交互,并且大大简化编程。具体如何在LabVIEW中去创建OPC Client以及如何与OPC Server 进行通信参见NI 教程。

教程链接:http://download.csdn.net/detail/fukai555/6644739

OPC基金会最新运行库

  • 2012年07月25日 16:36
  • 1.63MB
  • 下载

OPC运行时环境一键配置

  • 2015年08月25日 10:24
  • 384KB
  • 下载

S7-200系列PLC与监控计算机通信实现的研究

1  引言西门子工控产品在工控领域应用市场中有较高的占有率,S7-200系列PLC是西门子SIMATIC PLC家族中的成员之一,在西门子工控领域应用中占有重要地位。S7-200系列PLC体积小,软硬...
  • whchen
  • whchen
  • 2007年05月17日 08:01
  • 2195

PLC及其编程起步[.net]

声明:本人非专业人士,也未从事该领域的工作,若有错误地方,请多包涵。 概述            在工业控制领域,常常提到PLC,也就是Programmable Logic Controller(...
  • ryanzll
  • ryanzll
  • 2014年12月09日 22:15
  • 1508

OPC客户端运行环境配置-----OPC(第三篇)

    OPC的环境配置还是比较简单的,但是需要注意几点问题:     1、首先是OPC客户端的用户名和密码需要和OPC服务器端的用户名和密码...
  • liqiansheng
  • liqiansheng
  • 2016年09月07日 15:13
  • 700

OpcRcw.da.dll在x64模式下编译运行失败的一次调试经历

行云流水。
  • Backspace110
  • Backspace110
  • 2016年12月08日 23:40
  • 1362

BCNet模块实现西门子PLC与海得netSCADA软件通讯

海得NetSCADA监控组态软件可以实现:单机监控,集中监控,机器视觉识别系统。通过BCNet模块可以便捷的实现西门子PLC与NetSCADA软件的通讯。...
  • wxbca
  • wxbca
  • 2016年12月20日 09:41
  • 793

运用C#编程通过OPC方式实现PC机与西门子PLC通讯

1、 OPC服务介绍   西门子提供的最新软件:Simatic Net PC-Software CD 2005为各种组态软件的开发提供了一个统一的平台,它建立的PC站既为一些组态软件,如:Win...
  • u010655348
  • u010655348
  • 2016年10月23日 22:17
  • 1499

OPC 通信预安装软件介绍(西门子PLC与上位机PC之间的通信)

安装软件列表: OPC上位机通信安装软件备忘录 说明 SIMATIC_STEP_7_Professional_V13 西门子通用软件 SimaticNet_2010 通信...
  • yy16808
  • yy16808
  • 2015年09月06日 16:10
  • 1784

上位机与PLC通讯及OPC数据采集实践一

上位机与PLC通讯及OPC数据采集实践一 背景          由于项目的需要,上位机(工控机)需要与PLC通讯(AB的PLC)通过PLC控制相关的设备;另一部分需要做一个数据采集程序从一个OP...
  • huwei2003
  • huwei2003
  • 2014年08月27日 16:12
  • 15456
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:项目那点事之OPC
举报原因:
原因补充:

(最多只允许输入30个字)