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