# 使用配方更改值

使用配方可同时更改或读取控制器上一组特定变量（配方定义）的配方值。

您可以在对象配方管理器中定义配方的基本设置，例如位置和格式。在此对象下插入一个或多个配方定义。配方定义包含所包含变量的一个或多个配方。 配方由特定的变量值组成。

您可以将配方保存到文件或直接从文件写入PLC。

可以通过MetaFacture开发界面，可视化元素或应用程序来加载配方。

### 在MetaFacture用户界面中使用配方​

MetaFacture开发界面提供用于生成配方以及在线模式下进行读/写的命令。

### 在应用程序中使用配方​

当应用程序处于运行时模式时，可以在用户程序和可视化元素中使用配方。

在用户程序中，可以使用库RecipeManagement中功能块RecipeManCommands的方法。在可视化中，您可以通过输入配置（可视化元素的内部命令）使用配方。

在初始化过程中，配方管理读取配方定义中定义的变量的值。此操作在应用程序的初始化阶段结束时进行。此时，将设置应用程序变量的所有初始值。执行此操作以正确初始化配方文件中的缺失值。

### 创建配方 ​

1.在设备树中选择应用程序对象。

2.单击工程 ➔ 添加对象 ➔ 配方管理器。
⇒MetaFacture将配方管理器添加到设备树中。

3.在设备树中选择配方管理器对象。

4.单击工程 ➔ 添加对象 ➔ 配方管理器。
⇒MetaFacture将配方定义添加到配方管理器下方。

5.双击对象打开配方定义的编辑器。

6.双击变量变量下面的空白字段。指定将要定义配方的变量的名称。输入助手可用于此目的：按钮。

7.单击配方 ➔ 添加一个新的配方然后输入新配方的名称。
⇒编辑器中将显示具有新配方名称的列。

8.在此字段中输入此配方的变量值。

9.根据需要插入其他字段。

10.为配方选择一个变量值，然后单击配方 ➔ 保存配方。选择一个位置和文件名。
⇒MetaFacture以配方管理器中定义的格式保存配方。

### 从文件加载配方​

要求：应用程序中提供了配方管理器。 在配方定义中，有一个带有变量值的myRec配方。 一个myRec.txt配方文件位于文件系统上，并包含该配方的条目。

配方文件示例：

PLC_PRG.bVar:=0
PLC_PRG.iVar:=2
PLC_PRG.dwVar:=35232
PLC_PRG.stVar:='first'
PLC_PRG.wstVar:='123443245'
1.双击设备树中的配方定义对象以打开表格编辑器，以定义各个配方。
⇒您会看到myRec列以及此配方的当前值。

2.在外部文本编辑器中编辑myRec.txt文件，并用其他要加载到MetaFacture中的配方定义中的值替换变量值。保存文件。

3.单击配方定义中的myRec列并右键单击以获取加载配方加载配方命令。
⇒当再次登录时，对话框提示会通知您可能需要执行在线更改。 通过加载配方来更改配方变量的当前值时，必须进行在线更改。

4.单击是关闭对话框并继续。从文件资源管理器中选择myRec.txt文件进行加载。
⇒配方定义中的配方值将根据文件中读取的值进行更新。

### 控制器上的配方管理； 内存使用情况​

当清除PLC中的配方管理时选项时，配方管理器和配方定义将不使用PLC上的任何内存。

如果选中此复选框，则将为配方管理器和所有配方定义生成代码，并且此代码存储在PLC中。所用内存的大小主要取决于配方的数量及其变量，以及变量的数据类型。 配方定义的字段是否填写也有影响。无法计算配方的内存使用量。它必须在需要的时候通过实验来确定。 下表仅提供一些指导原则。

带有MetaFacture Control Win V3控制器的MetaFacture V3 SP6的内存使用情况

| 代码大小（字节） | 数据大小（字节） | 总计（字节）
具有100个INT变量的配方定义 | 194406 | 79400 | 267352
具有200个INT变量的配方定义 | 238318 | 121284 | 459344
具有300个INT变量的配方定义 | 282230 | 163084 | 543856
带有100个BOOL变量的配方定义 | 192742 | 69884 | 343168
带有200个BOOL变量的配方定义 | 235446 | 101568 | 436872
带有300个BOOL变量的配方定义 | 278146 | 133284 | 510072
带有100个字符串变量的配方定义 | 203278 | 870084 | 1154000
带有100个字符串变量的配方定义 | 255570 | 1709784 | 2973296
带有100个字符串变量的配方定义 | 307886 | 2549484 | 2964112

### 从控制器加载配方值​

您可以将控制器上的配方值应用于项目中的配方定义，即使这些定义已在项目中进行了修改。

要求：在配方管理器中选择了PLC中的配方管理选项。

1.在项目中创建一个配方定义RecDef1，其中包含变量PLC_PRG.ivar和PLC_PRG.bvar。插入配方R1：PLC_PRG.ivar的值：33：对PLC_PRG.bvar的值：TRUE。

2.登录到控制器并下载应用程序。
⇒配方文件R1.RecDef1.txtrecipe保存到控制器的默认目录($PlcLogic$)。

3.注销然后将另一个变量PLC_PRG.dwvar添加到工程中的配方定义中。

4.通过将PLC_PRG.ivar的值从33改为34，在设备上编辑配方定义文件R1.RecDef1.txtrecipe。
此外，在设备上添加另一个配方R2。为此，请复制R1.RecDef1.txtrecipe并将其重命名为R2.RecDef1.txtrecipe。然后编辑此文件并更改配方值：PLC_PRG.ivar: 1, PLC_PRG.bvar: FALSE。
⇒现在设备上有两个配方R1和R2。在这个工程中，只有y R1，并且它还包含设备上除R1之外的其他值。

5.通过在线更改再次登录到控制器。

6.从上下文菜单中单击从设备上传配方。
⇒对话框提示通知您，下次登录时执行该命令可能会触发在线更改，并且运行系统上的配方将覆盖当前配方定义的配方。

7.确认您希望继续。⇒对话框提示通知您，设备上加载的PLC_PRG.dwvar的配方无法从控制器产生值。

8.确认您希望继续。⇒工程中配方定义的配方R1中的PLC_PRG.ivar的值更改为34。现在，配方定义中还列出了值为1和FALSE的配方R2。PLC_PRG.dwvar仍保留在配方定义中。