Francesco Pistone
/
FORIGO_Modula_V4_R5_DoubleEnc_2019
new_2019
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Fri Jul 15 2022 20:43:43 by 1.7.2