LabVIEW和PLC通过OPC通信

下面介绍3中将PLC和LabVIEW连接起来的方法,参考文献列在后面了。需要注意的是!由于DSC软件只有32位的,所以OPC连接只能使用32位的LabVIEW软件才可以成功操作!实现PLC和LabVIEW数据的读写

  • 方法一:通过数据绑定读取PLC变量
  • 方法二:创建IO server读取PLC变量,这个方法最简单易学,但是我不知道为什么我无法读出PLC的数据,写入是正常的;
  • 方法三:通过Data Socket读取PLC变量,最推荐这个方法!DataSocket是一项基于TCP/IP协议的技术,用于自动化应用中实时数据的共享与发布。它通过封装TCP/IP协议简化了通信连接的维护与数据类型转换工作,并提供三种数据目标:File、DataSocketServer与OPCServer。

1. NI OPC server 配置

不过这三种方法本质都是通过OPC进行连接。所以需要做一些共同的准备:需要在NI Pacage Manger中另外下载OPC服务器(图1)和数据记录与监控模块,数据记录与监控模块需要与所在电脑的LabVIEW版本一致。

打开OPC Serves Configuration,软件界面如下:

点击new channel 添加一个新的通道,修改通道名称后,点击下一步:

点击下一步,选择驱动设备:Siemens TCP/IP Internet

其余全部选择默认,得到如下界面:

点击 click to add a device进行设置,名称设置为PLC_Master:

选择S7-1200:

配置IP地址:

点击选择创建一个新的Tag,access选择read/write,地址是需要和PLC中的DB块对应的:

PLC设置方面选择支持PG/PC与HMI的安全通信:

NI OPC Servers/Kepware 一般可以用 CSV 批量导入 Tag。关于CSV的格式,可以尝试先导出一次CSV,看看是什么格式,再去创建。导入需要名字、地址、数据类型和读写权限、扫描率。这里的Tag.name可以看出xTrip.2_source停机指令,这里的点会被OPC识别为新建下面的文件夹。

2. 方法一.DataSocket绑定

这个方法我最推荐!

创建LabVIEW项目,创建前面板和VI界面,放置numerical的control和indicator,上面的是control,下面是indicator:

在前面版上右击选择属性,选择data binding,选择DSTP Sever,选择我们刚刚创建的Tag,control选择只写,indicator选择只读:

已经完成设置,此时回到PLC中点击转为在线并监视DB块,可以修改DB2中的湿度为90:

点击前面板的持续运行,可以发现数值变为90,并修改温度为70:

看见PLC的温度为70:

这里需要注意的很重要的一点是!如果是需要从PLC读入的数据,以QF1断路器合闸成功为例,在OPC Server configuration中就要设置为只读,并且在LabVIEW的datasocket绑定中也要设置为只读,并且前面板能否显示很重要的一点,**要设置为显示控件,而不是输入控件!!!**设置为输入控件就会通讯正常,但是读不到正常的数值。

图 1 OPC配置中配置为只读 Read only

图 2 LabVEIW配置中配置为只读 Read only

图 3 设置为显示控件

3. 方法二 IO Server绑定

labview与PLC通过OPC通讯_labview opc-CSDN博客

在项目中新建I/O Server:

选择OPC Client:

选择NIOPCServer.V5:

将变量添加到项目中:

使用时可以直接拖到VI面板上,可以修改访问模式改变读/写:

4. 方法三

可以在help中找到这个案例,进行学习:

这里需要学习的是opc地址,OPC 地址最好不要手打,从浏览器 / 选择器里选出来,这样最不容易错。DataSocket Select,就是用来选 OPC URL 的。

在 LabVIEW 程序框图里放:DataSocket Select URL运行或点击它打开选择窗口。

协议选择 opc。找到本机 OPC Server,比如:National Instruments.NIOPCServers

展开:S7-1200 -> PLC_master

选择一个 Tag,比如:QF1交流电表_相电压UA

确认后,它会输出完整 URL 到 Selected URL:opc://localhost/National Instruments.NIOPCServers.V5/S7-1200.PLC_master.485.KM1故障信息_当前报警_H

相关推荐
萧行之1 小时前
Observable Plot 源码深度解析——4 核心抽象逐项学习
前端·学习·数据可视化
浔溺1 小时前
al+大数据每日学习笔记37
大数据·笔记·学习
TheBestRucy1 小时前
PyTorch 基本使用学习笔记
pytorch·笔记·学习
ouynagda1 小时前
51 单片机 LED 流水灯 + 数码管动态扫描学习笔记(STC89C52)
笔记·单片机·学习
Wang's Blog1 小时前
Java框架快速入门: Spring Security+OAuth2之自动化集成测试
java·spring·自动化
zzzll11111 小时前
LLM 学习第 24 课:Agent Harness
前端·人工智能·学习
志栋智能2 小时前
超自动化安全的变更与配置安全管理
数据库·安全·自动化
海宇大数据2 小时前
零信任架构实战:基于海宇单人婚姻状态查询构建自动化线上房产交易合规网关
运维·人工智能·架构·自动化
wixzjsh2 小时前
51单片机学习笔记|最小系统、中断、定时器+数码管动态扫描实现0~9999计数器
笔记·学习·51单片机