复制代码- (******************************************************************************
- * 从自动包装切换到手动操作
- * 如果前面进行过“自动包装”,切换到“手动操作”时进行一次初始化
- *****************************************************************************)
- 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; (* 如果切换到“手动操作”,这条语句必然被执行 *)
-
- 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 空袋调试 按键事件处理
- * 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;
-
- (******************************************************************************
- * 拉膜皮带
- *
- * 伺服电机通过传动杆驱动拉膜皮带,拉膜气缸控制拉膜皮带:
- * 抱紧下料筒的包装膜
- * 松开下料筒的包装膜
- *****************************************************************************)
- 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 左移限位开关
- * Limit_Right 右移限位开关
- *****************************************************************************)
- 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;
|