Advertisement
Guest User

Untitled

a guest
Nov 27th, 2015
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.81 KB | None | 0 0
  1. class dispatcherProductionProcess : public allFacilitiesProcess {
  2.     public :
  3.         dispatcherProductionProcess(rawMealPrimaryProcess* _rawMealPrimary, rawMealSecondaryProcess* _rawMealSecondary,
  4.             clinkerPrimaryProcess* _clinkerPrimary, clinkerSecondaryProcess* _clinkerSecondary,
  5.             cementPrimaryProcess* _cementPrimary,cementSecondaryProcess* _cementSecondary) :
  6.                 allFacilitiesProcess(_rawMealPrimary,   _rawMealSecondary, _clinkerPrimary, _clinkerSecondary, _cementPrimary, _cementSecondary) {}
  7.     void Behavior() {
  8.         while (1) {
  9.             //Raw meal grinding
  10.             if (!rawMealPrimary->getError()) {
  11.                 if(rawMealPrimary->IsOn() && (rawMaterialStorage.Used() < 500 || rawMealStorage.Used() > 15000)){
  12.                     rawMealPrimary->TurnOff();
  13.                 }
  14.                 if(rawMaterialStorage.Used() > 1000 && !rawMealPrimary->IsOn() && rawMealStorage.Used() < 6000 && !timeToGeneralRepair) {
  15.                     rawMealPrimary->TurnOn();
  16.                 }
  17.             }
  18.             if (!rawMealSecondary->getError()) {
  19.                 if (rawMaterialStorage.Used() > 20000 && !timeToGeneralRepair && (!rawMealSecondary->IsOn()) && (rawMealStorage.Used() < 4000)) {
  20.                     rawMealSecondary->TurnOn();
  21.                 }          
  22.                 if (rawMealSecondary->IsOn() && (rawMaterialStorage.Used() < 3000 || rawMealStorage.Used() > 14000)) {
  23.                     rawMealSecondary->TurnOff();
  24.                 }
  25.             }
  26.             //Clinker burning kiln
  27.             if (!clinkerPrimary->getError()) {
  28.                 if(clinkerPrimary->IsOn() && (rawMealStorage.Used() < 600 || clinkerStorage.Used() > 78000)) {
  29.                     clinkerPrimary->TurnOff();
  30.                 }  
  31.                 if(rawMealStorage.Used() > 1000 && !timeToGeneralRepair && (!clinkerPrimary->IsOn()) && clinkerStorage.Used() < 60000){
  32.                     clinkerPrimary->TurnOn();
  33.                 }
  34.             }
  35.             if (!clinkerSecondary->getError()) {
  36.                 if (rawMealStorage.Used() > 12000 && !clinkerSecondary->IsOn() && clinkerStorage.Used() < 30000 && !timeToGeneralRepair) {
  37.                     clinkerSecondary->TurnOn();
  38.                 }
  39.                 if (clinkerSecondary->IsOn() && (rawMealStorage.Used() < 1500 || clinkerStorage.Used() > 78000)) {
  40.                     clinkerSecondary->TurnOff();
  41.                 }
  42.             }
  43.             //Cement grinding
  44.             if (!cementPrimary->getError()) {
  45.                 if(cementPrimary->IsOn() && (clinkerStorage.Used() < 700 || cementStorage.Used() > 38000)) {
  46.                     cementPrimary->TurnOff();
  47.                 }
  48.                 if(!cementPrimary->IsOn() && !timeToGeneralRepair && cementStorage.Used() < 25000 && clinkerStorage.Used() > 1000 && cementComponents.Used() > 200) {
  49.                     cementPrimary->TurnOn();
  50.                 }
  51.             }
  52.             if (!cementSecondary->getError()) {
  53.                 if (clinkerStorage.Used() > 70000 && !timeToGeneralRepair && !cementSecondary->IsOn() && cementStorage.Used() < 20000 && cementComponents.Used() > 18000){
  54.                     cementSecondary->TurnOn();
  55.                 }
  56.                 if (cementSecondary->IsOn() &&  (clinkerStorage.Used() < 10000 || cementStorage.Used() > 35000)) {
  57.                     cementSecondary->TurnOff();
  58.                 }
  59.             }
  60.             Wait(60);
  61.         }      
  62.     }
  63. };
  64. /*
  65. *******************
  66. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement