如何使用OB组织块1.西门子技术支持网站简介当您在使用西门子产品时可能遇到这样或是那样的问题,没关系,您可以登陆西门子技术支持与服务网站来查找您需要的信息。网站链接为:登陆网站后,您可以点击相关链接,查找您想要的信息,其中在“网上课堂”可以下载西门子技术支持工程师编写的常问问题和使用入门文档,点击网页左侧的“技术资源”,进入后将显示语言切换到英文(点击网页的右上角“English”),然后在“Search”输入框中输入您要查找的相关内容,如下载升级软件包,或是查找错误代码的解释,或是查找相关产品的信息等等,您可能会找到很多条链接,您可以从中选择您所需要的内容,您还可以通过点击“ProductSupport”进入西门子的产品信息库,通过点击左侧的相关文件链接可以查找到西门子相关产品的详细信息。如果您经常使用网站信息,您会觉得它已成为您解决问题的得力助手。西门子技术支持与服务网站首页切图如下:如果网站未能解决您的问题或者不是很清楚,您可以拨打我们的技术支持与服务热线:8008104288,手机用户可拨打010–64719990,或发E-Mail到adscs.china@siemens.com,将会有工程师为您解答。2.组织块的详细说明请参阅文档OB_Specification.pdf,如果想查阅英文文档,可从下面的链接下载该文档:OB_Specification_English.pdf您也可以通过按F1键查阅相应组织块的在线帮助,操作方法为:在程序中插入相应的OB块,然后选中该组织块并按F1键。3.常用OB组织块的使用说明现以CPU315(6ES7315-2AG10-0AB0),STEP7V5.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系统工程师,这里不做说明。3.1程序循环组织块(OB1)3.1.1硬件组态在OB_Example项目中插入一S7300站,命名为OB1_Example,然后插入CPU315-2DP硬件组态完成后,保存编译。3.1.2OB1程序执行OB1的程序循环执行,用Step7可以时时监控程序的运行,具体程序参见OB_Example/OB1_Example。OB1的STL程序(可转成梯形图)为:NetWork1:LMB100TMB0NOP0将OB1程序和硬件组态下载到CPU中。其中MB100为时钟存储器,设置方法为进入硬件组态(HWConfig),双击CPU315-2DP,选择Cycle/ClockMemory,具体设置画面如下:Step7时时监控画面如下:3.2日期时间中断组织块(OB10)3.2.1硬件组态在OB_Example项目中插入一S7300站,命名为OB10_Example,然后插入CPU315-2DP双击CPU315-2DP,选择Time-of-DayInterrupts选项,选中Active,同时设置Execution选项,本例选择Everyminute,Execution选项包括:None不使用Once只执行一次Everyminute每分钟执行一次Everyhour每小时执行一次Everyweek每周执行一次Everymonth每月执行一次Endofmonth月末执行一次Everyyear每年执行一次设置开始执行的日期(Startdate)和时间(Timeofday),设置完成后画面如下:硬件组态完成后,保存编译。3.2.2OB10程序执行OB10程序按照设定的时间执行,使用Step7不能时时监控程序的运行,可用VariableTable监控实时数据变化。具体程序参见OB_Example/OB10_Example。在OB10_Example程序的Blocks中插入OB10组织块,画面如下:然后打开OB10组织块编写程序,OB10的STL程序(可转成梯形图)为:NetWork1:LMW0L1+ITMW0NOP0将OB10程序和硬件组态下载到CPU中。在OB10_Example程序的Blocks中插入VariableTable,然后打开,填入地址MW0并点击MonitorVariable按钮,画面如下:此时可以监控MW0每分钟加1。3.3延时中断组织块(OB20)3.3.1硬件组态在OB_Example项目中插入一S7300站,命名为OB20_Example,然后插入CPU315-2DP双击CPU315-2DP,选择Interrupts选项,可以看到CPU支持OB20,画面如下:硬件组态完成后,保存编译。3.3.2OB20程序执行每一次OB20的程序执行,必须调用SFC32(SRT_DINT),延迟时间在SFC的输入参数中给定,同时给定OB号,调用SFC32且设定的时间延迟到后,执行OB程序,如果再次执行OB程序,需要再次调用SFC32。如果在延迟时间未到之前想取消程序的执行,可以调用SFC33(CAN_DINT),同时可以使用SFC34(QRY_DINT)取得延迟中断的状态,具体SFC32/33/34的调用方法可参考在线帮助,Step7不能时时监控程序的运行,可用VariableTable监控实时数据变化。具体程序参见OB_Example/OB20_Example。在OB20_Example程序的Blocks中插入OB20组织块,画面如下:然后打开OB20组织块编写程序,OB20的STL程序(可转成梯形图)为:NetWork1:LMW0L1+ITMW0NOP0打开OB1组织块编写程序,OB1的STL程序(可转成梯形图)为:NetWork1:AM20.0JNB_001CALLSRT_DINTOB_NR:=20DTIME:=T#10SSIGN:=MW10RET_VAL:=MW12_001:ABRRM20.0NetWork2:AM20.1JNB_002CALLCAN_DINTOB_NR:=20RET_VAL:=MW14_002:ABRRM20.1NetWork3:CALLQRY_DINTOB_NR:=20RET_VAL:=MW16STATUS:=MW18NOP0将OB1,OB20和硬件组态下载到CPU中。在OB20_Example程序的Blocks中插入VariableTable,然后打开,填入地址MW0,M20.0,M20.1,MW18并点击MonitorVariable按钮,画面如下:此时可以监控MW0的变化,将M20.0置为true,10秒钟后延迟时间到,MW0加1,再将M20.0置为true,10秒钟后延迟时间到,MW0再加1。如果当延迟时间未到,此时将M20.1置为true,那么此次时间延迟中断被取消,MW0不会加1,每次执行的状态都可以从MW18种读出,具体状态的含义请参阅SFC34(QRY_DINT)的在线帮助。3.4循环中断组织块(OB35)3.4.1硬件组态在OB_Example项目中插入一S7300站,命名为OB35_Example,然后插入CPU315-2DP,参见OB10硬件组态,双击CPU315-2DP,选择CyclicInterrupts选项,修改OB35的执行周期(Execution(ms),范围是1-60000ms),本例设为1000ms,具体画面如下:硬件组态完成后,保存编译。3.4.2OB35程序执行OB35程序按照设定的执行周期循环执行,使用Step7不能时时监控程序的运行,可用VariableTable监控实时数据变化。具体程序参见OB_Example/OB35_Example。在OB35_Example程序的Blocks中插入OB35组织块,画面如下:然后打开OB35组织块编写程序,OB35的STL程序(可转成梯形图)为:NetWork1:LMW0L1+ITMW0NOP0将OB351和硬件组态下载到CPU中。在OB35_Example程序的Blocks中插入VariableTable,然后打开,填入地址MW0并点击MonitorVariable按钮,画面如下:此时可以监控MW0每秒钟加1。可以在OB35中周期的调用PID模块(FB41/42/43),完成PID调节,也可以OB35中调用周期的数据发送指令,完成数据发送功能,等等。总之OB35是按设定的循环周期执行。3.5硬件中断组织块(OB40)3.5.1硬件组态在OB_Example项目中插入一S7300站,命名为OB40_Example,然后插入CPU315-2DP和一块具有中断功能的数字量输入模板6ES7321-7BH01-0AB0双击6ES7321-7BH01-0AB0模板,选择Inputs选项,同时选中Hardwareinterrupt和TriggerforHardwareInterrupt选项,画面如下:点击OK,然后双击CPU315-2DP,选择Interrupts选项,可以看到CPU支持OB40,画面如下:硬件组态完成后,保存编译。3.5.2OB40程序执行OB40程序当在硬件组态中设定的硬件中断发生后执行,当OB40执行时可以通过它的临时变量OB40_MDL_ADDR读出产生硬件中断的模板的逻辑地址,通过OB40_POINT_ADDR可以读出产生硬件中断的通道,临时变量的具体含义请参阅在线帮助。Step7不能时时监控程序的运行,可用VariableTable监控实时数据变化。具体程序参见OB_Example/OB40_Example。在OB40_Example程序的Blocks中插入OB40组织块,画面如下:然后打开OB40组织块编写程序,OB40的STL程序(可转成梯形图)为:NetWork1:LMW0L1+ITMW0NOP0NetWork2:A(L#OB40_MDL_ADDRTMW10SETSAVECLRABR)JNB_001L#OB40_POINT_ADDRTMD12_001:NOP0将OB40和硬件组态下载到CPU中。在OB40_Example程序的Blocks中插入VariableTable,然后打开,填入地址MW0,MW10,MD12并点击MonitorVariable按钮,画面如下:此时可以监控MW0的变化,每当I0.1有上升沿脉冲产生MW0加1,MW10为硬件中断模板的逻辑地址,本例中为0,MD12为中断产生的通道号,注意此值以16进制表示。3.6诊断中断组织块(OB82)结合模板的断线检测应用和SFC51来说明诊断中断组织块OB82的使用方法。3.6.1硬件组态在OB_Example项目中插入一S7300站,命名为OB82_Example,然后插入CPU315-2DP和一块具有中断功能的模拟量输入模板6ES7331-7KF02-0AB0,配置SM331-7KF02-0AB0模块的inputs选项,选择0-1通道组为2线制电流(2DMU),其他通道组为电压,并注意模板的量程卡与设置的相同。选中Enable框中的DiagnosticInterrupt选项,选中Diagnostics选项中的0–1通道组中的GroupDiagnostics和withCheckforWireBreak选项,配置完成的画面如下:点击OK,然后双击CPU315-2DP,选择Interrupts选项,可以看到CPU支持OB82,画面如下:硬件组态完成后,保存编译。3.6.2OB82程序执行OB82程序当在硬件组态中设定的诊断中断发生后执行,当OB82执行时可以通过它的临时变量OB82_M