復制代碼- (******************************************************************************
- * 從自動包裝切換到手動操作
- * 如果前面進行過“自動包裝”,切換到“手動操作”時進行一次初始化
- *****************************************************************************)
- IF HmiKey_ManualOP THEN
-
- IF( bMode_Manual = FALSE ) THEN
-
- bMode_Manual := TRUE;
- bMode_Auto := FALSE;
- HmiKey_AutoPack := FALSE;
- HmiKey_FillPack := FALSE;
- HmiKey_EmptyBagTest := FALSE;
- HmiKey_FillBagOne := FALSE;
-
- ZRST( TRUE, Y001, Y004 );
- ZRST( TRUE, Y006, Y007 );
- ZRST( TRUE, Y010, Y011 );
- ZRST( TRUE, Y013, Y017 );
- ZRST( TRUE, Y020, Y027 );
-
- Tcnt_10[ IDX_DOWN_FILL_DLY ].reset := TRUE;
- Tcnt_10[ IDX_DOWN_FILL ].reset := TRUE;
- Tcnt_10[ IDX_PULL_FILM_DLY ].reset := TRUE;
- Tcnt_10[ IDX_VERT_SEAL_DLY ].reset := TRUE;
- Tcnt_10[ IDX_VERT_SEAL ].reset := TRUE;
-
- Tcnt_10[ IDX_KNURL_DLY ].reset := TRUE;
- Tcnt_10[ IDX_KNURL ].reset := TRUE;
- Tcnt_10[ IDX_VACUUM_BOX_CLOSE_DLY ].reset := TRUE;
- Tcnt_10[ IDX_BAG_FOLD_DLY ].reset := TRUE;
- Tcnt_10[ IDX_BAG_FOLD ].reset := TRUE;
-
- Tcnt_10[ IDX_BAG_CUT_DLY ].reset := TRUE;
- Tcnt_10[ IDX_BAG_CUT ].reset := TRUE;
- Tcnt_10[ IDX_VACUUMIZE ].reset := TRUE;
- Tcnt_10[ IDX_HEAT_SEAL ].reset := TRUE;
- Tcnt_10[ IDX_SEAL_KEEP ].reset := TRUE;
- Tcnt_10[ IDX_SEAL_COOL ].reset := TRUE;
-
- END_IF;
-
- ELSE
- RST( TRUE, bMode_Manual );
-
- END_IF;
- (******************************************************************************
- * 從手動操作切換到自動包裝
- * 如果前面進行過“手動操作”,切換到“自動包裝”時進行一次初始化
- *****************************************************************************)
- IF HmiKey_AutoPack THEN
-
- IF( bMode_Auto = FALSE ) THEN (* 初始化 *)
-
- bMode_Auto := TRUE;
- bMode_Manual := FALSE;
- HmiKey_ManualOP := FALSE;
- HmiKey_Knurling := FALSE;
-
- ZRST( TRUE, Y001, Y004 );
- ZRST( TRUE, Y006, Y007 );
- ZRST( TRUE, Y010, Y011 );
- ZRST( TRUE, Y013, Y017 );
- ZRST( TRUE, Y020, Y027 );
-
- Tcnt_10[ IDX_DOWN_FILL_DLY ].reset := TRUE;
- Tcnt_10[ IDX_DOWN_FILL ].reset := TRUE;
- Tcnt_10[ IDX_PULL_FILM_DLY ].reset := TRUE;
- Tcnt_10[ IDX_VERT_SEAL_DLY ].reset := TRUE;
- Tcnt_10[ IDX_VERT_SEAL ].reset := TRUE;
-
- Tcnt_10[ IDX_KNURL_DLY ].reset := TRUE;
- Tcnt_10[ IDX_KNURL ].reset := TRUE;
- Tcnt_10[ IDX_VACUUM_BOX_CLOSE_DLY ].reset := TRUE;
- Tcnt_10[ IDX_BAG_FOLD_DLY ].reset := TRUE;
- Tcnt_10[ IDX_BAG_FOLD ].reset := TRUE;
-
- Tcnt_10[ IDX_BAG_CUT_DLY ].reset := TRUE;
- Tcnt_10[ IDX_BAG_CUT ].reset := TRUE;
- Tcnt_10[ IDX_VACUUMIZE ].reset := TRUE;
- Tcnt_10[ IDX_HEAT_SEAL ].reset := TRUE;
- Tcnt_10[ IDX_SEAL_KEEP ].reset := TRUE;
- Tcnt_10[ IDX_SEAL_COOL ].reset := TRUE;
-
- END_IF;
-
- ELSE
- bMode_Auto := FALSE; (* 如果切換到“手動操作”,這條語句必然被執(zhí)行 *)
-
- END_IF;
- (******************************************************************************
- * brief 按鍵掃描與互鎖
- * note
- *****************************************************************************)
- HmiKey_Scan_InterLock();
- (******************************************************************************
- * brief 自動包裝(填充包裝)按鍵事件處理
- * note
- *****************************************************************************)
- (* 按鍵生效,下降沿 *)
- IF( LDP( TRUE, KeyID_FillPack ) AND ( bY0_out_watch = FALSE ) ) THEN
- PackingFlow := FLOW_STANDBY;
- END_IF;
- (* 按鍵生效,下降沿 *)
- IF( LDF( TRUE, KeyID_FillPack ) ) THEN
- PackingFlow := FLOW_END;
- END_IF;
- (******************************************************************************
- * brief 空袋調(diào)試 按鍵事件處理
- * note
- *****************************************************************************)
-
- (* 按鍵生效,上升沿 *)
- IF( LDP( TRUE, KeyID_EmptyBagTest ) AND ( bY0_out_watch = FALSE ) ) THEN
- PackingFlow := FLOW_STANDBY;
- END_IF;
- (* 按鍵生效,下降沿 *)
- IF( LDF( TRUE, KeyID_EmptyBagTest ) ) THEN
- PackingFlow := FLOW_END;
- END_IF;
- (******************************************************************************
- * brief 制袋一個 按鍵事件處理
- * note
- *****************************************************************************)
-
- (* 按鍵生效,下降沿 *)
- IF( LDP( TRUE, KeyID_FillBagOne ) AND ( bY0_out_watch = FALSE ) ) THEN
- PackingFlow := FLOW_STANDBY;
- END_IF;
- (* 按鍵生效,下降沿 *)
- IF( LDF( TRUE, KeyID_FillBagOne ) ) THEN
- PackingFlow := FLOW_END;
- END_IF;
-
- (******************************************************************************
- * 拉膜皮帶
- *
- * 伺服電機通過傳動桿驅(qū)動拉膜皮帶,拉膜氣缸控制拉膜皮帶:
- * 抱緊下料筒的包裝膜
- * 松開下料筒的包裝膜
- *****************************************************************************)
- IF( bMode_Auto ) THEN
-
- IF( HmiKey_BeltFlimPull ) THEN
-
- SET( TRUE, Y_BeltPullFilm_cylinder );
- ELSE
- RST( TRUE, Y_BeltPullFilm_cylinder );
- END_IF;
-
- END_IF;
- (******************************************************************************
- * 真空泵
- *
- *****************************************************************************)
- IF( bMode_Auto ) THEN
-
- IF( HmiKey_VacuumPump ) THEN
-
- SET( TRUE, Y_VacuumPump_SSR );
- ELSE
- RST( TRUE,Y_VacuumPump_SSR );
- END_IF;
-
- END_IF;
-
- (******************************************************************************
- * 跑遍糾正
- *
- * HmiPB_MoveLeft HMI“自動包裝”界面“跑偏糾正”左移按鈕
- * HmiPB_MoveRight HMI“自動包裝”界面“跑偏糾正”右移按鈕
- * Limit_Left 左移限位開關(guān)
- * Limit_Right 右移限位開關(guān)
- *****************************************************************************)
- IF( HmiKey_MoveLeft AND ( NOT ix_PackFilm_Limit_L ) ) THEN
-
- SET( TRUE, Y_MoveLeft_SSR );
- ELSE
- RST( TRUE, Y_MoveLeft_SSR );
- END_IF;
- IF( HmiKey_MoveRight AND ( NOT ix_PackFilm_Limit_R ) )THEN
-
- SET( TRUE, Y_MoveRight_SSR );
- ELSE
- RST( TRUE, Y_MoveRight_SSR );
- END_IF;
|