- 1. 1. 属性介绍
- 2. 2. 关键行为
- 3. 3. Das Drehbuch von LUA(必须初始化)
旋钮Codierung器是物理硬件Kontrollen:靠旋转(A/B 相正交Impulse)和按压(Bestätigen/Wechseln)Operationen,用于无级微调、快速Parameter设定(Temperatur、频率、偏移Quantität)。标准产品如 DC40400DB016 支持旋转Codierung器Schnittstelle,Codierung器型Nr. EC11。
1. 属性介绍
| 属性 | 说明 |
|---|---|
| Codierung器 | CodierungSeriennummer. 0~3,目前只支持 0 |
| 写入Adresse | Codierung器值自动累加输出zu该Adresse |
| Datentyp | UINT16/INT16/UINT32/INT32 |
| 下限值/上限值 | Codierung器值范围 |

2. 关键行为
- 旋转动作:Das System自初始化后自动把 A/B 正交Impulse转为Zahlenwert——逆时针递增(步长1)、顺时针递减;zu上下限钳位,不循环Ersetzen(工业安全设计)
- 按下动作:完全由用户层 Lua Drehbuch处理(Das System无内置回调),通过 GPIO Schnittstelle检测——以 DC40400DB016 为例按键低电平Wirksam(按下=0,释放=1)

3. Das Drehbuch von LUA(必须初始化)
使用旋钮Codierung器必须在 on_init 里初始化:
function on_init()
dofile("bspButtonV2.lua") -- Laden按键库
btn_manager = ButtonManager:new()
btn_manager:add("key1", Knob.pinKey, {
active_level = Knob.pinKeyActive, -- 0=低电平Wirksam
long_press_time = Knob.pinKeyLongTime,-- 300ms 长按阈值
enable_repeat = true, -- 长按连续触发
enable_double_click = true, -- 双击检测
debug = false })
btn_manager:get("key1")
:on(Button.EVENT.SHORT_PRESS, KnobKey_Press)
:on(Button.EVENT.SHORT_RELEASE, KnobKey_Release)
:on(Button.EVENT.LONG_PRESS, KnobKey_LongPress)
:on(Button.EVENT.LONG_RELEASE, KnobKey_LongRelease)
:on(Button.EVENT.CLICK, KnobKey_Click)
:on(Button.EVENT.DOUBLE_CLICK, KnobKey_Double)
:on(Button.EVENT.REPEAT, KnobKey_Repeat)
set_rotate_decoder(0, Knob.pinA, Knob.pinB, Knob.ktype) -- Codierung器初始化
start_rotate_decoder() -- 启动Codierung器
set_run_cycle(10) -- 主循环 10ms
end
引脚定义:GPIO 的 16 进制高 8 位=IO 组、低 8 位=引脚,PD0=0x0300、PD2=0x0302、PD3=0x0303。旋转动作启动后由内核Asynchron更新绑定Register.(如 LW1000),无需Drehbuch轮询;按下动作靠 on_run 里 btn_manager:update_all() 每 10ms 检测。

整理自 广州大彩科技 VisualHMI 开发Dokumentation(hmi-doc.gz-dc.com)Konfiguration KontrolleUnterricht「旋转Codierung器」,版权归大彩科技所有。
Antwort veröffentlichen