Télécharger @EVN_IDT.procedur

Retour à la liste

Numérotation des lignes :

  1. * @EVN_IDT PROCEDUR MB234859 17/09/26 21:15:02 9567
  2. ***********************************************************************
  3. *
  4. * CETTE PROCEDURE A ETE MISE GRACIEUSEMENT A DISPOSITION DES
  5. * UTILISATEURS PAR LE LTDS - Ecole Centrale Lyon (S. Fouvry et S.Garcin)
  6. *
  7. ******************************************************************
  8. * IDENTIFICATEUR D'EVENEMENTS (@EVN_IDT)
  9. *
  10. * Definit des booleens indiquant les actions a realiser ou non
  11. * pour la procedure @EVN_MNG
  12. *
  13. * Entrees :
  14. * T1 : Table de PASAPAS
  15. * ID_BU : Entier donnant le numero de la BOITE D'USURE a considerer
  16. *
  17. * Sortie :
  18. * T1 : Table de PASAPAS avec les booleens mis a jour
  19. *
  20. * Appelee par PERSO1
  21. *
  22. ******************************************************************
  23. DEBP @EVN_IDT T1*'TABLE' ID_BU*'ENTIER';
  24. *
  25. BOITE_US = T1.'BOITES_USURES'. ID_BU ;
  26. T_INI_US = BOITE_US.'T_INI_US' ;
  27. T_FIN_US = BOITE_US.'T_FIN_US' ;
  28. PERIODCY = BOITE_US.'PERIODCY' ;
  29. OuiUsCyc = BOITE_US.'USURE_CYCLIQUE' ;
  30.  
  31. SI (NON (EXIS BOITE_US 'INDICATEUR_INITIALISATION_VAR_CUMUL')) ;
  32. BOITE_US.'INDICATEUR_INITIALISATION_VAR_CUMUL' = 0 ;
  33. FINSI ;
  34.  
  35. * Recuperation des Variables de Calcul : VC
  36. T_inc = T1.'ESTIMATION'.'TEMPS' ;
  37. T_usu = T_inc - T_INI_US ;
  38.  
  39. * Numero du Cycle Numerique En Cours Temp : NCNECTmp
  40. * Temps du Cycle Numerique En Cours Temp : TCNECTmp
  41. NCNECTmp = ENTI 'SUPERIEUR' ( T_usu / PERIODCY ) ;
  42. TCNECTmp = T_usu - ((NCNECTmp - 1) * PERIODCY) ;
  43.  
  44. * A t-on T_inc dans l'intervalle [T_INI_US;T_FIN_US]?
  45. SI ((T_inc >EG (T_INI_US - 1.e-10))
  46. ET (T_inc <EG (T_FIN_US + 1.e-10)));
  47. InPhasUs = VRAI ;
  48. SINON ;
  49. InPhasUs = FAUX ;
  50. FINSI ;
  51.  
  52. * A t-on T_Inc qui correspond a un instant de debut ou de fin de cycle
  53. * Beginning Or Ending Of Cycle BOEOC
  54. DT2EOC = ABS (TCNECTmp) ;
  55. DT2BOC = ABS (TCNECTmp - PERIODCY) ;
  56. SI (InPhasUs ET ((DT2EOC <EG 1.e-10) OU (DT2BOC <EG 1.e-10))) ;
  57. BOEOC = VRAI ;
  58. SINON ;
  59. BOEOC = FAUX ;
  60. FINSI ;
  61. *
  62. SI BOEOC ;
  63. SI ((ABS (T_inc - T_INI_US)) <EG 1.e-10) ;
  64. NCNECC = 1 ;
  65. TCNECC = 0. ;
  66. EntreeNC = VRAI ;
  67. TermineC = FAUX ;
  68. SINON ;
  69. NCNECC = ENTI 'PROCHE' (T_usu/PERIODCY) ;
  70. TCNECC = PERIODCY ;
  71. TermineC = VRAI ;
  72. SI ((ABS (T_inc - T_FIN_US)) <EG 1.e-10) ;
  73. EntreeNC = FAUX ;
  74. SINON ;
  75. EntreeNC = VRAI ;
  76. FINSI ;
  77. FINSI ;
  78. SINON ;
  79. EntreeNC = FAUX ;
  80. TermineC = FAUX ;
  81. NCNECC = NCNECTmp ;
  82. TCNECC = TCNECTmp ;
  83. FINSI ;
  84.  
  85. * Creation des listes d'instants de chaque cycle qui servira a la
  86. * construction des evolutions (cf. @PRCA5).
  87. * Particularite, certains increments sont communs a deux cycles, et
  88. * doivent apparaitre pour les deux cycles.
  89. FirstInc = ET EntreeNC (NON TermineC) ;
  90. TT = T1 . 'TEMPS' ;
  91. Inc = (DIME TT) - 1 ;
  92.  
  93. SI (T_inc <EG 1.e-10) ;
  94. Inc = 0 ;
  95. FINSI ;
  96.  
  97. SI InPhasUs ;
  98. * Cas de l'entree dans un nouveau cycle => Creation de la liste du
  99. * NCNECC + 1 cycle (sauf cas premier increment d'usure)
  100. SI EntreeNC ;
  101. LstIncNC = LECT Inc ;
  102. LstTpsNC = PROG T_inc ;
  103. SI FirstInc;
  104. NumCycle = 1 ;
  105. BOITE_US.'LISTE_INCREMENTS_DU_CYCLE' = TABL ;
  106. BOITE_US.'LISTE_TEMPS_DU_CYCLE' = TABL ;
  107. SINON ;
  108. NumCycle = NCNECC + 1 ;
  109. FINSI;
  110. BOITE_US.'LISTE_INCREMENTS_DU_CYCLE' . NumCycle = LstIncNC ;
  111. BOITE_US.'LISTE_TEMPS_DU_CYCLE' . NumCycle = LstTpsNC ;
  112. FINSI ;
  113.  
  114. * Cas autre que premier increment d'usure : On ajoute le numero d'increment
  115. * a la liste. Ce traitement convient ainsi aussi bien pour les increments
  116. * non extremes au cycle, mais aussi pour les increments de fin
  117. SI (NON FirstInc) ;
  118. LstIncCC = BOITE_US.'LISTE_INCREMENTS_DU_CYCLE' . NCNECC ;
  119. LstTpsCC = BOITE_US.'LISTE_TEMPS_DU_CYCLE' . NCNECC ;
  120. LstIncCC = ET LstIncCC Inc ;
  121. LstTpsCC = ET LstTpsCC T_inc ;
  122. BOITE_US.'LISTE_INCREMENTS_DU_CYCLE' . NCNECC = LstIncCC ;
  123. BOITE_US.'LISTE_TEMPS_DU_CYCLE' . NCNECC = LstTpsCC ;
  124. FINSI ;
  125. FINSI ;
  126.  
  127. * Doit-on recuperer la densite d'energie dissipee?
  128. YesAcqED = InPhasUs ;
  129.  
  130. * Doit-on appliquer le profil d'usure?
  131. TauxComp = TCNECC / PERIODCY ;
  132. * Cas Usure cyclique
  133. SI OuiUsCyc ;
  134.  
  135. SI (YesAcqED ET (TauxComp EGA 1.)) ; YesCANPU = VRAI ;
  136. SINON ; YesCANPU = FAUX ; FINSI ;
  137.  
  138. * Cas Usure incrementale
  139. SINON ;
  140.  
  141. SI (YesAcqED ET (T_usu >EG 1.e-10)) ; YesCANPU = VRAI ;
  142. SINON ; YesCANPU = FAUX ; FINSI ;
  143.  
  144. FINSI ;
  145.  
  146. * Stockage des valeurs
  147. BOITE_US.'YesAcqED' = YesAcqED ;
  148. BOITE_US.'YesCANPU' = YesCANPU ;
  149. BOITE_US.'TauxComp' = TauxComp ;
  150. BOITE_US.'TCNECC' = TCNECC ;
  151. BOITE_US.'NCNECC' = NCNECC ;
  152. BOITE_US.'InPhasUs' = InPhasUs ;
  153. BOITE_US.'EntreeNC' = EntreeNC ;
  154. BOITE_US.'TermineC' = TermineC ;
  155.  
  156. T1.'BOITES_USURES'. ID_BU = BOITE_US ;
  157.  
  158. FINP T1;
  159.  
  160.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales