我做了这样一个设计:台达PLC之间PLC-LINK方式组网通讯,两台台达DVP48EH3轮流做主站,下面连接四台DVP24ES做分站。为了保证MODBUS网络主站唯一性,我采用了一台切换开关将暂时不用的主站断电,启用的主站通电工作。这样不论使用哪一个主站,都相当于是一台主站与四台分站联网通讯,设计阶段我专门做过实验,方案本身没有问题。见下面结构图:
现场实施后问题来了:
1.切换后(原来带电的主控断电,没有带电的主控通电)新投入的主控工作不正常,表现为输出点无规律性自动输出。
由于设计阶段一直担忧切换后会出问题,我接到现场电话后就详细咨询了现场电源切换问题,回答供电电源接线如图中绿色与蓝色部分。本来设计主分控电源为同一电源,现场条件办不到,主分控分开供电,这倒没有多大影响。主要是主控电源切换(绿色部分),这样的单刀双掷开关,投切时容易出现两台主控同时工作的情况(PLC断电后工作有一个延时过程)。于是要求现场必须想办法搞成有明显断电过程(2主控都断电)的投切方式。
现场在改电源(后来增加了上图中的红色部分),我开始想办法看能不能通过编程逻辑解决这一问题,提前做好两手准备。
原主控逻辑:
如下梯形图,无非就是PLC通电首个扫描周期完成站号、通讯格式以及从站1-4号的读出写入长度设置与记忆。
为了避免切换瞬间出现的双主站导致新投入的主站不能正常工作,程序上加一个延时逻辑,上电后延时6s再执行整个程序,6s时间内直接跳转到END位置处,相当于执行了一个空逻辑程序。6s后实际上完全就是只有一台主控连接在电路,这时主控程序扫描恢复到正常执行整个程序段,利用计时器上升沿完成M1002完成的任务。
修改后的新程序逻辑如下:
理论上好像可以,赶紧实际测试。原来程序逻辑反复测试没有问题,于是就将加了延时执行逻辑的程序直接下载进48EH3中,反复切换测试,只要在6s内完成有断点投入,新投入的主控都能正常工作。
2.新编写的逻辑公司测试没有问题,现场下载使用后反映不能联网通讯。
接到这样的反映,我只有建议现场查双绞屏蔽线是不是有断点,反馈说没有;PLC下载新程序前有没有恢复出厂值,回答也是肯定的。“奇怪了!几个人反复测试没有问题的逻辑,怎么到现场后通讯连接不上”。
赶紧赶回公司测试逻辑,原逻辑正常,新程序直接下载测试通讯也很正常。难道现场PLC坏了?
唯一不同点:现场下载新程序前PLC恢复过出厂值,我是直接下载的新程序。试试恢复出厂值后下载,结果奇迹出现了:PLC恢复出厂值后新改过的逻辑(有延时)就是不能通讯。
同样的程序直接下载能正常通讯,PLC恢复出厂值后再下载就不能连接通讯了。
什么原因?
见鬼了!
楼主最近还看过
首先,要进行PLC-LINK的通讯你得知道PLC-link是如何工作的。
你的这个工程有致命的错误:
PLC-link自动模式是在上电的时候就自动启动扫描从站PLC的,和你那个延时无任何关系。你设置延时上电延时不执行程序,而你程序中的T的上升沿只是去设置了某些通讯参数。所以说PLC上电时已经根据默认的通讯协议对从站进行了扫描。而且并未扫描到从站PLC,所以就不会通讯了。当你延时时间T过了之后再去赋值通讯参数已经没有任何意义了,因为主站根本不会再去根据你延时后设置的通讯格式去扫描从站。
还有就是当PLC通讯格式设置后要设置通讯保持,这个有可能有效。但是就算是通讯保持了也是上电后主站就立即扫描从站的,你的延时没有任何意义了。
给你说个解决的思路:上电先设置主站通讯参数,通讯协议、主站地址等等。上电关闭PLC-LINK功能,至于怎么关闭不得去看特D或特M,经过延时T后再在程序中打开PLC-LINK功能,此时主站才会去扫描从站地址是否存在,扫描完成后主站才会和各个扫描到的从站进行数据交换。
还有个重要的地方就是PLC主站的通讯地址一定不要与从站的任何一个地址相同。