联系热线:0573-86128502
您好,欢迎来到嘉兴奥拓迈讯自动化控制技术有限公司!
资讯分类
联系我们

地址:浙江省海盐县盐北路211号西区1-1

手机:13906834312

座机:0573-86128502

传真:0573-86112502

邮箱:hygongkong@163.com​

搞不懂PLC循环程序编写的朋友快来 看看!
来源:来源互联⽹,侵删 | 作者:降魔神兵 | 发布时间: 2019-07-17 | 587 次浏览 | 分享到:
搞不懂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或采取中断等措施。
▣ 来源:⽹络,版权归原作者所有,如有侵权,请联系删除