课程中心
HOME
课程中心
正文内容
plc的ob编程 西门子的OB块是干什么的?不同的启动方式如何对应OB块进行编程?
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子的OB块是干什么的?不同的启动方式如何对应OB块进行编程?

对西门子PLC有一定了解的朋友都知道,西门子S7-300/400系列PLC有多种启动方式,其中包括冷启动,软启动和热启动,那么它们之间到底有什么区别?又是如何应用呢?

今天带大家了解一下;我们先看一下官方的解释:

1 冷启动 冷启动是断电后重新上电的一种启动;

2 暖启动 暖启动是在PLC上电后CPU的拨动开关由STOP位置拨到RUN的位置的一种启动;

3 热启动 热启动是由PG/PC强制CPU从RUN进入STOP后再强制回到RUN的一种启动.

其实,这三种启动方式就是西门子对启动方式的三种定义。

那么对于用户来说怎样理解呢?

首先;

一 只有暖启动是西门子PLC的标配,几乎所有的西门子PLC都有暖启动,大多数的S7-300系列只有暖启动,极少数的S7-300PLC带有冷启动(例如,S7-318),一部分S7-400系列PLC带有三种启动方式,其中H系列不带热启动。

二 三者同是启动方式,针对的情况不同。

冷启动一般用于大型故障时,比如说运行期间系统紧急断电,当前数据丢失,程序处理以初始值再次启动。这种启动方式是为了保证其安全和稳定性。冷启动时,所有过程映像和标志存储器、定时器和计数器被清除(甚至保持的!),而且数据块的当前值被装载存储器的当前值(既原来下装到CPU的数据块)覆盖。 然后循环程序OB1开始执行。执行该功能时首先调用组织块OB102一次。

冷启动本质就是启动时将程序和数据完全恢复。

暖启动用于一般场合,程序处理重新启动,数据继续保持。这是一种完全再启动的启动类型,启动时过程映像和不保持的标志存储器、定时器及计数器被清除,保持的标志存储器、定时器和计数器以及数据块的当前值保持。 在执行软启动时首先启动组织块OB100。用户如果没有更改过启动类型,系统默认设为暖启动。

暖启动本质就是启动时只将程序恢复,大多数数据会保存

热启动是指一旦供电恢复,程序从断电时的值开始继续工作。热启动只有在有后备电池时才能实现,这是一种再启动的启动类型,在启动时所有数据(标志存储器、定时器、计数器、过程映像及数据块的当前值)被保持。CPU会自动调用OB101一次,然后程序从断点处(断电, CPU STOP) 恢复执行。这个“剩余循环”执行完后,循环程序OB1开始执行。 所有的数据都会保持其最后有效值。

就是启动时按照断电前的程序继续执行,程序和数据都被保存。

对于PLC来说,冷启动CPU从自检开始并调入程序数据等然后从头执行程序;暖启动CPU不再进行自检,只是从头执行程序;热启动CPU进入STOP前时的程序执行状态接续执行.

三如何对OB100-OB102进行编程?

OB100-OB102对应PLC的三种启动方式的处理方法。拥有什么启动方式就下载相应的组织块。

如果没有特殊要求可以下载空程序,对于西门子300/400PLC来说,PLC会检测很多种情况,检测到相应情况后就会找到相应的组织块,如果没有找到相应的组织块也就是说用户下载时没有将相应组织块下载到PLC里,此时PLC就会停机。

所以即使没有特殊要求的话也要将空程序块下载进PLC里。

一般来说,能使用S7-300/400系列的都是大程序或者大项目,对于这些大型项目来说,可能会有一些特殊的数据需要保存,那么这些数据就需要写进OB100-OB102里,或者是出于安全或者工艺考虑,一旦PLC停止下来,需要将一些特殊的位置位或者复位一个周期,从而终结程序或者停止输出或者保留停机前程序状态等。

也就是说针对不同的启动方式,不同的工艺和安全要求,西门子的大中型PLC给出了三个选项,你可以选择这三个选项进行调整。

那么对于小型PLC来说,类似西门子S7-200系列PLC,没有这些功能是不是就无法处理突发事件了呢?

也不是,西门子S7-200或者200SMART的里面的sm0.1,sm0.2,sm0.3就是同样的功能,就类似于在OB100里面赋值,只是功能被内置好了,不像大中型PLC那样可以定制。

除了OB100-OB102,类似OB83 84 85 86 88 90 OB121 122 这些块对于PLC来说也很重要,如果不加上去,PLC出现问题后找不到处理办法,对于PLC唯一能做的只会是停机,所以一般都是加空的块进去并下载进PLC,可防止PLC出现各种问题,发生停机的情况。

好了,你看懂了吗?看懂的点个赞吧!

西门子 PLC 1200的 OB块用法讲解

很多从日系PLC或者200PLC过来的人,很不习惯于S7 1200 或者TIA PORTAL 里面的一些专业术语,比如OB,DB,FC,FB等等,其实这些术语也包含于S7 300,400 ,1500等,所以今天讲解的内容,理论上也适应于这些PLC。虽然我没有玩过这些东西,但是TIA PORTAL适合于西门子全系列PLC,很多概念性的东西都是一致的。S7 1200的功能强大正式基于拥有各种类型的block和多种变量类型。

S7 1200 由以下几类基本元素组成:

OB:组织块,英文名Organization block。组织块是CPU系统和用户程序之间的接口,可以在CPU上电启动时调用,也可以循环调用,也可以在PLC发生错误时候调用。

DB:数据块,英文名Data block。从字面含义便知主要用于储存用户数据,比如模拟量转换数据,相当于200里面的V区,欧姆龙PLC的W区。

FC:函数,英文名Function。我们常常在FC函数中写一些需要重复执行的代码,可以在程序不同地方调用,可以被OB调用,也可以被FC调用。使用FC可以简化我们需要重复执行的任务,提高代码的运行效率。FC类似于200的子程序。

FB:FC+DB组合,意思是含有DB块的FC函数,与FC的区别是当函数调用结束后,通过Static变量仍然可以保留数值,经常用于调用间的数据共享。

OB组织块

当我们新建一个程序时,系统会自动建立一个Main[OB1]程序,该程序会在PLC的每个扫描周期被调用。Main程序和200里面的主程序,是一个同样的概念。也类似于C里面的Main ,即为函数入口点,我们可以在Main程序里面调用各种函数和块。下面的图是在程序中调用一个FC和FB,然后在FC中调用另外一个FC,形成嵌套调用。

注:<Main>、<SumFC>、<调用FC>、<调用FB>是别名,方便我们记忆和理解,真正的地址在[.....]中,如OB1,FC2,FC1,FB1等等。

图1 Main程序

图2 Main调用结构

图1显示了Main程序具体内容,图2显示了Main程序的调用结构。图中很多元素的概念,我们暂时不需要了解,但是可以看到一些整体概念,Mian程序包含程序段1(NW1)和程序段2(NW2),在Main的调用结构中包含了3个元素test、调用FB和调用FC。其实应该是4个,还有一个嵌套在<调用FC>中,点击<调用FC>左侧箭头,出现如下图所示:

图3 FC嵌套调用

图4 OB分类

我们来分析上图中的OB类型。OB块主要用于程序循环、启动、延时中断、循环中断、硬件中断、HSC中断、诊断错误和时间错误八大事件。OB块还有两个属性是编号和优先级,优先级越高,中断级别越高。在同样的优先级别,OB编号越小,越优先执行。从图1中,我们看到Main程序的地址在OB1,是一个循环运行程序,优先级为1较低。时间错误事件的优先级最高,当发生该事件时,会暂停执行Main程序,优先执行时间错误事件OB块。程序循环OB类块的编号属性为"1;>=123",意为我们可以创建多个类似OB块。因为新建程序默认OB编号为1,假设我们要创立该事件类型OB块,那么默认编号为123起,同时OB1的执行要优先于OB123。诊断错误事件OB块和时间错误OB块只有一个。

图5 添加OB新块

图6 手动选择创建编号

图5 添加OB新块界面,我们可以看到,在红色矩形框处,OB编号数值为123,我们选择的创建方式为自动。如果你想起用别的编号,可以选择手动方式,同时可以选择创建OB块采用的语言。大家不妨自己试一试哦。

这里讲解几个常用的OB类型块使用,其他类型OB块使用,大家可以翻阅系统编程手册。

程序循环事件OB块(program cycle):该块主要用于执行循环运行的程序,一般一个程序中创建一个便可以,就是默认的Main程序(OB1),我们可以通过调用FC和FB来实现其他功能。系统CPU每个扫描周期都会执行该类型OB块。

启动事件OB块(Startup):该块主要用于初始化变量,当PLC断电重启或者CPU从STOP切换为RUN时候执行,往后不再运行,也就是只运行一次。我们新建一个DB1块,添加两个,设置初始值,如下图所示:

图7 添加DB块变量

然后新建一个Startup事件OB块,写如下程序(SCL语言):

图8 Startup事件OB块程序

我们可以看到该类型OB块编号为100,如果再建一个该类型OB块,编号必须>=123。然后我们下载程序,这里顺便提一下下载选项,如下图所示:

图9 下载选项

如果是初次下载,选择"硬件和软件(仅更改)"。如果不是初次,可以选择你修改的部分,这样会提高下载速度。

图10 程序运行结果

循环中断事件OB块(Cyclic interrupt):常常用于需要定时执行的任务,比如我们需要1秒钟采样50个模拟值,我们可以把循环时间设置为20毫秒。可能会有人问,为什么不采用普通定时器每隔20毫秒采样一次呢?因为普通定时器会受到CPU扫描周期的影响。在PID程序中,我们需要采用循环中断事件来调整计算PID输出。

图11 添加循环中断事件OB块

在实验程序里,通过INC指令把DB1块里面的变量,每隔1秒加1,运行效果如下:

图12 循环中断事件OB

我们会看到在OB30这个程序块里面,"Data".Var2的值会每隔1秒变化,如果把INC指令放在Main[OB1]里面会是什么情况呢?

诊断错误事件OB块(Diagnostic error interrupt):当PLC发生故障时,会触发该事件;解除故障时,也会触发该事件,在该模块里面,我们可以读到故障信息。

图13 添加诊断错误事件OB块

在实验程序里,我们需要捕捉模拟量输入的溢出错误,所以需要对模拟量输入进行如下配置:

图14 添加溢出诊断功能

图15 AI通道硬件标识符

在配置硬件组态时,TIA PORTAL 将为每个硬件对象(如模块、接口或模块端口,甚至是智能设备的传输区)自动分配硬件标识符,相当于我们的身份证号码,独一无二。

图16 诊断程序

在诊断程序中,我们可以获取错误IO状态,硬件标识符和通道,并添加了STP指令。当错误发生时候,使PLC处于STOP状态,若不添加STP指令,PLC仍以RUN状态运行。

图17 诊断运行结果

通过读取IO_State,LADDR和Channel三个变量,IO状态以二进制格式显示,第4位为1,所以会出现错误。具体每个变量含义请看下图:

图18 诊断错误中断 OB 的启动信息

结束语

这期我们主要讲解TIA PORTAL 编程中一个非常重要的元素OB块,该内容不仅适合于1200,同样也适用于1500,300,400。由于1200本身的功能限制,1200的知识点还是与其他型号有所区别。与200相比,则是程序结构分类更为精细。希望我通俗易懂的讲解,能让大家快速领悟到OB块的强大之处并且能快速上手。在本期的讲解中,若有不明之处,欢迎留言哦,同时欢迎指出错误。留言问题,我会定期做统一解答。

相关问答

西门子ob100是什么组织块?

西门子plc中的OB模块功能:OB1:程序循环组织块、OB10-OB17:时间中断组织块、OB20-OB23:延时中断组织块;OB30-OB38:循环中断组织块、OB40-OB47:硬件中断组.....

西门子1500PLC中的M1.2初始值为1怎么设置?

添加新的组织块OB100,用于启动时的初始化.然后在OB100中编写如下程序:请注意,博图软件是强制标签化编程的软件,因此需要在PLC变量表中设定标签并赋予地址M1...

如何理解和使用STEP7的循环中断组织块OB3x?

一、S7系列PLC的程序执行过程要回答这一问题,首先得清楚S7系列PLC程序执行的过程,如下图所示。PLC得电或由STOP模式切换到RUN模式时,CPU起动,同时清除没有...O...

中断ob100使用说明?

s7-300ob100的作用是在plc第一个运行周期执行,多用于初始化s7-300ob100的作用是在plc第一个运行周期执行,多用于初始化

西门子PLC中的IB、QB、VB、MB、SMB、SB、LB、AC各代表什么意思啊?特别是AC可以存储什么样的数据?

IB、QB、VB、MB、SMB、SB、LB、AC这些都是变量名,以BIT为单位的。比如IB1也就是IB1.0-IB0.7包括这8个位变量。I是输入,Q是输出,SM是特殊存储器,回V变量,M内...

西门子ob35使用实例?

1、OB35是在一个固定的时间间隔执行循环中断组织块,默认的时间间隔为100毫秒,用户可以修改此时间,其范围1---60000毫秒。换言之,OB35程序按照设定的执行周期...

ob40怎么使用?

大家好,今天我来回答一下OB40怎么使用,OB40是硬件中断,要在带有硬件中断的模块中启用并下载其硬件组态信息,然后就可以在程序中新建OB40,并在其中编写相应处...

S7-300系列PLC中优先级程序怎么写?

你说的优先级应该是OB1组织程序块和各种中断OB组织块块执行时的优先级。一般应该是优先级数值越大,执行级别越高,就是说优先响应并执行。有些优先级如27,28...

西门子plc输入模块331亮红灯是什么原因?

首先你要判断是何种故障,CPU那一排灯一般会给出故障类型你可以看看是哪个亮起红灯,通过CPU的系统手册查到这个故障灯的故障原因一般会有几种故障原因通讯:...

西门子1500db块如何编写?

西门子1500DB块是西门子PLC(可编程逻辑控制器)中的一种数据块类型。编写1500DB块需要使用PLC编程软件,比如西门子的TIAPortal软件。下面是一个简单的步骤来...

 第6感安全套  英格兰 英国 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部