💡 点击下方蓝色的方块,可直接查看对应的子程序详情。
flowchart TD
classDef subProc fill:#e1f5fe,stroke:#0277bd,stroke-width:2px,cursor:pointer;
classDef logic fill:#f1f8e9,stroke:#558b2f;
classDef trap fill:#ffebee,stroke:#c62828,stroke-dasharray: 5 5;
M_Start((程序开始)) --> M_Init[初始化: 链接中断 & 计算标签坐标]
M_Init --> M_Loop{{"While TRUE 主循环"}}:::logic
%% 搬瓶
M_Loop --> M_WaitPZ[WaitDI diPZ]
M_WaitPZ --> M_Mode{{"判断模式 diMS"}}:::logic
M_Mode -- 顺时针 --> M_CW["调用 banPZ (顺)"]:::subProc
M_Mode -- 逆时针 --> M_CCW["调用 banPZ (逆)"]:::subProc
M_CW --> M_PulsePZ[发送完成脉冲]
M_CCW --> M_PulsePZ
%% 搬盖
M_PulsePZ --> M_WaitGZ[WaitDI diGZ]
M_WaitGZ --> M_CallGZ["调用 banGZ (搬盖)"]:::subProc
M_CallGZ --> M_PulseGZ[发送完成脉冲]
%% 搬标
M_PulseGZ --> M_WaitBQ[WaitDI diBQ]
M_WaitBQ --> M_CallBQ["调用 banBQ (搬标)"]:::subProc
M_CallBQ --> M_PulseBQ[发送完成脉冲]
M_PulseBQ --> M_Loop
%% 中断
M_Int((中断触发)) -.-> M_Trap[执行 TRAP fuwei: 复位]:::trap
%% 点击跳转
click M_CW clickHandler
click M_CCW clickHandler
click M_CallGZ clickHandler
click M_CallBQ clickHandler