回复:应用探讨——CPU循环的探讨

赵欣

官方工程师

  • 帖子

    381
  • 精华

    54
  • 被关注

    214

论坛等级:奇侠

注册时间:2006-07-07

普通 普通 如何晋级?

发布于 2012-12-06 09:42:32

110楼

quote:以下是引用小釉在2012-11-30 00:42:32的发言:
quote:以下是引用SAGITAR在2012-11-29 17:19:27的发言:
quote:以下是引用小釉在2012-11-28 19:52:47的发言:
quote:以下是引用凌飞翼在2012-11-17 10:44:59的发言:
当初因为编写“中值滤波库”我们讨论到循环耗时的问题,从而引发一场“缩短程序扫描周期的方法”讨论,大家集思广益,有了许多行之有效的“节约”扫描周期的点子:
缩短程序扫描周期的方法(共享讨论)

我认为:扫描周期具体耗时多少ms,如果不用来消除误差,就无需特别关注,但是,如果扫描周期大到了影响控制效果的程度,则不能不解决!
通过讨论,学习,将现有的常用库进行优化。从工程项目中应用的效果来看,如果把节约扫描周期的做法形成习惯,则会有意想不到的好处。
我们优化前的S7-200程序(还没采用中值滤波时)扫描周期都达到了100ms以上。经过仔细研究各段子程序代码、优化子程序调用策略,同样规模的工程,还增加了16路模拟量中值滤波,程序扫描周期也才仅10ms左右。这么大的差别,简直让我们欣喜若狂。把用于通讯的背景时间设为50%后,对上位机指令的响应速度极快,因此,新的项目中,大部分取消了原来为快速启停设备而配置的触摸屏。

这样改的依据是什么,如果增大了通信的背景时间,会不会造成了扫描周期的加长呢?

我想问一下你用的S7-400的PLC是吗?300、200PLC即使改了,理论上不会对上位机的通信速度产生影响!

400 和300应该没什么差别。
帮忙讲一下背景时间的概念

这个问题有些小复杂,400/300和上位机的通信的机制是不一样的,这首先从通信负荷20%说起,这个CPU属性的默认值,是给谁用的?也就说改了它是对哪种通信方式起作用?
据个例子先,如果300CPU和400CPU之间使用集成PB或PN口进行BSEND/BRECV通信,我们假设使用32K或64K的最大数据量通信,然后我们修改这个%到50%和10%最大或最小,我们看到发送同样多的数据的时间经历发生了变化,我们知道推送数据,例如32K到对方是需要花时间的,如果10%情况下的推送时间为30ms,那么在50%的情况下,推送时间则为5ms,这个数据我记不太请了,但大概就是这样的数量级,这两没有比例的概念。
如果使用PUT/GET,300作为服务器的话,且循环周期为90ms,假设。那么无论怎么修改%,和400的数据交换周期是90的倍数,这取决于有多少PUT/GET在使用。
两者最根本的原因在于第一个例子使用时间片或后一个例子使用CCP.
明白了吗?
读万卷书 行万里路
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。