From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



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)
  
            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确认并返回。

 

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连接到PLC

1.    进行硬件连线,如下图所示。需要注意,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 Server

1.    打开西门子的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
http://www.docin.com/p-191300718.html
2. NI-OPC Server支持的设备与驱动控件程序列表
http://www.ni.com/white-paper/6417/zhs/
3. DSC模块之OPC Server的使用(以PLC为例)
http://digital.ni.com/public.nsf/allkb/281365919A6CDC7E86257B1E0020813B
4. S7 PLC TCP/IP Protocol Reference Example
https://decibel.ni.com/content/docs/DOC-5467
5. 手把手教你在LabVIEW下使用OPC
http://www.ni.com/white-paper/7450/zhs/


附件:
OPC Server.rar




报告日期: 10/26/2014
最近更新: 10/26/2014
文档编号: 6QPKRT0X