技术论坛

今天让PLC玩了

作者 主题
至圣

经验值: 37446
发帖数: 5133
精华帖: 47
主题:【探讨】今天让PLC玩了
推荐帖


只看楼主 楼主 2019-01-13 23:30:08

本来更换CPU已经是家常便饭了


原来是CPU315-2DP 128K的内存,由于内存已经使用接近97% 导致很多数据错乱,今天更换为CPU315-2DP 256K


在线备份老型号的CPU程序,然后更换CPU型号为新的型号,然后下载,接下来CPU停机了,提示编程错误。


一下子摸不着头脑了。


先请各位讨论一下下面这个程序有没有BUG ?

停机与这个程序有关联的。。。

程序块的调用接口:


程序块的接口定义:



程序段1

L     #datablock

      T     #datablock1

 L     0

      T     #TestBYTE

           AN    #Reset

      JC    byte

      SET  

      R     #Active

程序段2

byte: L     0

      LAR1 

      L     #Offset

      SLD   3

      +AR1 

 OPN   DB [#datablock1]

      L     DBB [AR1,P#0.0]

      T     #AlarmBYTE

 L     0

      T     #TestBYTE

程序段3

   L     #AlarmBYTE                  //  exclusive OR of current and previous alarm word

      L     #TestBYTE

      XOW  

      T     #TEMP

  L     #TEMP                       // changes found

      L     0

      ==I  

      JC    ok

      SET  

      S     #Active

程序段4

ok:   NOP   0

      L     #Offset                     // Add offset by one

      L     1

      +I   

      T     #Offset

 

      L     #Offset                     // Check offset

      L     #Bytes

      >=I  

      BEC  

      JU    byte














工业起重机防摇摆 QQ:404136820 AntiSwayControl
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1536693&b_id=4&s_id=0&num=6

游侠

经验值: 351
发帖数: 19
精华帖: 0
回复:今天让PLC玩了


只看楼主 1楼 2019-01-14 08:16:59
是不是在程度傣四进行跳转的那个offset和byte的比较无限循环了, 导致了cpu的错课,是不是要调整cpu的看门狗的时间?

 
以下网友喜欢您的帖子:

  
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
回复:今天让PLC玩了


只看楼主 2楼 2019-01-14 08:34:09

看这种语言  实在头疼。


邮箱 yongquancun@126.com
以下网友喜欢您的帖子:

  
侠圣

经验值: 3886
发帖数: 556
精华帖: 1
回复:今天让PLC玩了


只看楼主 3楼 2019-01-14 10:17:31

可以看看CPU的诊断,报的错,如果是程序问题,会有提示的。


精益求精
以下网友喜欢您的帖子:

  
至圣

经验值: 37446
发帖数: 5133
精华帖: 47
回复:今天让PLC玩了


只看楼主 楼主 4楼 2019-01-14 10:46:47
以下是引用手机用户20180314F4VD88在2019-01-14 08:16:59的发言 >1楼:是不是在程度傣四进行跳转的那个offset和byte的比较无限循环了, 导致了cpu的错课,是不是要调整cpu的看门狗的时间?

不是看门狗的问题:

这个offset是一个地址指针,这个指针大于42就导致CPU出现寻址错误,因为超出了该DB的长度了 


但是这个offset是一个TEMP变量,在程序的一开始就直接使用了,没有做初始化,这个项目程序已经正常运行了10年,当时出现这个问题根本想不到是程序逻辑代码有问题,因为我在线备份的程序只修改了CPU的型号(因为老型号的容量已经接近96%无法正常运行了)上载的程序修改了CPU型号,然后又下载下去新的CPU,就出现CPU 停机了,根据诊断缓冲区提示说是编程错误引起的问题,要求下载OB121,下载OB121以后CPU可以正常运行,但是SF指示灯没有消失。


于是往下查,发现是FC909的offset这个地址指针超出了有效范围,地址给了一个不存在的地址,引起CPU进入停机状态,


大家认为上面这个程序是否有问题?



工业起重机防摇摆 QQ:404136820 AntiSwayControl
以下网友喜欢您的帖子:

  
至圣

经验值: 37446
发帖数: 5133
精华帖: 47
回复:今天让PLC玩了


只看楼主 楼主 5楼 2019-01-14 10:49:39
以下是引用pingchangxin在2019-01-14 10:17:31的发言 >3楼

可以看看CPU的诊断,报的错,如果是程序问题,会有提示的。

诊断缓冲区指向了FC909 检查才发现地址指针超出有效范围了。


在CPU进入RUN状态时 Offset不断的在做累加,累加值大于DB的有效长度时就STOP了


这个程序居然运行了10年


工业起重机防摇摆 QQ:404136820 AntiSwayControl
以下网友喜欢您的帖子:

  
侠圣

经验值: 3658
发帖数: 268
精华帖: 0
回复:今天让PLC玩了


只看楼主 6楼 2019-01-15 08:55:52

曾经发现指针超出以后,CPU没有停机,但是出现循环时间很长很长的问题


努力屯田中!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
今天让PLC玩了
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。