回复:【分享】分享下我是怎么样在FB里计时的

宁超

  • 帖子

    1009
  • 精华

    39
  • 被关注

    371

论坛等级:至圣

注册时间:2012-12-11

普通 普通 如何晋级?

发布于 2015-09-22 17:17:21

6楼

展开查看
以下是引用剑忠在2015-09-22 13:49:26的发言 >5楼

1、SAMPLE_T已是变量,所以即可就让他人使用默认初始值,也可随意改变,与使用CFC工具也就无关了。

2、其中提到了在OB1里调用也不合适,但似乎没有正面解答提问,没有对比分析出不同实现方法间的优劣性。。

以下是引用宁超在2015-09-22 11:24:19的发言 >4楼:因为没有使用CFC...

引用4楼详细内容:

因为没有使用CFC,所以不能使用S7_sampletime属性,在不同的OB里调用时需要填写SAMPLE_T不同的数值和使用不能MB1的bit位,而且OB1配合其它中断OB已经能将CPU性能调整到合适的位置,在不同的OB里调用,对OB的设置需要一定的经验,也是CFC一类的PCS的编程思想。

如果有后续的工程师不知道这个东西,不使用MB1在OB1里调用功能块就麻烦了。OB1的扫描周期不确定。因为其它工程师都习惯使用OB1。

图片中的ClockPulse FC500就是处理过了上升沿的,FC500处理后的MB2就是周期上升沿动作。

以下是引用剑忠在2015-09-22 11:14:39的发言 >3楼:1、除PID在OB35...

引用3楼详细内容:

1、除PID在OB35中调用外,这类FB块所有最终都是OB1调用,这应该不是个最佳OB调用方案!

2、如果将其放置在ms级OBxy块里调用,Clock Memory的Bit变量M1.1使用是否可以省去?

3、书写FB块的程序或代码,是否可以省去对Pulse上升沿的周期性判断比较?

这个问题跟程序都写在OB35一类中断组织块里和写在OB1+OB35(特定程序如PID等,OB1为主)有什么分别是一样的。

以前就有很多人讨论过了。各有各的说法,个人认为:

  1. 如果程序比较小或者中断时间设置太长,中断组织块里的程序执行完了,CPU就没事情做了,执行所谓优先级最低的OB90?等待下一次中断到来,相同时间内程序扫描次数肯定比OB1+OB35的方式扫描次数少,浪费了CPU资源。

    相反如果程序大或中断时间设置太小,中断组织块内的程序在设定的中断周期内执行不完就可能CPU报错。

  2. 合理的分配各个中断组织块的程序当然能承载更多更大的程序量,前提是要规划好,过程映像区更新,PID,重要的,不重要的,更新要求快的,响应可以慢的,这些自己可以慢慢调整,这些需要经验也花时间,OB1+OB35的方式对于不是很大的程序来说是最省心方便的,不需要调整也不需要设置。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54706条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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