西门子OB块使用说明

合集下载

西门子OB块的用法

西门子OB块的用法

每种类型的OB块的分析及其使用方法: 1、自由循环组织块OB1S7 CPU启动完成后,操作系统循环执行OB1, OB1执行完成后,操作系统再次启动OB1。

在OB1中可以调用FB、SFB、FC、SFC等用户程序使其循环执行。

除OB90以外,OB1优先级最低,可以被其他OB中断。

OB1 默认扫描监控时间为150ms (可设置),扫描超时,CPU自动调用)B80 报错,如果程序中没有建立OB80,CPU进入停止模式。

2、日期中断组织块OB10〜OB17在CPU属性中,可以设置日期中断组织块OB10〜OB17触发的日期、执行模式(到达设定的触发日期后,OB只执行一次或按每分、每小时、每周、每月周期执行)等参数,当CPU的日期值大于设定的日期值时,触发相应的OB并按设定的模式执行。

在用户程序中也可以通过调用 SFC28系统函数设定CPU日期中断的参数,调用SFC30激活日期中断投入运行,与在CPU属性中的设置相比,通过用户程序,可以^PU运行时灵活地修改设定的参数,两种方式可以任意选择,也可以同时对一个)B进行设置。

3、时间延迟中断组织块OB20〜OB23时间延迟中断组织块OB20〜OB23的优先级及更新过程映像区的参数需要在CPU属性中设置,通过调用系统函^FC32触发执行,OB号及延迟时间在SFC32参数中设定,延迟时间为1〜60000ms,大大优于定时器精度。

4、循环中断组织块OB30〜OB38循环中断组织块OB30〜OB38按设定的时间间隔循环执行,循环中断的间隔时间在CPU属性中设定,每一个^默认的时间间隔不同,例如)B35默认的时间间隔为100ms,在OB35中的用程序将每隔100ms调用一次,时间间隔可以自由设定,最小时间间隔不能小于55ms。

OB中的用户程序执行时间必须小于设定的时间间隔,如果间隔时间较短,由于循环中断OB没有完成程序扫描而被再次调用,从而造成CPU故障,触发OB80报错,如果程序中没有创建OB80, CPU进入停止模式。

西门子OB块的作用

西门子OB块的作用

OB55(Status Interrupt)状态中断
OB56(Update Interrupt)升级中断
OB57 (Manufacturer Interrupt)厂商专用中断
OB61~OB64(Synchronous Cycle Interrupt)异步周期中断
OB70(I/O Redundancy Error)I/O冗余错误
西门子OB块的作用
OB1(Free Cycle)顺序扫描
OB10~OB17(Time-Of-Day Interrupt)时间-日期中断
OB20~OB23(Time-Delay Interrupt)时间延迟中断
OB30~OB38(Cyclic Interrupt)周期性中断
OB40~OB47(Hardware Interrupt)硬件中断
OB72(CPU Redundancy Error)CPU冗余错误
OB73(Communication Error)通信错误
OB80(Time Error)时间错误
OB81(Power Supply Error)电源错误
OB82 (Diagnostic rt/Remove Interrupt)插/拔中断
OB84(CPU Hardware Fault)CPU硬件错误
OB85(Priority Class Error)优先级错误
OB86(Rack Failure)机架错误
OB87(Communication Error)通信错误
OB88 (Processing Interrupt)过程错误
OB90(Background OB)背景OB
OB100(Warm Restart)暖启动

西门子 PLC中OB、FC、FB、SFC、SFB中功能块

西门子 PLC中OB、FC、FB、SFC、SFB中功能块

西门子 PLC中OB、FC、FB、SFC、SFB中功能块使用概述(2013-12-05 16:13:52)S7-300/400PLC程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。

结合起来就能实现一个复杂的控制系统。

就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。

在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。

FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能FB运行时需要调用各种参数,于是就产生了背景数据块DB。

例如用FB 41来作PID控制,则它的PID控制参数就要存在DB里面。

FB具有储存功能系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB 和SFC是集成在S7 CPU中的功能块,用户能直接调用不需自已写程序。

SFC与FC不具有储存功能,FB和SFB具有储存功能。

OB模块相当于子程序,负责调用其他模块。

如果程序简单只需要OB就可以实现。

用西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗?FB--功能块,带背景数据块FC--功能,相当于函数他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。

FB确保了3个电机的参数互不干扰。

FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。

他们的最大区别是,FB与DB配合使用,DB中保存着F B使用的数据,即使FB退出后也会一直保留。

FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。

西门子PLC S7-1200硬件中断功能简介

西门子PLC S7-1200硬件中断功能简介

西门子PLC S7-1200硬件中断功能简介西门子PLC S7-1200系列是一款中小型西门子PLC,可以在各种自动化项目中进行应用。

S7-1200系列设计较为紧凑,经济性较好,而且指令功能较为强大,因此在各种自动化控制解决方案中有较广泛的应用。

作为西门子PLC S7-200系列的升级版,西门子PLC S7-1200具有很多集成在CPU上的功能,与此同时,它的组态软件STEP7 V13具有各种组织块,可以帮助用户实现多种不同的功能。

其中一种组织块具有硬件中断的功能。

本文下面就对西门子PLC S7-1200的硬件中断组织块做一个介绍,供用户在编程过程中进行参考使用。

西门子PLC S7-1200的组态软件是STEP7 V13,其中某些组织块OB具有硬件中断功能,下面进行说明:1. 硬件中断OB的功能西门子PLC S7-1200系列的硬件中断OB在发生相关硬件事件时执行,可以快速的响应并执行硬件中断OB中的程序,例如:立即停止控制系统中的设备。

硬件中断事件包括内置数字输入端的上升沿和下降沿事件以及高速计数器事件。

当发生硬件中断事件,硬件中断OB将中断正常的循环程序而优先执行。

西门子PLC S7-1200可以在硬件配置的属性中预先定义硬件中断事件,一个硬件中断事件只允许对应一个硬件中断OB,而一个硬件中断OB可以分配给多个硬件中断事件。

在CPU运行期间,可使用“ATTACH”附加指令和“DETACH”分离指令对中断事件重新分配。

硬件中断OB的编号必须为40~47,或大于等于123;2. 与硬件中断OB相关的指令功能(1)ATTACH:功能是将硬件中断事件和硬件中断OB进行关联;(2)DETACH:功能是将硬件中断事件和硬件中断OB进行分离。

西门子PLC S7-1200在自动化控制系统中的应用广泛。

随着用户对其深入的了解,会更加体会到S7-1200在使用过程中为用户带来的便利,也更能体会到它的各项功能,如:通讯功能,扩展功能,集成功能等方面的强大。

西门子PLC S7OB组织块功能一览表

西门子PLC S7OB组织块功能一览表
OB组织块一览表
组织块一览表
OB编号
启动事件
默认优先级
说明
OB1
启动或上一次循环结束时执行OB1
1
主程序循环
OB10~OB17
日期时间中断0~7
2
在设置的日期时间启动
OB20~OB23
时间延时中断0~3
3~6
延时后启动
OB30~OB38
循环中断0~8时间间隔分别为5s,2s,1s
7~15
以设定的时间为
同步循环中断1~4
25
同步循环中断
OB70
I/O冗余错误
25
冗余故障中断
OB72
CPU冗余错误,例如一个CPU发生故障
28
只用于H系列的CPU
OB73
通行冗余错误中断,例如冗余连接的冗余丢失
25
OB80
时间错误
26启动为28
OB81
电ቤተ መጻሕፍቲ ባይዱ故障
27启动为28
OB82
诊断中断
28启动为28
OB83
插入/拔出模块中断
27
启动
OB102
冷启动
27
OB121
编程错误
与引起中断的
同步错误中断
OB122
I/O访问错误
OB相同
500ms,200ms,100ms,50ms,20ms,10ms
周期运行
OB40~OB47
硬件中断0~7
16~23
检测外部中断请求时启动
OB55
状态中断
2
DPV1中断(profibus-dp)
OB56
刷新中断
2
OB57
制造厂特殊中断
2

西门子各组织块详解

 西门子各组织块详解

SIMATIC S7
Siemens AG 2000. All rights reserved.
Date: File:
2021/2/5 SSP2_04C.7
Information and Training Center Knowledge for Automation
日期时间中断OB10(1)
日时钟 OB (OB10 在 S7-314) 允许你在某一特定日期或特定间隔, 中断正在循环的 OB 而去执行中断程序。你可以对此 OB 编程使其 按下列间隔运行:
结果
测试程序的功能
在课程结束时,蜂鸣器发出声音。
4
禁止日期时间中断,并将修改的配置下装。
SIMATIC S7
Siemens AG 2000. All rights reserved.
Date: File:
2021/2/5 SSP2_04C.11
Information and Training Center Knowledge for Automation
从9:30开始每分钟 执行一次。
...... 直到被其它OB中断
OB号 OB 1 OB 10 OB 20 OB 35 OB 40 OB 82
OB 类型 循环程序 日期时间中断 延时中断 循环中断 硬件中断 错误处理
优先级 1 2 3 12 16 26 / 28
Date: File:
2021/2/5 SSP2_04C.6
2021/2/5 SSP2_04C.15
Information and Training Center Knowledge for Automation
模拟输入模块
硬件中断 (OB40)
硬件组态:

西门子OB,FB,FC模块

西门子OB,FB,FC模块

OB、FC、FB、SFC、SFB的区别
S7-300/400PLC程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。

结合起来就能实现一个复杂的控制系统。

就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。

在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。

FC运行是产生临时变量执行结束后数据就丢失--------------不具有储存功能
FB运行时需要调用各种参数,于是就产生了背景数据块DB。

例如用FB41来作PID控制,则它的PID控制参数就要存在DB里面。

FB具有储存功能
系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB和SFC是集成在S7 CPU中的功能块,用户能直接调用不需自已写程序。

SFC与FC 不具有储存功能,FB和SFB具有储存工办。

OB模块相当于主程序,负责调用其他模块。

如果程序简单只需要OB就可以实现。

FB中可以定义静态变量,每个FB可以定义多个背景数据块,来代表同种类型的不同设备。

这样只通过一个功能块就可以完成多个设备的变程。

而FC中不可以定义背景数据块,一般情况下只能使用共享数据块中的数据,但同时也可以通过全局变量定义方式来访问其他背景数据块。

我个人的经验:在有多个类似的设备的时候,尽量抽象出这些设备的共同点,编写一个FB,然后通过FC来挂点或处理一些不同点。

OB块的使用

OB块的使用

1/service“English” “Search”“Product Support”400 810 4288 010 – 6471 9990 E-Mail@2OB_Specification.pdf /CN/view/en/1214574F1 OB F1OBCPU315(6ES7 315-2AG10-0AB0) STEP7 V5.3 OBOB1OB10OB20OB35OB40OB82OB86(CPU300 OB100 CPU400 OB101 OB102OB121I/O OB122I/O OB OB70 CPU OB OB72 OB OB73 CPU400H1 OB11OB_Example S7300 OB1_Example CPU 315-2DP3.2OB1OB1Step7OB_Example/OB1_Example OB1 STLNetWork1:L MB 100T MB 0NOP 0OB1 CPUMB100 HW Config CPU315-2DP Cycle/Clock MemoryStep73.2 OB101OB_Example S7300 OB10_Example CPU 315-2DPCPU315-2DPTime-of-Day Interrupts Active, Execution Everyminute ExecutionNoneOnceminuteEveryhourEveryweekEveryEverymonthEnd of monthyearEveryStart date Time of day3.2.2OB10OB10 Step7Variable Table OB_Example/OB10_ExampleOB10_Example Blocks OB10OB10 OB10 STLNetWork1:L MW 0L 1+IT MW 0NOP 0OB10 CPUOB10_Example Blocks Variable Table MW0Monitor VariableMW03.3 OB201OB_Example S7300 OB20_Example CPU 315-2DPCPU 315-2DP Interrupts CPU OB202OB20OB20 SFC32 (SRT_DINT) SFCOB SFC32 OBOB SFC32SFC33(CAN_DINT) SFC34 (QRY_DINT)SFC32/33/34 Step7Variable TableOB_Example/OB20_ExampleOB20_Example Blocks OB20OB20 OB20 STL NetWork1:L MW 0L 1+IT MW 0NOP 0OB1 OB1 STL NetWork1:A M 20.0JNB _001CALL "SRT_DINT"OB_NR :=20DTIME :=T#10SSIGN :=MW10RET_VAL:=MW12_001: A BRR M 20.0NetWork2:A M 20.1JNB _002CALL "CAN_DINT"OB_NR :=20RET_VAL:=MW14_002: A BRR M 20.1NetWork3:CALL "QRY_DINT"OB_NR :=20RET_VAL:=MW16STATUS :=MW18NOP 0OB1,OB20 CPUOB20_Example Blocks Variable Table MW0,M20.0,M20.1,MW18 Monitor VariableMW0 M20.0 true 10 MW0 1, M20.0 true 10 MW0 M20.1 true MW0 MW18 SFC34(QRY_DINT)3.4 OB351OB_Example S7300 OB35_Example CPU 315-2DP OB10 CPU 315-2DP Cyclic InterruptsOB35 Execution(ms) 1-60000ms 1000ms2OB35OB35 Step7Variable TableOB_Example/OB35_ExampleOB35_Example Blocks OB35OB35 OB35 STLNetWork1:L MW 0L 1+IT MW 0NOP 0OB351 CPUOB35_Example Blocks Variable Table MW0 Monitor VariableMW0OB35 PID FB41/42/43 PID OB35OB353.5 OB401OB_Example S7300 OB40_Example CPU 315-2DP 6ES7 321-7BH01-0AB06ES7 321-7BH01-0AB0 Inputs Hardwareinterrupt Trigger for Hardware InterruptOK CPU315-2DP Interrupts CPU OB402OB40OB40 OB40OB40_MDL_ADDROB40_POINT_ADDRStep7 Variable TableOB_Example/OB40_ExampleOB40_Example Blocks OB40OB40 OB40 STL NetWork1:L MW 0L 1+IT MW 0NOP 0NetWork2:A(L #OB40_MDL_ADDRT MW 10SETSAVECLRA BR)JNB _001L #OB40_POINT_ADDRT MD 12_001: NOP 0OB40 CPUOB40_Example Blocks Variable TableMW0,MW10,MD12 Monitor VariableMW0 I0.1 MW0 1,MW10MD12 163.6 OB82SFC51 OB821OB_Example S7300 OB82_Example CPU 315-331-7KF02-0AB0 2DP 6ES7SM331-7KF02-0AB0 inputs 0-1 22DMUEnable Diagnostic Interrupt Diagnostics 0 – 1Group Diagnostics with Check for Wire BreakOK CPU315-2DP Interrupts CPU OB822OB82OB82 OB82OB82_MDL_ADDR OB82OB82 Step7OB_Example/OB82_Example/CPU315-2DP/S7 Program(7)/Sources STL Source STL Source(1)OB1 Libraries > Standard Libraries > System Function Blocks > SFC51 RDSYSST DIAGNSTC F1 SFC51“Example for module diagnostics with the SFC 51” “STL Source File” STL Source STL Source(1)3 Blocks OB1 OB82 DB13 SFC51OB82 19 20 go:S7-300 CPU CPU RUN CPU“RUN “SF SM331 “SF CPU Hardware > Online CPU “Diagnostic BufferDB13COMES7-300 B Diagnostics Data of Signal ModulesS7-300/WW/view/en/88596297 COMECOME[1] = 16#0DCOME[2] = 16#15COME[3] = 16#00 CPU 2 COME[4] = 16#00 3COME[5] = 16#71COME[6] = 16#08 8COME[7] = 16#08COME[8] = 16#03 0 1COME[9] = 16#10 0COME[10] = 16#10 1COME[11] = 16#00 2 28 OB82 SFC51 S7-300B / Diagnostics Data of Signal Modules3.7 OB861OB_Example S7300 OB86_Example CPU 315-2DP DP DP ET200MSM331(6ES7 331-7KF02-0AB0), CPU DP ET200MET200M ET200MCPU315-2DP Interrupts CPU OB862OB86OB86OB82 OB122 OB86OB86Step7Variable TableOB_Example/OB86_ExampleOB86_Example Blocks OB86OB86 OB86 STL NetWork1:A(A(A(L #OB86_EV_CLASST MB 0SETSAVECLRA BR)JNB _001L #OB86_FLT_IDT MB 1SETSAVECLR_001: A BR)JNB _002L #OB86_MDL_ADDRT MW 2SETSAVECLR_002: A BR)JNB _003L #OB86_Z23T MD 4_003: NOP 0OB86 OB86_RACKS_FLTD Array [0 ..31]OB86_Z23 DWORDOB86 CPUOB86_Example Blocks Variable TableMB0,MB1,MW2,MD4 Monitor VariableMB0 MB1 16#39 16#C42047OB863.8 (OB100)1OB_Example S7300 OB100_Example CPU315-2DP OB102OB100OB100 CPU Warm RestartStep7 Variable TableOB_Example/OB100_ExampleOB100_Example Blocks OB100OB100 OB100 STLNetWork1:L 123T MW 0NOP 0OB100_Example Blocks Variable TableMW0 Monitor VariableMW0123 MW0 MW0 123 CPU Warm Restart(Stop Run3.9 OB1211OB_Example S7300 OB121_Example CPU315-2DP OB102OB121OB121 CPUCPU CPU CPU OB121,OB121_BLK_TYPE Step7Variable TableOB_Example/OB121_ExampleOB121_Example Blocks OB121 OB121OB121 STLNetWork1:L #OB121_BLK_TYPET MW 0NOP 0OB121_Example Blocks FC1 FC1 FC1STLNetWork1:A #in1= #out1OB1 OB1 STLNetWork1:A M 20.1= L 20.0BLD 103A M 10.0JNB _001CALL FC 1in1 :=L20.0out1:=M20.2_001: NOP 0OB1 CPU CPUOB121_Example Blocks Variable TableMW0 M10.0 Monitor Variable M10.0 trueCPU CPU OB121CPU M10.0 true CPU MW0 16#88OB121 16#88 OB FC1FC1 M10.0 true CPU OB1213.10 I/O OB12210 1OB_Example S7300 OB122_Example CPU315-2DP 6ES7 331-7KF02-0AB0 SM331-7KF02-0AB0inputs256 (271)10 2OB122OB122 I/O CPU I/OCPU I/O CPU OB122, OB122 CPUOB122_SW_FLT OB122_BLK_TYPEOB122_MEM_AREAOB122_MEM_ADDR Step7Variable TableOB_Example/OB122_ExampleOB122_Example Blocks OB122 OB122OB122 STLNetWork1:A(A(A(L #OB122_SW_FLTT MW 0SETSAVECLRA BR)JNB _001L #OB122_BLK_TYPET MW 2SETSAVECLR_001: A BR)JNB _002L #OB122_MEM_AREAT MW 4SETSAVECLR_002: A BR)JNB _003L #OB122_MEM_ADDRT MW 6_003: NOP 0OB1 OB1 STL NetWork1:A M10.0JNB _001L PIW 300T MW 20_001: NOP 0OB1 CPU CPU OB122_Example Blocks Variable Table MW0 MW2 MW4 MW6 M10.0 Monitor Variable M10.0 true CPU CPU I/O OB122 CPU M10.0 true CPU MW0 16#0042 MW2 16#0000 MW4 16#00200 MW62 16#012C OB121OB1NetWork1:A M10.0JNB _001L PIW 256T MW 20_001: NOP 0OB1 CPU3.11 (OB101)11 1OB_Example S7400 OB101_Example CPU412-1(6ES7 412-1XF03-0AB0 Ver1.2)CPU 412-1 Hot Restart,11 2OB101OB101 CPU Hot RestartStep7 Variable TableOB_Example/OB101_ExampleOB101_Example Blocks OB101 OB101OB101 STLNetWork1:L 123T MW 0NOP 0CPU Hot RestartOB101_Example Blocks Variable TableMW0 Monitor VariableMW0 123 MW0 MW0 123CPU Hot Restart3.12 (OB102)12 1OB_Example S7400 OB102_Example CPU412-1(6ES7 412-1XF03-0AB0 Ver1.2) OB101Cold Restart,12 2OB102OB102 CPU Cold RestartStep7 Variable TableOB_Example/OB102_ExampleOB102_Example Blocks OB102 OB102OB102 STLNetWork1:L 123T MW 0NOP 0CPU Cold RestartOB102_Example Blocks Variable TableMW0 Monitor VariableMW0 123 MW0 MW0 123CPU Hot Restart4.4.1 CPU SF CPUCPU SF CPUCPUOB82 ,OB86CPUStep7 CPU Offline<->Online CPU Diagnostic Buffer CPUStep7 CPU CPU, PLC->Module Information...Diagnostic Buffer CPU4.2 OB100OB100 CPU OB100OB1004.3OB35 60OB35 60000ms, OB35 5OB35 STLNetWork1:L MW 0L 1+IT MW 0NOP 0NetWork2:L M W 0L 5==I= L 20.0A L 20.0JNB _001L 1234T MW 100_001: NOP 0A L 20.0JNB _002L 0T MW 0_002: NOP 04.4 OB CPUOB83 CPU OB81 CPUOB81 OBCPUOB831 OB83 CPUDiagnostic Buffer12 OB83 CPUDiagnostic Buffer23 OB83 CPUDiagnostic Buffer OB8334 OB83 CPUDiagnostic Buffer4。

Step7 OB组织块介绍和使用技巧5

Step7 OB组织块介绍和使用技巧5
看到这个标题,想起以前用的一个项目。就是使用OB块的启动信息中的时间来时间类似于定时器的功 能,很方便。
具体就是在OB1每次执行的时候都获取当前时间,然后和启动时的时间进行比较。PLC的时间不一定要和 当前时钟一样,但就是时间比较费点事,但一次编好程序之后以后就可以反复使用了,简单,方便,没有 定时器那么多的小九九。
PLC的普通定时器的工作与扫描工作方式有关,其定时精度较差。
为了检查定时器的定时精度,在接通延时定时器输入信号的上升沿和定时器输出位的上升沿,分别 调用SFC 1读取CPU的日期和时间,用IEC功能FC 8从其中提取实时时间(TIME_OF_DAY)。设置时 间预置值分别为5s和50s,扫描循环时间为10ms。作者作了多次实验,发现定时器的定时误差为1~9ms。
产品技术介绍——Step7 OB组织块介绍和使用技巧
Page 2 of 5
经验值: 1169 发帖数: 698 金 币: 1169 所发精华帖
3楼的给个梯形图看看 对了 那个大哥有西门子库的说明书啊 给弟弟发个 qq邮箱 986840999@ 万谢!!!
安装STEP 7后你就得到了很多手册,包括库的手册,请看本论坛的帖子: /club/bbs/post.asp?b_id=4&a_id=802704&s_id=&num=6#anch
2011-05-04 21:27:44
simeng 新手
经验值: 47 发帖数: 15 金 币: 47 所发精华帖
2011-05-05 08:30:47
鹅卵石 侠圣
经验值: 2999 发帖数: 2057 金 币: 549 所发精华帖
追求完美 引用 收藏
45 楼
主题:回复:产品技术介绍——Step7 OB组织块介绍和使用技巧

STEP7常用功能块教程

STEP7常用功能块教程

STEP7常用功能块教程STEP7(Siemens Totally Integrated Automation Portal)是西门子公司的一款集成的自动化工程软件,用于配置、程序和诊断西门子的可编程逻辑控制器(PLC)系统。

STEP7具有许多强大的功能块,可以帮助用户更高效地编程和管理PLC系统。

本文将介绍一些常用的STEP7功能块和它们的应用。

1.FC(函数块):函数块是一种可重用的程序单元,允许用户编写自定义函数。

通过使用函数块,可以将常用的代码片段封装为函数,以便在不同的程序中重复使用。

例如,可以创建一个函数块来实现PID控制算法,使其可以在不同的工程中重复使用。

2.FB(功能块):功能块是STEP7中的另一种可重用程序单元,类似于函数块。

不同之处在于,功能块可以包含状态信息,并可以在程序中直接调用。

功能块通常用于处理系统的输入和输出信号,并执行相关的逻辑操作。

例如,可以创建一个功能块来处理PLC的输入和输出模块,并根据逻辑条件执行相应的控制操作。

3.OB(组织块):组织块是STEP7中的一种特殊类型的函数块,用于定义PLC程序的执行顺序和事件触发条件。

组织块分为不同的类型,如主程序(OB1)和中断(OB35),每个类型都有不同的功能和触发条件。

通过使用组织块,可以精确控制PLC程序的执行流程,并根据需要触发特定的事件。

4.DB(数据块):数据块是STEP7中用于存储和管理数据的容器。

数据块包含一个或多个变量,可以在PLC程序中访问和使用。

通过使用数据块,可以将相关的数据组织在一起,并轻松地进行数据的传输和处理。

例如,可以创建一个数据块来存储传感器和执行器的输入和输出数据,并在程序中使用这些数据进行逻辑判断和控制操作。

5.SFC(顺序功能图):顺序功能图是一种图形化编程语言,用于描述程序的执行顺序和组织结构。

SFC可以将PLC程序分解为不同的步骤,并定义不同的条件和转换规则。

通过使用SFC,可以更直观地理解和设计复杂的PLC程序,并使其易于修改和维护。

Step7 OB组织块介绍和使用技巧8

Step7 OB组织块介绍和使用技巧8
OB121、OB122是在程序出错和访问I/O出错时调用,初始化处理在OB100中进行。
追求完美
74 楼
2011-05-15 18:06:03
www123456 侠圣
经验值: 1150 发帖数: 441 金 币: 850 所发精华帖
引用 收藏
主题:回复:产品技术介绍——Step7 OB组织块介绍和使用技巧 quote: 以下是引用风云扬天在2011-05-09 18:50:31的发言: 在使用OB块时,调用到的越少系统越稳定,但不是不用
产品技术介绍——Step7 OB组织块介绍和使用技巧
Page 4 of 4
2011-05-20 14:30:13
小浩浩 游民
经验值: 98 发帖数: 102 金 币: 98 所发精华帖
2011-05-21 16:32:04
引用 收藏
81 楼
主题:回复:产品技术介绍——Step7 OB组织块介绍和使用技巧
我一般比较常用的就是OB1、OB82、OB85、OB86、OB122之类的容错块,因为调试的过程中,有时候 会出来出错时要保证正常运行,所以只需要这些块是空的,就可以,有时候会用到OB121、OB122进行 一些初始化的处理工作。
/club/bbs/post.asp?myreply=&b_id=4&a_id=836150&s_... 2011-6-6
佛说:"你的痛苦来自你的欲望,没有欲望也就没有痛苦".
引用 收藏 主题:回复:产品技术介绍——Step7 OB组织块介绍和使用技巧
不同的程序,得用到不一样的OB组织块, OB80-循环超时中断; 0B82-IO错误中断;
OB85-OB没有加载中断;

Step7 OB组织块介绍和使用技巧9

Step7 OB组织块介绍和使用技巧9

Page 4 of 4
开了讨论:
1、OB组织块一般性介绍; 2、常用的OB块有哪些?如何使用? 3、周期循环中断块 4、OB组织块临时局部变量
根据讨论情况,现推荐下载中心如下文档供大家参考:
编号A0059 如何使用OB组织块。 STEP 7帮助文档。 本次探讨的发帖整理请稍候。
所有探讨参与者都将获得加倍发帖积分和金币,每一位精华帖作者还将获得每星5分的额外经验 值奖励!
OB40~OB47 硬件中断0~7 16~23 检测外部中断请求时启动
OB55 状态中断 2 DPV1中断(profibus-dp)
OB56 刷新中断 2
OB57 制造厂特殊中断 2
OB60 多处理中断,调用SFC35时启动 25 多处理中断的同步操作
OB61~64 同步循环中断1~4 25 同步循环中断
L
P#10.0
//起始地址送累加器1
+D
T
LD 20
//故障从站地址送地址指针
R
M [LD 20]
//熄灭故障从站对应的指示灯
m003: NOP 0
下图是5号和13号从站有故障时指示灯的状态。
使用16个字节(例如MB10~MB25),最多可以用画面上的指示灯显示120 多个从站的状态。
此程序稍作修改,可以显示多个网络的从站故障。
/club/bbs/post.asp?myreply=&b_id=4&a_id=836150&s_... 2011-6-6
产品技术介绍——Step7 OB组织块介绍和使用技巧
==I
JCN m003
//不是从站故障消失则跳转
L
LB 11
//故障从站编号送累加器1

西门子1200、1500 OB组织块详解

西门子1200、1500 OB组织块详解

每种类型的OB块的分析及其使用方法:PLC:循环串行扫描输入采样程序执行输出刷新1:Main (Program cycle) 最大可以100个优先级最低(正常循环扫描谁都可以中断他)2默认优先级越大,级别越高,1是优先级别最低的。

2:Startup块上电导通一次 STOP 转RUN的过程中导通一次除此之外也可以使用其他方法实现(1)对组态属性打开(2)选择系统和时钟存储器分别启用3:Time delay interrupt 延时中断指令最大20个(1)打开中断(2)取消中断(3)读取状态4:Cyclic interrupt 循环中断 (模拟量采集中常用)(1)循环时间100MS 相移10MS (一个循环中断块时,相移可以设置0,当多个循环中断块时,需要设置相移10或者其他数字意思是每个块汇报的时间间隔相位移动时间)(2)也可以设置块的优先级访问(一般都采用默认的优先级)(2)上述四种中断全是CPU执行。

1、自由循环组织块OB1S7 CPU启动完成后,操作系统循环执行OB1,OB1执行完成后,操作系统再次启动OB1。

在OB1中可以调用FB、SFB、FC、SFC等用户程序使其循环执行。

除OB90以外,OB1优先级最低,可以被其他OB中断。

OB1默认扫描监控时间为150ms(可设置),扫描超时,CPU自动调用)B80报错,如果程序中没有建立OB80,CPU进入停止模式。

2、日期中断组织块OB10~OB17在CPU属性中,可以设置日期中断组织块OB10~OB17触发的日期、执行模式(到达设定的触发日期后,OB只执行一次或按每分、每小时、每周、每月周期执行)等参数,当CPU的日期值大于设定的日期值时,触发相应的OB并按设定的模式执行。

在用户程序中也可以通过调用SFC28系统函数设定CPU日期中断的参数,调用SFC30激活日期中断投入运行,与在CPU属性中的设置相比,通过用户程序,可以在CPU运行时灵活地修改设定的参数,两种方式可以任意选择,也可以同时对一个OB进行设置。

OB100的使用

OB100的使用

OB100的使用
要从PLC的初始化开始说起,所谓的初始化通俗的讲就是把变量赋为默认值,把控件设为默认状态,把没准备的准备好。

专业说法我也不会!在西门子s7300400PLC中有暖启动冷启动和热启动,这就是所谓的初始化组织块,当CPU 的状态由停止态转入运行态时,也就是我们经常说的上电的那个时刻,PLC会率先扫描OB100或者101 102中的一个,当PLC扫描完相应的OB一遍后(注意就扫描一遍),然后才对OB1进行循环扫描,说到这可能会出现两个疑问一为什么要调用OB100 101 102之中的一个二扫描OB100后的效果
PLC进行暖启动时过程映象和不保持的定时器计数器及标志存储器被清除,然后自动调用OB100一次,然后再开始循环执行OB1。

调用OB100只是暖启动中的一项,如果你没有写oB100,PLC仍然会调用OB100,只是没有程序要执行!
PLC中的OB100 101 102,分别对应暖热冷启动的一个初始化程序,在写程序的时候,有些程序,只需要扫描一遍,把相应的一些数值写入相应的寄存器中即可,但是如果写入OB1中,那么PLC在工作的过程中,就要不停的扫描这一段没什么用的程序,那么这就是浪费PLC资源的一种体现,所以有很多只需要扫描一次的程序,我们就把它放入这些初始化的块中,调用OB100只是暖启动的所要进行的一项任务,你写不写,他都得进行!两者的关系是暖启动包含OB100,而不是两者对立平等的!!。

西门子S7-1200组织块与中断

西门子S7-1200组织块与中断

常用的组织块OB
常用的组织块OB
常用的组织块OB
常用的组织块OB
常用的组织块OB
常用的组织块OB
常用的组织块OB
常用的组织块OB
在设定的时间间隔,循环中断组织块被周期性地执行。最多可以组态 4 个循环中 断事件,循环中断 OB 的编号大于等于 200.
在 OB 的巡视窗口中,循环中断的时间间隔的默认值为 10织块OB
常用的组织块OB
常用的组织块OB
常用的组织块OB
常用的组织块OB
启动组织块用于系统初始化,CPU 从 Stop 切换到 RUN 时,执行一次启动 OB。 执行完后,开始执行程序循环 OB1.允许生成多个启动 OB,默认的是 OB100,其 他启动 OB 的编号应大于等于 200.一般只需要使用一个启动组织块。
常用的组织块OB
26
S7-1200 组织块与中断
组织块OB
组织块OB
组织块OB
组织块OB
常用的组织块OB
常用的组织块OB
需要连续执行的程序应放在主程序 OB1 中,CPU 在 RUN 模式时循环执行 OB1,可 以再 OB1中调用 FB 和 FC。如果用户程序生成了其他程序循环 OB,CPU 按 OB 编号的 顺序执行它们,首先执行主循环程序 OB1,然后执行编号大于等于 200 的程序循环 OB。 一般只需要一个程序循环组织块。

西门子PLC插槽内模块被拔出报警显示 组织块0B83使用说明

西门子PLC插槽内模块被拔出报警显示 组织块0B83使用说明
PLC插槽内有模块被拔掉后,首先会有硬件故障报警,这时调用OB83,如下图
PLC插槽内模块被拔掉报警显示
下图是OB83的使用说明,Event_Class 值为39(16进制),代表模块拔出
PLC插槽内模块被拔掉报警显示
在PLC程序中插入组织块OB83,编写中下程序,可用D示
PLC插槽内有模块被拔掉或未响应后, 若程序中没有组织块OB83, PLC会停止首先会有硬件故障报警, 这时需 调用组织块OB83,
PLC插槽内模块被拔掉报警显示
PLC插槽内有模块被拔掉后,首先会有硬件故障报警,这时调用OB83,如下图
PLC插槽内模块被拔掉报警显示

OB块的使用

OB块的使用

S7组织块OB的运用方法<2>2.15.1 描述与电源(仅对S7-400)或后备电池(当到来和离去事件)有关的故障事件发生时,S7-300CPU 的操作系统调用OB81。

在S7-400 中,如果电池测试功能已通过BATT.INDIC 开关激活,仅在电池故障事件发生时调用OB81。

如果OB81 未编程,CPU 并不转换为STOP 方式。

您可以用SFC39 至42 来禁用、延时或再使能电源故障OB。

2.15.2 电源故障OB 的局部数据下表描述了电源故障OB 的临时(TEMP)变量。

变量名是OB81 的缺省名。

变量类型描述OB81_EV_CLASS BYTE事件级别和标识:B#16#38:离去事件B#16#39:到来事件OB81_FLT_ID BYTE 故障代码(可能值)B#16#21,B#16#22,B#16#23,B#16#25,B#16#26,B#16#27,B#16#31,B#16#32,B#16#33)OB81_PRIORITY BYTE * 优先级;可通过STEP 7 选择(硬件组态)* 例如,RUN 方式的可能值:2-26OB81_OB_NUMBR BYTE OB 号(81)OB81_RESERVED_1 BYTE 保留OB81_RESERVED_2 BYTE 保留OB81_MDL_ADDR INT * 位0 至2:机架号* 位3:0=备用CPU,1=主站CPU * 位4 至7:1111OB81_RESERVED_3 BYTE 仅与故障代码B#16#31, B#16#32 andB#16#33 有关OB81_RESERVED_4 BYTEOB81_RESERVED_5 BYTEOB81_RESERVED_6 BYTEOB81_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间变量OB81_RESERVED_I,3 ≤ i ≤ 6 显示扩展机架上后备电池(故障代码B#16#31)、后备电压(故障代码B#16#32)或24V 电源(故障代码B#16#33)故障。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OB86
OB87 OB88 OB90
1-2
循环中断3(默认时间间隔:500ms) 10
循环中断4(默认时间间隔:200ms) 11
循环中断5(默认时间间隔:100ms) 12
循环中断6(默认时间间隔:50ms) 13
循环中断7(默认时间间隔:20ms) 14
循环中断8(默认时间间隔:10ms) 15
STEP 7 激活日期时间中断的基本可能性。
• 您可以在STEP 7 中设置日期时间中断,然后通过程序调用SFC30
“ACT-TINT”,激活日期时间中断。
• 您可以通过调用SFC28 “ SET_TINT ” 设置日期时间中断,通过调用SFC30
“ACT_TINT”,激活日期时间中断。
时间间隔 没有激活
过程中断
28
暖或冷启动或删除一个正在OB90 292)
中执行的块或装载一个OB90 到CPU
或中止OB90
硬件中断
DPV1 中断 多处理器中断 同步循环中断 冗余故障中断 同步故障中断
背景循环
OB OB100 OB101 OB102
OB121
OB122
启动事件 暖启动 热启动 冷启动
编程故障
I/O 访问故障
中断OB1 的执行。以下事件可导致操作系统调用OB1:
• CPU 启动完毕。 • OB1 执行到上一个循环周期结束。 OB1 执行完后,操作系统发送全局数据。再次启动OB1 之前,操作系统会将
输出映像区数据写入输出模板,刷新输入映像区并接收全局数据。S7 监视最
长循环时间,保证最长的响应时间。最长循环时间缺省设置为150ms。您可以
设一个新值或通过SFC43“RE_TRIGR”重新启动时间监视功能。如果您的程序
超过了OB1 最长循环时间,操作系统将调用OB80(时间故障OB);如果OB80 不
存在,则CPU 停机。
除了监视最长循环时间,还可以保证最短循环时间。操作系统将延长下一个
新循环(将输
出映像区数据传送到输出模板)直到最短循环时间到。参见手册/70/和/101/
行。您可以运用SFC 或STEP 7 给CPU 分配参数,这样OB 将以下列的间隔运
行:

一次

每分钟

每小时

每天

每周

每月

每月底
2.2.2 理解日期时间中断组织块OB 的运行
在启动日期时间中断时,您必须首先设置和激活中断。
以下三种方式可以设置和激活中断:
• 自动启动日期时间中断。您可通过TEP 7 设置并激活中断。下表显示通过
2.2.4 日期时间中断OB 的局部数据 下列表格描述了日期时间中断的临时变量(TEMP)。变量名为OB10 的缺省名称。
变量
类型
描述
OB10_EV_CLASS BYTE
事件级和识别码:B#16#11=中断激活
OB10_STRT_INFO BYTE
OB10_PRIORITY BYTE
B#16#11:启动请求OB10 (B#16#12: 启动请求OB11) : : (B#16#18: 启动请求OB17) 分配的优先级:默认2
CPU 冗余故障(只对于H CPU) 28
通讯冗余故障(只对于H CPU) 25
时间故障
26,281)
电源故障
25,281)
诊断中断
25,281)
模板插/拔中断
25,281)
CPU 硬件故障
25,281)
程序故障
25,281)
扩展机架、DP 主站系统或分布式 I/O 从站故障
25,281)
通讯故障
25,281)
AND_TIME )。在此OB 被调用之前,您必 须重新设置并
激活它。
您编程激活日期时间中断OB,但 操作系统调用OB85。如果OB85 在CPU 中不
此OB 在
存在,CPU
CPU 中不存在。
将停机。
条件 当同步或校正CPU 系统时钟时, 您设置的时间超前并跳过了日 期时间中断OB 的启动事件。
结果 操作系统调用OB80 并在OB80 中编译日期 时间中断OB 号和启动事件信息。操作系统 运行一次日期时间中断OB, 不考虑这个OB 应该运行多少次。OB80 的启动事件信息显 示了OB 第一次被跳过的日期和时间 (DATE_AND_TIME )。
如果您设定日期时间中断相应的OB 是执行一次,那么日期时间(DATE_AND_TIME )
不能是过去(与CPU 的实时时钟相关)的日期时间。如果您设定日期时间中断相应
的OB 是周期性的执行,日期时间(DATE_AND_TIME )是过去的日期和时间,那么日
期时间中断将按下图所示在下次执行。
您可以用SFC39 到SFC42 禁止、延迟和重新使能日期时间中断。
硬件中断0
16
硬件中断1
17
硬件中断2
18
硬件中断3
19
硬件中断4
20
硬件中断5
21
硬件中断6
22
硬件中断7
23
状态中断
2
刷新中断
2
制造厂商用特殊中断
2
SFC 35“MP_ALM”调用
25
周期同步中断1
25
周期同步中断2
25
周期同步中断3
25
周期同步中断4
25
I/O 冗余故障(只对于H CPU) 25
优先级1 OB 号(01) 备用 备用 上一次OB1 的循环时间(ms) 自CPU 启动,最短一次OB1 的循环时 间(ms) 自CPU 启动,最长一次OB1 的循环时 间(ms) OB 被调用的日期和时间
2.2 日期时间中断组织块(OB10 到OB17)
2.2.1 描述
STEP 7 提供多达8 个OB(OB10 到OB17),它们可以运行一次或周期性地运
参数“最长”、“最短”循环时间的范围。您可以运用STEP 7 软件更改参数
设置。
2.1.3 OB1 的局部数据
以下表格描述了OB1 的临时变量(TEMP)。变量名是OB1 的缺省名称。
变量
类型
描述
OB1_EV_CLASS
BYTE
事件等级和标识码:B#16#11:OB1 激 活
OB1_SCAN_1
OB1_PRIORITY OB1_OB_NUMBR OB1_RESERVED_1 OB1_RESERVED_2 OB1_PREV_CYCLE OB1_MIN_CYCLE OB1_MAX_CYCLE OB1_DATE_TIME
描述 日期时间中断没有执行,即使已装载到CPU。可以通过调用
SFC30 激活。
只激活一次 日期时间中断运行一次后,日期时间中断OB 自动取消。
您可以通过调用SFC28 和SFC30 重新设置和重新激活日期时
间中断OB。
周期性地激活
当日期时间中断发生后,CPU 根据当前的时间计算下一次的 中断启动时间。
默认的优先级
271) 271) 271) 引起故障的OB 的 优先级 引起故障的OB 的优先级
解释 启动
同步故障中 断
1)优先级27 和28 在优先级启动模式中是有效的。2)优先级29 对应于优先级 0.29。
这意味着背景循环比自由循环具有更低的优先级。
2.组织块说明 2.1 程序循环组织块(OB1)
OB OB1
OB10
OB11 OB12 OB13 OB14 OB15 OB16 OB17
OB20
OB21 OB22 OB23
启动事件 启动结束或OB1 执行结束
日期时间中断0
日期时间中断1 日期时间中断2 日期时间中断3 日期时间中断4 日期时间中断5 日期时间中断6 日期时间中断7
延时中断0
延时中断1 延时中断2 延时中断3
OB。运用延时中断,您必须做下列事项:
• 您必须调用SFC32(SRT_DINT); • 您必须下载日期时间中断OB 到CPU 中。 延时OB 只有在CPU 处于运行状态时才运行。一个暖启动或冷启动清除任何延
时OB 的启动事件。如果延时中断还没有启动,您可以调用SFC33(CAN_DINT )
去取消它的执行。延时时间分辨率为1 毫秒,如果延时时间超出则立即再次
一个OB
在调用SFC32(SRT_DINT )后启动。延时时间在SFC 的参数中设定。当您编
程SFC32(SRT_DINT )时,需提供OB 号、延时时间和一个用户指定的标识符。
指定的延时到,OB 启动。您也可以取消还没有启动的延时中断。
2.3.2 理解延时中断OB 的运行
当延时时间到(毫秒时间和OB 号一起传给SFC32 )时,操作系统启动相应的
当同步或校正CPU 系统时钟时, 时间被向后设置,于是OB 的启 动事件、日期或时间被重复。 CPU 在暖启动或冷启动期间。
下一个时间间隔启动事件发生 时,日期时间OB 仍在执行。
如果日期时间OB 在时钟修改之前已激活, 那么此OB 不再被调用。
任何由SFC 配置的日期时间OB, 都须遵从 STEP7 中组态的设置。如果您组态了一个 启动一次的日期时间中断OB 在STEP7 中, 组态的时间是过去(相对于CPU 的实时时 钟), 并且已激活,在操作系统暖启动或 冷启动后,这个 OB 将被调用一次。 操作系统调用OB80。如果OB80 不存在,则 CPU 停机。如果OB80 已装载,那么OB80 和 日期时间中断OB 都执行第一次,并且第二 个中断请求也被执行。
2.1.1 描述
S7 CPU 操作系统周期性地执行组织块OB1 程序。当OB1 执行完毕,操作系统
再次启动它。CPU 启动后,OB1 循环执行。您可以在OB1 中调用其它功能块
相关文档
最新文档