new_2019

Dependencies:   mbed CANMsg

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers variables.hpp Source File

variables.hpp

00001 int zeroRequestBuf=0;
00002 int runRequestBuf=0;
00003 
00004 // define cycle variable related to the external command
00005 int oldTractorSpeedRead=0;
00006 int startCycle=0;                   // activate motors and functions 
00007 int enableCycle=0;                  // enable regular cycle
00008 int zeroCycle=0;                    // azzeramento motori richiesto
00009 int OldStartCycle=0;                // use for triggering command change
00010 int OldEnableCycle=0;
00011 int oldZeroCycle=0;                 // memoria azzeramento motori su richiesta
00012 int zeroCycleEnd=0;                 // ciclo di azzeramento completato
00013 int zeroTrigger=0;
00014 int TBzeroPinInput=0;            // segnale invertito micro tamburo 
00015 int seedWheelZeroPinInput=0;    // segnale invertito sensore ruota di semina
00016 int SD_faultA=0;
00017 int SD_faultB=0;
00018 int DC_brake=1;
00019 int DC_forward=1;
00020 
00021 
00022 int oldFaseLavoro=0;
00023 
00024 // define logic internal variables
00025 double tractorSpeed_MtS_timed=0.0f;   // tractor speed calculated from pulse interval time
00026 double speedForDisplay[5]={0.0f,0.0f,0.0f,0.0f,0.0f};
00027 double totalSpeed=0.0f;
00028 double OLDpulseSpeedInterval=1000.01f;   // tractor speed calculated from pulse interval time
00029 double pulseDistance=0.0f;            // linear space between pulse
00030 double pulseDistanceCalc=0.0f;
00031 double speedPerimeter=0.0f;           // perimeter of tractor speed wheel 
00032 double seedPerimeter=0.0f;            // perimeter of seed wheel 
00033 double mediaSpeed[5]={0.0f,0.0f,0.0f,0.0f,0.0f};
00034 int pntMedia=0;
00035 int actualPulseReadTimer=0;             // timer read at previous pulse
00036 double pulseSpeedInterval=0.0f;            // delta time of pulse
00037 int lastPulseRead=0;
00038 int oldLastPulseRead=0;
00039 int pulseRised=0;                    // pulse from speed wheel occured. Define when is possible to determine speed of up down motor. 
00040 int pulseRised1 = 0;
00041 int pulseRised2 = 0;
00042                                      // Set from interrupt routine and Reset from main after up down motor speed calculated
00043 double rapportoRuote = 0.0f;
00044 double TBrpm = 0.0f;
00045 double TBfrequency = 0.0f;
00046 double TBperiod = 0.0f;
00047 double oldPeriodoTB = 0.0f;
00048 int SDzeroCyclePulse=0;
00049 int TBzeroCyclePulse=0;
00050 int SDzeroed=0;
00051 int TBzeroed=0;
00052 int oldOnSDzero=0;
00053 int oldOnTBzero=0;
00054 int oldOffSDzero=0;
00055 int oldOffTBzero=0;
00056 int SDzeroPinTrig=0;
00057 int TBzeroPinTrig=0;
00058 int SDzeroDebounced=0;
00059 int SDrunZero=0;
00060 int TBrunZero=0;
00061 int syncroCheck=0;
00062 double memoStepTB=0.0f;
00063 double erroreSyncro=0.0f;
00064 double errorePercentuale=1.0f;
00065 int oldSeedWheelZeroPinInput=0;
00066 int oldTBzeroPinInput=0;
00067 int stopCicloTB = 0;
00068 int startCicloTB = 0;
00069 int cicloTbinCorso = 0;
00070 int beccoPronto =0;
00071 int memoIntraPick=0;
00072 
00073 double realSpeed = 0.0f;
00074 double realGiroSD = 0.0f;
00075 double tempoBecco = 0.0f;
00076 double frequenzaReale = 0.0f;
00077 double semiPeriodoReale = 0.0f;
00078 double tempoTraBecchi_mS = 0.0f;
00079 double tempoGiroSD = 0.0f;
00080 
00081 // variable for speed and step calculation
00082 uint32_t prePosSD=0;        // actual position of seed wheel (step of motor)
00083 uint32_t SDactualPosition=0;        // actual position of seed wheel (step of motor)
00084 uint32_t TBactualPosition=0;
00085 
00086 int cycleStopRequest=0;             // when cycle end request the zero of SD and UD
00087 
00088 double duty_DC=0.0f;
00089 double oldDuty_DC=0.0f;
00090 
00091 double dcActualDuty = 0.0f;  // valore di lavoro del duty cycle
00092 double correzione = 0.0f;
00093 double periodo =0.0f;
00094 double ePpos = 0.0f;
00095 int aspettaStart=1;
00096 int countCicli=0;
00097 uint32_t fase = 0;
00098 
00099 int clocca=0;
00100 int enableSDcontrol=0;
00101 int enableSpeed=0;
00102 double speedOfSeedWheel =0.0f;
00103 int lowSpeed = 0;
00104 double valore=0.0f;
00105 //char val1[8]={0,0,0,0,0,0,0,0};
00106 
00107 uint8_t enableSimula=0;
00108 uint8_t speedSimula=0;
00109 uint8_t avviaSimula=0;
00110 double oldSimulaSpeed=0.0f;
00111 int selezionato =0;
00112 int simOk=0;
00113 
00114 float SD_CurrentAnalog=0.0f;                    // valore di corrente sull'ingresso
00115 float SD_CurrentScaled=0.0f;                    // valore di corrente convertito in scala
00116 float SD_CurrentFactor=40.0f;                   // fattore di scala sensore 40mV/A
00117 float SD_CurrentPeak=0.0f;                      // valore massimo corrente
00118 float SD_CurrentMid=0.0f;                       // valore medio corrente
00119 float SD_CurrentLast=0.0f;                      // valore precedente corrente
00120 float SD_CurrentStart=0.0f;                     // valore a vuoto corrente (circa il 50% della tensione di alimentazione del sensore)
00121 
00122 float SD_analogMatrix[21]={0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f};
00123 int SD_analogIndex[11]={0,0,0,0,0,0,0,0,0,0};
00124 int frenata=0;
00125 int accensione=1;
00126 double SDsectorStep =0.0f;
00127 double TBsectorStep = 0.0f;
00128 double KcorT = 0.0f;
00129 
00130 int trigSD=0;
00131 int trigTB=0;
00132 int inhibit=0;
00133 int trigCicli=0;
00134 int avvicinamento=0;
00135 int lowSpeedRequired=0;
00136 
00137 uint8_t alarmHighRegister=0x00;
00138 uint8_t alarmLowRegister=0x00;
00139 double TBgiroStep=0.0f;
00140 int firstStart=1;
00141 int timeHole=0;
00142 int memoTimeHole=0;
00143 int lockStart=0;
00144 
00145 uint8_t quincStart=0;
00146 uint8_t quincStop=0;
00147 uint8_t oldQuincIn=0;
00148 double scostamento = 0.0f;
00149 double quincError = 0.0f;
00150 uint8_t quincEnable=0;
00151 uint8_t quincCnt=0;
00152 double memoDutyStop=0.0f;
00153 uint8_t trigStop=0;
00154 double propoQuinc=0.0f;
00155 uint8_t accelera=0;
00156 uint8_t decelera=0;
00157 double percento=0.0f;
00158 double memoDuty=0.0f;
00159 uint32_t masterSinc=0;
00160 uint8_t quincVerify=0;
00161                                                 // se indefinito utilizza il tamburo ortogonale per i semi di zucca
00162 double stepGrado = 0.0f;
00163 double TBfaseStep =0.0f;
00164 int tamburoStandard=1;                          // tamburo parallelo alla ruota di semina
00165 int speedFromPick = 1;                          // definisce se il controllo di velocità della ruota di semina è gestita dai becchi (set a 1) o dai fori sul disco (set a 0)
00166 double angoloPh=7.0f;
00167 double angoloAv=0.0f;
00168 
00169 uint8_t checkSDrotation=0;
00170 uint8_t comandiDaCan=0;
00171 uint8_t azzeraDaCan=0;
00172 uint8_t loadDaCan=0;
00173 uint8_t loadDaCanInCorso=0;
00174 uint8_t cntCellsForLoad=0;
00175 uint8_t trigRepos=0;
00176 uint8_t forzaFase=0;
00177 uint8_t erroreTamburo=0;
00178 uint8_t cntCellsForReload=0;
00179 uint8_t cntTbError=0;
00180 
00181 uint8_t cellsCounterLow=0;
00182 uint8_t cellsCounterHig=0;
00183 uint8_t pickCounterLow=0;
00184 uint8_t pickCounterHig=0;
00185 
00186 uint8_t all_semiFiniti = 0;     // semi finiti (generato dal relativo sensore)
00187 uint8_t all_pickSignal = 0;     // errore segnale becchi (generato dal tempo tra un becco ed il successivo)
00188 uint8_t all_cellSignal = 0;     // errore segnale celle (generato dal sensore tamburo )
00189 uint8_t all_lowBattery = 0;     // allarme batteria (valore interno di tritecnica)
00190 uint8_t all_overCurrDC = 0;     // sovracorrente motore DC  (generato dal sensore di corrente)
00191 uint8_t all_stopSistem = 0;     // sistema in stop (a tempo con ruota ferma)
00192 uint8_t all_upElements = 0;     // elementi sollevati   (generato dal relativo sensore)
00193 uint8_t all_noSeedOnCe = 0;     // fallanza di semina (manca il seme nella cella)
00194 uint8_t all_cfgnErrors = 0;     // errore di configurazione     (incongruenza dei parametri impostati)
00195 uint8_t all_noDcRotati = 0;     // ruota di semina bloccata (arriva la velocità ma non i becchi)
00196 uint8_t all_noStepRota = 0;     // tamburo di semina bloccato   (comando il tamburo ma non ricevo il sensore)
00197 uint8_t all_speedError = 0;     // errore sensore velocità  (tempo impulsi non costante)
00198 uint8_t all_noSpeedSen = 0;     // mancanza segnale di velocità (sento i becchi ma non la velocita)
00199 uint8_t all_no_Zeroing = 0;     // mancato azzeramento sistema (generato dal timeout del comando motore DC)
00200 uint8_t all_genericals = 0;     // allarme generico
00201 uint8_t resetComandi=0;
00202