如何使用OB组织块
How to use the OB block
Getting Started Edition (2007年1月) A&D Service & Support
Page 1-58
摘要:本文档着重讲述西门子PLC中OB组织块的使用,包含组织块的说明,编程举例,
并提供相应的例程。
关键字: 程序 组织块 例程
Key Words :Program OB block example
A&D Service & Support
Page 2-58
目 录
1. 2. 3.
西门子技术支持网站简介........................................................................................5 组织块的详细说明...................................................................................................6 常用OB组织块的使用说明........................................................................................7
3.1 程序循环组织块(OB1)...........................................................................................8 3.1.1 硬件组态.............................................................................................................8 3.2 3.2
OB1程序执行...........................................................................................................8 日期时间中断组织块(OB10)...............................................................................10
硬件组态.........................................................................................................10 OB10程序执行....................................................................................................12 延时中断组织块(OB20)......................................................................................14
硬件组态.........................................................................................................14 OB20程序执行.................................................................................................15
3.2.1 3.2.2 3.3
3.3.1 3.3.2 3.4
循环中断组织块(OB35)......................................................................................19
硬件组态.........................................................................................................19 OB35程序执行.................................................................................................20
3.4.1 3.4.2 3.5
硬件中断组织块(OB40)......................................................................................22
硬件组态.........................................................................................................22 OB40程序执行.................................................................................................23
3.5.1 3.5.2 3.6
诊断中断组织块(OB82)......................................................................................26
硬件组态.........................................................................................................26 OB82程序执行.................................................................................................28
3.6.1 3.6.2 3.7
机架故障组织块(OB86)......................................................................................31
硬件组态.........................................................................................................31 OB86程序执行.................................................................................................33
3.7.1 3.7.2 3.8
启动的类型(OB100)...............................................................................................36
硬件组态.........................................................................................................36 OB100程序执行...............................................................................................37
3.8.1 3.8.2 3.9
编程故障组织块(OB121).....................................................................................38
硬件组态.........................................................................................................38
Page 3-58
3.9.1
A&D Service & Support
3.9.2 3.10
OB121程序执行...............................................................................................39 I/O 访问故障组织块(OB122)..........................................................................41
硬件组态.....................................................................................................41 OB122程序执行...........................................................................................42
3.10.1 3.10.2 3.11
启动的类型(OB101)............................................................................................46
硬件组态.....................................................................................................46 OB101程序执行...........................................................................................47
3.11.1 3.11.2 3.12
启动的类型(OB102)............................................................................................48
硬件组态.....................................................................................................48 OB102程序执行...........................................................................................49
3.12.1 3.12.2 4. 4.1 4.2 4.3 4.4
有关组织块的常问问题..........................................................................................50 CPU的SF红灯亮,CPU停机是什么原因造成的?......................................................50 为什么监控OB100程序时,感觉程序没有运行?...................................................52 OB35的循环时间最长为60秒,但想实现5分钟的循环周期怎么办?...................52 在冗余电源配置中,电源模块掉电,调用那个OB可以防止CPU停机?....................54
附录-推荐网址...............................................................................................................58
A&D Service & Support
Page 4-58
1. 西门子技术支持网站简介
当您在使用西门子产品时可能遇到这样或是那样的问题,没关系,您可以登陆西门子技术支持与服务网站来查找您需要的信息。
网站链接为:http://www.ad.siemens.com.cn/service
登陆网站后,您可以点击相关链接,查找您想要的信息,其中在“网上课堂”可以下载西门子技术支持工程师编写的常问问题和使用入门文档,点击网页左侧的“技术资源”,进入后将显示语言切换到英文(点击网页的右上角“English”),然后在“Search”输入框中输入您要查找的相关内容,如下载升级软件包,或是查找错误代码的解释,或是查找相关产品的信息等等,您可能会找到很多条链接,您可以从中选择您所需要的内容,您还可以通过点击“Product Support”进入西门子的产品信息库,通过点击左侧的相关文件链接可以查找到西门子相关产品的详细信息。如果您经常使用网站信息,您会觉得它已成为您解决问题的得力助手。 西门子技术支持与服务网站首页切图如下:
A&D Service & Support
Page 5-58
如果网站未能解决您的问题或者不是很清楚,您可以拨打我们的技术支持与服务热线:400 810 4288 ,手机用户可拨打010 – 71 9990 ,或发E-Mail到4008104288.cn@siemens.com,将会有工程师为您解答。
2. 组织块的详细说明
请参阅文档OB_Specification.pdf,如果想查阅英文文档,可从下面的链接下载该文档:
http://support.automation.siemens.com/CN/view/en/1214574
您也可以通过按F1键查阅相应组织块的在线帮助,操作方法为:在程序中插入相应的OB块,然后选中该组织块并按F1键。
A&D Service & Support
Page 6-58
3. 常用OB组织块的使用说明
现以CPU315(6ES7 315-2AG10-0AB0),STEP7 V5.3为例介绍常用OB组织块的使用方法,这些组织块包括:
程序循环组织块(OB1);
日期时间中断组织块(以OB10为例); 延时中断组织块(以OB20为例); 循环中断组织块(以OB35为例); 硬件中断组织块(以OB40为例); 诊断中断组织块(以OB82为例); 机架故障组织块(以OB86为例);
启动的类型(CPU300以OB100为例,CPU400以OB101,OB102为例); 编程故障组织块(以OB121为例); I/O 访问故障组织块(以OB122为例);
还有其它的组织块,如:I/O 冗余故障OB(OB70),CPU 冗余故障OB(OB72),通讯冗余故障OB(OB73)请咨询CPU400H系统工程师,这里不做说明。
A&D Service & Support
Page 7-58
3.1 程序循环组织块(OB1)
3.1.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB1_Example,然后插入CPU 315-2DP
硬件组态完成后,保存编译。
3.2 OB1程序执行
OB1的程序循环执行,用Step7可以时时监控程序的运行,具体程序参见OB_Example/OB1_Example。OB1 的STL程序(可转成梯形图)为:
NetWork1:
L MB 100
A&D Service & Support
Page 8-58
T MB 0 NOP 0
将OB1程序和硬件组态下载到CPU中。
其中MB100 为时钟存储器,设置方法为进入硬件组态(HW Config),双击CPU315-2DP,选择Cycle/Clock Memory,具体设置画面如下:
Step7时时监控画面如下:
A&D Service & Support
Page 9-58
3.2 日期时间中断组织块(OB10)
3.2.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB10_Example,然后插入CPU 315-2DP
A&D Service & Support
Page 10-58
击CPU 315-2DP,选择Time-of-Day Interrupts选项,选中Active,同时设置Execution选项,本例选择Every minute,Execution选项包括:
None Once
不使用 只执行一次 每分钟执行一次 每小时执行一次 每周执行一次 每月执行一次 月末执行一次 每年执行一次
Every minute Every hour Every week
Every month End of month Every year
设置开始执行的日期(Start date)和时间(Time of day),设置完成后画面如下:
A&D Service & Support
Page 11-58
硬件组态完成后,保存编译。
3.2.2 OB10程序执行
OB10程序按照设定的时间执行,使用Step7不能时时监控程序的运行,可用Variable Table 监控实时数据变化。具体程序参见OB_Example/OB10_Example。
在
OB10_Example程序的Blocks中插入OB10组织块,画面如下:
A&D Service & Support
Page 12-58
然后打开OB10组织块编写程序,OB10 的STL程序(可转成梯形图)为: NetWork1:
L MW 0 L 1 +I
T MW 0 NOP 0
将OB10程序和硬件组态下载到CPU中。
在OB10_Example程序的Blocks中插入Variable Table,然后打开,填入地址MW0并点击Monitor Variable按钮,画面如下:
A&D Service & Support
Page 13-58
此时可以监控MW0每分钟加1。
3.3 延时中断组织块(OB20)
3.3.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB20_Example,然后插入CPU 315-2DP
双击CPU 315-2DP,选择Interrupts选项,可以看到CPU支持OB20,画面如下:
A&D Service & Support
Page 14-58
硬件组态完成后,保存编译。
3.3.2 OB20程序执行
每一次OB20的程序执行,必须调用SFC32 (SRT_DINT),延迟时间在SFC的输入参数中给定,同时给定OB号,调用SFC32且设定的时间延迟到后,执行OB程序,如果再次执行OB程序,需要再次调用SFC32。如果在延迟时间未到之前想取消程序的执行,可以调用SFC33(CAN_DINT),同时可以使用SFC34 (QRY_DINT)取得延迟中断的状态,具体SFC32/33/34的调用方法可参考在线帮助,Step7不能时时监控程序的运行,可用Variable Table 监控实时数据变化。具体程序参见OB_Example/OB20_Example。 在OB20_Example程序的Blocks中插入OB20组织块,画面如下:
A&D Service & Support
Page 15-58
然后打开OB20组织块编写程序,OB20 的STL程序(可转成梯形图)为: NetWork1:
L MW 0 L 1 +I
T MW 0
A&D Service & Support
Page 16-58
NOP 0
打开OB1组织块编写程序,OB1 的STL程序(可转成梯形图)为: NetWork1:
A M 20.0 JNB _001 CALL \"SRT_DINT\" OB_NR :=20 DTIME :=T#10S SIGN :=MW10 RET_VAL:=MW12 _001: A BR
R M 20.0 NetWork2:
A M 20.1 JNB _002 CALL \"CAN_DINT\" OB_NR :=20 RET_VAL:=MW14 _002: A BR
R M 20.1
A&D Service & Support
Page 17-58
NetWork3:
CALL \"QRY_DINT\" OB_NR :=20 RET_VAL:=MW16 STATUS :=MW18 NOP 0
将OB1,OB20 和硬件组态下载到CPU中。
在OB20_Example程序的Blocks中插入Variable Table,然后打开,填入地址MW0,M20.0,M20.1,MW18并点击Monitor Variable按钮,画面如下:
此时可以监控MW0的变化,将M20.0置为true,10秒钟后延迟时间到,MW0加1,再将M20.0置为true,10秒钟后延迟时间到,MW0再加1。如果当延迟时间未到,此时将M20.1置为true,那么此次时间延迟中断被取消,MW0不会加1,每次执行的状态都可以从MW18种读出,具体状态的含义请参阅SFC34(QRY_DINT)的在线帮助。
A&D Service & Support
Page 18-58
3.4 循环中断组织块(OB35)
3.4.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB35_Example,然后插入CPU 315-2DP,参见OB10硬件组态,双击CPU 315-2DP,选择Cyclic Interrupts选项,修改OB35的执行周期(Execution(ms),范围是1-60000ms),本例设为1000ms,具体画面如下:
硬件组态完成后,保存编译。
A&D Service & Support
Page 19-58
3.4.2 OB35程序执行
OB35程序按照设定的执行周期循环执行,使用Step7不能时时监控程序的运行,可用Variable Table 监控实时数据变化。具体程序参见OB_Example/OB35_Example。
在
OB35_Example程序的Blocks中插入OB35组织块,画面如下:
A&D Service & Support
Page 20-58
然后打开OB35组织块编写程序,OB35 的STL程序(可转成梯形图)为:
NetWork1:
L MW 0 L 1 +I
T MW 0 NOP 0
将OB351和硬件组态下载到CPU中。
在OB35_Example程序的Blocks中插入Variable Table,然后打开,填入地址MW0并点击Monitor Variable按钮,画面如下:
此时可以监控MW0每秒钟加1。
可以在OB35中周期的调用PID模块(FB41/42/43),完成PID调节,也可以OB35中调用周期的数据发送指令,完成数据发送功能,等等。总之OB35是按设定的循环周期执行。
A&D Service & Support
Page 21-58
3.5 硬件中断组织块(OB40)
3.5.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB40_Example,然后插入CPU 315-2DP和一块具有中断功能的数字量输入模板6ES7 321-7BH01-0AB0
双击6ES7 321-7BH01-0AB0模板,选择Inputs选项,同时选中Hardware interrupt 和Trigger for Hardware Interrupt选项,画面如下:
A&D Service & Support
Page 22-58
点击OK,然后双击CPU315-2DP,选择Interrupts选项,可以看到CPU支持OB40,画面如下:
硬件组态完成后,保存编译。
3.5.2 OB40程序执行
OB40程序当在硬件组态中设定的硬件中断发生后执行,当OB40执行时可以通过它的临时变量OB40_MDL_ADDR读出产生硬件中断的模板的逻辑地址,
A&D Service & Support
Page 23-58
通过OB40_POINT_ADDR可以读出产生硬件中断的通道,临时变量的具体含义请参阅在线帮助。Step7不能时时监控程序的运行,可用Variable Table 监控实时数据变化。具体程序参见OB_Example/OB40_Example。 在OB40_Example程序的Blocks中插入OB40组织块,画面如下:
然后打开OB40组织块编写程序,OB40 的STL程序(可转成梯形图)为: NetWork1:
L MW 0 L 1 +I
A&D Service & Support
Page 24-58
T MW 0 NOP 0 NetWork2: A(
L #OB40_MDL_ADDR T MW 10 SET SAVE CLR A BR ) JNB _001
L #OB40_POINT_ADDR T MD 12 _001: NOP 0
将OB40 和硬件组态下载到CPU中。
在OB40_Example程序的Blocks中插入Variable Table,然后打开,填入地址MW0,MW10,MD12并点击Monitor Variable按钮,画面如下:
A&D Service & Support
Page 25-58
此时可以监控MW0的变化,每当I0.1有上升沿脉冲产生MW0加1,MW10为硬件中断模板的逻辑地址,本例中为0,MD12为中断产生的通道号,注意此值以16进制表示。
3.6 诊断中断组织块(OB82)
结合模板的断线检测应用和SFC51来说明诊断中断组织块OB82的使用方法。
3.6.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB82_Example,然后插入CPU 315-2DP和一块具有中断功能的模拟量输入模板6ES7 331-7KF02-0AB0, 配置SM331-7KF02-0AB0 模块的inputs选项,选择0-1通道组为2线制电流(2DMU),其他通道组为电压,并注意模板的量程卡与设置的相同。选中Enable框中的Diagnostic Interrupt选项,选中Diagnostics 选
A&D Service & Support
Page 26-58
项中的0 – 1通道组中的Group Diagnostics 和 with Check for Wire Break选项,配置完成的画面如下:
点击OK,然后双击CPU315-2DP,选择Interrupts选项,可以看到CPU支持OB82,画面如下:
硬件组态完成后,保存编译。
A&D Service & Support
Page 27-58
3.6.2 OB82程序执行
OB82程序当在硬件组态中设定的诊断中断发生后执行,当OB82执行时可以通过它的临时变量OB82_MDL_ADDR读出产生诊断中断的模板的逻辑地址,OB82其它临时变量的具体含义请参阅OB82的在线帮助。Step7不能时时监控程序的运行。 接下来完成诊断程序:
(1) 在OB_Example/OB82_Example/CPU315-2DP/S7 Program(7)/Sources
下面插入STL Source文件STL Source(1);
(2) 打开空的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和SFC51;
(4) 打开OB82的程序并做简单修改,将19 和20 行拷贝到go:后面并保
存,具体变化如下:
A&D Service & Support
Page 28-58
(5) 将整个S7-300站的程序和硬件组态下载到CPU中。下载完成后,
将CPU的模式选择开关切换到RUN位置,此时CPU“RUN”灯亮、“SF”灯亮,SM331的“SF”灯亮。同时,查看CPU的诊断缓冲区Hardware > Online,双击CPU、选择 “Diagnostic Buffer”,可获得相应的故障信息;
(6) 打开DB13 数据块,在线监控,具体画面如下:
A&D Service & Support
Page 29-58
因为通道断线是一到来事件,所以诊断信息存储到COME数组中,具体每一字节的含义参见S7-300的硬件手册中B Diagnostics Data of Signal Modules部分的详细说明,S7-300的硬件手册可以从西门子网站下载,下载网址为:http://support.automation.siemens.com/CN/view/en/8859629(7)本例中COME数组字节的含释如下:
COME[1] = 16#0D 表示通道错误,外部故障 和模板问题; COME[2] = 16#15 表示此段信息为模拟量模板的通道信息; COME[3] = 16#00 表示CPU处于运行状态,无字节2中标示的故障信息;
COME[4] = 16#00 表示无字节3中标示的故障信息; COME[5] = 16#71 表示模拟量输入;
COME[6] = 16#08 表示模板的每个通道有8个诊断位; COME[7] = 16#08 表示模板的通道数;
A&D Service & Support
Page 30-58
COME[8] = 16#03 表示0通道错误和1通道错误,其它通道正常;
COME[9] = 16#10 表示0通道断线; COME[10] = 16#10 表示1通道断线;
COME[11] = 16#00 表示2通道正常,其它通道与2通道相同;
(8)如何读取其他信息的诊断可详细参考OB82、SFC51和S7-300的硬
件手册中B / Diagnostics Data of Signal Modules部分的说明。
3.7 机架故障组织块(OB86)
3.7.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB86_Example,然后插入CPU 315-2DP,选择DP作为主站,在DP主站下面添加一ET200M从站,并在从站中插入一模拟量模块SM331(6ES7 331-7KF02-0AB0),同时注意CPU的DP主站地址和ET200M从站地址不能相同,并且ET200M的站地址必须和ET200M上的实际地址一致,组态完成后的画面如下:
A&D Service & Support
Page 31-58
然后双击CPU315-2DP,选择Interrupts选项,可以看到CPU支持OB86,画面如下:
硬件组态完成后,保存编译。
A&D Service & Support
Page 32-58
3.7.2 OB86程序执行
OB86程序当在通讯发生问题后或者访问不到配置的机架或站时执行,此时程序还可能需要调用OB82和OB122等组织块,当OB86执行时可以通过它的临时变量读出产生故障的错误代码和事件类型,通过它们的组合可以得出具体的错误信息,这些信息可以通过OB86的在线帮助查到,同时也可以读到产生错误的模块地址和机架的信息,临时变量的具体含义请参阅在线帮助。Step7不能时时监控程序的运行,可用Variable Table 监控实时数据变化。具体程序参见OB_Example/OB86_Example。
在OB86_Example程序的Blocks中插入OB86组织块,画面如下:
A&D Service & Support
Page 33-58
然后打开OB86组织块编写程序,OB86 的STL程序(可转成梯形图)为: NetWork1:
A( A( A(
L #OB86_EV_CLASS T MB 0 SET SAVE CLR A BR ) JNB _001
L #OB86_FLT_ID
A&D Service & Support
Page 34-58
T MB 1 SET SAVE CLR _001: A BR ) JNB _002
L #OB86_MDL_ADDR T MW 2 SET SAVE CLR _002: A BR ) JNB _003 L #OB86_Z23 T MD 4 _003: NOP 0
注意:将OB86的临时变量OB86_RACKS_FLTD Array [0 ..31] 改为 OB86_Z23 DWORD。
A&D Service & Support
Page 35-58
将OB86 和硬件组态下载到CPU中。
在OB86_Example程序的Blocks中插入Variable Table,然后打开,填入地址MB0,MB1,MW2,MD4并点击Monitor Variable按钮,画面如下:
此时可以读到MB0,MB1为16#39和16#C4,可以通过它们的组合得出主站逻辑地址为2047的站有通讯错误,出现错误的从站地址为3。更多的信息读取请参阅OB86的在线帮助。
3.8 启动的类型(OB100)
3.8.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB100_Example,然后插入CPU 315-2DP,参见OB10硬件组态。
A&D Service & Support
Page 36-58
3.8.2 OB100程序执行
OB100程序在CPU执行Warm Restart时执行,且只执行一次,可用于变量的初始化,使用Step7不能时时监控程序的运行,可用Variable Table 监控数据变化。具体程序参见OB_Example/OB100_Example。
在
OB100_Example程序的Blocks中插入OB100组织块,画面如下:
A&D Service & Support
Page 37-58
然后打开OB100组织块编写程序,OB100 的STL程序(可转成梯形图)为:
NetWork1:
L 123 T MW 0 NOP 0
在OB100_Example程序的Blocks中插入Variable Table,然后打开,填入地址MW0并点击Monitor Variable按钮,画面如下:
此时可以监控MW0为123,如果修改MW0的值为0,则MW0不会再被赋值为123,只有当CPU再次执行Warm Restart(重新上电或者从Stop切换到Run状态)后才会被赋值。
3.9 编程故障组织块(OB121)
3.9.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB121_Example,然后插入CPU 315-2DP,参见OB10硬件组态。
A&D Service & Support
Page 38-58
3.9.2 OB121程序执行
OB121程序在CPU程序执行错误时执行,此错误不包括用户程序的逻辑错误和功能错误等,例如当CPU调用一未下载到CPU中的程序块,CPU会调用OB121,通过临时变量OB121_BLK_TYPE可以得出出现错误的程序块。使用Step7不能时时监控程序的运行,可用Variable Table 监控数据变化。具体程序参见OB_Example/OB121_Example。
(1)在OB121_Example程序的Blocks中插入OB121组织块,然后打开OB121组织块编写程序,OB121 的STL程序(可转成梯形图)为: NetWork1:
L #OB121_BLK_TYPE T MW 0 NOP 0
(2)在OB121_Example程序的Blocks中插入FC1,然后打开FC1编写程序,FC1 的STL程序(可转成梯形图)为: NetWork1:
A #in1 = #out1
(3)打开OB1编写程序,OB1 的STL程序(可转成梯形图)为: NetWork1:
A M 20.1
A&D Service & Support
Page 39-58
= L 20.0 BLD 103 A M 10.0 JNB _001 CALL FC 1 in1 :=L20.0 out1:=M20.2 _001: NOP 0
先将硬件组态和OB1下载到CPU中,此时CPU能正常运行。
在OB121_Example程序的Blocks中插入Variable Table,然后打开,填入地址MW0和M10.0并点击Monitor Variable按钮,程序运行正常,将M10.0置为true,CPU报错并停机,查看CPU的诊断缓冲区信息,发现为编程错误,将OB121下载到CPU中,再将M10.0置为true,CPU会报错误但不停机,MW0立刻为16#88,查看OB121的在线帮助,16#88表示为OB程序错误,检查发现FC1未下载,具体画面如下:
A&D Service & Support
Page 40-58
下载FC1后再将M10.0置为true,CPU不会再报错,程序也不会再调用OB121。
3.10 I/O 访问故障组织块(OB122)
3.10.1 硬件组态
在OB_Example项目中插入一S7300站,命名为OB122_Example,然后插入CPU 315-2DP和一块模拟量输入模板6ES7 331-7KF02-0AB0,配置SM331-7KF02-0AB0 模块的inputs选项,选择所有通道组为电压类型,注意模板的量程卡与设置的相同。模拟量的逻辑输入地址为256...271,配置完成的画面如下:
硬件组态完成后,保存编译。
A&D Service & Support
Page 41-58
3.10.2 OB122程序执行
OB122程序在出现I/O访问错误时被调用,例如当CPU程序访问一未定义的I/O地址,CPU会出现I/O访问错误,CPU会调用OB122,如果OB122未下载,CPU会报故障停机。通过临时变量OB122_SW_FLT可以读出错误代码,通过OB122_BLK_TYPE得出出现错误的程序块,通过OB122_MEM_AREA可以读出被访问的地址类型,通过OB122_MEM_ADDR可以读出发生错误的存储器地址。使用Step7不能时时监控程序的运行,可用Variable Table 监控数据变化。具体程序参见OB_Example/OB122_Example。
(1)在OB122_Example程序的Blocks中插入OB122组织块,然后打开OB122组织块编写程序,OB122 的STL程序(可转成梯形图)为: NetWork1:
A( A( A(
L #OB122_SW_FLT T MW 0 SET SAVE CLR A BR
A&D Service & Support
Page 42-58
) JNB _001
L #OB122_BLK_TYPE T MW 2 SET SAVE CLR _001: A BR ) JNB _002
L #OB122_MEM_AREA T MW 4 SET SAVE CLR _002: A BR ) JNB _003
L #OB122_MEM_ADDR T MW 6
A&D Service & Support
Page 43-58
_003: NOP 0
(2)打开OB1编写程序,OB1 的STL程序(可转成梯形图)为: NetWork1:
A M 10.0 JNB _001 L PIW 300 T MW 20 _001: NOP 0
先将硬件组态和OB1下载到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,查看OB121的在线帮助可得到相应的故障信息,具体监控画面如下:
A&D Service & Support
Page 44-58
检查并修改OB1程序为
NetWork1:
A M 10.0 JNB _001 L PIW 256 T MW 20 _001: NOP 0
重新下载OB1,运行程序CPU不会再报错,程序能正常运行。
A&D Service & Support
Page 45-58
3.11 启动的类型(OB101)
3.11.1 硬件组态
在OB_Example项目中插入一S7400站,命名为OB101_Example,然后插入CPU 412-1(6ES7 412-1XF03-0AB0 Ver1.2),组态完成画面如下:
双击CPU 412-1,设置启动方式,选择Hot Restart,具体画面如下:
A&D Service & Support
Page 46-58
组态完成后保存编译。
3.11.2 OB101程序执行
OB101程序在CPU执行Hot Restart时执行,且只执行一次,可用于变量的初始化,使用Step7不能时时监控程序的运行,可用Variable Table 监控数据变化。具体程序参见OB_Example/OB101_Example。
在OB101_Example程序的Blocks中插入OB101组织块,然后打开OB101组织块编写程序,OB101 的STL程序(可转成梯形图)为:
NetWork1:
L 123
A&D Service & Support
Page 47-58
T MW 0 NOP 0
将程序和硬件组态下载到CPU中,然后执行Hot Restart。
在OB101_Example程序的Blocks中插入Variable Table,然后打开,填入地址MW0并点击Monitor Variable按钮,画面如下:
此时可以监控MW0为123,如果修改MW0的值为0,则MW0不会再被赋值为123,只有当CPU再次执行Hot Restart后才会被赋值。
3.12 启动的类型(OB102)
3.12.1 硬件组态
在OB_Example项目中插入一S7400站,命名为OB102_Example,然后插入CPU 412-1(6ES7 412-1XF03-0AB0 Ver1.2),组态参见OB101部分,设置启动方式,选择Cold Restart,具体画面如下:
A&D Service & Support
Page 48-58
组态完成后保存编译。
3.12.2 OB102程序执行
OB102程序在CPU执行Cold Restart时执行,且只执行一次,可用于变量的初始化,使用Step7不能时时监控程序的运行,可用Variable Table 监控数据变化。具体程序参见OB_Example/OB102_Example。
在OB102_Example程序的Blocks中插入OB102组织块,然后打开OB102组织块编写程序,OB102 的STL程序(可转成梯形图)为:
NetWork1:
L 123 T MW 0
A&D Service & Support
Page 49-58
NOP 0
将程序和硬件组态下载到CPU中,然后执行Cold Restart。
在OB102_Example程序的Blocks中插入Variable Table,然后打开,填入地址MW0并点击Monitor Variable按钮,画面如下:
此时可以监控MW0为123,如果修改MW0的值为0,则MW0不会再被赋值为123,只有当CPU再次执行Hot Restart后才会被赋值。
4. 有关组织块的常问问题
4.1 CPU的SF红灯亮,CPU停机是什么原因造成的?
当CPU的SF红灯亮,CPU停机后不知道是什么原因,此时怎么办呢?您需要去查看CPU的诊断缓冲区,根据缓冲区中提供的停机信息采取相应的措施,例如需要OB82 ,OB86的组织块下载等。 那么如何查看CPU的诊断缓冲区呢?
A&D Service & Support
Page 50-58
方法一、首先建立Step7与CPU的通讯,然后打开硬件组态,点击Offline<->Online按钮
,然后双击CPU,选择Diagnostic Buffer选
项,可以查看CPU的故障信息,具体画面如下:
方法二、首先建立Step7与CPU的通讯,然后打开硬件组态,点击CPU,然后选择PLC->Module Information...选项,具体画面如下:
A&D Service & Support
Page 51-58
再选择Diagnostic Buffer选项,可以查看CPU的故障信息,具体画面同上。
4.2 为什么监控OB100程序时,感觉程序没有运行?
因为OB100位暖启动组织块,只有当CPU执行暖启动操作时才执行OB100的程序,且只执行一个周期,所以当监控OB100程序时感觉程序没有运行。
4.3 OB35的循环时间最长为60秒,但想实现5分钟的循环周期怎么办?
将OB35的执行周期设为60000ms,在OB35组织块中做一加法计数,当计数值等于5后执行相应的程序,然后将计数值清零,简单程序举例如下:
A&D Service & Support
Page 52-58
OB35组织块STL程序为: NetWork1:
L MW 0 L 1 +I
T MW 0 NOP 0 NetWork2:
L MW 0 L 5 ==I
= L 20.0 A L 20.0 JNB _001 L 1234 T MW 100 _001: NOP 0
A L 20.0 JNB _002 L 0
A&D Service & Support
Page 53-58
T MW 0 _002: NOP 0
4.4 在冗余电源配置中,电源模块掉电,调用那个OB可以防止CPU停机?
通过在程序中添加OB83可以防止CPU停机而添加OB81不能防止CPU停机。通常我们很冗易以为OB81就是处理所有电源故障的OB块,但对于冗余电源配置中,某个电源模块掉电故障,实际上CPU当作模块插拔故障来处理,因此需调用OB83。
如图1所示当程序中没有插入OB83时电源模块掉电,CPU会停机。查看 Diagnostic Buffer 中显示的信息是模块插拔故障导致停机。
A&D Service & Support
Page 54-58
图1
如图2所示当程序中没有插入OB83时电源模块掉电后恢复,CPU停机不恢复。查看 Diagnostic Buffer 中显示的信息是模块插入恢复。
A&D Service & Support
Page 55-58
图2
如图3所示当程序中插入OB83时电源模块掉电,CPU不会停机。查看 Diagnostic Buffer 中显示的信息是模块拔除故障调用OB83。
A&D Service & Support
Page 56-58
图3
如图4所示当程序中插入OB83时电源模块掉电后恢复,CPU不停机外部故障灯恢复。查看 Diagnostic Buffer 中显示的信息是模块插入恢复。
图4
A&D Service & Support
Page 57-58
附录-推荐网址
AS
西门子(中国)有限公司
自动化与驱动集团 客户服务与支持中心
网站首页:http://www.ad.siemens.com.cn/Service/
专家推荐精品文档:http://www.ad.siemens.com.cn/Service/recommend.asp
AS常问问题:http://support.automation.siemens.com/CN/view/zh/10805055/133000 AS更新信息:http://support.automation.siemens.com/CN/view/zh/10805055/133400 “找答案”AS版区:http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1027
A&D Service & Support
Page 58-58
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务