(*-----------------------------------------------------------/ DFB CYCLE D'ENVO
(*-----------------------------------------------------------/ DFB CYCLE D'ENVOI \--------------------------------------------------------------*) (*------------------------------------------------------------------------------------------------------------------------------------ ----------*) (* Date Version Auteur Commentaire (* 26/01/2020 1.0 SDE CY002-ENVOI (*------------------------------------------------------------------------------------------------------------------------------------ ----------*) (*------------------------------------------------------------/ Initialisations \---------------------------------------------------------------*) (*------------------------------------------------------------------------------------------------------------------------------------ ----------*) (* Initialisation *) IF (NOT Cmd_Start AND NOT Cmd_End) OR InPH.PH_Num = 0 THEN InOut_CY002_Etape := 0; Cmd_Start := False; Cmd_End := False; InPH.PH_Num := 0; InPH.PH_Etat := 0; InOut_Memo_End_Dosage := False; InPRM.Choix_Rejet := False; InPRM.Select_Envoi := False; InPRM.Select_Retour := False; InPRM.Tps_PousseAller := 0; InPRM.Tps_PousseRetour := 0; InPRM.Tps_CtrlDebit := 0; InPRM.Tps_AvntCtrlDebit := 0; InPRM.Tps_MiseEnCharge := 0; InPRM.Tps_MiseEnDecharge := 0; InPRM.SP_PPE_EnCircul := 0.0; InPRM.SP_PPE_EnEnvoi := 0.0; InPRM.Niv_Start_PPE := 0.0; InPRM.Niv_Stop_PPE := 0.0; InPRM.Debit_Mini := 0.0; InPRM.Debit_Maxi := 0.0; InPRM.DDE_Comptage := False; InPRM.DDE_Echantillon := False; END_IF; (* Recopie pour utilisation dans les phases *) OutCTRL_PPE_Retour := InCTRL_PPE_Retour; (* Phase maître pas en service *) IF InPH.PH_Etat <> 2 AND InPH.PH_Etat <> 13 THEN IF InOut_CY002_Etape = 7 AND Tps_Cycle < InPRM.Tps_CtrlDebit THEN Tps_Cycle := InPRM.Tps_CtrlDebit; OutDEF_CtrlDebit := False; END_IF; OutDDE_Inc_Comptage := False; OutDDE_Raz_Comptage := False; OutDDE_PV_Aspiration := False; OutDDE_PV_Circulation := False; OutDDE_PV_Echantillon := False; OutDDE_PV_Envoi := False; OutDDE_PV_Effluents := False; OutDDE_PV_Fosse := False; OutDDE_PV_Retour := False; OutDDE_PPE_Envoi := False; OutDDE_PPE_Retour := False; RETURN; END_IF; CASE InOut_CY002_Etape OF 000: (*-------- ETAPE 000 : ETAPE INITIALE ------------*) (* Activation *) IF NOT FM_Etape THEN Cmd_End := False; OutDEF_CtrlDebit := False; Memo_DDE_PPE_ENVOI := False; INFO_MiseEnCharge := False; INFO_ControleDebit := False; INFO_CirculationObjet := False; INFO_MiseEnDecharge := False; FM_Etape := True; END_IF; (* Action *) (* Transition 000 -> 001 *) IF Cmd_Start THEN InOut_CY002_Etape := 1; FM_Etape := False; END_IF; 001: (*-------- ETAPE 001 : OUVERTURE CIRCUIT ---------*) (* Activation *) IF NOT FM_Etape THEN Tps_Cycle := 10; FM_Etape := True; END_IF; (* Action *) IF In_F_Seconde AND Tps_Cycle > 0 THEN Tps_Cycle := Tps_Cycle - 1; END_IF; OutDDE_PV_Aspiration := True; OutDDE_PV_Circulation := True; OutDDE_PV_Envoi := False; OutDDE_PV_Effluents := False; OutDDE_PV_Fosse := False; OutDDE_PV_Retour := False; OutDDE_PPE_Envoi := False; OutDDE_PPE_Retour := False; (* Transition 001 -> 002 *) IF Tps_Cycle <= 0 AND InCrO_PV_Aspiration AND InCrO_PV_Circulation THEN InOut_CY002_Etape := 2; FM_Etape := False; END_IF; 002: (*-------- ETAPE 002 : RECIRCULATION ----------*) (* Activation *) IF NOT FM_Etape THEN Tps_Cycle := 15; FM_Etape := True; END_IF; (* Action *) IF In_F_Seconde AND Tps_Cycle > 0 AND InCrM_PPE_Envoi THEN Tps_Cycle := Tps_Cycle - 1; END_IF; OutDDE_PV_Aspiration := True; OutDDE_PV_Circulation := True; OutDDE_PPE_Envoi := InCrO_PV_Aspiration AND InCrO_PV_Circulation; OutSP_PPE_Envoi := InPRM.SP_PPE_EnCircul; OutDDE_PPE_Retour := False; OutDDE_PV_Envoi := False; OutDDE_PV_Effluents := False; OutDDE_PV_Fosse := False; OutDDE_PV_Retour := False; (* Transition 002 -> 003 *) IF Tps_Cycle <= 0 THEN InOut_CY002_Etape := 3; FM_Etape := False; END_IF; 003: (*-------- ETAPE 003 : ATTENTE BASCULEMENT --*) (* Activation *) IF NOT FM_Etape THEN FM_Etape := True; END_IF; (* Action *) OutDDE_PV_Aspiration := True; OutDDE_PV_Circulation := True; OutDDE_PV_Envoi := False; OutDDE_PV_Effluents := False; OutDDE_PV_Fosse := False; OutDDE_PV_Retour := False; OutDDE_PPE_Envoi := InCrO_PV_Aspiration AND InCrO_PV_Circulation; OutSP_PPE_Envoi := InPRM.SP_PPE_EnCircul; OutDDE_PPE_Retour := False; (* Transition 003 -> 004 *) IF NOT InPRM.Select_Envoi AND NOT InDDE_SuspensionEnvoi THEN InOut_CY002_Etape := 4; FM_Etape := False; END_IF; 004: (*-------- ETAPE 004 : BASCULEMENT ----------*) (* Activation *) IF NOT FM_Etape THEN Tps_Cycle := 5; FM_Etape := True; END_IF; (* Action *) IF In_F_Seconde AND Tps_Cycle > 0 THEN Tps_Cycle := Tps_Cycle - 1; END_IF; OutDDE_PV_Aspiration := True; OutDDE_PV_Circulation := True; OutDDE_PV_Envoi := NOT InDDE_SuspensionEnvoi; (* Gestion de la vanne de retour *) IF InPRM.Select_Retour AND NOT InPRM.Choix_Rejet THEN OutDDE_PV_Fosse := True; OutDDE_PV_Effluents := False; OutDDE_PV_Retour := False; ELSIF InPRM.Select_Retour AND InPRM.Choix_Rejet THEN OutDDE_PV_Fosse := False; OutDDE_PV_Effluents := True; OutDDE_PV_Retour := False; ELSE OutDDE_PV_Fosse := False; OutDDE_PV_Effluents := False; OutDDE_PV_Retour := True; END_IF; (* Gestion de la pompe envoi *) OutDDE_PPE_Envoi := (InCrO_PV_Envoi OR InCrO_PV_Circulation) AND NOT InDDE_SuspensionEnvoi AND InCrO_PV_Aspiration; Memo_DDE_PPE_ENVOI := True; OutSP_PPE_Envoi := InPRM.SP_PPE_EnCircul; OutDDE_PPE_Retour := False; (* Transition 004 -> 005 *) IF Tps_Cycle <= 0 AND (InCrO_PV_Circulation OR InCrO_PV_Envoi) AND NOT InDDE_SuspensionEnvoi THEN InOut_CY002_Etape := 5; FM_Etape := False; END_IF; 005: (*-------- ETAPE 005 : MISE EN CHARGE DEBITMETRE --*) (* Activation *) IF NOT FM_Etape THEN Tps_Cycle := 20; OutDDE_Raz_Comptage := True; FM_Etape := True; END_IF; (* Action *) IF In_F_Seconde AND Tps_Cycle > 0 AND InCrM_PPE_Envoi AND InCrO_PV_Envoi THEN Tps_Cycle := Tps_Cycle - 1; END_IF; OutDDE_PV_Aspiration := True; IF InPRM.Select_Envoi THEN Tps_Bascul_CuveObjet := 3; IF In_F_Seconde AND Tps_Bascul_ObjetCuve > 0 Then Tps_Bascul_ObjetCuve := Tps_Bascul_ObjetCuve - 1; END_IF; OutDDE_PV_Envoi := Tps_Bascul_ObjetCuve > 0; OutDDE_PV_Circulation := True; OutSP_PPE_Envoi := InPRM.SP_PPE_EnCircul; ELSE Tps_Bascul_ObjetCuve := 3; IF In_F_Seconde AND Tps_Bascul_CuveObjet > 0 Then Tps_Bascul_CuveObjet := Tps_Bascul_CuveObjet - 1; END_IF; OutDDE_PV_Envoi := NOT InDDE_SuspensionEnvoi AND Memo_DDE_PPE_ENVOI; OutDDE_PV_Circulation := Tps_Bascul_CuveObjet > 0; OutSP_PPE_Envoi := InPRM.SP_PPE_EnEnvoi; END_IF; (* Gestion de la vanne de retour *) IF InPRM.Select_Retour AND NOT InPRM.Choix_Rejet THEN OutDDE_PV_Fosse := True; OutDDE_PV_Effluents := False; OutDDE_PV_Retour := False; ELSIF InPRM.Select_Retour AND InPRM.Choix_Rejet THEN OutDDE_PV_Fosse := False; OutDDE_PV_Effluents := True; OutDDE_PV_Retour := False; ELSE OutDDE_PV_Fosse := False; OutDDE_PV_Effluents := False; OutDDE_PV_Retour := True; END_IF; (* Gestion pompes *) IF In_NEPxxCMW01 >= InPRM.Niv_Start_PPE THEN Memo_DDE_PPE_ENVOI := True; END_IF; IF In_NEPxxCMW01 < InPRM.Niv_Stop_PPE THEN Memo_DDE_PPE_ENVOI := False; END_IF; OutDDE_PPE_Envoi := Memo_DDE_PPE_ENVOI AND (InCrO_PV_Envoi OR InCrO_PV_Circulation) AND NOT InDDE_SuspensionEnvoi AND InCrO_PV_Aspiration; OutDDE_PPE_Retour := False; (* Transition 005 -> 006 *) IF Tps_Cycle <= 0 AND In_NEPxxCMQ01 = 0.0 THEN InOut_CY002_Etape := 6; FM_Etape := False; END_IF; 006: (*-------- ETAPE 006 : MISE EN CHARGE CIRCUIT ------*) (* Activation *) IF NOT FM_Etape THEN Tps_Cycle := InPRM.Tps_MiseEnCharge; OutDDE_Raz_Comptage := False; FM_Etape := True; END_IF; (* Action *) IF In_F_Seconde AND Tps_Cycle > 0 AND InCrM_PPE_Envoi AND InCrO_PV_Envoi THEN Tps_Cycle := Tps_Cycle - 1; END_IF; OutDDE_PV_Aspiration := True; IF InPRM.Select_Envoi THEN Tps_Bascul_CuveObjet := 3; IF In_F_Seconde AND Tps_Bascul_ObjetCuve > 0 Then Tps_Bascul_ObjetCuve := Tps_Bascul_ObjetCuve - 1; END_IF; OutDDE_PV_Envoi := Tps_Bascul_ObjetCuve > 0; OutDDE_PV_Circulation := True; OutSP_PPE_Envoi := InPRM.SP_PPE_EnCircul; ELSE Tps_Bascul_ObjetCuve := 3; IF In_F_Seconde AND Tps_Bascul_CuveObjet > 0 Then Tps_Bascul_CuveObjet := Tps_Bascul_CuveObjet - 1; END_IF; OutDDE_PV_Envoi := NOT InDDE_SuspensionEnvoi AND Memo_DDE_PPE_ENVOI; OutDDE_PV_Circulation := Tps_Bascul_CuveObjet > 0; OutSP_PPE_Envoi := InPRM.SP_PPE_EnEnvoi; END_IF; (* Gestion de la vanne de retour *) IF InPRM.Select_Retour AND NOT InPRM.Choix_Rejet THEN OutDDE_PV_Fosse := True; OutDDE_PV_Effluents := False; OutDDE_PV_Retour := False; ELSIF InPRM.Select_Retour AND InPRM.Choix_Rejet THEN OutDDE_PV_Fosse := False; OutDDE_PV_Effluents := True; OutDDE_PV_Retour := False; ELSE OutDDE_PV_Fosse := False; OutDDE_PV_Effluents := False; OutDDE_PV_Retour := True; END_IF; (* Gestion pompes *) IF In_NEPxxCMW01 >= InPRM.Niv_Start_PPE THEN Memo_DDE_PPE_ENVOI := True; END_IF; IF In_NEPxxCMW01 < InPRM.Niv_Stop_PPE THEN Memo_DDE_PPE_ENVOI := False; END_IF; OutDDE_PPE_Envoi := Memo_DDE_PPE_ENVOI AND (InCrO_PV_Envoi OR InCrO_PV_Circulation) AND NOT InDDE_SuspensionEnvoi AND InCrO_PV_Aspiration; OutDDE_PPE_Retour := False; OutDDE_Inc_Comptage := InPRM.DDE_Comptage AND InCrM_PPE_Envoi AND InCrO_PV_Envoi; INFO_MiseEnCharge := InCrM_PPE_Envoi AND InCrO_PV_Envoi; (* Transition 006 -> 007 *) IF Tps_Cycle <= 0 THEN InOut_CY002_Etape := 7; FM_Etape := False; END_IF; 007: (*-------- ETAPE 007 : CIRCULATION ET CONTROLE DEBIT --*) (* Activation *) IF NOT FM_Etape THEN Tps_Cycle := InPRM.Tps_CtrlDebit + InPRM.Tps_AvntCtrlDebit; INFO_MiseEnCharge := False; FM_Etape := True; END_IF; (* Action *) IF In_F_Seconde AND Tps_Cycle > 0 AND InCrM_PPE_Envoi AND InCrO_PV_Envoi THEN Tps_Cycle := Tps_Cycle - 1; END_IF; IF (InDDE_SuspensionEnvoi OR InCrO_PV_Circulation) AND Tps_Cycle < InPRM.Tps_CtrlDebit THEN Tps_Cycle := InPRM.Tps_CtrlDebit; END_IF; OutDDE_PV_Aspiration := True; (* Gestion de la vanne d'envoi *) IF InPRM.Select_Envoi THEN Tps_Bascul_CuveObjet := 3; IF In_F_Seconde AND Tps_Bascul_ObjetCuve > 0 Then Tps_Bascul_ObjetCuve := Tps_Bascul_ObjetCuve - 1; END_IF; OutDDE_PV_Envoi := Tps_Bascul_ObjetCuve > 0; OutDDE_PV_Circulation := True; OutSP_PPE_Envoi := InPRM.SP_PPE_EnCircul; ELSE Tps_Bascul_ObjetCuve := 3; IF In_F_Seconde AND Tps_Bascul_CuveObjet > 0 Then Tps_Bascul_CuveObjet := Tps_Bascul_CuveObjet - 1; END_IF; OutDDE_PV_Envoi := NOT InDDE_SuspensionEnvoi AND Memo_DDE_PPE_ENVOI; OutDDE_PV_Circulation := Tps_Bascul_CuveObjet > 0; OutSP_PPE_Envoi := InPRM.SP_PPE_EnEnvoi; END_IF; (* Gestion de la vanne de retour *) IF InPRM.Select_Retour AND NOT InPRM.Choix_Rejet THEN OutDDE_PV_Fosse := True; OutDDE_PV_Effluents := False; OutDDE_PV_Retour := False; ELSIF InPRM.Select_Retour AND InPRM.Choix_Rejet THEN OutDDE_PV_Fosse := False; OutDDE_PV_Effluents := True; OutDDE_PV_Retour := False; ELSE OutDDE_PV_Fosse := False; OutDDE_PV_Effluents := False; OutDDE_PV_Retour := True; END_IF; (* Gestion pompe envoi *) IF In_NEPxxCMW01 >= InPRM.Niv_Start_PPE THEN Memo_DDE_PPE_ENVOI := True; END_IF; IF In_NEPxxCMW01 < InPRM.Niv_Stop_PPE THEN Memo_DDE_PPE_ENVOI := False; END_IF; OutDDE_PPE_Envoi := Memo_DDE_PPE_ENVOI AND (InCrO_PV_Envoi OR InCrO_PV_Circulation) AND NOT InDDE_SuspensionEnvoi AND InCrO_PV_Aspiration; (* Gestion pompe de reprise *) OutDDE_PPE_Retour := NOT InDDE_SuspensionRetour AND ((InCrO_PV_Fosse AND NOT InPRM.Choix_Rejet) OR InCrO_PV_Retour OR (InCrO_PV_Effluent AND InPRM.Choix_Rejet)); OutDDE_Inc_Comptage := InPRM.DDE_Comptage AND InCrM_PPE_Envoi AND InCrO_PV_Envoi; OutDEF_CtrlDebit := Tps_Cycle <= 0 AND (InPRM.Debit_Mini > In_NEPxxCMF01 OR In_NEPxxCMF01 > InPRM.Debit_Maxi); INFO_ControleDebit := InCrM_PPE_Envoi AND InCrO_PV_Envoi; (* Transition 007 -> 008 *) IF Tps_Cycle <= 0 AND NOT OutDEF_CtrlDebit THEN InOut_CY002_Etape := 8; FM_Etape := False; END_IF; 008: (*-------- ETAPE 008 : CIRCULATION ET SEQUENCE NEP --*) (* Activation *) IF NOT FM_Etape THEN INFO_ControleDebit := False; Tps_Bascul_EgoutCuve := 0; Tps_Bascul_CuveEgout := 0; FM_Etape := True; END_IF; (* Action *) OutDDE_PV_Aspiration := True; (* Gestion de la vanne d'envoi *) IF InPRM.Select_Envoi THEN Tps_Bascul_CuveObjet := 3; IF In_F_Seconde AND Tps_Bascul_ObjetCuve > 0 Then Tps_Bascul_ObjetCuve := Tps_Bascul_ObjetCuve - 1; END_IF; OutDDE_PV_Envoi := Tps_Bascul_ObjetCuve > 0; OutDDE_PV_Circulation := True; OutSP_PPE_Envoi := InPRM.SP_PPE_EnCircul; ELSE Tps_Bascul_ObjetCuve := 3; IF In_F_Seconde AND Tps_Bascul_CuveObjet > 0 Then Tps_Bascul_CuveObjet := Tps_Bascul_CuveObjet - 1; END_IF; OutDDE_PV_Envoi := NOT InDDE_SuspensionEnvoi AND Memo_DDE_PPE_ENVOI; OutDDE_PV_Circulation := Tps_Bascul_CuveObjet > 0; OutSP_PPE_Envoi := InPRM.SP_PPE_EnEnvoi; END_IF; (* Gestion de la vanne de retour *) IF InPRM.Select_Retour AND NOT InPRM.Choix_Rejet THEN Tps_Bascul_EgoutCuve := 3; OutDDE_PV_Fosse := True; IF In_F_Seconde AND Tps_Bascul_CuveEgout > 0 THEN Tps_Bascul_CuveEgout := Tps_Bascul_CuveEgout uploads/Finance/ nep06-cy002.pdf
Documents similaires
-
13
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 25, 2022
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.0475MB