QQ登录

只需一步,快速开始

s7-200程序出现问题

[ 复制链接 ]
s7-200程序出现问题事情是这样的,半个月前有客户打电话说设备出现问题,不能启动,我去客户现场看了下,通过监控PLC,我发现有一个标志位的线圈的逻辑为0,但是在它下面的第二个网络里(同一个子程序),引用这个标志位的常开触点却是导通的,其他网络里都正常。我当时很纳闷,由于客户着急生产,我把程序重新下载了一遍就好了。但是,客户今天又打电话说机器又不行了,还是同样的问题。由于当时着急没有拍照,求大神分析下问题,PLC是s7-200 224xp cn 用的触摸屏TP900。


------- 编子程序中最重要的一条,子程序中的TEMP和OUT一定要先赋值后使用!


-------等那个故障PLC寄回来我给大家截图看看


------对于这个故障,你做过些什么?不要截图。截出来的通常都是没问题的。连你都觉得有问题的你就会想办法解决了,而不是截图出来。


------在不同的地方看同一个变量(触点也是变量),值不一样,很正常。变量所处的位置不同,表示程序运行的时刻不同,而变量是会变的。

重新下载程序,“故障”消失,可能是因为内部的运行环境被“初始化”了。


-------1 交叉引用 ,找到你那个标志位在其他地方的擦身之处

2 屏上用的地址是否有该点


--------整个程序有多大?感觉你设备周围电力使用环境比较差。


-------屏一般没有问题,还是检查一下PLC有没有程序误动作,一般多条件控制同一线圈就可能存在问题


------今天收到客户寄回来的PLC,我用电脑连接上监控了一下(没有连接触摸,也没有连接外部IO点),我发下截图吧,问题就出在V204.0这个位。如下

s7-200程序出现问题

s7-200程序出现问题

s7-200程序出现问题

s7-200程序出现问题

s7-200程序出现问题

s7-200程序出现问题


-----截图真看不出问题。


----------从截图上看不出什么问题。不过有个不是很好的建议,我一般很慎用直接线圈输出指令,我会多用置位/复位指令,虽然可能会多占几个位,多几句指令


-------为什么从截图上看不出问题? 第一幅图中网络7中的V204.0的常闭触点和网络8中的V204.0的常开触点都是导通的。难道说监控并不能真实的反应实际情况


-------我个人觉的不太好看出来的,仿真有时会欺骗我们的眼睛。(两个通断之间还有零点几毫秒或微秒或纳秒)



-----感觉你检查一下是不是有字节包含了这个位,还有就是你看看对方是在什么情况下不行的,把你这个不同的点换一个位,不可能用到的位


-------我有点怀疑你那台PLC的系统有问题,更新一下系统试一下。


------谢谢大家的回复,我再次监控了一下,这次是用STL语句监控的,也截了图。发现程序执行是对的。

s7-200程序出现问题

s7-200程序出现问题

s7-200程序出现问题

s7-200程序出现问题


--------可能PLC自身有问题,导致这种现象。

我遇到过新的PLC有问题过,当时做了两台设备,程序是同样下载的,结果其中一台运行不长时间自动停机,

开始不相信,把两个PLC换了一下,结果还是不好的PLC有问题,故障发生转移。后来换了PLC好了。


------这程序的执行结果绝不可能是对的。如果用来作为电机正反转的互锁,那么就可能酿成大祸。


---------楼主,给你提个建议,我们看电视剧的时候,在新的一集播放之前,都有几幕前情回顾,这也是为了防止电视观众“断片”,同样我们问问题的时候,也应该尽量的“前情回顾”,毕竟我们对你说的东西不是很了解。

我想你要是能说明一下,这套系统运行多长时间了,是新上的控制系统还是N年以前上的,有没有正常运行了一段时间?如果有的话,这段时间是多长?

是什么情况下出现这种故障的,故障的触发条件有没有什么共性?

你说的越详细,对故障的快速判断也就越有利。

楼主的情况,看截图的情况是V204.0的NO(常开)点和NC(常闭)点同时处于接通状态。我用欧姆龙软件仿真器仿真程序时出现过,某个点或者某几个点突然不受控了,原因是频繁地写入程序,造成仿真器系统出现问题,此种情况的解决方法是“清空仿真PLC内存”或者重新启动软件,完成系统的初始化操作。

看楼主的子程序中使用了定时器,个人以为子程序的编写还有完善的空间。

在此揣测一下,故障原因有如下几种可能:

1、子程序编写不严谨,没有完全遵从“好的子程序”的编写设计规约;

2、程序在控制逻辑设计上存在冲突;

3、外部环境的变化(干扰)或者自身系统的变化(“脑血栓”或者“脑溢血”)导致PLC工作机制发生变异;

建议楼主先进行替换法用好的PLC先试一下,看效果如何,再针对上述各条仔细推敲。



--------谢谢大家的回复,这个子程序编写的确实不是非常优化,因为这个程序我也是接手的别人的。现在的情况就是如果用梯形图进行监控,在监控中就会出现逻辑性错误,大家在截图中也都看到了。如果用STL监控,发现逻辑执行是正确的。也就是这两种监控的程序状态是不一样的(V204.0和T47载网络8中的两种监控状态下的逻辑是完全相反的)。我打西门子客服进行询问,客户说这种情况只能是以STL语句监控表为准。实际上就算是STL语句执行是正确的,但我的功能也是出了错的。因为这个情况下,有一个变量没有复位。该变量是连接触摸屏的一个按钮,按钮按下时置位,释放时复位。问题就在与出现梯形图监控不正常的情况的时候那个变量正好没有复位。我想这不会是个巧合。
----------你的比喻很形象哈,我们这台设备是15年12月份出厂的,机器运行了有半年的时间出现的这个问题。我们的设备每年出好多台的。设备是老设备,只不过程序会有更新,最后一次更新是15年11月份的。也就是正常运行半年,出了问题,我重新下载程序,又运行了半个月再次出问题。7月18号更换了PLC,正常运行到现在没有出问题。我现在就担心再次出问题,倒是就不好向领导交代了。最烦人的就是这种软故障。不知道什么时候就发生了,还不好处理。


-------我不认为这是一种巧合,通过你上面的描述,故障发生的时机,感觉应该和你的触摸屏有关。
触摸屏上的按钮在置位这个位时,触摸屏和PLC通讯正常,当释放这个按钮时触摸屏和PLC之间恰恰出现一次通讯中断,这时问题就出现了这个位被置位后而没有被复位,如果是这样,你如何推敲程序也解决不了问题(因为逻辑是正确的),建议在触摸屏上换一种控制方式!






回复

使用道具 举报

大神点评(1)

baikhgmv 楼主 2016-9-25 21:39:04 显示全部楼层
-------可能跟300里面fc块一样,每次扫描每个输出都要有一个确切的输出,你输出的可能是你上一次值,没有更新

----------在没有看到你的描述之前,我观察变量的ON/OFF情况,也发现你说的这种情况“(V204.0和T47载网络8中的两种监控状态下的逻辑是完全相反的)”。
我认为你监控的不是同一种状态。
会不会是T47的动作可能会导致V204.0状态的改变?
至于你说的触摸屏的某个变量置位没有复位,我觉得25楼的说法比较正确。可能触摸屏的操作跟V204.0有关系,建议能不能先取消触摸屏的同时置复位的动作,看问题会不会重现。
期待你后面更换PLC后的故事更新。

---------我来后续进行更新了。
1,首先,PLC程序的梯形图监控的确有问题。这个也和西门子的技术人员核实过,但是PLC的程序运行在逻辑上是没有问题的,这个通过STL语句表监控可以看到。也就是说大家不要轻易相信梯形图的状态监控,你看到的有可能是假的。这个监控问题也是导致我一开始没有把根本问题找到的原因。
2,真正导致机器问题出现的是屏幕,也就是TP900。我在屏幕上组态了一个按钮,事件是按下时置位位,释放时复位位,并且组态了其它几个事件,如画面转换、日志变量等。结果会偶尔出现按下按钮时变量置位了,但是释放按钮时变量没有复位。我的机器的PLC有两种,一个是s7-200,另一种是倍福的CX。这两种PLC都出现了变量没有复位的情况,但是倍福的监控是正确的。
  我询问西门子技术支持,给的解答是尽量不要在按钮的释放上组态事件,因为按钮的释放容易丢失事件,或者是系统捕捉不到释放事件。让我使用在按钮按下时触发事件“按下按钮时置位位”,按钮释放时不触发事件。我照做后,发现问题更严重了,由原来的偶尔不复位变成了经常不复位。再打电话吧,给的解释是如果触发事件“按下按钮时置位位”就不能再在该按钮上触发其他事件,也就是只能给按钮组态一个该事件。好吧,他们这样说我也只能根据他们说的做了。但是我再也不相信西门子了,谁敢保证这样做后不出问题呢。我干脆修改了程序,将程序修改成即便那个按钮的位不复位也不会影响机器的正常运行。
3,还是有些问题没弄明白的。为什么出现问题后,s7-200 PLC的梯形图监控就是错误的,而且在客户那出现的两次问题,PLC监控都出现了错误。PLC监控出现错误,并且屏幕的按钮也出现错误。不知道这两个问题有没有关系,但是使用倍福的PLC,屏幕的按钮也出现错误了啊。
4,给客户换完PLC后,到目前为止没有发生问题。我现在很担心万一客户那里又出现问题,真的不好给客户和领导交代了。问题的根本原因是屏幕,还是没有给客户彻底解决问题啊。

----------1、楼上,不是我想打击你。你这样怀疑西门子产品有问题,不利于问题解决,也不利于自身的提高。
2、PLC是人为设计出来的,它的游戏规则也是人为设计的。只有按设计的规则使用而没有产生预期的结果,才可以认为是个错误,这个认定权在西门子。S7200是个成熟的产品,要想发现一个错误,机率比中彩票大奖还小。
3、你的这一堆错误,就是对规则还没有完全理解、掌握导致。对S7200来说,这些都不是错误。只是没有达到你想要的结果,才在你的眼中变成了“错误”。
4、比如,你说“s7-200 PLC的梯形图监控就是错误的”,你的根据呢?梯形图监控是被监控段程序在某一时刻的一个执行状态快照,你知道PLC执行程序有多快?写得很臃肿的程序,每秒也有10次以上的扫描速度,你的眼力跟得上吗?因此这个快照也是以人眼能跟得上的速度拍摄,并非每个周期的情况都看得到,当然通讯速度也是一个限制因素。另外,快照就是真实的记录,本身没有对错。
5、再比如,你认为“经常不复位”是个问题,难道经常自复位就好了?如果你不玩“模糊”控制,变量要它复位就复位,PLC不会有半点含糊。它不复位,你条件给了吗?不要说你在屏上按按钮。从按钮按下到复位条件成立,中间还有很多环节。况且你的按钮操作是否被人机理解并转化为你指定的事件,尚未可知。

--------楼主你基本不懂通讯周期和扫描周期。
这个问题我在没有开售22x plc的时候就已经通过自己撞墙碰壁理解到了。
plc扫描是一种周期,屏对plc寄存器的更新又是另外一种过程另外一种周期。这话实在是太简单了。太好理解了。你有感应到吗?
拿plc主动通讯来说,对外写一个数据需要n个扫描周期,发送完成的时刻点需要中断资源来唤醒plc对这个事件进行反应。在任何扫描到某个地方都有可能发生中断。在看看通讯线的另外一头那个啥,假设都是plc吧。被人家这么一写数据,数据什么时刻点更新了?

请楼主回答。

请楼主回答。

请楼主回答。

就连主动plc都不晓得自己什么时候可以发送完毕,你一个从站什么能耐可以知道数据什么时候让人家写完啊?
生活经验告诉我:我老婆晚上大概10点洗衣服,我要是可以在这个时间之前洗澡换衣服了,那么这衣服就可以一起洗了。要是我错过了这个时间换衣服,我到了12点(一天结束了)的时候问老婆,你为什么还不洗衣服啊?老婆却说我洗衣机都在脱水了,你说我洗衣服了没有?但是我却明明指着我的臭衣服说你看,我的衣服还放在这里,你哪有洗衣服啊。
我老婆到底洗衣服了没有?

请楼主回答。

请楼主回答。

请楼主回答。

很简单的道理,为什么plc的输出点输入点要经过输入输出映像区缓冲输出,目的就是防止同一个plc扫描周期里面出现两种不同逻辑的现象,也就是楼主你言之凿凿的现象。
不单是通讯有这个现象。1毫秒的计时器当前值有这个现象,高速计数器当前值有这个现象,22x plc任何用户寄存器都可以在一个扫描周期里面任意变化。
你程序在多个地方使用了一个这样的寄存器,而这个寄存器就是由一个不确定时序的通讯过程确定的,而你梦然完全毫不知情,没做任何缓冲措施,技术不精,做不出东西怪西风大?
我这回帖,对于楼主来说,值10000.7元。那7毛钱是电费和宽带通讯费。

------多谢版主的批评建议。我只能说我很喜欢西门子的产品,但是我也会对任何东西都不会绝对的相信(包括科学)。哈哈 扯远了。
或许我应该在“错误”上加上引号吧。我的意思是PLC梯形图监控有时会“欺骗”我们的眼睛。我掌握的知识还不够,你可以在截图中看到,就是上下两个挨着的网络监测状态就不一样。而且用STL语句监测的状态就是正确的。所以说我还是很纳闷的。
PLC我也相信让他复位他肯定乖乖的复位。只是触摸屏没有给出命令。
再说触摸屏吧,我在第2条里说的也都是西门子客服给我的解释。我出现的状况也都是我很多次实验得出的。我也是希望给大家分享下,希望大家能够尽量避免我出现的错误。

--------好文笔啊  辛苦了。
我是不太懂通讯周期啊,我认为是扫描周期完成后,进行通讯的处理,只有在程序扫描完成后,才会更新因通讯改变的存储区。就像是输出输入镜像区一样,不会再同一个周期有两种状态。或许是我理解错了。
你的意思是在上下两个网络之间,因为通讯的问题使变量置位了?但是STL语句表监控就是V204.0是OFF,用状态表观察也是OFF,就是在梯形图的网络8中监控到的状态是ON。此外,在梯形图的网络8中不只是V204.0的监控状态是和语句表监控的不一样,T47的状态也不一样。

--------电脑也是通讯,我能不能够也用上述同样的理由来忽悠你了?
我不想这样做的。只不过一切疑点利益归于被告。我没有办法不这么忽悠你。我的宗旨是,我有真凭实据,我会说出来,为什么。没有真凭实据我不会硬性认定一些事情,不会跟你说这里有问题。
最好自己通过试验得到结论,因为东西在你那里。首先你不要先认为西家的东西不行,而是你找证据证明西家的东西不行。当你证明方式没错了也证实不了有问题,只能当做没有问题。另行找证明的渠道。
通讯造成的这个现象我估计很多很多人是不知道的。当发生意外的时候,很容易让人想到:是不是我没按到按键了,再按一下……可以了。然后就没管了。
这就是一场官司。用技术手段去打这场官司。而双方就对对方的证据提出质疑。
在做modbus库通讯的时候,会更显得异步处理之间,数据的同步化极其重要。
回复

使用道具 举报

快速回复 返回列表 客服中心 搜索