S7-300从站的模块热拔插时,怎么得到拔插的模块号?

西门子plc 发布于 6个月前 分类:S7-300/400

我在OB82里找不到那个值
另外官方文档里说热拔插时还会调用OB86,我试了好像不行

1个回复

  • plc学习
    plc学习

    你的模块支持热插拔吗?你的硬件连接具备热插拔吗?你的组态对吗?
    300的CPU只能通过安装GSD文件的方式将 IM153模块组态成DP从站,并双击IM153,打开它的属性窗口,进行设置。才能实现热插拔的全部功能。
    除了以上的硬件配置之外,还要向S7-300的CPU中下载OB82、OB86、OB121、OB122等组织块,才能保证当你在ET200M站上进行模块热插拔时,S7-300的CPU保持运行,而ET200M站上其他模块的工作不受影响。同时,当你进行ET200M站上模块的拔出或插入,系统都会调用OB82、OB86,你可以获取OB86和OB82中的参数返回值,得知什么时间是哪个主站下的哪个从站上的模块被插拔,你可以根据系统控制逻辑的需要,在组织块OB82、OB86中编写用户程序,调整I、O的数值,确保进行模块热插拔时,生产机构处于安全运行状态。
    你可以在S7-300的用户程序中循环调用SFC13(DP总线诊断功能块),不断获取DP网络的诊断信息,当ET200M从站上进行模块的热插拔时,可以从SFC13的返回数据(在DB块中)获取插拔模块的信息,在用户程序中对返回的诊断信息进行【判断、评估后,进行相应的逻辑控制和I/O处理,使生产机构处于安全运行状态。
    如果你在ET200M站中使用了参数化的模块(如FM354,CP340等非输入输出的模块),在DP主站通电初始化过程中会对这些模板进行参数化和配置。当你带电拔掉可参数化的模块,再插入后,模块原有的参数就会丢失。除非重新启动DP主站,在主站进行初始化过程中,对这些模块再进行一次参数化和配置,否则这类模块在被拔掉,再插入后,只能够以他的默认值运行。