本文讨论什么是配方以及配方管理,如何使用CODESYS编程进行配方管理。
配方及配方管理
对于一个十字路口的交通信号灯控制系统,信号灯的开启时间需要根据时段不同而设置不同值,早晚高峰、平时周末、特殊时间点都需要不同的开启时间。
对于控制系统的PLC程序来说,如果需要在不同时间段通过更改程序来修改信号灯的开启时间,显然是非常麻烦的,如果能将信号灯的开启时间保存成配方的形式,只是在相应的时间段加载对应的开启时间,就会大大减少工作量。
这种将一定条件下很少变化的变量整理成一种专门的内容就是配方(Recipe),而对配方进行设置、修改、保存、加载等操作就是配方管理(Recipe Management),PLC程序在不同的时间段加载等操作就是通过编程来实现配方管理。
基于CODESYS配方管理
配方管理器
鼠标右击设备的“Application”节点,弹出“添加对象”选择列表,然后选择“配方管理”选项,就会在“Application”节点下增加“配方管理”项。
配方管理器设置
在添加了配方管理器后,双击“配方管理器”可以进行关于“存储”和“常规”的一些基本设置:
- 存储:包括存储类型,文件路径、文件扩展名、配方变量限制;
- 常规:保存配方、加载配方、写配方的一些设置或限制。
配方使用
右击“配方管理器”,添加对象,选择配方,创建名称为“RecDef1”的配方:在配方中输入几个变量,并且添加名称、最小最大值等。
在应用程序中加载Recipe_Management.libray库,通过功能块 RecipeManCommands 的方法,可处理配方(创建、读取、写入、保存、加载、删除)。
Recipe_Management配方管理库包含了若干功能块,以下是该库所包含的常用功能块及其说明:
功能块 | 说明 |
---|---|
ReadRecipe | 从配方中读出变量值 |
WriteRecipe | 向配方中写入变量 |
SaveRecipe | 将配方存入默认配方文件中 |
LoadRecipe | 从默认配方文件加载配方 |
CreateRecipe | 创建新配方 |
DeleteRecipe | 删除配方定义中的已有配方 |