配方:一套产品매개변수(온도、时间、转速…)打包成一条记录,전환产品时一键불러오기,免得逐个手动改。最多 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)其他기술튜토리얼「配方적용」,版权归大彩科技所有。
답글 작성