S7-300400进阶笔记1:PLC程序的循环处理方式及其相关内容简介
前言
学习S7-300/400,不能仅仅局限于阅读或编写一段程序,更要从本质上认识PLC,方能更好的驾驭它。
一、PLC的循环处理过程
CPU中的程序分为操作系统 和用户程序 。
操作系统 用来处理PLC的起动、刷新输入/输出过程映像区、调用用户程序、处理中断和错误、管理存储区和通信等任务。
用户程序 由用户根据需求自己编写,以完成特定的控制任务。STEP7将用户编写的程序和数据维护在"块"中,如功能块FB、功能FC和数据块DB等。
PLC采用循环扫描的方式执行用户程序,即扫描工作方式。
图1 PLC的扫描工作方式
1. PLC得电或由STOP模式切换到RUN模式时,CPU起动,同时清除没有保持功能的位存储器、定时器、计数器,清除中断堆栈和块堆栈的内容,复位保存的硬件中断等。
2. 执行"系统起动组织块"OB100,该组织块可以自定义编程,实现一些初始化的工作;
3. 系统进入周期扫描,并起动循环时间监控;
4. CPU将输出过程映像区的数据写入输出模块;
5. 读取输入模块的状态,并写入输入过程映像区;
6. CPU调用OB1,执行用户程序,期间,根据需要可调用其他逻辑块(FB、SFB、FC及SFC),来实现控制任务;
7. 在循环结束时,操作系统执行所有挂起的任务,例如下载和删除块、接收和发送全局数据等;
8. CPU返回"第3步",重新启动循环时间监控。
9、在执行用户程序的过程中,如果有中断事件发生,当前执行的块将暂停执行,转而执行相应的组织块,来响应中断。该组织块执行完成后,之前被暂停的块将从中断的地方继续开始执行。OB1具有很低的优先级,除了OB90外,所有的组织块都能中断OB1。
二、过程映像区
PLC的存储器中,特别设置了一片区域用来存放输入信号和输出信号的状态,分别称之为输入过程映像区和输出过程映像区。在循环程序处理过程中,CPU不会直接访问I/O模块,而是访问CPU内部的过程映像区。
如图1所示,在整个扫描周期内,CPU会分配一段时间集中将输出过程映像区的状态传送给输出模块。同样,输入模块的状态/数据也是集中、统一读入输入过程映像区。在程序的执行阶段,CPU只和输入/输出过程映像区做数据交互,这样做的好处是,即使外部输入信号的状态发生变化,输入过程映像区的状态也暂时不变,可防止程序执行时发生"紊乱";而给到输出模块的数据是"同时"的,也可有效避免执行机构的动作序列的不同步。
对过程映像区的访问可以以位、字节、字 以及双字 的方式进行。
图2 过程映像区直接寻址
如图2所示,假设其为输入过程映像区的一部分:
· I1.3 即可访问到粉色部分的内容,即寻址一个位;· IB0 即可访问绿色部分的内容,即寻址一个字节;· IW2 :即可访问蓝色部分的内容,即寻址一个字;· ID4 即可访问橙色部分的内容,即寻址双字;三、扫描循环时间
扫描循环时间是指图1中相邻两次"循环时间监控"之间的时间,它与用户程序的复杂程度及CPU执行指令的速度有关。如下为315和416两款CPU的指令执行速度,相比315,CPU416的执行速度快很多。
CPU 315-2DP:0.3ms/1000条指令;
CPU416-2DP:0.08ms/1000条指令
扫描循环时间不是一成不变的,以下事件都会延长循环时间:
· 中断 · 诊断和故障处理 · 测试和调试功能 · 通讯 · 传送和删除块 · 压缩用户程序存储器 · 读/写MMC卡图3 最大循环时间与最小循环时间
如图3所示,在硬件组态中,可以修改最大循环时间,默认150ms。如果实际的循环时间超出设置的最大时间,CPU会调用组织块OB80,在其中响应这个故障。如果OB80中未编写程序,CPU将转入STOP模式。
400的CPU中还可以设置最小扫描周期,当用户程序较为简单,使得循环时间太短时,过程映像区会太过频繁的刷新,设置最小扫描周期可以避免这种情况。
四、系统的响应时间
PLC的外部输入信号发生变化的时刻到它所控制的外部输出信号发生变化的时刻之间的时间间隔,称之为系统的响应时间。它由以下三部分组成:
1、输入电路的滤波时间
输入模块通过RC滤波电路来过滤输入端引入的干扰,并消除因外接输入触点的动作时产生的抖动而引起的不良影响,滤波电路的时间常数决定了输入滤波时间的长短,一般为10ms左右。
2、输出电路的滞后时间
输出模块的滞后时间与模块的类型有关,
· 继电器型输出电路的滞后时间一般在10ms左右;
· 双向晶闸管型输出电路在负载通电时的滞后时间约为1ms,负载由通电到断电时的最大滞后时间为10ms;
· 晶体管型输出电路的滞后时间一般在1ms以下。
3、CPU扫描循环工作方式带来的滞后时间
由扫描工作方式引起的滞后时间最坏的情况下,可达2-3个扫描周期。
PLC总的响应延迟时间一般只有几毫秒到几十毫秒,对于一般的系统是无关紧要的。在一些特殊应用场合,要求输入、输出信号之间的滞后时间尽可能短的时候,可以选用扫描速度更快的PLC或采取中断等措施。
你的PLC受到干扰了?面对干扰,我们要对症下药!
可编程控制器PLC具有编程简单、通用性好、功能强、易于扩展等优点。PLC控制系统的可靠性直接影响到企业的安全生产和经济运行,系统的抗干扰能力是关系到整个系统可靠运行的关键。PLC中采用了高集成度的微电子器件,可靠性高,但由于使用时工业生产现场的工作环境恶劣,如大功率用电设备的起动或停止引起电网电压的波动形成低频干扰和电磁辐射等恶劣电磁环境,大大降低了PLC控制系统的可靠性。为了确保控制系统稳定工作,提高可靠性,必须对系统采取一定的抗干扰方法和措施。
1 影响PLC控制系统稳定的干扰类型
1.1 空间的辐射干扰
空间的辐射电磁场(EMI)主要由电力网络、电气设备、雷电、高频感应加热设备、大型整流设备等产生,通常称为辐射干扰,其分布极为复杂。其影响主要通过两条途径:一是对PLC通讯网络的辐射,由通讯线路的感应引入干扰;二是直接对PLC内部的辐射,由电路感应产生干扰。若此时PLC置于其辐射场内,其信号、数据线和电源线即可充当天线接受辐射干扰。此种干扰与现场设备布置及设备所产生的电磁场的大小,特别是与频率有关。
1.2 传导干扰
(1)来自电源的干扰
在工业现场中,开关操作浪涌、大型电力设备的起停、交直流传动装置引起的谐波、电网短路暂态冲击等均能在电网中形成脉冲干扰。PLC的正常供电电源均由电网供电,因而会直接影响到PLC的正常工作。由于电网覆盖范围广,它将受到所有空间的电磁干扰而产生持续的高频谐波干扰。特别在断开电网中的感性负载时产生的瞬时电压峰值是额定值的几十倍,其脉冲功率足以损坏PLC半导体器件,并且含有大量的谐波可以通过半导体线路中的分布电容、绝缘电阻等侵入逻辑电路,引起误动作。
(2)来自信号传输线上的干扰
除了传输有效的信息外,PLC系统连接的各类信号传输线总会有外部干扰信号的侵入。此干扰主要有2种途径:① 通过变送器供电电源或共用信号仪表的供电电源串人的电网干扰;② 信号线上的外部感应干扰,其中静电放电、脉冲电场及切换电压为主要干扰来源。由信号线引入的干扰会引起I/O信号工作异常和测量精度大大降低,严重时将引起元器件损伤。若系统隔离性能较差,还将导致信号间互相干扰,引起共地系统总线回流,造成逻辑数据变化、误动作甚至死机。
1.3 地电位的分布干扰
PLC控制系统的地线包括系统地、屏蔽地、交流地和保护地等。地电位的分布干扰主要是各个接地点的电位分布不均,不同接地点间存在地电位差,从而引起了地环路电流,该电流可能在地线上产生不等电位分布,影响PLC内逻辑电路和模拟电路的正常工作。由于PLC工作的逻辑电压干扰容限较低,逻辑地电位的分布干扰容易影响PLC的逻辑运算和数据存贮,造成数据混乱、程序跑飞或死机。模拟地电位的分布将导致测量精度下降,引起对信号测控的严重失真和误动作。
1.4 PLC系统内部产生的干扰
产生这种干扰的主要原因是系统内部元器件及电路间的相互电磁辐射。如逻辑电路相互辐射及其对模拟电路的影响;模拟地与逻辑地的相互影响及元器件间的相互不匹配使用等。
2 提高抗干扰能力的硬件措施
硬件抗干扰技术是系统设计时应首选的措施,它能有效抑制干扰源,阻断干扰传输通道。
2.1 供电电源
电源波动造成的电压畸变或毛刺,将对PLC及I/O模块产生不良影响。据统计分析,PLC系统的干扰中有70%是从电源耦合进来的。为了抑制干扰,保持电压稳定,常采用以下几种抗干扰方法:
(1)使用隔离变压器衰减从电源进线的高频干扰信号,输入、输出线应用双绞线以抑制共模干扰。其屏蔽层接地方式不同,对干扰抑制的效果也不一样,一般做法是将初、次级屏蔽层均接地。
(2)用低通滤波器抑制高次谐波。低通滤波器的内部电容上电感组合方式不同,其高次谐波的抑制效果也有一定区别。另外其电源输入、输出线应分隔开,屏蔽层应可靠接地。一般是在电源系统中既使用滤波器又使用隔离变压器,但要注意先将滤波器接人电源再接隔离变压器。
图1 隔离变压器供电系统
2.2 接地
良好的接地是保证PLC可靠工作的重要条件之一,可以避免偶然发生的电压冲击危害。接地线与机器的接地端相联,基本单元必须接地,如果选用扩展单元,其接地点与基本单元接地点接在一起。为了抑制附加在电源及输入、输出端的干扰,应给PLC接以专用地线,接地线与动力设备(如电动机)的接地点应分开,若达不到此要求,则可与其它设备公共接地,严禁与其它设备串联接地,具体接地方式如图2。接地电阻要小于5Ω,接地线要粗,面积要大于2平方毫米,而且接地点最好靠近PLC装置,其间的距离要小于50米,接地线应避开强电回路,若无法避开时,应垂直相交,缩短平行走线的长度。
图2 PLC系统接地方式
2.3 输入/输出部分
2.3.1 输入信号的抗干扰
输入信号的输入线之间的差模干扰可以利用输入模块滤波来减小干扰,而输入线与大地间的共模干扰可通过控制器的接地来抑制。在输入端有感性负载时,为了防止电路信号突变而产生感应电势的影响,可采用硬件的可靠性容错和容差设计技术,对于交流输入信号,可在负载两端并联电容C和电阻R,对于直流输入信号,可并接续流二极管D。一般负载容量在10VA以下时,应选C为0.1μF,R为120 ,当负载容量在10VA以上时,应选C为0.47μF,R为47 。具体电路如图3所示.
图3 输入信号的抗干扰设计
2.3.2 输出电路的抗干扰
对于PLC系统为开关量输出,可有继电器输出、晶体管输出、晶闸管输出三种形式。具体选择要根据负载要求来决定。若负载超过了PLC的输出能力,应外接继电器或接触器,才可正常工作。
PLC输出端子若接有感性负载,输出信号由OFF变为ON或从ON变为OFF时都会有某些电量的突变而可能产生干扰,故应采取相应的保护措施,以保护PLC的输出触点,对于直流负载,通常是在线圈两端并联续流二极管D,二极管应尽可能靠近负载,二极管可为1A的管子。对于交流负载,应在线圈两端并联RC吸收电路,根据负载容量,电容可取0.1-0.47 μF,电阻可取47-120 ,且RC尽可能靠近负载。如图4所示。
图4 PLC 输出触点的保护
2.4 外部配线的抗干扰设计
外部配线之间存在着互感和分布电容,进行信号传送时会产生窜扰。为了防止或减少外部配线的干扰,交流输入、输出信号与直流输入、输出信号应分别使用各自的电缆。集成电路或晶体管设备的输入、输出信号线要使用屏蔽电缆,屏蔽电缆在输入、输出侧要悬空,而要在控制器侧要接地。配线时在30米以下的短距离,直流和交流输入、输出信号线最好不要使用同一电缆,如果要走同一配线管时,输入信号要使用屏蔽电缆。如图5所示。30-300米距离的配线时,直流和交流输出、输入信号线要分别使用各自电缆,并且输入信号线一定要用屏蔽线。对于300米以上长距离配线时,则可用中间继电器转换信号,或使用远程I/O通道。对于控制器的接地线要与电源线或动力线分开,输入、输出信号线要与高电压、大电流的动力线分开配线。
图 5 屏蔽电缆处理法
3 软件抗干扰设计
尽管硬件抗干扰可滤除大部分干扰信号,但因干扰信号产生的原因很复杂。且具有很大的随机性,很难保证系统完全不受干扰。因此往往在硬件抗干扰措施的基础上.采取软件抗干扰技术加以补充,作为硬件措施的辅助手段。软件抗干扰方法没计简单、修改灵活、耗费资源少,在PLC测控系统中同样获得了广泛的应用。对于PLC测控装置,其数据输入、输出、存储等系统属于弱电系统,如果工作环境中存在干扰,就有可能使数据受干扰而破坏,从而造成数据误差、控制状态失灵、程序状态和某些器件的工作状态被改变,严重时会使系统程序破坏。因此,数据抗干扰同样十分重要。
3.1 指令重复执行
指令重复执行就是根据需要使作用相同的指令重复执行多次,一般适用于开关量或数字量输入,输出的抗干扰。在采集某些开关量或数字量时,可重复采集多次,直到连续两次或两次以上的采集结果完全相同时才视为有效。若多次采集后,信号总是变化不定,可停止采集,发出报警信号。在满足实时性要求的前提 ,如果在各次采集数守信号之间插入一段延时,数据的可靠性会更高。如果在系统实时性要求不是很高的情况下,其指令重复周期尽可能长些。
3.2 数字滤波
在某些信号的采集过程中,由于存在随机干扰而可能使被测信号的随机误差加大。针对这种情况,可以采用数字滤波技术。该方法具有可靠性高和稳定性好的特点,广泛应用于工业计算机测控系统中。此外,数字滤波的常用方法还有:程序判断滤波法、中值滤波法、算术平均滤波法、递推平均滤波法等。
4 结语
随着PLC应用范围的逐渐扩大,加之系统恶劣的工作环境,它所要克服的干扰就会越来越多,因此研究PLC系统的抗干扰问题就变得越来越重要。只有对工作环境作全面的分析,确定干扰性质,并采取相应的抗干扰措施,才能保证系统长期稳定地工作。
相关问答
西门子200PLC程序上传到电脑后,PLC里头的程序还在吗-ZOL问答
除非是写入,否则不会对PLC里面的程序有任何的修改的。SIEMENS的S7-200系列PLC,用编程软件STEP7MicroWIN执行上传后,只是是将PLC内存中的数据复制一份到电脑。...
plc编程时手动和自动如何处理最好?
2,自动是全部自动执行的环境,程序只是操作员起动一下,就自动执行了。正常情况下是不需要人再干涉了。3,一般我们用PLC内部标志位区分自动和手动。比如M0...
西门子编程后电脑有输出但plc输出灯不亮出-ZOL问答
2、PLC的输出地址被多处调用,且是作为线圈被调用的。解决方法:1.如果将原来程序删除,然后强制PLC的该点输出,如果没有输出,则说明是PLC坏了。2、如果有输出...
plc程序乱了怎么办?
如何造成的混乱?1、原来正常,现在混乱了:可能PLC有问题,干扰,2、是你设计的程序,一开始用就混乱,通常是顺序功能图没做好,就臆断写出来的程序,需要好好...如...
三菱plc模拟量编程,读取完数据后怎么处理?
不知道你要处理什么流程,我也很多年没有玩这个PLC了,但是知道它的编程手册上有现成的例子,直接按照例子设置就好了,我下边截图简单说一下,请关注:容济点火...不...
PLC采用()工作方式,这个过程分为内部处理,(),(),(),()几个阶段?
PLC采用循环扫描的工作方式,在PLC中用户程序按先后顺序存放,CPU从第一条指令开始执行程序,直到遇到结束符后又返回第一条,如此周而复始不断循环。PLC的扫描过...
plc工作过程五个阶段?
二.顺控阶段顺序控制在工业中的应用相当广泛,例如一般性的自动机床它就是一个顺序控制过程。PLC设计中实现顺控的有两种方法:一PLC中的顺控指令如三菱STL;...
plc通讯中断处理方法?
PLC和一体机与PC通讯不上有下面几种情况:(1)电脑串口坏掉,没办法使用。(2)笔记本电脑使用的USB转232,驱动没有装好。(3)电脑串口可能漏电,烧掉PLC下载保护...
PLC编程怎么处理自动手动模式?
根据系统的当前状态,使用相应的PLC代码来控制系统的行为或输出。在开发程序时,需要把自动模式和手动模式的控制逻辑分开,以便在状态变化时不影响系统的性能。...
plc初始化程序怎么写?
PLC(ProgrammableLogicController)的初始化程序有多种方法,具体的实现方法可以在不同品牌和型号的PLC上存在一些差异。在一般的PLC系统中,初始化程序包含以...