收藏 分享(赏)

西门子OB块使用说明.pdf

上传人:精品资料 文档编号:8816849 上传时间:2019-07-13 格式:PDF 页数:37 大小:1.70MB
下载 相关 举报
西门子OB块使用说明.pdf_第1页
第1页 / 共37页
西门子OB块使用说明.pdf_第2页
第2页 / 共37页
西门子OB块使用说明.pdf_第3页
第3页 / 共37页
西门子OB块使用说明.pdf_第4页
第4页 / 共37页
西门子OB块使用说明.pdf_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、如何使用 OB组织块 1 西门子技术支持网站简介 当您在使用西门子产品时可能遇到这样或是那样的问题,没关系,您可以登陆西门 子技术支持与服务网站来查找您需要的信息。 网站链接为:http:/ 登陆网站后,您可以点击相关链接,查找您想要的信息,其中在“网上课堂”可以 下载西门子技术支持工程师编写的常问问题和使用入门文档,点击网页左侧的“技 术资源”,进入后将显示语言切换到英文(点击网页的右上角“English”),然后 在“Search”输入框中输入您要查找的相关内容,如下载升级软件包,或是查找错 误代码的解释,或是查找相关产品的信息等等,您可能会找到很多条链接,您可以 从中选择您所需要的内容,

2、您还可以通过点击“Product Support”进入西门子的 产品信息库,通过点击左侧的相关文件链接可以查找到西门子相关产品的详细信 息。如果您经常使用网站信息,您会觉得它已成为您解决问题的得力助手。 西门子技术支持与服务网站首页切图如下: 如果网站未能解决您的问题或者不是很清楚,您可以拨打我们的技术支持与服务热 线:800 810 4288 ,手机用户可拨打010 6471 9990 ,或发E-Mail到 ,将会有工程师为您解答。 2 组织块的详细说明 请参阅文档 OB_Specification.pdf,如果想查阅英文文档,可从下面的链接下载 该文档: OB_Specification

3、_English.pdf 您也可以通过按 F1 键查阅相应组织块的在线帮助,操作方法为:在程序中插入相 应的 OB 块,然后选中该组织块并按 F1 键。 3 常用OB 组织块的使用说明 现以CPU315(6ES7 315-2AG10-0AB0),STEP7 V5.3 为例介绍常用 OB 组织块的使用 方法,这些组织块包括: 程序循环组织块(OB1); 日期时间中断组织块(以OB10 为例); 延时中断组织块(以OB20 为例); 循环中断组织块(以OB35 为例); 硬件中断组织块(以OB40为例); 诊断中断组织块(以OB82 为例); 机架故障组织块(以OB86 为例); 启动的类型(CP

4、U300 以OB100 为例,CPU400 以 OB101,OB102为例); 编程故障组织块(以OB121 为例); I/O 访问故障组织块(以OB122为例); 还有其它的组织块,如:I/O 冗余故障OB(OB70),CPU 冗余故障OB(OB72),通 讯冗余故障OB(OB73)请咨询CPU400H系统工程师,这里不做说明。 31 程序循环组织块(OB1) 311 硬件组态 在 OB_Example 项目中插入一 S7300站,命名为 OB1_Example,然后插入 CPU 315-2DP 硬件组态完成后,保存编译。 312 OB1 程序执行 OB1 的程序循环执行,用Step7 可

5、以时时监控程序的运行,具体程序参见 OB_Example/OB1_Example。OB1 的 STL 程序(可转成梯形图)为: NetWork1: L MB 100 T MB 0 NOP 0 将OB1 程序和硬件组态下载到CPU 中。 其中MB100 为时钟存储器,设置方法为进入硬件组态(HW Config),双击 CPU315-2DP,选择Cycle/Clock Memory,具体设置画面如下: Step7 时时监控画面如下: 32 日期时间中断组织块(OB10) 321 硬件组态 在 OB_Example 项目中插入一 S7300站,命名为 OB10_Example,然后插入 CPU

6、315-2DP 双击 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),设置完成后 画面如下:

7、 硬件组态完成后,保存编译。 322 OB10 程序执行 OB10 程序按照设定的时间执行,使用Step7 不能时时监控程序的运行,可 用Variable Table 监控实时数据变化。具体程序参见 OB_Example/OB10_Example。 在OB10_Example 程序的Blocks 中插入OB10 组织块,画面如下: 然后打开OB10 组织块编写程序,OB10 的STL 程序(可转成梯形图)为: NetWork1: L MW 0 L 1 +I T MW 0 NOP 0 将OB10 程序和硬件组态下载到CPU 中。 在 OB10_Example 程序的 Blocks 中插入Var

8、iable Table,然后打开,填入 地址MW0 并点击Monitor Variable按钮,画面如下: 此时可以监控 MW0 每分钟加 1。 33 延时中断组织块(OB20) 331 硬件组态 在 OB_Example 项目中插入一 S7300站,命名为 OB20_Example,然后插入 CPU 315-2DP 双击CPU 315-2DP,选择Interrupts 选项,可以看到CPU 支持OB20,画面 如下: 硬件组态完成后,保存编译。 332 OB20 程序执行 每一次OB20的程序执行,必须调用 SFC32 (SRT_DINT),延迟时间在SFC 的 输入参数中给定,同时给定O

9、B 号,调用SFC32且设定的时间延迟到后,执 行OB 程序,如果再次执行OB 程序,需要再次调用SFC32。如果在延迟时间 未到之前想取消程序的执行,可以调用SFC33(CAN_DINT),同时可以使用 SFC34 (QRY_DINT)取得延迟中断的状态,具体SFC32/33/34的调用方法可 参考在线帮助,Step7不能时时监控程序的运行,可用Variable Table 监 控实时数据变化。具体程序参见OB_Example/OB20_Example。 在OB20_Example 程序的Blocks 中插入OB20 组织块,画面如下: 然后打开OB20 组织块编写程序,OB20 的STL

10、 程序(可转成梯形图)为: NetWork1: L MW 0 L 1 +I T MW 0 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 NetWork3

11、: 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 置为t

12、rue,那么此次时间延迟中断被取 消,MW0 不会加 1,每次执行的状态都可以从 MW18 种读出,具体状态的含 义请参阅 SFC34(QRY_DINT)的在线帮助。 34 循环中断组织块(OB35) 341 硬件组态 在 OB_Example 项目中插入一 S7300站,命名为 OB35_Example,然后插入 CPU 315-2DP,参见OB10硬件组态,双击CPU 315-2DP,选择Cyclic Interrupts选项,修改 OB35 的执行周期(Execution(ms),范围是1- 60000ms),本例设为1000ms,具体画面如下: 硬件组态完成后,保存编译。 342 O

13、B35 程序执行 OB35 程序按照设定的执行周期循环执行,使用 Step7 不能时时监控程序的 运行,可用 Variable Table 监控实时数据变化。具体程序参见 OB_Example/OB35_Example。 在OB35_Example 程序的Blocks 中插入OB35 组织块,画面如下: 然后打开OB35 组织块编写程序,OB35 的STL 程序(可转成梯形图)为: NetWork1: L MW 0 L 1 +I T MW 0 NOP 0 将OB351 和硬件组态下载到CPU 中。 在 OB35_Example 程序的 Blocks 中插入Variable Table,然后打

14、开,填入 地址MW0 并点击Monitor Variable按钮,画面如下: 此时可以监控 MW0 每秒钟加 1。 可以在OB35中周期的调用PID 模块(FB41/42/43),完成PID 调节,也可 以OB35 中调用周期的数据发送指令,完成数据发送功能,等等。总之 OB35 是按设定的循环周期执行。 35 硬件中断组织块(OB40) 351 硬件组态 在 OB_Example 项目中插入一 S7300站,命名为 OB40_Example,然后插入 CPU 315-2DP 和一块具有中断功能的数字量输入模板6ES7 321-7BH01-0AB0 双击6ES7 321-7BH01-0AB0

15、 模板,选择Inputs 选项,同时选中Hardware interrupt 和Trigger for Hardware Interrupt 选项,画面如下: 点击 OK,然后双击 CPU315-2DP,选择 Interrupts 选项,可以看到 CPU 支 持OB40,画面如下: 硬件组态完成后,保存编译。 352 OB40 程序执行 OB40 程序当在硬件组态中设定的硬件中断发生后执行,当 OB40 执行时可以 通过它的临时变量OB40_MDL_ADDR读出产生硬件中断的模板的逻辑地址, 通过OB40_POINT_ADDR可以读出产生硬件中断的通道,临时变量的具体含 义请参阅在线帮助。S

16、tep7 不能时时监控程序的运行,可用 Variable Table 监控实时数据变化。具体程序参见OB_Example/OB40_Example。 在OB40_Example 程序的Blocks 中插入OB40 组织块,画面如下: 然后打开OB40 组织块编写程序,OB40 的STL 程序(可转成梯形图)为: NetWork1: L MW 0 L 1 +I 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

17、 将OB40 和硬件组态下载到CPU 中。 在 OB40_Example 程序的 Blocks 中插入Variable Table,然后打开,填入 地址MW0,MW10,MD12 并点击Monitor Variable按钮,画面如下: 此时可以监控MW0 的变化,每当I0.1 有上升沿脉冲产生MW0 加1,MW10为 硬件中断模板的逻辑地址,本例中为0,MD12为中断产生的通道号,注意 此值以 16 进制表示。 36 诊断中断组织块(OB82) 结合模板的断线检测应用和SFC51来说明诊断中断组织块 OB82 的使用方 法。 361 硬件组态 在 OB_Example 项目中插入一 S730

18、0站,命名为 OB82_Example,然后插入 CPU 315-2DP 和一块具有中断功能的模拟量输入模板6ES7 331-7KF02- 0AB0, 配置 SM331-7KF02-0AB0 模块的 inputs选项,选择 0-1通道组为 2线制电流(2DMU),其他通道组为电压,并注意模板的量程卡与设置的 相同。选中 Enable框中的 Diagnostic Interrupt选项,选中 Diagnostics 选 项中的 0 1通道组中的 Group Diagnostics 和 with Check for Wire Break 选项,配置完成的画面如下: 点击 OK,然后双击 CPU3

19、15-2DP,选择 Interrupts 选项,可以看到 CPU 支 持OB82,画面如下: 硬件组态完成后,保存编译。 362 OB82 程序执行 OB82 程序当在硬件组态中设定的诊断中断发生后执行,当 OB82 执行时可以 通过它的临时变量OB82_MDL_ADDR读出产生诊断中断的模板的逻辑地址, OB82 其它临时变量的具体含义请参阅OB82 的在线帮助。Step7 不能时时监 控程序的运行。 接下来完成诊断程序: (1) 在OB_Example/OB82_Example/CPU315-2DP/S7 Program(7)/Sources 下面插入 STL Source 文件STL S

20、ource(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 中生成 O

21、B1,OB82,DB13和 SFC51; (4) 打开 OB82的程序并做简单修改,将 19 和 20 行拷贝到 go:后面并保 存,具体变化如下: (5) 将整个 S7-300站的程序和硬件组态下载到 CPU中。下载完成后, 将 CPU的模式选择开关切换到 RUN位置,此时 CPU“RUN”灯 亮、“SF”灯亮,SM331的“SF”灯亮。同时,查看 CPU的诊断 缓冲区 Hardware Online,双击 CPU、选择 “Diagnostic Buffer”,可获得相应的故障信息; (6) 打开 DB13 数据块,在线监控,具体画面如下: 因为通道断线是一到来事件,所以诊断信息存储到 C

22、OME数组中,具体每 一字节的含义参见 S7-300的硬件手册中 B Diagnostics Data of Signal Modules 部分的详细说明,S7-300的硬件手册可以从西门子网站下载,下 载网址为:http:/ (7)本例中 COME数组字节的含义解释如下: COME1 = 16#0D 表示通道错误,外部故障 和模板问题; COME2 = 16#15 表示此段信息为模拟量模板的通道信息; COME3 = 16#00 表示 CPU处于运行状态,无字节 2中标示的故 障信息; COME4 = 16#00 表示无字节 3中标示的故障信息; COME5 = 16#71 表示模拟量输入;

23、 COME6 = 16#08 表示模板的每个通道有 8个诊断位; COME7 = 16#08 表示模板的通道数; COME8 = 16#03 表示 0通道错误和 1通道错误,其它通道正 常; COME9 = 16#10 表示 0通道断线; COME10 = 16#10 表示 1通道断线; COME11 = 16#00 表示 2通道正常,其它通道与 2通道相同; (8)如何读取其他信息的诊断可详细参考 OB82、SFC51和 S7-300的硬 件手册中 B / Diagnostics Data of Signal Modules部分的说明。 37 机架故障组织块(OB86) 371 硬件组态

24、在 OB_Example 项目中插入一 S7300站,命名为 OB86_Example,然后插入 CPU 315-2DP,选择 DP 作为主站,在 DP 主站下面添加一 ET200M 从站,并 在从站中插入一模拟量模块SM331(6ES7 331-7KF02-0AB0),同时注意 CPU 的 DP 主站地址和ET200M 从站地址不能相同,并且 ET200M 的站地址必须和 ET200M 上的实际地址一致,组态完成后的画面如下: 然后双击 CPU315-2DP,选择 Interrupts 选项,可以看到 CPU 支持 OB86, 画面如下: 硬件组态完成后,保存编译。 372 OB86 程序执

25、行 OB86 程序当在通讯发生问题后或者访问不到配置的机架或站时执行,此时 程序还可能需要调用OB82 和OB122等组织块,当OB86 执行时可以通过它 的临时变量读出产生故障的错误代码和事件类型,通过它们的组合可以得 出具体的错误信息,这些信息可以通过OB86 的在线帮助查到,同时也可以 读到产生错误的模块地址和机架的信息,临时变量的具体含义请参阅在线 帮助。Step7 不能时时监控程序的运行,可用 Variable Table 监控实时数 据变化。具体程序参见 OB_Example/OB86_Example。 在OB86_Example 程序的Blocks 中插入OB86 组织块,画面

26、如下: 然后打开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 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

27、0 31 改为 OB86_Z23 DWORD。 将OB86 和硬件组态下载到CPU 中。 在 OB86_Example 程序的 Blocks 中插入Variable Table,然后打开,填入 地址 MB0,MB1,MW2,MD4并点击 Monitor Variable 按钮,画面如下: 此时可以读到MB0,MB1为16#39 和16#C4,可以通过它们的组合得出主站 逻辑地址为 2047 的站有通讯错误,出现错误的从站地址为 3。更多的信息 读取请参阅 OB86 的在线帮助。 38 启动的类型(OB100) 381 硬件组态 在OB_Example 项目中插入一S7300站,命名为 OB1

28、00_Example,然后插入 CPU 315-2DP,参见OB10硬件组态。 382 OB100 程序执行 OB100 程序在CPU 执行Warm Restart 时执行,且只执行一次,可用于变量 的初始化,使用Step7不能时时监控程序的运行,可用Variable Table 监 控数据变化。具体程序参见OB_Example/OB100_Example。 在OB100_Example 程序的Blocks 中插入OB100组织块,画面如下: 然后打开OB100 组织块编写程序,OB100 的STL程序(可转成梯形图) 为: NetWork1: L 123 T MW 0 NOP 0 在OB1

29、00_Example 程序的Blocks 中插入Variable Table,然后打开,填入 地址MW0 并点击Monitor Variable按钮,画面如下: 此时可以监控 MW0 为 123,如果修改 MW0 的值为 0,则 MW0 不会再被赋值为 123,只有当CPU 再次执行Warm Restart(重新上电或者从 Stop 切换到Run 状态)后才会被赋值。 39 编程故障组织块(OB121) 391 硬件组态 在OB_Example 项目中插入一S7300站,命名为 OB121_Example,然后插入 CPU 315-2DP,参见OB10硬件组态。 392 OB121 程序执行

30、 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 #OB

31、121_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 = 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_Exa

32、mple 程序的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 未下载,具体画面如下: 下载FC1 后再将M10.0置为true,CPU 不会再报错,程序也不会再调用 OB121。 310 I/O 访

33、问故障组织块(OB122) 3101 硬件组态 在OB_Example 项目中插入一S7300站,命名为 OB122_Example,然后插入 CPU 315-2DP 和一块模拟量输入模板6ES7 331-7KF02-0AB0,配置 SM331- 7KF02-0AB0 模块的 inputs选项,选择所有通道组为电压类型,注意模板 的量程卡与设置的相同。模拟量的逻辑输入地址为 256.271,配置完成的 画面如下: 硬件组态完成后,保存编译。 3102 OB122 程序执行 OB122 程序在出现I/O 访问错误时被调用,例如当CPU 程序访问一未定义的 I/O 地址,CPU 会出现I/O 访问

34、错误,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 组织块编写程序

35、,OB122 的STL 程序(可转成梯形图)为: NetWork1: A( A( A( L #OB122_SW_FLT T MW 0 SET SAVE CLR A BR ) 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 _003: NOP 0 (2)打开OB1 编写程序,OB1 的STL 程序(可转成梯形图)为: NetWork1:

36、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,

37、MW2 为16#0000,MW4为 16#00200,MW62 为16#012C,查看OB121 的在线帮助可得到相应的故障信 息,具体监控画面如下: 检查并修改 OB1 程序为 NetWork1: A M 10.0 JNB _001 L PIW 256 T MW 20 _001: NOP 0 重新下载OB1,运行程序CPU 不会再报错,程序能正常运行。 311 启动的类型(OB101) 3111 硬件组态 在OB_Example 项目中插入一S7400站,命名为 OB101_Example,然后插入 CPU 412-1(6ES7 412-1XF03-0AB0 Ver1.2),组态完成画面如

38、下: 双击CPU 412-1,设置启动方式,选择Hot Restart,具体画面如下: 组态完成后保存编译。 3112 OB101 程序执行 OB101 程序在CPU 执行Hot Restart 时执行,且只执行一次,可用于变量的 初始化,使用Step7 不能时时监控程序的运行,可用 Variable Table 监控 数据变化。具体程序参见OB_Example/OB101_Example。 在OB101_Example 程序的Blocks 中插入OB101组织块,然后打开OB101 组 织块编写程序,OB101 的STL 程序(可转成梯形图)为: NetWork1: L 123 T MW

39、0 NOP 0 将程序和硬件组态下载到CPU 中,然后执行Hot Restart。 在OB101_Example 程序的Blocks 中插入Variable Table,然后打开,填入 地址MW0 并点击Monitor Variable按钮,画面如下: 此时可以监控 MW0 为 123,如果修改 MW0 的值为 0,则 MW0 不会再被赋值为 123,只有当CPU 再次执行Hot Restart 后才会被赋值。 312 启动的类型(OB102) 3121 硬件组态 在OB_Example 项目中插入一S7400站,命名为 OB102_Example,然后插入 CPU 412-1(6ES7 4

40、12-1XF03-0AB0 Ver1.2),组态参见OB101部分,设置启 动方式,选择Cold Restart,具体画面如下: 组态完成后保存编译。 3122 OB102 程序执行 OB102 程序在CPU 执行Cold Restart 时执行,且只执行一次,可用于变量 的初始化,使用Step7不能时时监控程序的运行,可用Variable Table 监 控数据变化。具体程序参见OB_Example/OB102_Example。 在OB102_Example 程序的Blocks 中插入OB102组织块,然后打开OB102 组 织块编写程序,OB102 的STL 程序(可转成梯形图)为: N

41、etWork1: L 123 T MW 0 NOP 0 将程序和硬件组态下载到CPU 中,然后执行Cold Restart。 在OB102_Example 程序的Blocks 中插入Variable Table,然后打开,填入 地址MW0 并点击Monitor Variable按钮,画面如下: 此时可以监控 MW0 为 123,如果修改 MW0 的值为 0,则 MW0 不会再被赋值为 123,只有当CPU 再次执行Hot Restart 后才会被赋值。 4 有关组织块的常问问题 41 CPU的SF 红灯亮,CPU 停机是什么原因造成的? 当 CPU 的 SF红灯亮,CPU 停机后不知道是什么原

42、因,此时怎么办呢?您需 要去查看 CPU 的诊断缓冲区,根据缓冲区中提供的停机信息采取相应的措 施,例如需要OB82 ,OB86 的组织块下载等。 那么如何查看 CPU 的诊断缓冲区呢? 方法一、首先建立Step7 与CPU 的通讯,然后打开硬件组态,点击 OfflineOnline 按钮 ,然后双击 CPU,选择 Diagnostic Buffer 选 项,可以查看 CPU 的故障信息,具体画面如下: 方法二、首先建立Step7 与CPU 的通讯,然后打开硬件组态,点击CPU,然 后选择PLC-Module Information.选项,具体画面如下: 再选择Diagnostic Buff

43、er 选项,可以查看CPU 的故障信息,具体画面同 上。 42 为什么监控OB100 程序时,感觉程序没有运行? 因为OB100位暖启动组织块,只有当CPU 执行暖启动操作时才执行OB100 的程序,且只执行一个周期,所以当监控OB100 程序时感觉程序没有运 行。 43 OB35的循环时间最长为60 秒,但想实现5 分钟的循环周期怎么办? 将OB35 的执行周期设为 60000ms,在OB35 组织块中做一加法计数,当计数 值等于 5 后执行相应的程序,然后将计数值清零,简单程序举例如下: OB35 组织块 STL 程序为: NetWork1: L MW 0 L 1 +I T MW 0 N

44、OP 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 T MW 0 _002: NOP 0 44 在冗余电源配置中,电源模块掉电,调用那个OB 可以防止CPU 停机? 通过在程序中添加 OB83可以防止 CPU停机而添加 OB81不能防止 CPU 停机。通常我们很冗易以为 OB81就是处理所有电源故障的 OB块,但对 于冗余电源配置中,某个电源模块掉电故障,实际上 CPU当作模块插拔故 障来处理,因此需调用 OB83。 如图 1所示当程

45、序中没有插入 OB83时电源模块掉电,CPU会停机。查看 Diagnostic Buffer 中显示的信息是模块插拔故障导致停机。 图 1 如图 2所示当程序中没有插入 OB83时电源模块掉电后恢复,CPU停机不 恢复。查看 Diagnostic Buffer 中显示的信息是模块插入恢复。 图 2 如图 3所示当程序中插入 OB83时电源模块掉电,CPU不会停机。查看 Diagnostic Buffer 中显示的信息是模块拔除故障调用 OB83。 图 3 如图 4所示当程序中插入 OB83时电源模块掉电后恢复,CPU不停机外部 故障灯恢复。查看 Diagnostic Buffer 中显示的信息是模块插入恢复。 图 4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报