回复:应用探讨——Profibus DP系统故障诊断——发帖整理

  • 帖子

    3917
  • 精华

    20
  • 被关注

    26

论坛等级:奇侠

注册时间:2003-06-16

普通 普通 如何晋级?

发布于 2011-04-14 22:45:07

30楼

quote:以下是引用兄弟来了在2011-04-03 07:58:46的发言:
看了大家的回复,感觉大家都回答的很好,就以前大家没做具体介绍的FB125谈谈自己的用法经验,有错误或者缺陷请大家多多指导.
FB125的组成:SFC41"DIS_AIRT"延迟更高优先级中断和异步出错,SFC6读OB启动
信息,SFC49查询一个逻辑地址的模块插槽,SFC51读系统状态列
表或部分列表,SFC5查询通道的逻辑地址,SFC13读DP从站的诊断 数 据,SFC42启用高优先级的中断和异步出错.
FB125具体用法:OB1,OB82,OB86中调用FB125;
DP_MASTERSYSTEM配置的DP主站系统的个数
EXTERNAL_DP_INTERFACE0CPU主站的集成DP接口,1外部接口
MANUAL_MODE0自动模式此模式不支持单个从站的诊断1手动模式可进行单个从站的诊断
SINGLE_STEP_SLAVE转到下一个出错的DP从站
SINGLE_STEP_ERROR转到正在显示的DP从站的下一个错误
RESET1复位,初始化系统
SINGLE_DIAG只在手动模式下有效MANUAL=1。=1读DP从站的诊断
SINGLE_DIAG_ADR手动模式有效,设置单独诊断的从站的站号
ALL_DP_SLAVES_OK0系统中从站存在故障,1系统中从站运行正常
SUM_SLAVES_DIAG出错的DP从站的数目
SLAVE_ADR出错的DP从站的站号
SLAVE_STATE0正常1连接从站失败2出错3未组态或无法诊断
SLAVE_IDENT_NO与SLAVE ADR有关
ERROR_NO与当前SLAVE_ADR参数指示的从站想对应的错误编号,每个编号都有一个与之对应的故障信
ERROR_TYPE故障模块 通道诊断 插槽 单位诊断
MODULE_NO指示出错的从站对应的槽或模块
MODULE_STATE0正常1故障2模块不正确3模块缺失
CHANNEL_NO与错误从站相对应故障模块的通道编号
CHANNEL_TYPE与错误从站相对应模块中出错通道的类型
CHANNEL_ERROR_CODE错误通道给出的错误信息,每个信息都对应一个标号
CHANNEL_ERROR_INFO_1
CHANNEL_ERROR_INFO_2
DIAG_COUNTER显示的诊断DP从站的总数
DIAG_OVERFLOW同时接受诊断的总数大于32个,超过处理的上限,需要执行RESET复位
BUSYFB125正在诊断DP系统
从上面可知FB125功能很强大,可以精确到各站点的某一插槽问题,具体是通道问题等等.可同时查出多站点的错误.
使用FB125需要注意点:SINGLE_STEP_SLAVE是需要从0到1后才会转下一错误,然后再从1到0不转,0到1再转下一错误.另外当一个从站有2个以上错误的时候,从站丢失,此时SINGLE_STEP_ERROR怎么样也不会转成下一错误.另外调用了FB125后虽然给出了些数据,但需要做些二次程序处理.
我的二次程序(只精确到插槽,没大量通道坏的模块,没有精确到通道)如下:
L "FB125 SETTING".SUM_SLAVES_DIAG
T "Diagnose DB".SUM_SLAVES_DIAG
NOP 0

O M 0.0
ON M 0.0
= L 0.0
A L 0.0
A(
L "Diagnose DB".SUM_SLAVES_DIAG
L 1
>I
)
A "Diagnose DB".Next_Station
AN T 156
L S5T#120MS
SD T 155
NOP 0
NOP 0
NOP 0
NOP 0
A L 0.0
A T 155
= L 0.1
A L 0.1
L S5T#120MS
SD T 156
NOP 0
NOP 0
NOP 0
NOP 0
A L 0.1
BLD 102
= "FB125 SETTING".SINGLE_STEP_SLAVE

O M 0.0
ON M 0.0
= L 0.0
A L 0.0
JNB _001
L "FB125 SETTING".ERROR_TYPE
T "Diagnose DB".ERROR_TYPE
_001: NOP 0
A L 0.0
A(
L "Diagnose DB".ERROR_TYPE
L 1
==I
)
S "Diagnose DB".ERROR_TYPE_1
A L 0.0
A(
L "Diagnose DB".ERROR_TYPE
L 2
==I
)
S "Diagnose DB".ERROR_TYPE_2
A L 0.0
A(
L "Diagnose DB".ERROR_TYPE
L 3
==I
)
S "Diagnose DB".ERROR_TYPE_3
A L 0.0
A(
L "Diagnose DB".ERROR_TYPE
L 4
==I
)
S "Diagnose DB".ERROR_TYPE_4
A L 0.0
A(
L "Diagnose DB".ERROR_TYPE
L 5
==I
)
S "Diagnose DB".ERROR_TYPE_5
A L 0.0
A(
L "Diagnose DB".ERROR_TYPE
L 6
==I
)
S "Diagnose DB".ERROR_TYPE_6

O M 0.0
ON M 0.0
= L 0.0
A L 0.0
JNB _002
L "FB125 SETTING".MODULE_STATE
T "Diagnose DB".MODULE_STATE
_002: NOP 0
A L 0.0
A(
L "Diagnose DB".MODULE_STATE
L 1
==I
)
S "Diagnose DB".MODULE_STATE_1
A L 0.0
A(
L "Diagnose DB".MODULE_STATE
L 2
==I
)
S "Diagnose DB".MODULE_STATE_2
A L 0.0
A(
L "Diagnose DB".MODULE_STATE
L 3
==I
)
S "Diagnose DB".MODULE_STATE_3
A L 0.0
A(
L "Diagnose DB".MODULE_STATE
L 4
==I
)
S "Diagnose DB".MODULE_STATE_4

O M 0.0
ON M 0.0
= L 0.0
A L 0.0
JNB _003
L "FB125 SETTING".SLAVE_ADR
T "Diagnose DB".MODULE_NO
_003: NOP 0
A L 0.0
A(
L "Diagnose DB".MODULE_NO
L 3
==I
)
JNB _004
L "FB125 SETTING".MODULE_NO
T "Diagnose DB".Moudle_NO_Slave3
_004: NOP 0
A L 0.0
A(
L "Diagnose DB".MODULE_NO
L 3
<>I
)
= L 0.1
A L 0.1
BLD 102
L S5T#1S
SD T 270
A L 0.1
A T 270
JNB _005
L 0
T "Diagnose DB".Moudle_NO_Slave3
_005: NOP 0
A L 0.0
A(
L "Diagnose DB".MODULE_NO
L 4
==I
)
JNB _006
L "FB125 SETTING".MODULE_NO
T "Diagnose DB".Moudle_NO_Slave4
_006: NOP 0
A L 0.0
A(
L "Diagnose DB".MODULE_NO
L 4
<>I
)
= L 0.1
A L 0.1
BLD 102
L S5T#1S
SD T 271
A L 0.1
A T 271
JNB _007
L 0
T "Diagnose DB".Moudle_NO_Slave4
_007: NOP 0
A L 0.0
A(
L "Diagnose DB".MODULE_NO
L 5
==I
)
JNB _008
L "FB125 SETTING".MODULE_NO
T "Diagnose DB".Moudle_NO_Slave5
_008: NOP 0
A L 0.0
A(
L "Diagnose DB".MODULE_NO
L 5
<>I
)
= L 0.1
A L 0.1
BLD 102
L S5T#1S
SD T 272
A L 0.1
A T 272
JNB _009
L 0
T "Diagnose DB".Moudle_NO_Slave5
_009: NOP 0
A L 0.0
A(
L "Diagnose DB".MODULE_NO
L 6
==I
)
JNB _00a
L "FB125 SETTING".MODULE_NO
T "Diagnose DB".Moudle_NO_Slave6
_00a: NOP 0
A L 0.0
A(
L "Diagnose DB".MODULE_NO
L 6
<>I
)
= L 0.1
A L 0.1
BLD 102
L S5T#1S
SD T 273
A L 0.1
A T 273
JNB _00b
L 0
T "Diagnose DB".Moudle_NO_Slave6
_00b: NOP 0

另外大家都提到很多出现错误的情况,忽略了很重要的一点:模块的耗电量,当同时控制线圈数量大的时候经常会出现站点模块的供电下降,从而亮红灯.还有EMC,这块注意下接地,单端接地和双端接地等.

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

通信与网络组件

共有4448条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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