电动机功率 | 3KW | 外形尺寸 | 4mm |
---|---|---|---|
应用领域 | 环保,食品,地矿,印刷包装,纺织皮革 | 重量 | 4kg |
全新的西门子S7-200SMART带来两种不同类型的CPU 模块,标准型和经济型,*满足不同行业、不同客户、不同设备的各种需求。标准型作为可扩展CPU 模块,可满足对I/O 规模有较大需求,逻辑控制较为复杂的应用;而经济型CPU 模块直接通过单机本体满足相对简单的控制需求。
参考价 | ¥343 |
订货量 | 1 |
更新时间:2019-06-05 13:47:14浏览次数:204
联系我们时请说明是化工仪器网上看到的信息,谢谢!
吉林西门子S7-200SMART模块代理商优势价格
S7系列PLC的I/O访问错误组织块(OB122)
当对模块的数据访问出现故障时,CPU的操作系统调用OB122,OB122在与被中断的块的同一优先级中执行。表4-19描述了I/O访问错误OB122的临时变量表。
表4-19 OB122的临时变量表
同样,在这里运用一个例子来说明OB122的用法。首先,新建一个项目,插入一个300的站,进行硬件组态。插入一个CPU315 - 2DP和一个模拟量输入模块SM331。同时配置SMM331的“Inputs”选项,把所有通道设置为电压类型,注意模块的量程卡要与设置的相同,并把模块的逻辑输入地址设置为256…257,如图4-21所示。
图4-21 硬件组态
组态完成后,编译保存并下载到CPU中。OB122程序在出现I/O访问错误时被调用,通过临时变量“OB122_SW_FLT”可以读出错代码,通过“OB122_BLK_TYPE”得出出错的程序块,通过“OB122_MEM_ADDR”可以读出发生错误的存储器地址。使用STEP7不能时时监控程序的运行,可以用“VariableTable”监控实时数据的变化。打开在“Blocks”下插入的OB122编写程序,如图4-22所示。该程序也可以转换为梯形图。接着打开OB1编写程序,如图4-23所示。
图4-22 OB122中编写的程序
图4-23 OB1中编写的程序
先将硬件组态和OB1下载到CPU中,这时CPU运行正常。在“Blocks”下插入“Vari-ableTable”,然后打开,填入MW0、MW2、MW4、MW6和M10.0,单击左键,程序运行正常。将M10.0置为“true”,CPU会报错并停机,查看CPU的诊断缓冲区信息,发现为I/O访问错误。将OB122下载到CPU中,再将M10.0置为“true”,CPU会报错但不停机,检查并修改OB1程序,如图4-24所示。重新下载OB1,CPU不再报错,程序运行正常。对于某些同步错误,可以调用系统功能SFC44,为输入模块提供一个替代错误值,以便程序能继续执行。如果错误发生在输入模块,可以在用户程序中直接替代。如果是输出模块错误,输出模块将自动地用组态时定义的值替代。替代值虽然不一定能反映真实的过程信号,但是可以避免终止用户程序和进入STOP模式。
当有关程序处理的故障事件发生时,CPU操作系统调用OB121;OB121与被中断的块在同一优先级中执行。表4-18是编程错误OB121的临时变量表。
表4-18 OB121的临时变量表
OB121程序在CPU执行错误时执行,此错误不包括用户程序的逻辑错误和功能错误等,例如当CPU调用一个未下载到CPU中的程序块时,CPU会调用OB121,通过临时变量“OB121_BLK_TYPE”可以得出出现错误的程序块。使用STEP7不能时时监控程序的运行,可以用“VariableTable”监控实时数据的变化。打开事先已经插入的OB121编写程序,如图4-18所示。
接着在项目“Blocks”下插入FC1,打开FC1编写程序,如图4-19所示。
图4-18 OB121中编写的程序
图4-19 FC1中编写的程序
然后打开OB1编写程序,如图4-20所示。
图4-20 OB1中编写的程序
先将硬件和OB1下载到CPU中,此时CPU能正常运行。在“Blocks”下插入“VariableTable”,然后打开,填入MW0和M10.0,并单击左键,程序运行正常。将M10.0置为“true”后,CPU就报错停机,查看CPU的诊断缓冲区信息,发现为编程错误。这时将OB121也下载到CPU中,再将M10.0置为“true”,CPU会报错但不停机,MW0立刻为“W#16 #88”,“W#16 #88”表示为OB程序错误,检查发现FC1未下载。下载FC1后,再将M10.0置为“true”,这时CPU不会再报错,程序也不会再调用OB121。
同步错误组织块包括OB121(用于对程序错误的处理)和OB122(用于处理模块访问错误)。同步错误OB的优先级与检测到出错块的优先级*,因此OB121和OB122可以访问中断发生时累加器和其他寄存器中的内容,用户程序可以用它们来处理错误。同步错误可以用SFC36“MASK_FLT”来屏蔽,使某些同步错误不触发同步错误OB的调用,但是CPU在错误寄存器中记录发生的被屏蔽的错误,并用错误过滤器中的一位来表示某种同步错误是否被屏蔽。错误过滤器分为程序错误过滤器和访问错误过滤器,分别占一个双字。
调用SFC37“DMSK_FLT”并且在当前优先级被执行完后,将解除被屏蔽的错误,并且清楚当前优先级的事件状态寄存器中相应的位。可以用SFC38“READ_ERR”读出已经发生的被屏蔽的错误。对于S7 - 300(CPU318除外),不管错误是否被屏蔽,错误都会被送入诊断缓冲区,并且CPU的“组错误”LED会被点亮。
可以在不同的优先级屏蔽某些同步错误,在这种情况下,在特定的优先级中发生这类错误时不会停机,CPU会把该错误存放到错误寄存器中。但是无法知道是什么时候发生的错误,也无法知道错误发生的频率。
在使用通信功能块或全局数据( GD)通信进行数据交换时,如果出现下列通信错误,操作系统将调用OB87:
①接受全局数据时,检测到不正确的帧标识符(ID);
②全局数据通信的状态信息数据块不存在或太短;
③接收到非法的全局数据包编号。
如果用于全局数据通信状态信息的数据块丢失,需要用OB87生成该数据块并将它下载到CPU。可以使用SFC39~42封锁或延时并使能通信错误OB。表4-17是OB87的变量声明表。
出现下列故障或故障消失时,都会触发机架故障中断,操作系统将调用OB86:扩展机架故障(不包括CPU318),DP主站系统故障或分布式I/O故障。
在编写OB86的程序时,应根据OB86的启动信息,判断是哪个机架损坏或无法判别。可以使用SFC39~42封锁或延时并使能OB86。表4-16是机架故障OB86的变量声明表。
表4-16 OB86的变量声明表
这里也通过一个例子来说明OB86的使用。新建一个项目,插入一个300站,进行硬件组态。在机架中插入CPU315 - 2DP,选择DP作为主站,在DP主站下添加一个ET200M从站,并在从站巾插入一个模拟量输人模块SM331,如图4-14所示。然后双击CPU,选择“Interrupts”选项,可以看到CPU支持OB86,如图4-15所示。硬件组态完成后,保存编译,下载到CPU中。
图4-14 硬件组态
OB86程序在通信发生问题后或者访问不到配置的机架或站时执行,此时程序可能需要调用OB82和OB122等组织块。当OB86执行时可以通过它的临时变量读出产生的故障代码和事件类型,通过它们的组合可以得到具体错误信息,同时也可以读出产生错误的模块地址和机架信息。STEP7不能时时监控程序的运行,可以用“VariableTable”监控实时数据的变化。打开组织块OB86编写程序,程序如图4-16所示。
图4-15 CPU中的“Interrupts”选项
图4-16 OB86中所编写的程序
该程序也可以转化成梯形图,但程序中要将OB86的临时变量OB86_RACKS_FLTDARRAY[0..31]改成OB86_z23DWORD。
把程序下载到CPU后,在“Blocks”插入“VariableTable”,如图4-17所示。然后打开,填入MB0、MB1、MW2、MD4并单击键就可以得到相关信息。
图4-17 插入“VariableTable”
吉林西门子S7-200SMART模块代理商优势价格