plc编程中主程序 西门子S7-1200PLC 程序块之组织块介绍

小编 87 0

西门子S7-1200PLC 程序块之组织块介绍

关注“

PLC发烧友 ”,一起涨知识!

回复:西门子全套,领西门子全系列电子资料包!

一、S7-1200程序块

S7-1200CPU采用块的概念,将程序分解为独立的,自成体系的各部部件块的功能类似于S7-200系列中的子程序,但类型更多,功能更强大

简而言之就是比如一个项目分成不同的功能(任务)和工艺,每个任务可做成不同的代码块;每个代码块可完成不同的任务或工艺,并且每个代码块是独立的;这些块与S7-200的子程序块更强大,在200系列中如果采用带形式参数的子程序去编写程序的过程中,如果去使用计数器、定时器等没有相应的变量类型的存储区时,在需要被重复调试这带形参的子程序时,计数器、定时器就会出现双线圈;但在1200中的FB/FC块中可以使用计数器、定时器、沿脉冲信号等反复调用不受影响

二、使用块的优点

使用块的概念有以下好处:

(1)便于大规模程序的设计和理解

将不同的任务分成不同的程序块,在大的项目中我们按照,任务、功能的划分不同的任务段,每个任务段编写不同的程序块,完成这个任务块的程序就行,

(2)可设计标准化的程序块,方便进行重复的调用

如一个电机的控制,涉及到电机的启动方式、运行参数如速度的反馈、电压电流的反馈等等;如果设计一个标准的程序块时,不同的工程师不需重新设计,把标准块直接调用即可。

(3)程序结构清晰明了,修改方便,调试简单。

(4)增加PLC的组织透明性,可理解易维护。

三、程序块详解

S7-1200CPU提供了不同类型的程序块,主要分为组织块(OB)、函数(FC)函数块(FB)数据块(DB)

组织块:由操作系统调用,决定程序的结构

函数(功能)块:具有存储器的代码块,可将值存储在背景数据块中,即使在执行完后,这些值存在背景数据块中仍然有效。

函数:不带存储器的代码块,数据存储在局部存储区L里面,函数没有背景数据块,执行完成后,数据不保存

数据块:存储用户数据的区域,类似于200系列的V存储区;它分为全局数据块和背景数据块。可根据不同的任务段,建立不同的数据块来存储任务

组织块OB

组织块的基本功能是调用用户程序,在S7-1200中可以使用的组织块OB有启动组织块、循环组织块、循环中断组织块,定时中断组织块,硬件中断组织块,故障中断组织块等。

启动组织块 (OB100)在添加OB块的时可选择多个启动组织块,根据组织块的编号大小顺序依次执行。启动组织块通常用来做出初始化的程序(在一些需要做初始化的程序可以放到OB100中)

循环组织块 :(OB1)PLC的主程序MAIN CPU会循环的对程序扫描执行,然后有循环组织块调用不同FB/FC,也就是CPU在处于RUN模式时,操作系统每个周期调用循环OB一次,所有的循环OB执行完后,操作系统重新调用循环OB,S7-1200CPU支持多个程序循环OB,执行顺序一样是根据编号大小依次执行;

硬件中断组织块 :在RUN模式下,CPU立即响应硬件中断事件,调用相关的硬件中断OB,中断程序的执行不受主程序的扫描和过程映像更新时间的影响,适合需要快速响应的应用。比如高速计数的当前值等于预设值时,可启用硬件中断

一个硬件中断事件只允许一个硬件中断OB,而一个硬件中断OB可分配给多个硬件中断事件。

中断硬件触发后,操作系统将识别输入通道并确定所分配的OB,在识别和确认的过程中,同一模块上发送了触发硬件中断的另一事件,必须遵循以下规则:

1、如果该通道再次发生相同的中断事件,操作系统不予响应,硬件中断将丢失

2、如果发生不同的中断事件,则在当前正在执行的中断确认后再响应这个新的中断事件

时间中断组织块 :时间中断OB用于在时间可控的应用中定期运行一部分用户程序,可实现在某个预设时间到达只运行一次,或在设定的触发日期到达后,按时、分、秒、天、周、月等周期运行,只有设置并激活了时间中断,且程序中存在相应组织块的情况下,才能运行时间中断,通过以下指令对时间中断进行操作:

“ACT-TINT”激活时间中断

“SET-TONTL”设定时间中断的参数

“CAN-TINT”取消未执行的时间中断

“QRY-TINT”查询时间中断的状态

循环中断组织块 :循环中断OB按设定的时间间隔循环执行,如间隔时间为1000MS,则在程序块执行期间会每隔1000MS调用该该块一次。在添加块的时候可添加一个循环中断组织块,同时可设置该组织块的执行时间间隔

故障中断组织块 :在发生故障时,可启用故障中断

延时中断组织块 :延时中断OB在一段可设置的延时时间后启动,可通过以下指令对延时中断进行操作:

“SRT-DINT”用于启动延时中断,该中断在超过参数指定的时间后调用延时中断OB。延时时间范围在1~60000MS

“CAN-DINT”取消启用的延时中断

“QRY-DINT”查询延时中断的状态

时间错误组织块 :时间错误组织块是操作系统用于处理时间故障的中断组织块,当程序和执行时间超过最大的循环时间或发生时间错误事件,CPU将触发时间错误中断OB80

诊断错误组织块 :诊断错误组织块是操作系统用于响应诊断错误的中断组织块,如激活诊断功能的模块检测到故障状态发生变化时,向CPU发送诊断中断请求,触发诊断错误组织块OB82

拔插中断组织块 :拔插中断组织块OB83是操作系统用于响应对模块移除或插入操作的中断组织块,S7-1200 PLC的本地模块不支持热插拔,拔出或插入中央机架模块将导致CPU进入STOP模式

机架错误中断组织块 :机架错误中断组织块OB86是操作系统用于响应PROFIBUS-DP和PROFINET-IO分布式IO站通信故障的中断组织块

回复:西门子全套,领西门子全系列电子资料包!

一文带你轻松学会PLC主程序结束,程序循环与程序传送等指令

为了让大家掌握更多PLC指令,所以本章仍旧为大家介绍PLC功能指令的使用方法。

主程序结束:

该指令的指令代码,助记符,操作数如下表:

这条指令的使用主要是区分主程序和子程序的关系

FEND表示主程序结束,与END一样,进行输入输出处理或者警告定时刷新后,程序返回第0步,在一个程序中可以多次使用FEND指令。子程序或者是程序中断必须要写在FEND与END之间,然后以IRET或SRET结束

警戒时钟指令:

该指令的指令代码,助记符,操作数如下表:

指令应用方法:在PLC中如果一个程序扫描周期超过200ms时,那么这个程序就不能正常进行,所以为了能够让这个程序得到正常的扫描,我们就要在这个程序之间插入WDT程序。因为WDT能够对PLC的监视定时器进行刷新。

程序示例:

比如在这个程序中,程序从D0步开始,执行到WDT的时候,它内部的程序监视定时器刷新,然后又从D0步开始直到END结束。这样子PLC内部的监视定时器就可以分为两个部分来记,这样子这个240ms的程序就可以扫描完。当然我们还可以用另一个方法:

PLC恒扫描方法:

我们可以修改特殊寄存器D8000,把K300移入到D8000里面,那么这个程序的扫描时间就变成了300ms,同样也可以解决这个问题。

循环开始和循环结束指令:

该指令的指令代码,助记符,操作数如下表:

指令格式:

程序中用了两个FOR与NEX,A一个为循环,B为一个循环。

使用案例:

当我们接通X0后,程序跳转指令起作用,程序跳转到P0位置,中间的循环程序被跳过,所以D0的值为0。当我们断开X0后,先执行外围的循环程序4次,中间的循环程序5次,最里面的循环程序5次,因为程序在每执行一次D0加1,所以D0=5X5X4=100,在循环了这100次后,才跳出程序。

传送比较指令

传送比较指令包括数据比较,传送,交换和变换:共10条指令代码从FNC10~FNC19.这部分指令是属于基本的应用指令,使用非常普及。

比较指令:

该指令的指令代码,助记符,操作数如下表:

S1,S2源操作数,都是字元件。D为目标操作数。程序步在16位运行的时候为7步,在32位运行的时候为13步,可以为连续执行,也可以为脉冲执行。

程序案例:

当我们接通X10后,C10的当前值与K100进行比较,比较的结果通过M10,M11,M12来进行表示。当K100大于C10的当前值的时候,M10接通。当K100等于C10的当前值的时候,M11接通。当K100小于C10的当前值的时候,M12接通。但是我们要注意程序在执行的时候只会接通其中一个,而且只有一个是接通的。

喜欢更多PLC知识,关注小编不迷路噢!

相关问答

plc主程序和子程序是怎么运行的?

PLC运行时,主程序是一直按照频率顺序执行的。比如西门子PLC的主程序就是OB1,OB1就是一直运行的。在主程序里来根据不同的条件调用不同的子程序,从而实现在不...

西门子PLC功能块编程怎么用?

西门子PLC(可编程逻辑控制器)的功能块编程是PLC编程的一种方法,通过预定义好的功能块,来完成复杂的控制任务。以下是使用西门子PLC进行功能块编程的一般步骤...

西门子s7-200程序中怎么从子程序跳转到主程序,谢谢_齐家装...

先执行的主程序,遇到子程序且调用条件满足进入子程序,子程序执行完以后跳出子程序,继续执行余下的主程序。m0.0得电程序在进入子程序之前,子程序调...

plc主程序怎么分多段?

在PLC主程序中,可以通过不同的跳转指令和条件语句来实现程序的分段。一般情况下,可以将程序按照执行顺序和功能进行划分,每一段程序都有独立的跳转指令,通过...

plc的程序结构分为包括哪三个?

plc的程序结构分为包括:主程序、子程序、中断程序。plc的程序结构分为包括:主程序、子程序、中断程序。

请问一下西门子PLC,S7-200,如果主程序到子程序的条件停止了,子程序里面的线圈是保持呢,还是断开?

子程序断开,里面的Q,M等线圈是保持的,但有些是继续动作的,比如时间继电器等。子程序断开,里面的Q,M等线圈是保持的,但有些是继续动作的,比如时间继电器等。

S7200plc中什么用来存放用户程序和工作数据?

是由PLC的主控制器存放用户程序和工作数据。是由PLC的主控制器存放用户程序和工作数据。

库卡上plc怎么调用程序?

要在库卡上调用PLC程序,可以按照以下步骤操作:1.打开库卡示教器,在主界面选择“编辑”选项。2.在编辑界面中,选择“PLC”选项。3.在PLC界面中,选择“调用...

PLC与主电路,控制电路是怎么连接的?

plc与变频器有三种连接控制方法:1、用PLC的模拟量输出模块控制变频器PLC的模拟量输出模块输出0~5V电压信号或4~20mA电流信号,作为变频器的模拟量输入信号,...