西门子6ES7214-1AD23-0XB8选型说明
原有系统构成:
(1)本地中心站,采集水厂的设备状态,采用西门子S5-115U.
(2)取水和1号加压泵站,采用西门子S5-115U
(3)2号加压泵站控制系统,采用西门子S5-115U
(4)在市内的东南西北和高处和低处安装了测量水管压力站,采用西门子S5-100U。用抄表的人工方式来记录设备状态
用户需求:
随着时代的进步,和对工艺的进一步的要求,要实时对各个站的管道压力、liuliang及各个的阀门开关的状态进行监视和控制,从而降低了故障率和tigao了对此系统的反应时间,更好保证城市供水。并把各个站的所有设备的数据送到中心监控站里,进行监控,和电子统计。
实现方案:
在水处理厂中心站与各个泵站和测压站之间,由于距离较远达几十公里,我们决定采用无线电通讯方式,并且因为大山的阻碍,在取水1号加压泵站,2号加压泵站控到中心站之间,设立了中继站进行转发。而水处理厂中心站与6个市内的测压站之间由于距离较近直接通过无线电通讯。
这个项目的主要问题是无线电通讯的任务,如何在已有的S5系列的设备上,加上无线电通讯呢。根据现有的实际情况,在不动原有西门子S5-115U的基础上,决定在此基础上加入西门子的Sinaut产品的ST1系列模块来实行无线电通讯。Sinaut ST1是基于SIMATIC S5的程序控制的系统,由硬件模块和软件软件模块组成。适用各种自动化的任务,完整的无线电通讯方式,允许数据传输到或近或远的地方。数据能够通过专线,或者各种PTT网络(GSM,ISDN,拨号Modem,无线电通讯等)等方式传送。
Sinaut ST1硬件包括,TIM模块(遥控接口模块,即S5-PLC通讯功能模块),modem( 用于数字量和模拟量相互转换),无线电台(无线电发射装置)。软件是Sinaut TD1软件包。这样我们在STEP5的基础上,用TD1这个扩展软件包进行对硬件TIM板编程。把水处理厂中心站作为主站,其他站作为从站。以直接轮巡的方式逐个采集各个从站的信息,并且这样的方式只有当从站发生数据发生变化时,才进行数据的传递,大大的加快了数据的更新速度和硬件设备的使用寿命。
系统图如下:
上位机显示:
我们采用监控组态软件, 从中心站的PLC中采集数据,实时的反映整个系统(本地站,无线电远程站)的状态。主要显示部分包括:水厂控制工艺图、运行状态表、报警和历史数据的查询,统计报表、趋势图。控制工艺图反映水厂的各个泵站的运行状态,并且以动态的图形、数据和实时的现场保持一致,运行状态表中反映主要设备的开关状态、现场仪表的参数、累计值(liuliang,水位,浊度 ,温度,PH,压力等)。报表,每天打印一份主要设备的状态的日报。除了在显示器上显示外,并且把主要数据显示在电子显示屏上。 此系统投运以来一直正常工作,达到了预期的实施效果。
1. 概述
虚拟仪器代表了今后测试仪器的发展方向,而LabVIEW作为虚拟仪器的一种较为的开发平台,因其编程简单、功能图表丰富及开发环境开发,而得到日益广泛的应用。
在生产型企业中的典型应用是由PLC网络和工控机组成的以LabVIEW为开发平台的生产监控系统。该系统通过PLC、LabVIEW的控制程序和网络通讯功能,实现生产网络各功能的控制和监控。因此实现工控机与PLC网络的通讯和数据的解析是实现整个监控系统的基础。
此文中,介绍了如何通过LabVIEW的串口节点和仪器I/O助手实现读写松下FP2 系列的PLC。 图1-1为PLC和工控机组成的生产网络的典型架构图,其中各PLC以PC bbbb网络的形式通讯。
图1-1 PC机与PLC组成的典型网络架构图
图中PLC模块组的各模块单元分别为:
a) PW:电源模块
b) CPU:松下FP2系列PLC控制模块
c) MW:网络通讯单元MEWNET (Multi-wire bbbb unit)
d) SDU:串口通讯单元Serial data unit
e) I/O:输入输出模块
2. 串口读写程序的编写
2.1. LabVIEW中VISA节点简介
在LABVIEW中用于串行通信的节点实际上是VISA(Virtual instrument software architecture)节点。为了方便用户使用,LabVIEW将这些VISA节点单独组成一个子模块,共包含6个节点,分别实现初始化串口、串口写、串口读、中断以及关闭串口等功能,这些节点位于Functions模板/All Functions子模板/Instrument I/O子模板、Serial子模板中,如下图2-1所示。
图2-1 VISA节点选择路径
在LabVIEW中,VISA串行通信节点的使用方法比较简单,且易于理解。以下试验结合各节点的参数定义、用法及功能,详细说明了一个完整的串口读写过程。
2.2. LabVIEW编写串口读写程序
图2-2所示的是LabVIEW 中串口读写程序的前面板设计,在此面板中可选择串口资源,设置串口参数,包括波特率、数据位、校验、停止位与握手控制(流控制)等。按如图1-2上的参数设置好,在发送区输入符合松下PLC通讯协议格式的读命令字符串:“%01#RDD0000000026**\r”,按下运行按钮后,在返回区会收到正确返回字串:
“%01RD6F694F496F704F5051576F696F696F696F696F696F
696F696F696F696F696F696F696F696F696F696F696F696F696F696F696F696F6910”。
依照《松下MEWTOCOL通讯协议》的解释,此字串已正确的返回数据寄存器DT0到DT26的数据信息。这样就轻易地实现了LabVIEW的一个读取PLC数值的动作。
图2-2 LabVIEW串口程序前面板
在LabVIEW 中,前面板节点与后面板节点成对应前后关系,程序在后面板执行,其结果在前面板中显示。打开LABVIEW的后面板,程序显示如下图2-3,其执行顺序为:步,初始化串口,设置串口的通讯参数,使其与PLC的串行通讯参数一致,此动作由“VISA Configuration Serial Port.vi”节点点完成。如下图:
图2-3 LabVIEW串口设置节点后面板
该节点的主要功能是初始化、配置串口。用该节点设置串口的波特率为:115200bps、数据位为:8位;停止位为:1位;奇偶校验为:奇校验;liuliang控制为:不使用。其中波特率可设为115200 bps、19200 bps、9600 bps等;数据位一般可设为:7或8位;而校验位可设为:无校验、奇校验与偶校验等。根据此节点的特征:输入数字“0”代表为无校验,输入数字“1”为奇校验,输入数字“2”为偶校验。对于停止位则输入数字“10”代表选择的停止位为1位,输入数字“15”代表选择停止位为1.5位,输入数字“20”代表选择停止位为2位。握手控制(流控制)一般设为不使用,即输入数字“0”(握手控制只在串口缓存不足时才使用)。
完成了步串口设置后,程序就执行第二步动作,向串口写入字符。这一步动作由VISA节点“VISA Write”完成。图标及端口见图2-4。
图2-4 VISA 的串口写节点
该节点的主要功能:将把write buffer端口输入的数据写入由VISA resource name端口指定的设备中。可用于将字符串写入串口的输出缓存,将字符串从串口发送出去。
第三步动作为等待动作。串口将数据发送给PLC后,串口与PLC都需要时间执行程序。
如图2-5所示的,由一个毫秒等待计时器与一个顺序结构框架表示此程序需要等待50ms,然后才可以执行下一步程序。
图2-5 串口等待50ms
第四步为读取串口缓存动作,这一步动作由VISA节点“VISA Read”完成。图标及端口见图2-6。
图2-6 VISA 的串口读节点
该节点的主要功能:从由 VISA resource name端口指定的设备中读取由byte count端口指定长度的数据。可用于从串口缓存中读出指定长度的数据。
而检测当前串口输入字节数可由属性节点“Property Node”中完成,图标及端口见图2-7。
图2-7 串口属性节点
该节点的主要功能:返回串口的输入缓存中数据的字节数。在使用VISA Read节点读取串口前,可以先用VISA Bytes at Serial Port节点检测当前串口输入缓存中存在的字节数,然后由此指定VISA Read节点从串口输入缓存中读取的字节数,可以保证一次将串口输入缓存中的数据全部读出。此节点功能可设为其它VIS节点的属性如:TCP/IP或USB。
第五步动作就是在完成发送与读取后关闭占用的串口资源。这一步动作由VISA节点“VISA Close”完成。图标及端口见图2-8
图2-8 串口关闭节点
该节点的主要功能:关闭由VISA resource name端口指定的设备连接。可用于关闭一个已经打开的串口,从而释放LabVIEW对这个串口资源的占用。
整个动作在LabVIEW中的写法如图2-9:
图2-9 串口读写程序的后面板
以上是一个较为简单的串口读写程序。由于在整个PC bbbb网络中连接了多个站点的松下PLC,而PLC一次多只能被读取连续的27个数据寄存器的数值,所以,要完成整个生产系统的数据读取,必须要分开执行多次读和写的动作。在这种情况下,就需要考虑读写的时序问题。要完成连续的周期性的多点读写操作,在LabVIEW中可以使用顺序结构。顺序结构的功能是强制程序按一定的顺序执行。顺序结构可分为层叠式与平铺式。不过这两种结构执行相同的读写操作,时间和顺序都相同,都可以实现对于串口的连续多点读写。
由于读写数据时每个数据长度不一定都一样,数据较多的,要等待较长的时间,这样才能保证在等待时间内将所有数据读取完毕;数据较少的,就不需等待同样的时间。然而等待的时间一般较难确定,时间设得太长,占用串口的时间就会较长,会降低通讯效率,造成数据延时;时间太短,数据没有完全返回时就执行下一步程序,可能会造成数据的丢失。
在LabVIEW 7.0中新增了一个仪器I/O助手“Instrument I/O Assistant Express VI”,此VI可以较好地解决串口等待时间的问题。节点的图标如下图2-10:
图2-10 Instrument I/O Assistant Express VI的图标
仪器I/O助手提供了与GPIB、USB、串口、VXI等及其他传统仪器的直接I/O连接,使用这种代码生成助手(code-generating assistant),可以轻松地实现多点连续读写串口功能。以下只选择读串口的功能作解说。
首先,双击此节点,会弹出其操作界面,如下图2-11:
图2-11仪器I/O助手操作界面
此操作界面可选择串口,并设置串口特性。点击如图“ ”按钮,会弹出如图2-12的串口设置界面。
图2-12 仪器I/O助手下的串口设置界面
此操作界面设置串口参数的功能与“VISA Configuration Serial Port.vi”节点相同,参数是被固化的,也就是说一旦完成了设置,串口的参数就不会随意地改动,除非重新进入此界面再设置。
设置好参数后,可以点击“Add step”操作,跟随其指示操作可以完成其他设置。如下图:
图2-13 I/O助手下的串口其他设置的界面
在此操作界面上可以测试串口数据,写入要发送的字符串,并进行单步操作,也可添加读写命令等操作,还可以查询帮助文件,获得更详细操作说明。完成任务的输出端口“Taken1”和“Taken2”,以字符串形式直接输出。但如果输出口大于5个时,其会将输出口变成“字符簇”输出,此时只要选择节点“Unbundle”将其解包就可以得出其相应的字符串。
通过以上设置,就可以实现不间断地读取PLC数据寄存器“DT0”到“DT26”与“D100”到“DT126”中的数据。实践证明,用此程序读取相同数量与数值PLC寄存器时,此功能节点要比用VISA节点写的程序要快很多,基本上是个无等待、不间断的读取过程。
2.3. 结论
结合VISA各功能节点与仪器I/O助手“Instrument I/O Assistant Express VI”这两种串口读写方法,依照《松下MEWTOCOL协议》,就可以轻松地实现对FP2系列PLC中各种状态的读写:包括改变输入、输出点的状态,对数据寄存器的数值进行读写,读取PLC的系统数据等操作,还能轻易地读写PC-bbbb网络上各站点的数据与监控各站点的PLC状态。