如何使用 “Read Back” 功能保持并恢复块的输出值?

描述:
缺省情况下 "Read Back..." 功能并不回读块的任何输出管脚。该条目显示了如何根据 "COUNT_P" (FB36: 计数器)创建一个新的块,该块除了 拥有"FB36" 本身的功能,还能够读取 AS 中输出管脚 "V" 的值。因此需要在新块中声明一个额外的 "IN_OUT" 类型的"V_TMP"变量。n

需求:
已经使用 "PCS 7 Wizard" 创建了一个项目。

No. 步骤
1 创建一个新的 CFC
步骤1 和 2 为了在处理 SCL 源文件时节约时间 (如果您想立即编程,那么必须自己手工声明完整的管脚)。 n

  • 在 "Component view" 下切换到主数据库的 "Charts" 文件夹,创建一个新的 CFC chart。n
  • 从 PCS 7 库中拖出 "COUNT_P" 块到这个 chart 中。n
  • 打开该块的属性设置输出 "QERR" 为可见。n
  • 根据"COUNT_P" 功能块的管脚,在CFC中创建相应的管脚。在条目: 29237685 中描述了这一过程。n
  • 在 "IN_OUT" 接口中创建 "V_TMP" 管脚。n
  • CFC 中相应的管脚和 "COUNT_P" 的所有管脚连接。注意"V_TMP" 管脚空出来不连接。

如何使用 "Read Back" 功能保持并恢复块的输出值?
Fig. 01

2创建块 n

  • 使用 "Chart > Compile > Chart as block type..." 将 CFC chart 编译成块类型 (block type)。n
  • 选择一个并没有被使用的 FB 块号。缺省情况下,从 501 开始的 FB 号保留用于用户自己创建的块。因为新的块构建在 "FB36" 之上,所以我们建议块号为 "FB636"。按照下图填写其它的选项。n
  • 点击 "OK" 开始编译。您可以忽略编译后日志中的警告并关闭日志。

如何使用 "Read Back" 功能保持并恢复块的输出值?
Fig. 02n

注意:
这个 CFC 现在已经没用,你可以删除它。新创建的块 "COUNTNEW" (FB636) 现在和原来的块拥有相同的功能。

3编辑 SCL源文件

  • 切换到主数据中的 Sources 文件夹打开 SCL源文件 "@FB636".
  • 你可以不必修改程序的声明部分。
  • 使用如下的代码替换掉 "BEGIN;"和 "END_FUNCTION_BLOCK" 之间的代码:

如何使用 "Read Back" 功能保持并恢复块的输出值?
Fig. 03

  • 保存并编译 SCL 源文件。
  • 点击 "Yes" 确认消息 "Do you want to overwrite the block?"。

您可以下载完整的 SCL 程序:

如何使用 "Read Back" 功能保持并恢复块的输出值? FB636_SCL.zip ( 895 bytes )

4结果
现在您可以在您的控制程序中使用这个新块。不同于 "COUNT_P",这个块具有如下的行为:

  • 在 AS 由 STOP 切换到 RUN 状态时保持块的输出值
    如何使用 "Read Back" 功能保持并恢复块的输出值?
    Fig. 04
  • 回读(Read Back)并完全编译完整下载程序
    如何使用 "Read Back" 功能保持并恢复块的输出值?
    Fig. 05

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc335864.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论