6ES7212-1AB23-0XB8诚信合作
  • 6ES7212-1AB23-0XB8诚信合作
  • 6ES7212-1AB23-0XB8诚信合作
  • 6ES7212-1AB23-0XB8诚信合作

产品描述

产品规格模块式包装说明全新

 6ES7212-1AB23-0XB8诚信合作


在众多生产领域中,经常需要对贮槽、贮罐、水池等容器中的液位进行监控,以往常采用传统的继电器接触控制,使用硬连接电器多,性差,自动化程度不高,目前已有许多企业采用控制器对传统接触控制进行改造,大大提高了控制系统的性和自控程度,为企业提供了的生产。本文在此介绍一种采用可编程控制器(PLC)对液位进行监控的一种方法,其电路结构简单,投资少(可利用原有设施改造),监控系统不仅自动化程度高,还具有在线修改功能,灵活性强,适用于多段液位监控场合。

1.控制要求

控制系统可以根据生产的需要将液位分为多段来设定,并分段显示,当液位为自动启动料泵加液,液位到达设定值时发出声光报警,并停泵;操作人员可通过确认按钮解除音响报警信号,闪烁灯光转平光;系统具有手动/自动两种控制方式,并设有试验功能。

2.PLC选型

目前在上有从美国、德国、日本等国引进的多种系列PLC,国内也有许多厂家组装、开发数十种PLC,故PLC系列标准不一,功能参差不齐,价格悬殊。在此情况下,PLC的选择应着重考虑PLC的性能价格比,选择性高,功能相当,负载能力合适,经济实惠的PLC。本文介绍以四段液位控制对象为例,据对多种因素的分析比较及监控系统输入、输出点数的要求,选用日本立石(OMRON)公司C20P型PLC。

3.系统硬件配置

为实现液位的手动/自动控制,需要输入口12点,输出口8点,选用C20P 20点I/O单元的PLC,输入光电隔离,输出继电器隔离,负载能力强;液位检测采用干簧管传感器,手动/自动转换、运行/试验转换和液位设定采用双位旋钮,手动启泵、停泵和确认、试验采用常开按钮;输出选用电子音响报警器和24V直流指示灯、继电器。

为节省输入口数量,节省投资,本系统运行/试验功能的转换采用了对I/O模块接线的优化,使PLC输入模块中1个输入节点起到2个输入节点的作用,完成PLC工作在两种方式下的I/O功能。

系统正常运行时,运行/试验转换旋钮S接通1-3接点,各试验按钮不起作用,液位信号由各干簧管传感器传输给PLC;系统处于试验状态时,S接通1-2接点,各传感器输入信号不起作用,此时可用各试验按钮模拟各段液位信号传输给PLC。两种控制方式下的两个信号共用一个输入节点,成倍提高I/O端口的利用率,节省I/O点数。

4.系统软件设计

4.2  编程说明

 = 1 \* GB3 ① 本系统为液位的双位控制系统。液位可分四段设定和显示,在液位时自动启泵,当液位到达设定值时自动停泵。

 = 2 \* GB3 ② 采用IL/ILC分支指令,通过0008旋钮实现手动/自动两种功能的选择,当0008旋钮闭合时,自动指示灯亮,系统执行IL/ILC分支内程序,完成自动监控;当0008旋钮打开时,手动指示灯亮,系统执行分支外程序,通过0010、0011旋钮实现手动启泵、停泵。

 = 3 \* GB3 ③ 液位由0004~0007旋钮分、较低、较高、四段设定,系统设置由低到高的权,即当多个设定旋钮同时闭合时,低液位设定。

 = 4 \* GB3 ④ 采用干簧管检测液位时,当液位到达检测点时其触点闭合,指示灯点亮;液位离开检测点时其触点打开,为保证相应测量段指示灯不立即熄灭及不受液位波动的影响,每段指示灯的控制均采用KEEP保持指令,只有当液位上升或下降到相邻段时指示灯才熄灭。

 = 5 \* GB3 ⑤ 当液位到达检测点时,液位指示灯闪烁,灯光闪烁因子采用内部闪烁内标1902,以1S为周期闪烁;若液位到达设定值时,自动停泵,并设置电子音响报警,报警声设计为响3S停2S,循环30S后自停,或在30S内按0009确认按钮停音响,指示灯传平光。电子音响报警和泵的启停同样考虑液位的波动影响,设计时采用KEEP保持指令和DIFU微分指令联合使用。

 = 6 \* GB3 ⑥ 开车时,液位或液位时,需先手动启泵,再切换成自动运行;或入试验方式,按液位试验按钮启动料泵,再进入自动运行方式


除上述输入输出继电器外,其余的均属内部继电器。 内部继电器实质上是一些存储器单元,它们不能直接控制外部负载,只能在PLC内部起各种控制作用,或直接受外部信号控制。在梯形图中它们也可用线圈和触点来表示,线圈的状态由逻辑关系控制,触点相当于读继电器的状态,因此可在梯形图程序中被无限次使用。CPM1A系列PLC的内部继电器及其通道号表示可分为以下几类:

(1)内部辅助继电器(AR) 内部辅助继电器的作用是在PLC内部起信号的控制和扩展作用,相当于接触继电器线路中的中间继电器。CPM1A机共有512个的内部辅助继电器,其编号为20000~23115,所占的通道号为200CH~231CH。内部辅助继电器没有掉电保持状态的功能。

(2)暂存继电器(TR) 暂存继电器用于具有分支点的梯形图程序的编程,它可把分支点的数据暂时贮存起来。CPM1A型机提供了8个暂存继电器,其编号为TR0~TR7,在具体使用暂存继电器时,其编号前的“TR”一定要标写以便区别。TR继电器只能与LD,OUT指令联用,其他指令不能使用TR作数据位。

(3)保持继电器(HR) 保持继电器用于各种数据的存储和操作,它具有停电记忆功能,可以在PLC掉电时保持其数据不变。保持作用是通过PLC内的锂电池实现的。保持继电器的用途与内部辅助继电器基本相同。CPM1A系列PLC中的保持继电器共有320个,其编号为HR0000~HR1915,所占的通道号为HR00~HR19。在编程中使用保持继电器时,除了标明其编号外,还要在编号前加上“HR”字符以示区别,例如“HR0001”。

(4)定时/计数器(TIM/CNT) 在CPM1A系列PLC中提供128个定时/计数器,使用时,某一编号只能用作定时器或计数器,不能同时既用作定时器又用作计数器,如已使用了TIM001,就不能再出现CNT001,反之亦然。

此外,在CPM1A系列PLC中,对于上述继电器编号,也可以用来进行高速定时(又称高速定时器TIMH)和可逆计数(又称可逆计数器CNTR),它们在使用时需要用特殊指令代码来。

(5)内部继电器(SR) 内部继电器用于监视PLC的工作状态,自动产生时钟脉冲对状态进行判断等。其特点是用户不能对其进行编程,而只能在程序中读取其触点状态。

CPM1A系列PLC中常用的15个继电器及它们的具体编号和功能如下:

25200继电器:高速计数复位标志(软件复位)。

25208继电器:外设通讯口复位时仅一个扫描周期为ON,然后回到OFF状态。

25211继电器: 强制置位/复位的保持标志。在编程模式与监视模式互相切换时,ON为保持强制置位/复位的接点;OFF为解除强制置位/复位的接点。

25309继电器:扫描时间出错报警。当PLC的扫描周期过100s时,1809变ON并报警,但CPU仍继续工作;当PLC的扫描周期过130s时,CPU将停止工作。

25313继电器:常ON继电器

25314继电器:常OFF继电器

25315继电器:次扫描标志。PLC开始运行时,25315为ON一个扫描周期,然后变OFF。

25500~25502继电器:时钟脉冲标志。这3个继电器用于产生时钟脉冲,可用在定时或构成闪烁电路。其中,25500产生0.1s脉冲(0.05sON/0.05sOFF),在电源中断时能保持当前值;25501产生0.2s脉冲(0.1sON/0.1sOFF),具有断电保持功能;25502产生1s脉冲(0.5sON/0.5sOFF),具有断电保持功能。

25503~25507继电器:这五个继电器为算术运算标志。其中,25503为出错标志,若算术运算不是BCD码输出时,则25503为ON;25504为进位标志CY,若算术运算结果有进位/错位时,则25504为ON;25505为大于标志,在执行CMP指令时,若比较结果“>”,则25505为ON;25506为相等标志EQ,在执行CMP指令时,若比较结果“=”,则25506为ON;25507为小于标志LE,在执行CMP指令时,若比较结果“<”,则有25507为ON。

(6)数据存储继电器(DM) 数据存储继电器实际是RAM中的一个区域,又称数据存储区(简称DM区)它只能以通道的形式访问。CPM1A系列PLC提供的读/写数据存储器寻址范围为DM0000~DM1023(共1023字),只读数据存储器寻址范围为DM6144~DM6655(共512字)。编程时需要在通道号前标注“DM”,DM区具有掉电保持功能。

20220222173907301904.jpg202202221739073176584.jpg202202221739072455394.jpg


 PLC的控制方式属于存储程序控制,其控制功能是通过存放在存储器内的程序来实现的,若要对控制功能作必要修改,只需改变控制程序即可,这就实现了控制的软件化。可编程控制器的优点在于“可”字,从软件来讲,其控制程序可编辑、可修改;从硬件上讲,其外部设备配置可变。构建一个PLC控制系统的就在于控制程序的编制,但外部设备的选用也将对程序的编制产生影响。因此在进行程序设计时应结合实际需要,硬、软件综合考虑。本文就硬、软两方面,选取梯形图为编程语言,以松下电工FPO-C32型PLC为例,对PLC使用过程中易出现的几个问题及解决方法进行了分析。

一、PLC的编程元件

PLC的各种功能主要是通过运行控制程序来实现。编制程序时,需要合理使用PLC提供的编程元件(即软元件)。FPO型PLC中常用的编程元件有两种:位元件(bit)和字元件(word)。位元件实际上是PLC内存区域所提供的一个二进制位单元,又被称为软继电器,主要用作基本顺序指令的编程元件,如输入继电器Xn、输出继电器Yn、内部通用继电器Rn、定时(计数)器等,其参与控制的方式主要是通过对应触点的通断状态改变影响逻辑运算即输出。

字元件则为PLC内存区域内的一个字单元(16bit),主要用作功能指令和指令的编程元件,通常用以存放数据,如数据寄存器DTn,定时(计数)器的设定值SVn、经过值EVn等。字元件没有触点,通常以整体内容参与控制。

值得注意的是内存中的输入(X)区、输出(Y)区和内部通用(R)区,该区中的每个bit均可用作位元件,而且每16bit可构成一个字元件,如WRIO即是由16个位元件R100~R10F构成的字元件,该字元件中的内容一旦发生变化,这16个位的状态也随之发生改变。

二、外部输入设备的选用与PLC输入继电器的使用

1. 外部输入信号的采集

PLC的外部设备主要是指控制系统中的输入输出设备,其中输人设备是对系统发出各种控制信号的主令电器,在编写控制程序时注意外部输入设备使用的是常开还是常闭触点,并以此为基础进行程序编制。否则易出现控制错误。

在PLC内部存储器中有于输入状态存储的输入继电器区,各输入设备(开关、按钮、行程开关或传感器信号)的状态经由输入接口电路存储在该区域内,每个输入继电器可存储一个输入设备状态。PLC中使用的“继电器”并非实体继电器,而是“软继电器”,可提供无数个常开、常闭触点用于编程。每个“软继电器”仅对应PLC存储单元中的一位(bit),该位状态为“1”,表示该“软继电器线圈”通电,则程序中所有该继电器的触点都动作。输入继电器作为PLC接收外部主令信号的器件,通过接线与外部输入设备相联系,其“线圈”状态只能由外部输入信号驱动。

2. 停车按钮使用常闭型

由于PLC在运行程序判别触点通断状态时,只取决于其内存中输入继电器线圈的状态,并不直接识别外部设备,因此编程时,外部设备的选用与程序中的触点类型密切相关。这是一个在对照电气控制原理图进行PLC编程时易出现的问题。典型的例子是基本控制--“起保停控制”中的停车控制。

3. 停车按钮使用常开型

若希望编制出符合我们平时阅读习惯的梯形图程序,则在选用外部停车设备时需使用按钮SB0的常开触点与X0相连。

三、顺序控制多步同输出的编程方法

顺序控制是生产现场常见的一类控制任务,步进指令是PLC指令库中于顺序控制的。步进指令编程时,根据工艺流程将程序划分为一个个立的程序段,执行时,CPU严格按梯形图编程顺序,只有执行完段程序后才能下一段程序,并在下一段程序执行之前,将程序段复位。并且在语法上要求各程序段所使用的输出不允许重复。这在解决顺序控制任务中有多步同输出的情况时,就带来了一定的困难。借助于内部通用继电器可方便解决这一难题。

四、PLC的“串行”运行方式与控制程序的编制

PLC与继电接触器控制的重要区别之一就是工作方式不同。继电接触器控制系统是按“并行”方式工作的,也就是说是按同时执行的方式工作的,只要形成电流通路,就可能有几个电器同时动作。而PLC是以“串行”方式工作的,PLC在循环执行程序时,是按照语句的书写顺序自上而下进行逻辑运算,而逻辑运算的结果会影响后面语句的逻辑运算结果。因此梯形图编程时,各语句的位置也会对控制功能产生关键影响。




近年来,随着PLC控制器的不断新,其性能要求也在不断提高,面对新的要求,PLC可控编程系统的故障诊断技术也需要不断完善,尤其是面对新设备时,准确的判断故障并进行有效的控制对于工业生产活动有着重要的意义。

1、PLC控制系统的结构及故障诊断的任务

1.PLC控制系统的结构及故障类型

PLC控制系统由一下几部分组成,主要是被控对象、传感器、控制器和执行器四部分组成,而这四部分当中又分为电子、机械、软件和其它的因素,是具有典型性的系统结构。针对于控制系统的结构,那么在组成控制系统的所有环节中都有可能发生故障,但是从整体上可以分为一下三个类型:分别是被控制对象故障,即在被控制对象中的一个子设备不能良好的发挥其功能;仪表故障,即控制系统的传感器、执行器和计算机的相关接口发生故障;计算机软件,即包括计算机诊断程序和控制算法程序在内的软件发生故障。

2.PLC故障诊断的任务

实现控制系统的故障诊断任务,可以按照由低级到,从简单到复杂的程序进行故障的发现,一般从以下四个方面进行完成:1、故障建模。具体指按照先验信息和输入输出之间的关系,逐步建立系统故障的数学模型,将此作为故障检测和诊断的依据。2、故障检测。故障检测可以从可测或者不可测的估计变量中,去努力判断运行的系统是否会发生故障,如果系统发生问题,就会发出相应的警报。3、故障的分离。当系统发生故障的时候,要给出故障的位置,进而区别故障原因到底来自执行器、传感器还是被控对象。4、故障分类、评价和决策。当准确判断故障之后,要深入分析故障存在的严重程度、还有就是系统的影响和发展的趋势,通过不同的情况来进一步采取不同的措施。

2、PLC控制系统的故障分布

对于控制系统故障的早期诊断对于工业生产有着重要的意义,为了缩短早期故障期,进一步延长随机故障期,推迟耗损故障期的到来,我们一般会采用的方法,在体统设计伊始就采取一定的措施,在耗损故障期到来之前,换进入耗损期故障的元器件。当然,为了好的找到故障的位置,做好上述工作,对于故障分布的部位进行相当的熟悉。故障的分布一般如下:

1.外部故障

控制系统的外部故障具体指在实际工作过程中直接联系的各种开关、执行机构、传感器和负载等设备。这部分设备发生故障的时候,一般会直接影响系统的相关控制功能,产生故障的原因一般是设备本身存在质量问题或者是设别寿命的原因。

2.系统故障

系统故障是系统运行的全局性故障。系统故障分为固定性故障和偶然性故障。偶然性故障指故障发生后,可重新启动使系统恢复正常;定性故障指的是故障发生后,重新启动不能恢复而需要换硬件或软件,系统才能恢复正常。固定性故障一般由系统设计不当或系统运行年数较长所致。

3.硬件故障

在控制系统中硬件故障主要指系统的模板损坏而带来的故障问题,这种故障一般情况下表现明显,而且影响起来也是局部,导致这种问题的原因是设备在使用过程中使用时间较长,模板的元件老化而造成的。

4.软件故障

软件故障是软件本身所包含的错误所引起的,主要是软件设计考虑不周,在招待中一旦条件满足就会引发。PLC的5%故障中,的故障发生在FO模板中,只有10% 的故障发生在控制器中,也就是说,发生在PLC的CPU、存储器、系统总线和电源中的故障只占系统全部故障的5% ,而发生在FO模板中的故障也只占系统全部故障的5%。

3、PLC控制系统常见故障诊断方法

1.PLC 控制系统故障的宏观诊断

故障的宏观诊断就是根据经验,参照发生故障的环境和现象来确定故障的部位和原因。PLC 控制系统的故障宏观诊断方法如下:

1、是否为使用不当引起的故障,如属于这类故障,则根据使用情况可初步判断出故障类型、发生部位。常见的使用不当包括供电电源故障、端子接线故障、模板安装故障、现场操作故障等。

2、如果不是使用故障,则可能是偶然性故障或系统运行时间较长所引发的故障。对于这类故障可按PLC 的故障分布,依次检查、判断故障。检查与实际过程相连的传感器、检测开关、执行机构和负载是否有故障;然后检查PLC 的I/O 模板是否有故障;后检查PLC 的CPU 是否有故障。

3、采取上述步骤还检查不出故障部位和原因,则可能是系统设计错误,此时要重新检查系统设计,包括硬件设计和软件设计。

2.PLC 控制系统故障的微观诊断

1、电源故障

PLC 容易发生故障的地方一般在电源系统和系统总线。电源在连续工作中,电压和电流的波动冲击是不可避免的。PLC 的电源输入应加隔离变压器,某些场合,可同时采用加隔离变压器和低通滤波器的方法,抑制来自电网的干扰与冲击。变压器二次连接线应采用双绞线,同时加装降温措施,并定期除尘。系统总线的损坏主要出现在模块式PLC 上。模块式PLC 多为插件结构,经常插拔模块会造成局部印刷板或底板、接插件接口等处的总线损坏。在环境温度、湿度的影响下,总线印刷线路的老化、接触点的氧化等都是系统总线损坏的原因。(//www./版权所有)所以在系统设计和处理系统故障时,要考虑到空气、尘埃、腐蚀等因素对设备的破坏。外界环境干扰也是造成PLC 系统故障的重要原因,因此电源、传感器、仪表等布线应尽量与动力电缆分开敷设, 特别要远离高干扰的变频器输出电缆,并将PLC 规范接地。如果硬件上不能抑制干扰,也可以借助软件编程,如利用PLC 软元件里的定时器、计数器、辅助继电器等。

2、CPU故障处理

CPU故障的主要表现是CPU单元停机或者是RUN_LED灯不亮。这种现象的产生是由以下几个原因造成的:一是噪声干扰,电源异常无法正常工作。二是CPU控制程序出现错误或者是丢失。三是CPU内部总线上的电元器件产生故障或者是总线线路产生故障。四是微处理故障。针对CPU故障的处理,要根据新疆地区PLC控制的实际情况来分析故障原因。如果是噪声干扰造成的故障,则需要重启CPU或者是重新上电。如果控制程序出现了错误,就是要及时修改或者是重新装载程序。当内部总线出现问题,处理的措施一般都是要换故障单元或者是要重新布置线路。微处理故障是故障,出现这种故障就要换CPU了。

3、输入输出故障

输入输出故障可以从两个角度来考率。一是输入故障。二是输出故障。把两者分开来予以论述。输入故障。输入故障的主要表现是PLC控制器运行过程中出现的输入全部不接通,输入断电、关断等现象。针对输入故障的处理,如果是断电了的话,要检查回路,如果是回路问题要及时修改回路。输入全部不接通有可能是电压过低造成的,这时就要输入额定电压。输出故障的表现是整个模块输出不接通或者是整个模块全部不关断等现象。针对这些现象的处理,要根据故障原因的不同来分别处理。

4、结束语

总之,PLC控制系统不是零散的存在,而是一个完整的系统,因此在考虑故障诊断时也要综合各种因素,从不同角度进行深入分析,只有熟练的运用PLC控制系统自身的诊断功能,及其编程软件的在线监控等多方面的技术手段,才能准确的掌握故障诊断信息,进而进行有效的诊断,从而降低故障诊断失误而造成的损失,提高工业生产的效率。

 1、电源干扰的抑制
一般通过设置屏蔽电缆和PLC局部屏蔽及高压泄放元件进行保护。选用隔离性能较好的设备、选用优良的电源、动力线和信号线走线要加合理等等,对电源变压器、处理器、编程器等主要部件,采用导电、导磁性良好的材料进行屏蔽处理,以防止外界干扰信号的影响。电源调整与保护:电源波动造成电压畸变或毛刺,将对PLC及I/O模块产生不良影响。对微处理器部件所需要的+5V电源采用多级滤波处理,并用集成电压调整器进行调整,以适应交流电网的波动和过电压、欠电压的影响。尽量时电源线平行走线,时电源线对地呈低阻抗,以减少电源噪声干扰。其屏蔽层接地方式不同,对干扰抑制效果不一样,一般次级线圈不能接地。输入、输出线应用双绞线且屏蔽层应接地,以抑制共摸干扰。此外可以安装一台带屏蔽层的变比为1:1的隔离变压器,以减少设备与地之间的干扰,还可以在电源输入端串接LC滤波电路等。
2 、信号线引入的防干扰措施
动力线、控制线以及PLC的电源线和I/O线应分别配线,隔离变压器与PLC和I/O之间应采用双绞线连接。将PLC的I/O线和大功率线分开走线,如在同槽内,分开捆扎交流线、直流线,若条件允许,分槽走线,这不仅能使其有尽可能大的空间距离,并能将干扰降到限度。此外利用信号隔离器解决干扰问题也是很理想的办法,其原理是将PLC接收的信号,通过半导体器件调制变换,然后通过光感或磁感器件进行隔离转换,然后再进行解调变换回隔离前原信号或不同信号,同时对隔离后信号的供电电源进行隔离处理。保证变换后的信号、电源、地之间立。只要在有干扰的地方,输入端和输出端中间加上这种隔离器,就可有效解决干扰问题。
3 、正确选择接地点,完善接地系统
良好的接地是保证PLC工作的重要条件,可以避免偶然发生的电压冲击危害。接地的目的通常有两个,其一为了,其二是为了抑制干扰。完善的接地系统是PLC控制系统抗电磁干扰的重要措施之一。在PLC控制系统中,具有多种形式的“接地”,主要有:
(1)信号地。输入端信号元件的地;
(2)交流地。交流供电电源的N线;
(3)屏蔽地。为防止静电和磁场感应而设置的外壳或金属丝网,通过专门的铜导线将其接入地下;
(4)保护地。将机器设备的外壳或设备内立器件的外壳接地,用于保护人身和防止设备漏电。
为了抑制附加在电源及输入、输出端的干扰,应对PLC系统进行良好的接地。一般情况下,接地方式与信号频率有关,当频率1MHz时,可用一点接地;10MHz时,采用多点接地;在1~10MH之间时,通常情况下,PLC控制系统采用一点接地,将所有地线端子和近接地点相连接,以获得的抗干扰能力。接地线截面积不能小于2mm2,接地电阻不能大于100Ω,接地线使用地线。
4、变频器干扰的抑制
(1)加隔离变压器,主要是针对来自电源的传导干扰,可以将绝大部分的传导干扰阻隔在隔离变压器之前。
(2)使用滤波器,滤波器具有较强的抗干扰能力,还具有防止将设备本身的干扰传导给电源,有些还兼有尖峰电压吸收功能。
(3)使用输出电抗器,在变频器到电动机之间增加交流电抗器主要是减少变频器输出在能量传输过程中线路产生电磁辐射,影响其它设备正常。
综上所述,其实PLC控制系统中的干扰是一个十分复杂的问题,因此在抗干扰设计中应综合考虑各方面的因素,合理有效地抑制抗干扰,才能够使PLC控制系统正常工作。随着PLC应用领域的不断拓宽,如何的使用PLC也成为其发展的重要因素。在不久的将来,PLC会有大的发展,产品的品种会丰富、规格齐全,通过的人机界面、完备的通信设备会好地适应各种工业控制场合的需求,PLC作为自动化控制网络和通用网络的重要组成部分,将在工业控制领域发挥越来越大的作用


1.某些国外的小型PLC的程序结构

这些PLC的用户程序由主程序、子程序和中断程序组成。在每一个扫描循环周期,CPU都要调用一次主程序。主程序可以调用子程序,小型控制系统可以只有主程序。中断程序用于快速响应中断事件。在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。执行完中断程序后,继续执行被暂停执行的程序或任务。它们的子程序和中断程序没有局部变量,子程序没有输入、输出参数。

2.西门子的S7-200的程序结构

过程映像输入/输出(I/Q)、变量存储器V、内部存储器位M、定时器T、计数器C等属于全局变量。S7-200的程序组织单元(ProgramOrganizationalUnit,简称为POU)包括主程序、子程序和中断程序。每个POU均有自己的64字节局部变量,局部变量只能在它所在的POU中使用。与此相反,全局变量可以在各POU中使用。

下面是子程序可以使用的局部变量:

1)TEMP(临时变量)是暂时保存在局部数据区中的变量。只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再保存临时变量的数值。

2)IN是由调用它的POU提供的输入参数。

3)OUT是返回给调用它的POU的输出参数(子程序的执行结果)。

4)IN_OUT是输入_输出参数,其初始值由调用它的POU传送给子程序,并用同一变量将子程序的执行结果返回给调用它的POU。

主程序和中断程序的局部变量中只有临时变量TEMP。

具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。这些厂家的编程人员为设备的各组件或工艺功能编写了大量的通用的子程序。即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以通过程序之间的调用快速“组装”出满足不同用户要求的控制程序。就好像用数字集成电路芯片组成复杂的数字电路一样。

子程序如果没有输入、输出参数,它和调用它的程序之间没有清晰的接口,很难实现结构化编程。

子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。将子程序和中断程序移植到别的项目时,需要重新统一安排它们使用的全局变量,以保不会出现冲突。当程序很复杂,子程序和中断程序很多时,这种重新分配地址的工作量非常大。

如果子程序和中断程序有局部变量,并且它们内部只使用局部变量,不使用全局变量,因为与其他POU没有冲突,不需作任何改动,就可以将子程序移植到别的项目中去。

3.西门子的S7-300/400的程序结构

S7-300/400将子程序分为功能(Function,或称为函数)和功能块(FunctionBlock)。

S7-300/400的功能与S7-200的子程序基本上相同。它们均有输入、输出参数和临时变量,功能的局部数据中的返回值实际上属于输出参数。它们没有的存储区,功能执行结束后,不再保存临时变量中的数据。

可以用全局变量来保存那些在功能执行结束后需要保存的数据,但是会影响到功能的可移植性。

功能块是用户编写的有自己的存储区(即背景数据块)的程序块,功能块的输入、输出参数和静态变量存放在的背景数据块中,临时变量存储在局部数据堆栈中。每次调用功能块时,都要一个背景数据块。功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局部数据堆栈中的数据。

功能块采用了类似于C++的封装的概念,将程序和数据封装在一起,具有很好的可移植性。

S7-300/400的共享数据块可供所有的逻辑块使用。

4.IEC61131-3的程序结构

IEC61131-3是PLC的编程语言标准。IEC61131-3是世界上个,也是至今为止的工业控制领域的编程语言标准。IEC

61131-3有三种POU:程序、功能块和功能。

功能是有多个输入参数和一个输出参数(返回值)的POU,返回值的名称与功能的名称相同,需要定义返回值的数据类型。调用具

有相同输入值的功能总是返回相同的结果。功能可以调用其他功能,但是不能调用功能块或程序。功能可定义的局部变量有VAR和VAR_bbbbb。

功能块是有多个输入/输出参数和内部存储单元的POU,功能块的输出参数值与其内部存储单元的值有关。功能块可以调用其他功能

块或功能,但是不能调用程序。

在调用功能块之前,在要调用功能块的POU中为每次调用声明功能块的实例,操作系统将为每次调用分配功能块的存储区

(类似于S7-300/400的背景数据块)。

功能因为没有内部存储区,调用时不需要实例化。

程序的行为和用途类似于功能块,程序具有输入和输出参数,而且可以具有内部存储区。程序通常包含有对功能和功能块的调用。

IEC61131-3定义了若干标准的功能和功能块。

5.S7-300/400与IEC61131-3程序结构的区别

1)S7-300/400的功能可以有多个输出参数,返回值也属于输出参数。IEC61131-3的功能只有一个返回值。

2)IEC61131-3的功能块用于保存局部变量的存储区是在声明功能块的实例时分配的,它对用户是不透明的,其他POU不能直接访问该存储区。

S7-300/400的功能块的局部变量(不包括临时变量)保存在它的背景数据块中。其他POU可以访问背景数据块中的变量。如果需要多次调用同一个功能块来控制同一类型的被控对象,每次调用都需要一个背景数据块,但是这些背景数据块中的变量又很少,这样在项目中就出现了大量的背景数据块。可以使用多重背景数据块来减少背景数据块的数量。但是需要增加一个用来管理多重背景的功能块。

3)S7-300/400的功能块的局部变量有临时变量和静态变量,IEC61131-3的功能块的内部变量Var相当于S7-300/400的静态变量。

4)S7-300/400将数据区划分为数据块来使用,数据块的大小与数据块中定义的变量的数据类型和变量的个数有关。IEC61131-3没有数据块的概念。



http://zhangqueena.b2b168.com

产品推荐