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

Zane

版主 西门子1847工业学习平台

  • 帖子

    21372
  • 精华

    403
  • 被关注

    1504

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2012-11-19 17:48:18

55楼

quote:以下是引用n次看你的背影在2012-11-19 13:30:01的发言:
2、如何计算CPU的循环时间?
对总坛主提出的这个议题,我也进行了一些思考:
从上面的讨论中我们已经知道,循环时间(扫描周期)是指CPU执行六个步骤耗时的总和。我在想,难道循环时间只能从ONLINE模块信息、和OB1的临时变量中获得吗?显然,把CPU循环过程的每个步骤耗时统计出来相加得出循环时间是非常困难的。在用户程序中能计算出CPU的循环时间吗?于是进行了一番思考和尝试:

因为CPU在循环期间,每个周期进入用户程序OB1时,都会将当前操作系统的日期、时间戳写到它声明的临时变量里面,如果我们用户程序读取上一周期进入OB1的时间戳和进入本周期OB1的时间戳,然后用本周期的时间戳减去上周期的时间戳,不也就能得出上一周期的循环时间了吗?于是写了点测试代码,在CPU416里面执行测试了一下(注:是在真实CPU416环境里面测试)。测试发现,用户程序也能计算CPU的循环时间,结果和ONLINE模块信息、OB1的临时变量获得的循环时间是吻合的。测试代码和结果见参考贴图:




跑偏了。
Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54759条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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