奇怪:PLC“两面性”,同样程序两种表现 点击:759 | 回复:12



秦君_1

    
  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-04-14 16:59:12
楼主

我做了这样一个设计:台达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恢复出厂值后再下载就不能连接通讯了。

什么原因?

见鬼了!

 

 

 



楼主最近还看过



鄂-电气自动化

  • 精华:0帖
  • 求助:7帖
  • 帖子:30帖 | 495回
  • 年度积分:29
  • 历史总积分:4279
  • 注册:2011年3月09日
发表于:2014-04-14 17:29:02
1楼

建议查看通讯设置。                  

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-04-14 17:48:21
2楼

回复内容:

对: 鄂-电气自动化  建议查看通讯设置。                    内容的回复!


 说了那么多其实就是:原来主分控程序通讯没有问题,分控程序没有动,新修改的主控程序直接下载进去能通讯,恢复出厂值后下载进去就通讯不上。至于通讯参数设置,我们公司用了多年的这种模式,主分控程序中都写入的是H86,按说恢复出厂之后,执行逻辑,写入的应该绝对就是H86啊!难道M1002赋值与T22上升沿赋值不一样?见上图。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-04-15 08:54:26
3楼

昨晚抽空监控了一下,原因是恢复出厂值之后D1121/D1120都恢复到默认值,而我写的T22上升沿之后的程序段压根就没有执行,所以d1121(站号)=1,d1120(通讯参数)=134(这个默认值倒是我要的)。难道站号成了1不是期望的17,导致通讯不上?

 

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-04-15 16:52:52
4楼

检查最终还是逻辑写的不对。将

LD M10 

TMR T22 K60

CJ P0

这个程序段调换到T22上升沿网络段(触发赋值网络段)之后一切正常。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-04-15 16:59:37
5楼

着急之下怀疑过PLC运行出了问题(按理说PLC可靠性不应该有这样的怀疑)。看来还是那句老话,事急勿慌,所有奇怪现象都是有深层次原因的,就看你有没有发现找出原因的慧眼。

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2014-04-15 23:40:43
6楼

查看通讯口参数设定数据

wjlovelj

  • 精华:0帖
  • 求助:3帖
  • 帖子:15帖 | 169回
  • 年度积分:6
  • 历史总积分:2783
  • 注册:2011年7月11日
发表于:2014-04-16 11:35:28
7楼

断电这种方法你也敢用,,两台PLC分别是干什么用???用PLC的LINK手动模式通讯即可完成。。。A主机通讯一次完成后输出一个点通知B主机开始手动模式通讯,B通讯完成后输出一个点通知A主机通讯,然后一直依次循环即可。。。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-04-16 13:41:06
8楼

您说的这个方法可以尝试一下,我怎么就没有想到呢?

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-04-16 13:41:14
9楼

您说的这个方法可以尝试一下,我怎么就没有想到呢?

枫缘叶

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 151回
  • 年度积分:0
  • 历史总积分:138
  • 注册:2008年11月09日
发表于:2014-06-16 17:43:07
10楼

学习了,,,,,,,

wjlovelj

  • 精华:0帖
  • 求助:3帖
  • 帖子:15帖 | 169回
  • 年度积分:6
  • 历史总积分:2783
  • 注册:2011年7月11日
发表于:2014-06-18 15:36:07
11楼

首先,要进行PLC-LINK的通讯你得知道PLC-link是如何工作的。

你的这个工程有致命的错误:

   PLC-link自动模式是在上电的时候就自动启动扫描从站PLC的,和你那个延时无任何关系。你设置延时上电延时不执行程序,而你程序中的T的上升沿只是去设置了某些通讯参数。所以说PLC上电时已经根据默认的通讯协议对从站进行了扫描。而且并未扫描到从站PLC,所以就不会通讯了。当你延时时间T过了之后再去赋值通讯参数已经没有任何意义了,因为主站根本不会再去根据你延时后设置的通讯格式去扫描从站。

   还有就是当PLC通讯格式设置后要设置通讯保持,这个有可能有效。但是就算是通讯保持了也是上电后主站就立即扫描从站的,你的延时没有任何意义了。


   给你说个解决的思路:上电先设置主站通讯参数,通讯协议、主站地址等等。上电关闭PLC-LINK功能,至于怎么关闭不得去看特D或特M,经过延时T后再在程序中打开PLC-LINK功能,此时主站才会去扫描从站地址是否存在,扫描完成后主站才会和各个扫描到的从站进行数据交换。

   还有个重要的地方就是PLC主站的通讯地址一定不要与从站的任何一个地址相同。

通讯网-13730920629

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2014-06-18 16:57:17
12楼

你的这个设计本身就有问题。。你在切换电源时,就是时间再短,也有两台PLC同时掉电的时候,在这个同时掉电的时候,(而且,就算是你能够做到这个掉电那个马上得电,PLC的初始化也需要一定时间,就像你给一台电脑断电,启动另外一台电脑,另外一台电脑启动也需要时间,PLC启动速度虽然快很多,但是也有启动延时,)输出模块肯定状态不受控。。这是很危险的。。。。

 你的方案失败。。。。

你怎么不先在家里试验通过呢??


热门招聘
相关主题

官方公众号

智造工程师