回复:关于OB85

liujian1121

  • 帖子

    1910
  • 精华

    1
  • 被关注

    210

论坛等级:奇侠

注册时间:2011-02-12

黄金 黄金 如何晋级?

发布于 2011-10-30 19:18:41

5楼

还是先了解接口信号的含义。
只要发生下列事件之一,CPU的操作系统即调用OB85:

?尚未装载的OB (OB8、 OB81、OB82、OB83和OB86除外)的启动事件。

?操作系统访问模块时出错。

?在系统更新过程映像期间出现I/O访问错误(如果由于组态原因,未禁止OB85的调用)。

注意如果OB85尚未编程,则当检测到这些事件其中之一时,CPU会转为STOP模式。
可以使用SFC 39至42禁用或延迟,并重新启用优先级错误OB。

优先级错误OB的本地数据

下表说明了优先级错误OB的临时(TEMP)变量。变量名为OB85的默认名称。


变量 类型 描述
OB85_EV_CLASS BYTE 事件等级和标识符:B#16#35B#16#38 (仅限于错误代码B#16#B3和B#16#B4)
B#16#39 (仅限于错误代码B#16#B1、B#16#B2、B#16#B3和B#16#B4)
OB85_FLT_ID BYTE 错误代码(可能值:B#16#A1、B#16#A2、B#16#A3、B#16#A4、B#16#B1、B#16#B2、B#16#B3、B#16#B4)
OB85_PRIORITY BYTE ?优先级, 可通过STEP 7分配(硬件组态)
OB85_OB_NUMBR BYTE OB编号(85)
OB85_RESERVED_1 BYTE 保留
OB85_RESERVED_2 BYTE 保留
OB85_RESERVED_3 INT 保留
OB85_ERR_EV_CLASS BYTE 引起错误的事件的等级
OB85_ERR_EV_NUM BYTE 引起错误的事件的编号
OB85_OB_PRIOR BYTE 在出错时处于活动状态的OB的优先级(仅限某些错误代码,欲知详情,请参见下文)
OB85_OB_NUM BYTE 在出错时处于活动状态的OB的编号(仅限某些错误代码,欲知详情,请参见下文)
OB85_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME
如果要对依赖于可能错误代码的OB85进行编程,建议按如下方式组织局部变量:


变量 类型
OB85_EV_CLASS BYTE
OB85_FLT_ID BYTE
OB85_PRIORITY BYTE
OB85_OB_NUMBR BYTE
OB85_DKZ23 BYTE
OB85_RESERVED_2 BYTE
OB85_Z1 WORD
OB85_Z23 DWORD
OB85_DATE_TIME DATE_AND_TIME
下表给出了启动OB 85的事件及如何占用与错误代码相关的变量:

OB85_EV_CLASS OB85_FLT_ID 含义
B#16#35 B#16#A1 由于使用STEP 7创建了组态,您的程序或操作系统将为未装载到CPU上的OB创建一个启动事件。?OB85_Z1:由OB85_Z23确定的被调用OB的各个局部变量。?OB85_Z23:- 高位字:导致OB调用的事件的等级和编号 - 低位字,高位字节:程序级别以及出错时处于活动状态的OB
低位字,低位字节:激活的OB
B#16#35 B#16#A2 由于使用STEP 7创建了组态,您的程序或操作系统将为未装载到CPU上的OB创建一个启动事件。OB85_Z1和OB85_Z23(对于OB85_FLT_ID=B#16#A1)
B#16#35 B#16#A3 操作系统访问模块时出错?OB85_Z1:操作系统的错误ID- 高字节:1= 集成的功能,2=IEC定时器- 低字节:0= 无错误分辨率,1= 未装载块,2= 区域长度错误,3= 写保护错误 ?OB85_Z23:- 高位字:块编号- 低位字:导致错误的MC7命令的相对地址。块类型必须取自OB 85_DKZ23 (B#16#88:OB,B#16#8C:FC,B#16#8E:FB,B#16#8A:DB)。
B#16#35 B#16#A4 不能寻址PROFINET接口DB
B#16#34 B#16#A4 不能再次寻址PROFINET接口DB
B#16#39 B#16#B1 更新输入的过程映像时出现I/O访问错误 ?OB85_DKZ23:过程映像传送(在此期间发生I/O访问错误)类型的ID- B#16#10:字节访问- B#16#20:字访问- B#16#30:双字访问- B#16#57:传送组态的一致性范围?OB85_Z1:留作CPU内部使用:模块的逻辑基址
如果OB85_RESERVED_2的值为B#16#76,则OB85_Z1会接收到受影响SFC (SFC 14、15、26或27)的返回值。的值为B#16#76,则OB85_Z1会接收到受影响SFC (SFC 14、15、26或27)的返回值。?OB85_Z23:- 字节0:部分过程映像编号- 字节1:如果OB85_DKZ23=B#16#10、20或30,则不相关; 如果OB85_DKZ23=B#16#57,则为以字节为单位的一致性范围的长度- 字节2和3:如果OB85_DKZ23=B#16#10、20或30,则为导致PAE的I/O地址;
如果OB85_DKZ23=B#16#57,则为一致性范围的逻辑起始地址
B#16#39 B#16#B2 当将输出过程映像传送到输出模块时出现I/O访问错误OB85_DKZ23、OB85_Z1和OB85_Z23(对于OB85_FLT_ID=B#16#B1)
如果已为系统过程映像表更新组态了I/O访问错误的重复OB85调用,则会获得错误代码B#16#B1和B#16#B2。
B#16#39/B#16#38 B#16#B3 当更新输入的过程映像、进入/离开事件时出现I/O访问错误?OB85_DKZ23:过程映像传送(在此期间发生I/O访问错误)类型的ID- B#16#10:字节访问- B#16#20:字访问- B#16#30:双字访问- B#16#57:传送组态的一致性范围?OB85_Z1:留作CPU内部使用:模块的逻辑基址
如果OB85_RESERVED_2的值为B#16#76,则OB85_Z1会接收到受影响SFC (SFC 14、15、26或27)的返回值。?OB85_Z23:- 字节0:部分过程映像编号- 字节1:如果OB85_DKZ23=B#16#10、20或30,则不相关; 如果OB85_DKZ23=B#16#57,则为以字节为单位的一致性范围的长度- 字节2和3:如果OB85_DKZ23=B#16#10、20或30,则为导致PAE的I/O地址;
如果OB85_DKZ23=B#16#57,则为一致性范围的逻辑起始地址
B#16#39/B#16#38 B#16#B4 当更新输出的过程映像时出现I/O访问错误,进入/离开事件OB85_DKZ23、OB85_Z1、OB85_Z23(对于OB85_FLT_ID=B#16#B3)
如果已为由系统进行的过程映像表更新组态了I/O访问错误进入和离开事件的OB85调用,则会获得错误代码B#16#B3和B#16#B4。冷重启或暖重启后,在下一次更新过程映像表期间,对非现有输入和输出的所有访问均报告为I/O访问错误。
文建
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。