最近在做一个实验,使用的是1200之间的PN IO 通讯,另外一台PNIO设备与第三方设备进行MDBUS通讯。
PNIO控制器与PNIO设备都在一个项目里面组态编程,PNIO控制器名称是 PLC_1_ PNIO设备名称是PLC_2_
然后为了可以在其他项目的重复使用,我在PNIO设备的组态做好以后导出GSD文件然后又挂在PLC_1_PN控制器下面,这个时候发现一个问题,导入GSD文件以后挂在PN网络上时设备名称自动修改为PLC_2_1,我知道原因了,是因为我的项目里面还有PLC_2_这个设备名称,所以不能重复同样的名称,于是我把项目上的PLC_2_修改为PLC_2_2这个时候在PN网络上把刚才挂上去的PLC_2_1的名称修改为PLC_2_这样下载下去以后通讯正常没有任何问题。
接下来的几天就做自己想要的测试,由于实验的需要要在线查看一下PNIO设备的程序,于是打开项目上的PLC_2_2直接点击在线看程序,这个时候发现PNIO控制器以及IO设备都报警,出现ERROR错误指示灯,点击诊断缓冲区说是PN通讯故障了,刚才还好好的。难道是IP冲突了?网线连接不正常了?等等一下子脑子里面冒出很多问号??
于是继续查找问题,发现设备名称不一样了,我原来挂在PN网络上的设备名称是 PLC_2_现在变为PLC_2_2,我想了想难道是与我刚才的在线操作查看程序有关系?没错就是我刚才在线查看PNIO设备时把原来下载进去的设备名称覆盖为PLC_2_2原来的设备名称是PLC_2_实际上我是没有做任何的修改,我也没有进行任何的下载操作只是在线看了一下FC而已,我想应该是在线时系统自动修改为离线的设备名称,到此已经找到问题,重新修改设备名称为PLC_2_以后通讯恢复正常。
这里我们发现一个问题,实际上只是在线一下就导致PN通讯不正常了,而且没有任何提示。
总结:1,在同一个项目上没有必要使用GSD文件来做通讯,直接使用IO设备通讯直接组态就可以(我这个是作为实验所以才会出现这个情况),因为组态GSD文件时的设备名称是PLC_2_导入GSD文件以后挂在PN网络上时与原来的设备名称重复所以不得不修改原来的设备名称为PLC_2_2 为后面的通讯故障埋下伏笔。
2,PN通讯与DP通信不一样,PN通讯有IP地址又有设备名称,都要兼容好,这样就容易出现问题。
3,特别是有一种情况,有的时候拿到一个项目程序没有进行任何备份的情况下如果盲目的在线诊断等等都有可能改变在线的设备名称等等,即使你没有进行任何的在线修改下载等等。
4,在维护设备之前应该做好所有设备的程序备份,包括IO控制器智能IO设备等等。
5,说到底还是我对PN通讯的认识太少,在此也希望各位在做维护时要多加小心了。