项目那点事之OPC

本文讲述了在智能监控项目中,如何使用LabVIEW和OPC技术实现工控机与西门子S7-1200 PLC的数据通信。原本计划通过TCP/IP协议直接编程,但考虑到复杂性和工作量,最终选择了OPC作为应用层协议,利用其封装的TCP/IP协议简化了编程难度。S7-1200自带OPC Server,LabVIEW的DSC模块包含S7-1200驱动,使得创建OPC Client并进行数据交互变得简单。

这段时间实验室做一个智能监控的项目,涉及到现场多个设备的控制以及数据采集。计划采用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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值