配方:一套产品参数(温度、时间、转速…)打包成一条记录,切换产品时一键加载,免得逐个手动改。最多 10 个配方、每条 1000 组、成分 2000 个,覆盖绝大多数产线换型场景。
1. 配方设置
工程 → 配方设置,核心字段:
| 字段 | 说明 |
|---|---|
| 配方名称 | 备注,可不填 |
| 配方成分数 | 参数个数,最大 2000 |
| 数据类型 | UINT16/INT16/UINT32/INT32/UINT64/INT64/FLOAT/DOUBLE |
| 配方记录数 | 记录条数,最大 1000 |
| 配方记录名称 | 关联标签,分号分隔,如「配方1;配方2;配方3」 |
| 名称长度 | N 字节每配方占用 |
| 配方索引地址 | 控制地址,索引值后面紧跟各成分数据 |
| 配方写 PLC 地址 | 目标设备起始地址,索引变化时连续下发 |
| 配方控制地址 | 写 1=写入PLC / 2=修改并保存 / 3=保存文件 / 4=删除选中行 / 5=修改不保存复位 |
2. 应用:配方选择与切换
文本控件绑定「配方索引地址 + 1」显示名称(GBK 编码、高低字节互换);两个字设置按钮做索引递增/递减(步长1、循环、0~5 范围)。切换索引时底层自动从配方文件加载对应数据刷新控件。
3. 边改边存
修改参数后写「配方控制地址=2」保存。LUA 里判断成分寄存器触发即自动存:
function on_update(slave,vtype,addr)
if vtype == VT_LW then
if addr >= 0x1201 and addr <= 0x1206 then -- 配方数据寄存器
set_uint16(VT_LW, 0x1300, 2) -- 配方控制地址写2
update_system() -- 立刻写入系统参数
end
end
end
4. 下发 PLC 与文件显示
写「配方控制地址=1」把 LW1201~1206 下发到 PLC 的 LW1400~1405。配方文件也能直接进数据记录控件表格显示、编辑(数据源选「配方数据」、索引选对应配方)。
配方三个易错点:①成分寄存器是从「索引地址+1」开始连续排的,不是从索引地址本身;②想在 LUA 里边改边存,记地址区间判断;③PLC 地址不连续时不能靠自动下发,得 LUA 读配方值单独写。
整理自 广州大彩科技 VisualHMI 开发文档(hmi-doc.gz-dc.com)其他技术教程「配方应用」,版权归大彩科技所有。
发表回复