下面介绍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
