西门子PLC1200/1500配方实例程序
在编程示例中,准备如下条件:
1. 配方数据块:这是一个用于存储所有配方记录的重要组成部分,位于装载存储器中。
2. 活动配方数据块:此数据块在工作存储器中存储了一个配方副本,其创建操作通过「添加新块」窗口进行。我们在此窗口中的「数据块」按钮被选择,同时从「类型」下拉菜单中选用了先前创建的「Beer_recipe」PLC数据类型。
在将配方从配方数据块移动到活动配方数据块时,涉及数据块值的置位。请注意,活动公式块在此实例中主要负责为「READ_DBL」指令提供目标数据并将数据源提供给「WRITE_DBL」指令。
接下来会展现一个「Active_Recipe」数据块的示例图。
背景数据块:针对「RecipeExport(“RecipeExport_DB”)」和「RecipeImport(“RecipeImport_DB”)」指令所使用的背景数据块(在将指令插入到程序中时通过自动化创建的),用于调控指令的执行,但它不在程序的逻辑控制范围内。
示例配方程序 包含以下关键部分:
程序段1:当「REQ」指令处于上升沿时触发,启动出口过程并将形成的CSV文件存储在CPU的配方文件夹中。这些CSV文件数据源自配方数据块。
程序段2:捕获从执行「RecipeExport」命令产生的「STATUS」输出,基于此指令在一次扫描周期内的有限有效时间。
程序段3:从「REQ」指令上升沿触发开始的导入过程。
程序段4:捕获「RecipeImport」执行的「STATUS」输出,关注指令仅在一扫描周期内的特定逻辑。
程序段5:执行「READ_DBL」指令,用于复制配方「Recipe_DB」的初始值,并将其结果值[1]转移至「Active_Recipe DB」的当前值(位于CPU的工作存储器中)。
程序段6:在运行期间,图形用户界面(HMI)设备可以修改「Active_Recipe」数据块中存储的成分值。经过后期执行「WRIT_DBL」指令可以存储改进后的配方数据。值得注意的是,程序的全部初始值在此示例中被用于配方「Recipe_DB」,结果值[1]会因此被「Active_Recipe」数据块中的当前值所替换,实现更新。