使用S7-300走DP+ET200M是一种非常方便的配置方式,可以把远程IO放到各个车间中分散布置。同时ET200M也支持热插拔操作,如果编程实现ET200M上IO模块的热插拔操作及判断对实际使用来说非常方便。由于S-300不支持OB83,所以说对插拔模块的判断比S7400要麻烦。我用一个315-2DP+ET200M(153-2BA00)+有源底板组成一个简单的实验系统。使用GSD文件配置好硬件,加上OB82、OB86、OB121、OB122,对ET200M上的IO进行简单的操作。对模块进行热插拔,发现CPUSF灯亮但CPU未停机。但程序中没有捕捉到这一事件。关掉ET200M电源,CPU捕捉到这一事件,并可通过OB86的数据判断是那个子站出现问题。这样来说使用S7-300不可能捕捉到单个IO模块被拔出或插入的事件,虽说CPU有反应,但程序没法处理。所以热插拔更换模块并保证CPU的运行,必须断掉整个ET200M极佳的电源,CPU捕捉到这一事件后冻结整个机架IO数据,在这时可以更换模块,有一定的局限性。纯属个人理解,欢迎大家指正。另外还用SFC13读过DP从站的数据,但他的数据也不能反映是哪个IO模块被拔出