技术论坛

写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop

作者 主题
游民

经验值: 92
发帖数: 21
精华帖: 0
主题:【求助】写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 楼主 2021-04-06 11:33:45

这个是故障信息1:

由于存在对同一组织块的多个请求以及因存在较高优先级的请求而导致块的延时执行,块请求无法再存储在 CPU 的内部缓冲区中。后续请求只能进行计数统计。与因相同或较高优先级块运行而导致延时的块运行时间相比,该块的调用时间明显更短。

解决方法:

检查程序运行时间,以及上一次处理请求后已执行或仍等待处理的块调用周期时间。

故障信息2:

请求的组织块触发了看门狗程序的执行。已发出但未完全处理的请求数量已达到组态的警告限值。

可能的原因:该块的调用周期可能小于该块的程序运行时间,这一时间因仍等待处理较高优先级的块运行而延长。

请检查诊断缓冲区条目中指示的错误响应。具体错误响应,取决于 OB 80 的可用性。

解决方法:

检查该程序的运行时间以及自上一次处理请求后已处理的块调用周期或仍在等待处理块的调用周期。

 

有没有大神指点下


 
以下网友喜欢您的帖子:

  
重要声明:

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

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

游民

经验值: 92
发帖数: 21
精华帖: 0
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 楼主 1楼 2021-04-06 11:37:58

有时也报这个:

CPU 临时错误:OB 30 事件缓冲区溢出

缓冲区大小:1 个事件

优先级 8 

 将继续执行功能(系统响应)


 OP70 / OP70 

  



 
以下网友喜欢您的帖子:

  
侠圣

经验值: 4243
发帖数: 583
精华帖: 3
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 2楼 2021-04-06 11:49:17

你用的是哪一款PLC,用户程序的扫描时间是多少?为什么定义1ms的定时中断?中断程序段执行需要多长时间?

PLC是单线程的,当前只能处理一个事务,并且切换也要占用系统资源,软件构架要合理。


 
以下网友喜欢您的帖子:

  
游民

经验值: 92
发帖数: 21
精华帖: 0
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 楼主 3楼 2021-04-06 13:02:01

用的是1215C,PLC扫描时间大概是15ms左右,使用1ms的定时中断,是因为中断程序为手写的位置PID,整个调节时间要求小于65ms。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 4243
发帖数: 583
精华帖: 3
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 4楼 2021-04-06 13:13:08

位置精度要求有哪么高么,程序是运行不起来的,整个PLC资源处理中断都不够。


 
以下网友喜欢您的帖子:

  
游民

经验值: 92
发帖数: 21
精华帖: 0
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 楼主 5楼 2021-04-06 13:17:30

这个是客户的参数要求,一个阀门开度。客户用的三菱的PLC可以这样搞,我这边用西门子的准备按照这个模式来,结果出了这个问题。


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1375
发帖数: 85
精华帖: 2
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 7楼 2021-04-07 10:09:26

估计1200光处理这个1MS中断都处理不过来,人才!


 
以下网友喜欢您的帖子:

  
至圣

经验值: 43587
发帖数: 15780
精华帖: 61
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 8楼 2021-04-07 16:02:24

换1500系列中1515或者以上的plc来做。


活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 9楼 2021-04-07 17:24:27
日系、台系的PLC内部有专门的处理模块的(浮点运算单元、PID单元、运动处理单元、各种通讯协议处理单元),他们肯定可以这么任性了。
西门子的一切都靠CPU运算处理,在多任务处理上肯定没任何可比性了。就像单核CPU虽然比多核CPU的任一核频率都要高效率都要强,但是人家多核协同分分钟秒单核到怀疑人生。
 
以下网友喜欢您的帖子:

  
新手

经验值: 41
发帖数: 1
精华帖: 0
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 10楼 2021-10-27 23:49:55

最后怎么解决的 ,我也想在1毫秒之内做循环扫描 

方便告诉下  微信 15042375181


 
以下网友喜欢您的帖子:

  
至圣

经验值: 127331
发帖数: 22001
精华帖: 824
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 11楼 2021-10-28 00:04:28
以下是引用兰天野在2021-10-27 23:49:55的发言 >10楼

最后怎么解决的 ,我也想在1毫秒之内做循环扫描 

方便告诉下  微信 15042375181

别问了,

1200肯定会有问题的。1200/1500是采用时间片的方式同时处理程序和通讯。中断会导致程序扫描周期大大加长。

只有特别简单程序量,仅循环中断才可能。

比如:使用1211C,(所有1200处理速度是一样的)非常少的程序量。

仔细调节通讯负载率。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
侠圣

经验值: 3032
发帖数: 234
精华帖: 3
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 12楼 2021-10-28 08:14:21

减少中断程序执行周期试试看



 
以下网友喜欢您的帖子:

  
至圣

经验值: 13020
发帖数: 1815
精华帖: 22
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 13楼 2021-10-28 10:33:24

尽量优化下时序吧,在CPU以及内存等性能过剩的时代,时序最短,空间最小的代码依然很有价值.

1200的绝对可以在1ms下干很多事的.但尺有所长,寸有所短.用擅长的工具做擅长的事,如果想在这个时序做很多事就用板卡或者更换其它选项.


 
以下网友喜欢您的帖子:

  
至圣

经验值: 13632
发帖数: 2834
精华帖: 32
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 14楼 2021-10-28 15:26:12

你先试试10ms行不行,如果行,再想其他办法吧。本胖认为那个PID完全没必要使用1ms的周期。不如介绍一下PID控制啥东东,大伙再帮你想个办法。


国人当自强 共同努力 抵制日货
以下网友喜欢您的帖子:

  
侠客

经验值: 695
发帖数: 93
精华帖: 0
回复:写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop


只看楼主 15楼 2021-10-29 09:28:41
重点是中断程序内的程序执行完毕要多久,会不会超过1ms或者很接近1ms,导致执行其他程序的时间不足而触发看门狗
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
写了一个循环中断,定时1ms执行一次。但一执行就报故障,有时PLC都能变为stop
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。