您现在的位置是:首页 > PLC技术 > PLC技术
S7-300/400 I/O访问错误组织块(OB122)
来源:艾特贸易2017-06-05
简介STEP 7 指令如果访问有故障的模块,例如直接访问 I/O 错误(模块损坏或找不到),或者访问了一个 CPU 不能识别的 I/O 地址, CPU 的操作系统将会调用 OB122 。局部变量 OB122SW_FLT( 错误代码
STEP 7指令如果访问有故障的模块,例如直接访问I/O错误(模块损坏或找不到),或者访问了一个CPU不能识别的I/O地址,CPU的操作系统将会调用OB122。局部变量OB122SW_FLT(错误代码)为B#16#42时,为I/O读访问错误;为B#16#43时,为I/O写访问错误。错误代码B#16#44和B#16#45表示错误相当严重,例如可能是因为访问的模块不存在,导致多次访问出错,这时应采取停机的措施。
【例6-6】 同步错误组织块应用举例。
建立一个名为“OB121例程”的项目,生成FC 1,OB1无条件调用FC 1。FC 1中是一段错误的指令(超出了定时器的地址范围):
A T 3000
M 2.0
用仿真软件模拟运行程序,切换到RUN模式时,CPU视图对象上的红色SF灯亮,不能进入RUN。
在SIMATIC管理器中执行菜单命令“PLC”→“诊断/设置”→“模块信息”,打开模块信息对话框,选中“诊断缓冲区”选项卡(见图6-22),可以看到错误标志(红色指示灯)。
图6-22 诊断缓冲区
诊断缓冲区的第1条是最新的信息,选中第2条有关停机原因的信息,下面的窗口指出停机原因的详细信息:因为没有下载错误OB,程序在OB1中断。选中第3条信息,可以看到在FC 2发生了定时器编号错误,请求调用OB121。点击对话框中的“打开块”按钮,将会打开出错的块FC 1。在诊断缓冲区的“堆栈”选项卡的块堆栈中,可以看到从上到下排列着OB1和FC 1,表示出错时程序的调用路径。选中OB1,点击该选项卡中的“I堆栈”按钮,打开中断堆栈,可以看到发生中断时累加器、地址寄存器和状态字的内容,在“中断点”区可以查到断点的位置。点击“帮助”按钮可以得到有关的帮助信息。
返回SIMATIC管理器,生成OB121(可以是一个空的块),下载后重新运行,可以进入RUN模式,但是SF灯会亮。
可以在错误处理OB中调用SFC20“BLKMOV”(复制数据块),来保存OB的启动信息,供分析故障时使用。
点击排行
