DSC模块之OPC Server使用
主要软件: LabVIEW Modules>>LabVIEW DSC Module
主要软件版本: 2013
主要软件修正版本: N/A
次要软件: LabVIEW Modules>>LabVIEW DSC Module
问题: 1. 如何在PLC端和OPC Server端对参数进行配置?关于OPC Server的使用之前已经有相关文章介绍过,但是,大部分都停留在使用LabVIEW和NI OPC Server的使用方面,关于其中某些参数的定义(比如Device ID经常要设置为2,为什么不能是其他的数字?)则介绍得比较少。关于这部分参数的定义要涉及到PLC端的编程和设置。
2. 使用LabVIEW除了可以对 NI OPC Server进行访问,是否可以对第三方的OPC Server进行访问,如果可以的话,要怎么进行访问?
3. 如何使用串口和以太网通过OPC Server对PLC进行访问,两者在编程上需要注意哪些问题,具体怎么操作?
解答: 在开始下面的实验之前,我们需要了解整个过程的软件要求以及硬件要求。
硬件要求:
1. 西门子PLC,型号:CPU 224 AC/DC/ Relay (订货号:6ES7 214-1BD23-0XB8)
2. 西门子RS232/PPI 编程电缆(订货号:6ES7 901-3CB30-0XA0)
- 这款编程线缆是RS232接口的,也有一款是USB接口的,目前AE办公室也有,使用上没有区别
- 在编程电缆的侧边有8个拨码开关(其中有2个无效),这些拨码开关的具体含义在背面有注明,其中,大家需要注意的有4个:
1~3: 波特率的设置
5: 设置为1的时候表示该PPI电缆当编程器使用,可以通过西门子自带的软件进行编程;
设置为0的时候表示该PPI电缆自由口通讯,当一般的串口线使用。
3. 以太网通讯模块,CP 243-1(订货号:6GK7 243-1EX01-0XE0)
系统的连接如下所示。
市面上常见的PLC厂商主要有西门子、三菱、欧姆龙等。大家经常听的西门子200、300、400性能上的排行究竟是怎样呢,你看下面这张图就知道了。
其中,需要指出的是,S7-1200是近年来西门子主推的一款PLC,跑以太网接口,编程的时候不需要PPI电缆,一根网线就直接搞定,编程软件TIA 比起S7-200 和S7-300的界面也友善很多,目前,TIA也支持对S7-300进行编程。
软件要求:
1. LabVIEW
2. DSC
3. NI OPC Serve
4. Micro/Win:西门子S7-200的编程软件
5. PC ACCESS:西门子S7-200的OPC Server
由于S7-200是比较老的产品,对应的编程软件很多时候只能在较老的操作系统上运行,下表是Micro/Win以及PC ACCESS这两款软件和windows操作系统的兼容表。
下面,我们正式进入实际操作阶段。
实验1:通过串口和NI OPC Server访问S7-200数据1. 给PLC供电,通过PPI电缆把PLC连接到PC;
2. 打开Micro/Win,
,其界面如下所示。
3. 点击系统块,弹出系统块对话框。这个是对PLC通讯参数的设置,比如后面在NI OPC Server有一个Master ID就是要和下面的PLC地址一致,为了区别,现在设置为3,波特率设置为19200,点击确认。
4. 编写下图程序。
其中,SM0.5是S7-200内部特殊寄存器SMB0的一位,该位以1Hz的频率进行变化。
如果M0.0接通,则在Q0.0口以1Hz的频率输出占空比为50%的方波;
如果M0.0断开,Q0.0始终为0。
关于SMB0的说明,请参考以下表格。
5. 点击
,弹出以下对话框。点击PC/PPI cable PPI.1→Properties。
设置编程电缆的通讯端口,这里为COM1,点击OK确认并返回。
- 此时,要确信编程电缆的第5个拨码开关处在1位置,编程电缆工作在“编程模式”。
6. 点击通信图标
,点击“双击刷新”,显示目前以连接的S7-200,地址为:2,波特率为9600。选择CPU 224CN并点击“确认”。
在工具栏中选择下载。
把程序块,数据库以及系统块复选框都勾选上,点击“下载”。
下载完成,弹出以下对话框,选择“OK”。
7. 选择“程序在线监控”,进行在线调试。
当然,你也可以选择“状态表监控”,输入要监控的地址进行观察,你也可以在状态监控列表中修改特定地址的值。
8. 再次查看PLC的通信参数,现在S7-200地址变成3,波特率为19200。
到此为止,一个简单的PLC程序已经编写完成并下载到PLC中。
下面,使用NI OPC Server建立标签并在LabVIEW中访问。这部分内容之前已经有相关的文章介绍过,具体可以参考《手把手教你在LabVIEW下使用OPC》(http://www.ni.com/white-paper/7450/zhs/)或者是《DSC模块之OPC Server使用(以PLC为例)》(http://digital.ni.com/public.nsf/allkb/281365919A6CDC7E86257B1E0020813B)。本文中只做简单介绍。
在NI OPC Server建立以下工程,这里对几点需要注意的事情做个说明:
1. 由于在PLC端设置其地址为3,波特率为19200,所以在OPC Server中设置的地址与波特率也要与其一致。
2. 如果使用一般的串口线缆则改点可以忽略,如果使用PC/PPI线缆,需要把第5个拨码开关打到0位置,使其工作在自由口模式。
3. 使用串口访问PLC时,即使访问PLC中的某一位,也要使用byte类型,如果使用bool类型,则在OPC Server中的值不会发生变化。比如SBit_Bool和SBit都是关联SM0.5这一位,SBit定义为Byte类型,而SBit_Bool定义为bool类型,在Quick Client中观察到SBit_Bool的值始终不发生改变。
4. 使用串口进行OPC Server的使用,如果波特率设置为9600,会发现OPC Server中读取到的值和实际值不匹配,变化速度比实际上慢,原因是波特率太低了,修改为19200即可。
5. 在LabVIEW中建立OPC Client 的IO Server,注意默认的更新时间为1000MS,这个可能在很多场合都不能满足需求,可以适当把更新时间该小,这里设置为100ms。
6. 在LabVIEW工程中编写以下简单程序,间隔25毫秒读取QBit和SBit的值,同时,往MBit写入值,程序运行之后,写入部分运行正常,但是读取部分发现SBit的值不能按照实际的情况变化,也就是读取部分出现问题。
把LabVIEW程序修改成下面的形式:读取部分放在超时分支,写入部分放在值改变分支,也就是读取和写入不同时进行,此时,读取和显示都可以正常运行。
实验2:通过以太网和NI OPC Server连接到PLC1. 进行硬件连线,如下图所示。需要注意,S7-200的以太网模块本身需要24VDC的供电,这部分电源可以直接从PLC控制器的管脚引出。
2. 新建一个S7-200工程,确信使用RS232/PPI电缆连接正常,点击工具→以太网向导。
3. 在此处选择模块的位置,在线的情况下,您也可以用“读取模块”按钮搜寻在线的CP243-1模块,点击“下一步”按钮。
4. 选择以太网通讯模块的订货号。
5. 设置IP地址,需要确保PLC和PC在同个局域网内。
6. 设置连接模块数量。
7. 把PLC设置为服务器,下面本地TSAP使用默认10.00,远程TSAP设置为10.11,接受所有连接请求。(这两个TSAP需要记住,后面会使用到。)
8. 选择CRC校验,使用缺省的时间间隔30秒,点击“下一步”按钮。
9. 填写模块所占用的V存储区的起始地址,你也可以通过“建议地址”按钮来获得系统建议的V存储区的起始地址,点击“下一步”按钮。
10. 从左边的浏览器中把通讯模块拖动到程序框图中,编写如下图的程序。
11. 点击
,把程序下载到PLC。
12. 修改接口设置,把连接方式设置为使用以太网口,如下所示。
13. 在通信页面中搜索设备,找到通过以太网口连接的PLC,网址为:10.144.1.156。选择设备,并点击确认。此时,可以拔掉原先的RS232/PPI线缆,PLC程序可以通过网线下载,当然,也可以通过以太网访问OPC Server。
至此,PLC端的设置已经完成。
NI OPC Server 连接至PLC时,使用以太网的操作和串口的操作基本一致,其中,需要注意的一点是,配置过程中,OPC Server对应的Local TSAP对应于PLC端的Remote TSAP ,为1011,OPC Server对应的Remote TSAP对应于PLC端的Local TSAP ,为1000,如下图所示。(PS:这里省略了小数点。)
此外,还有一点需要注意,这里创建变量绑定到PLC的位时,必须选择bool类型,这个跟使用串口是有明显的差异的,如下所示。
同样的,在LabVIEW 中使用IO Server建立VI,程序框图如下所示。运行程序,发现读取和写入可以正常运行。
对于和使用串口进行通讯的情况,导致这种差异主要可能有两种原因:
1. 使用以太网本身的传输速率比串口高;
2. 以太网传输可以用bool类型,而串口必须为byte类型,串口传输的数据量比以太网方式大。
实验3:使用LabVIEW访问西门子的OPC Server1. 打开西门子的OPC Server,PC ACCESS,设置通讯端口,绑定变量,使用其自带的客户端进行测试,如下所示。
2. 在LabVIEW中使用IO Server访问,其步骤和访问NI OPC Server相似,差别在于选择服务器的时候选择 S7200.OPCServer。如下图所示。
实验4:使用DSTP访问OPC Server下面演示怎么通过DSTP服务器把前面板的控件数值直接关联到OPC Server的标签变量。
1. 在前面板放置一个布尔显示控件,SM0.5;
2. 选择属性→数据绑定。在“数据绑定选择”选择Datasocket,选择“DSTP服务器…”。
3. 在弹出的对话框中选择S7200 OPC 服务器的SBit变量,点击“OK”。
4. 此时,前面板的布尔显示控件右上角出现一小横杆,表面连接成功。此时,连续运行程序,布尔显示控件以1Hz的频率进行闪烁。
5. 选择属性→数据绑定。在“数据绑定选择”选择Datasocket,选择“DSTP服务器…”。
相关链接: 1. Siemens S7 200与NI OPC Server相连 Using PPI 232 Cable
2. NI-OPC Server支持的设备与驱动控件程序列表
3. DSC模块之OPC Server的使用(以PLC为例)
4. S7 PLC TCP/IP Protocol Reference Example
5. 手把手教你在LabVIEW下使用OPC
附件: OPC Server.rar
报告日期: 10/26/2014
最近更新: 10/26/2014
文档编号: 6QPKRT0X