• {{item.name}}
自动化系统 {{item.name}}
{{item2.name}}
更多
常问问题

在CPU31xC高速计数功能应用中,如何实现计数值的断电保持

star star star star star
5.0 分
  • 使用操作
  • 计数器
  • 变量
  • 掉电
  • 脚本
文档编号:F0713| 文档类型:常问问题| 发布时间:2024年01月24日
  • 0
  • 452
  • 1661
在CPU31xC高速计数功能的应用中,经常需要在CPU断电后保持当前计数值,以便在CPU重新上电后高速计数器可以从 保持的计数值继续计数。通过组态的方式不能直接实现计数值的断电保持功能(如果CPU断电后再上电,计数值会回到初始值,默认为“0”),需要通过编写用 户程序的方式来实现。 ......


在CPU31xC高速计数功能的应用中,经常需要在CPU断电后保持当前计数值,以便在CPU重新上电后高速计数器可以从 保持的计数值继续计数。通过组态的方式不能直接实现计数值的断电保持功能(如果CPU断电后再上电,计数值会回到初始值,默认为“0”),需要通过编写用 户程序的方式来实现。


1 基本原理
实现计数值的断电保持主要是应用高速计数器的写装载值功能。所谓的写装载值就是将装载值作为起始计数值预先赋值给计数器,当计数器重新启动后,计数器将从设定的装载值开始计数。
应用写装载值的功能,可以在CPU重新上电时将设置了断电保持功能的计数器值写回给计数器,这样计数器就可以从CPU断电之前的最后计数值开始计数了,也就实现了计数值的断电保持功能。
具体的程序实现原理如图1所示。


图 1

2 程序实现
有关CPU31xC高速计数功能的组态、编程与应用请参考《CPU31xC :工艺功能》手册或下载中心相关文档。文中涉及的具体组态和编程请参考附件里提供的例程(仅供应用中参考,不能直接用于实际的项目),这里不再详细说明。
根据图1的实现思路,计数值断电保持的程序实现步骤如下:

1、在OB1中调用系统功能块SFB47 COUNT,如图2。



图2

2、在OB1中将读出的计数值COUNTVAL(MD40) 保存到CPU的断电保持地址区MD10 (MD10 是断电保持存储区,M区的断电保持可以在CPU属性中设置)。
注意,如果直接将COUNTVAL给到了CPU的断电保持地址区,那么可以忽略此步。



图3

3、在OB100启动组织块中,编写程序将保存的保持地址区 (MD10) 的值作为装载值写给计数器的JOB_VAL(MD46)。



图4

4、在OB100中写入装载值的作业号JOB_ID(MW44) = B#16#02,并置位写作业标志位JOB_REQ(M20.1)。



图5

5、因为写作业功能需要多个周期才能完成,所以必须在OB1中通过判断写作业完成标志位JOB_DONE(M20.2)来将写作业标志位(M20.1)复位。
注意,这里必须通过判断写完成标志位来复位写作业标志位,同时要避免在写标志没有完成的情况下启动计数器的运行,这会造成计数值断电保持功能的失败。



图6

6、写装载值作业完成后,重新启动计数功能(重新打开软件门M20.0),可以看到计数值会从CPU断电之前保存的计数值开始继续计数。
注意:这时计数器的装载值已经被设置为了断电前的计数值,每次重新启动计数器后会自动将这个装载值作为初始计数值,所以如果不想再使用这个装载值,则需要重新通过写装载值作业将装载值重新赋值。


3 实验环境
本文的截图和例程的软硬件环境如下:

  • 软件:STEP7 V5.5 SP2
  • 硬件:CPU314-2PN/DP (6ES7314-6EH04-0AB0) V3.3

关键词
CPU31xC,高速计数,断电保持,编程

相关附件下载 ( 808 KB )

安全性信息


您可以前往全球资源库查看此文档

剩余80%未阅读,请登录后下载/查看文档

  • 评论
更多
  • 分享

    扫码分享

提示
您即将前往“全球技术资源库”。
“全球技术资源库”的用户名与本地支持中心(下载中心、技术论坛、找答案、1847工业学习平台)的用户名不通用。如果需要在全球技术资源库下载文档,您需要重新登录或注册。
确定

0元领课点我

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。