S7-300 CPU DP主站如何知道从站节点故障
刘玉蓉
发布于2014-10-17 16:52
1345
0
标签:
DP主站如何知道从站节点故障,有DP系统继存器查询吗。
问题补充:
主站下有15个变频器,如果全启动了,将变频器的其中一插头拔下,我的程序如何知道这个变频器通信故障了。我试了下要在将插头插入,才能从变频器中知道故障。我想CPU硬件知道故障了,不知道如何读出这故障为我所用。。
佳答案
虽然可以通过在程序中直接调用SIMATIC S7 的 标准的PROFIBUS DP 诊断块 FB125、FC126可以判断系统PROFIBUS-DP中站点和模块的错误,但需要编写相应的程序,对一般使用人员来说并不现实;你也可以利用BT200进行硬件测试与诊断、利用STEP7中继器Diagnostics Repeater进行诊断、以及通过使用通信处理器CP343-5进行诊断,但需要额外硬件,也并不现实
其实简单经济、可操作的办法是利用分布式I/O站故障错误处理组织块OB86中的变量声明表中内容,利用MOVE指令通过简单的编程就可以知道读出具体的PROFIBUS-DP模块的故障,再通过变量表(Variable Table)就可以实时监控数据的变化,从而知道那个变频器故障。OB86的变量声明表中变量OB86_MDL_ADDR中内容就是故障PROFIBUS-DP网络中的DP从站地址。在OB86中编写如下的程序:
个赋值指令MOVE中输入端IN为OB86变量声明表中变量OB86_EV_CLASS(事件级别和标识),输出端OUT为位储存器字节MB0;第二个MOVE指令中输入端IN为OB86_FLT_ID(故障代码),输出端OUT为位存储器字节MB1;第三个MOVE指令这输入端IN为OB86_MDL_ADDR(PROFIBUS-DP网络中从站模块的DP地址),输出端OUT为MW2
当发生某个变频器故障时,即PROFIBUS-DP网络通信发生问题或者访问不到DP从站变频器时调用错误处理组织块OB86,当OB86执行时通过它的变量声明表中上述临时变量所编写的程序读出产生故障代码、事件类型和DP从站模块的DP地址,通过它们的组合可以得到具体变频器的故障、以及产生错误的变频器的DP地址。由于STEP7没有实时监控功能,可以利用变量表监控上述OB86程序块中位存储器MB0、MB1、MW2,实时监控数据的变化,从而知道具体变频器的故障