Programm mit Ablauf
Dependencies: EPOS2 mbed-rtos mbed
Fork of Projekt_Kugelbahn by
main.cpp@10:1c42bbd596dc, 2016-10-17 (annotated)
- Committer:
- joe_feubli
- Date:
- Mon Oct 17 05:39:38 2016 +0000
- Revision:
- 10:1c42bbd596dc
- Parent:
- 9:039318b9096e
- Child:
- 11:6e5ebe9aa84b
"funktionierendes" Programm mit USV und Buzzer -> ohne Motor4 & Fehlerauswertung
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ODEM | 0:aaf583a75b97 | 1 | #include "mbed.h" |
ODEM | 0:aaf583a75b97 | 2 | #include "EPOS2.h" |
joe_feubli | 2:0f4e77a22fd9 | 3 | |
ODEM | 0:aaf583a75b97 | 4 | |
ODEM | 0:aaf583a75b97 | 5 | //***********************************************************************************************************************************// |
ODEM | 0:aaf583a75b97 | 6 | //*** Global_Var *******************************************************************************************************************// |
ODEM | 0:aaf583a75b97 | 7 | //***********************************************************************************************************************************// |
ODEM | 0:aaf583a75b97 | 8 | |
ODEM | 0:aaf583a75b97 | 9 | Serial pc(USBTX, USBRX); // (tx, rx) |
ODEM | 0:aaf583a75b97 | 10 | CAN can(p9, p10); // Can Pin def |
ODEM | 0:aaf583a75b97 | 11 | |
joe_feubli | 10:1c42bbd596dc | 12 | /* |
joe_feubli | 10:1c42bbd596dc | 13 | int velocity = 3000; |
joe_feubli | 10:1c42bbd596dc | 14 | int acceleration = 50000; |
joe_feubli | 10:1c42bbd596dc | 15 | int deceleration = 50000; |
joe_feubli | 10:1c42bbd596dc | 16 | |
joe_feubli | 10:1c42bbd596dc | 17 | int anzahl_zyklen = 1000000; |
joe_feubli | 10:1c42bbd596dc | 18 | int absolvierte_zyklen = 0; |
joe_feubli | 10:1c42bbd596dc | 19 | int ActualPos = 0; |
joe_feubli | 10:1c42bbd596dc | 20 | int DemandPos = 0; |
joe_feubli | 10:1c42bbd596dc | 21 | int ActualCurrent = 0; |
joe_feubli | 10:1c42bbd596dc | 22 | int DemandCurrent = 0; |
joe_feubli | 10:1c42bbd596dc | 23 | int counter=0; |
joe_feubli | 10:1c42bbd596dc | 24 | int counter2=0; |
joe_feubli | 10:1c42bbd596dc | 25 | bool start = true; |
joe_feubli | 10:1c42bbd596dc | 26 | |
joe_feubli | 10:1c42bbd596dc | 27 | int counter_s = false; |
joe_feubli | 10:1c42bbd596dc | 28 | int counter_s2 = false; |
joe_feubli | 10:1c42bbd596dc | 29 | */ |
joe_feubli | 7:44f2f9fd2eeb | 30 | DigitalIn usv_ready(p23); |
joe_feubli | 7:44f2f9fd2eeb | 31 | InterruptIn buffering(p24); |
joe_feubli | 7:44f2f9fd2eeb | 32 | DigitalIn replace_battery(p25); |
joe_feubli | 6:3eaa420dc2f5 | 33 | |
joe_feubli | 6:3eaa420dc2f5 | 34 | DigitalOut led1(LED1); |
joe_feubli | 6:3eaa420dc2f5 | 35 | DigitalOut led2(LED2); |
joe_feubli | 6:3eaa420dc2f5 | 36 | DigitalOut led3(LED3); |
joe_feubli | 6:3eaa420dc2f5 | 37 | DigitalOut led4(LED4); |
joe_feubli | 6:3eaa420dc2f5 | 38 | |
joe_feubli | 6:3eaa420dc2f5 | 39 | bool node1_homed = false; |
joe_feubli | 6:3eaa420dc2f5 | 40 | bool node2_homed = false; |
joe_feubli | 6:3eaa420dc2f5 | 41 | bool node3_homed = false; |
joe_feubli | 6:3eaa420dc2f5 | 42 | bool node4_homed = true; |
joe_feubli | 6:3eaa420dc2f5 | 43 | bool node5_homed = false; |
joe_feubli | 6:3eaa420dc2f5 | 44 | bool node6_homed = true; |
joe_feubli | 6:3eaa420dc2f5 | 45 | bool node7_homed = true; |
joe_feubli | 6:3eaa420dc2f5 | 46 | |
joe_feubli | 6:3eaa420dc2f5 | 47 | int homing = false; |
joe_feubli | 6:3eaa420dc2f5 | 48 | int ready = false; |
joe_feubli | 3:fbc9de097e4f | 49 | int ausfahren = false; |
joe_feubli | 6:3eaa420dc2f5 | 50 | int einfahren = false; |
joe_feubli | 6:3eaa420dc2f5 | 51 | int usv = false; |
joe_feubli | 6:3eaa420dc2f5 | 52 | int current_step = 1; //HOMING |
joe_feubli | 6:3eaa420dc2f5 | 53 | int ausfahren_step = 1; |
joe_feubli | 7:44f2f9fd2eeb | 54 | int einfahren_step = 1; |
joe_feubli | 7:44f2f9fd2eeb | 55 | int usv_step = 1; |
joe_feubli | 6:3eaa420dc2f5 | 56 | |
joe_feubli | 6:3eaa420dc2f5 | 57 | void interrupt_usv(){ |
joe_feubli | 6:3eaa420dc2f5 | 58 | current_step = 5; |
joe_feubli | 7:44f2f9fd2eeb | 59 | wait_ms(10); |
joe_feubli | 7:44f2f9fd2eeb | 60 | } |
ODEM | 4:8fb30d6c2855 | 61 | |
joe_feubli | 2:0f4e77a22fd9 | 62 | int main(){ ///////// Main |
joe_feubli | 7:44f2f9fd2eeb | 63 | led1 = 1; |
ODEM | 0:aaf583a75b97 | 64 | pc.baud(9600); |
ODEM | 1:c53aafa72b36 | 65 | |
joe_feubli | 10:1c42bbd596dc | 66 | buffering.rise(&interrupt_usv); |
joe_feubli | 8:98d4028cdea6 | 67 | buffering.rise(&interrupt_usv); //Interrupt für USV |
joe_feubli | 7:44f2f9fd2eeb | 68 | |
joe_feubli | 10:1c42bbd596dc | 69 | wait(0.5); //Wartezeit bis Epos2 70/10 aufgestartet ist |
joe_feubli | 7:44f2f9fd2eeb | 70 | led2 = 1; |
joe_feubli | 7:44f2f9fd2eeb | 71 | wait(0.5); |
joe_feubli | 7:44f2f9fd2eeb | 72 | led3 = 1; |
joe_feubli | 7:44f2f9fd2eeb | 73 | wait(0.5); |
joe_feubli | 7:44f2f9fd2eeb | 74 | led4 = 1; |
joe_feubli | 10:1c42bbd596dc | 75 | wait(0.5); |
joe_feubli | 10:1c42bbd596dc | 76 | |
joe_feubli | 10:1c42bbd596dc | 77 | pc.printf("Initialisation CAN\n"); |
ODEM | 0:aaf583a75b97 | 78 | |
ODEM | 0:aaf583a75b97 | 79 | can.frequency(1000000); //Define Can baud in bit/s |
ODEM | 0:aaf583a75b97 | 80 | |
ODEM | 0:aaf583a75b97 | 81 | CANopen canOpen(&can, 0.001); //Define CanOpen Network(can function, periode of the CANopen driver in sec) |
ODEM | 0:aaf583a75b97 | 82 | canOpen.start(); //Start defined CanOpen Network |
ODEM | 0:aaf583a75b97 | 83 | |
joe_feubli | 2:0f4e77a22fd9 | 84 | EPOS2 MyEpos1(&canOpen, 1); //Define and connect the EPOS2 to the CanOpen Network(canOpen function, Node ID) |
joe_feubli | 2:0f4e77a22fd9 | 85 | EPOS2 MyEpos2(&canOpen, 2); //Define and connect the EPOS2 to the CanOpen Network(canOpen function, Node ID) |
joe_feubli | 2:0f4e77a22fd9 | 86 | EPOS2 MyEpos3(&canOpen, 3); //Define and connect the EPOS2 to the CanOpen Network(canOpen function, Node ID) |
joe_feubli | 2:0f4e77a22fd9 | 87 | EPOS2 MyEpos4(&canOpen, 4); //Define and connect the EPOS2 to the CanOpen Network(canOpen function, Node ID) |
joe_feubli | 2:0f4e77a22fd9 | 88 | EPOS2 MyEpos5(&canOpen, 5); //Define and connect the EPOS2 to the CanOpen Network(canOpen function, Node ID) |
joe_feubli | 2:0f4e77a22fd9 | 89 | EPOS2 MyEpos6(&canOpen, 6); //Define and connect the EPOS2 to the CanOpen Network(canOpen function, Node ID) |
joe_feubli | 2:0f4e77a22fd9 | 90 | EPOS2 MyEpos7(&canOpen, 7); //Define and connect the EPOS2 to the CanOpen Network(canOpen function, Node ID) |
ODEM | 0:aaf583a75b97 | 91 | |
ODEM | 0:aaf583a75b97 | 92 | pc.printf("Initialisation abgeschlossen\n"); |
joe_feubli | 2:0f4e77a22fd9 | 93 | |
joe_feubli | 6:3eaa420dc2f5 | 94 | MyEpos1.Reset(); |
joe_feubli | 6:3eaa420dc2f5 | 95 | MyEpos2.Reset(); |
joe_feubli | 6:3eaa420dc2f5 | 96 | MyEpos3.Reset(); |
joe_feubli | 6:3eaa420dc2f5 | 97 | MyEpos4.Reset(); |
joe_feubli | 6:3eaa420dc2f5 | 98 | MyEpos5.Reset(); |
joe_feubli | 6:3eaa420dc2f5 | 99 | MyEpos6.Reset(); |
joe_feubli | 6:3eaa420dc2f5 | 100 | MyEpos7.Reset(); |
joe_feubli | 6:3eaa420dc2f5 | 101 | wait(0.1); |
joe_feubli | 6:3eaa420dc2f5 | 102 | |
joe_feubli | 7:44f2f9fd2eeb | 103 | led1 = 0; |
joe_feubli | 7:44f2f9fd2eeb | 104 | led2 = 0; |
joe_feubli | 7:44f2f9fd2eeb | 105 | led3 = 0; |
joe_feubli | 7:44f2f9fd2eeb | 106 | led4 = 0; |
joe_feubli | 8:98d4028cdea6 | 107 | MyEpos5.SetDigOut(4, 1); |
joe_feubli | 7:44f2f9fd2eeb | 108 | |
joe_feubli | 10:1c42bbd596dc | 109 | /* usv_ready.mode(PullUp); |
joe_feubli | 10:1c42bbd596dc | 110 | buffering.mode(PullUp); |
joe_feubli | 10:1c42bbd596dc | 111 | replace_battery.mode(PullUp); |
joe_feubli | 10:1c42bbd596dc | 112 | */ |
joe_feubli | 10:1c42bbd596dc | 113 | //************** Initialisierung **************// |
joe_feubli | 10:1c42bbd596dc | 114 | |
joe_feubli | 10:1c42bbd596dc | 115 | /* HOMING METHODEN: |
joe_feubli | 10:1c42bbd596dc | 116 | Homing Method 7 :Home Switch Positive Speed & Index |
joe_feubli | 10:1c42bbd596dc | 117 | Homing Method 11:Home Switch Negative Speed & Index |
joe_feubli | 10:1c42bbd596dc | 118 | Homing Method 23: Home Switch Positive Speed |
joe_feubli | 10:1c42bbd596dc | 119 | Homing Method 27: Home Switch Negative Speed |
joe_feubli | 10:1c42bbd596dc | 120 | Homing Method -3: Current Threshold Positive Speed |
joe_feubli | 10:1c42bbd596dc | 121 | Homing Method -4: Current Threshold Negative Speed |
joe_feubli | 10:1c42bbd596dc | 122 | |
joe_feubli | 10:1c42bbd596dc | 123 | */ |
joe_feubli | 10:1c42bbd596dc | 124 | //Motortype 10: EC-Motor |
joe_feubli | 10:1c42bbd596dc | 125 | |
joe_feubli | 10:1c42bbd596dc | 126 | /* MyEpos1.SetPar(10,4430, 7, 3500, 38); //Set the motor parameter( Motortype, Current limit, Pole pairs, max velocity, thermal time constant winding)#EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 127 | MyEpos1.SetHomingPar(-4, 100, 100, 1000); //Set Homing Parameter (homing mode, speed, acceleration, offset) #EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 128 | MyEpos1.Reset(); |
joe_feubli | 10:1c42bbd596dc | 129 | |
joe_feubli | 10:1c42bbd596dc | 130 | MyEpos2.SetPar(10,4430, 7, 3500, 38); //Set the motor parameter( Motortype, Current limit, Pole pairs, max velocity, thermal time constant winding)#EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 131 | MyEpos2.SetHomingPar(27, 100, 100, 0); //Set Homing Parameter (homing mode, speed, acceleration, offset) |
joe_feubli | 10:1c42bbd596dc | 132 | MyEpos2.Reset(); |
joe_feubli | 10:1c42bbd596dc | 133 | |
joe_feubli | 10:1c42bbd596dc | 134 | MyEpos3.SetPar(10,4430, 7, 3500, 38); //Set the motor parameter( Motortype, Current limit, Pole pairs, max velocity, thermal time constant winding)#EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 135 | MyEpos3.SetHomingPar(-3, 100, 100, 1000); //Set Homing Parameter (homing mode, speed, acceleration, offset) #EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 136 | MyEpos3.Reset(); |
joe_feubli | 10:1c42bbd596dc | 137 | |
joe_feubli | 10:1c42bbd596dc | 138 | MyEpos4.SetPar(10,4430, 7, 3500, 38); //Set the motor parameter( Motortype, Current limit, Pole pairs, max velocity, thermal time constant winding)#EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 139 | MyEpos4.SetHomingPar(23, 100, 100, 8000); //Set Homing Parameter (homing mode, speed, acceleration, offset)#EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 140 | MyEpos4.Reset(); |
joe_feubli | 10:1c42bbd596dc | 141 | |
joe_feubli | 10:1c42bbd596dc | 142 | MyEpos5.SetPar(10,4430, 7, 3500, 38); //Set the motor parameter( Motortype, Current limit, Pole pairs, max velocity, thermal time constant winding)#EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 143 | MyEpos5.SetHomingPar(23, 100, 100, 0); //Set Homing Parameter (homing mode, speed, acceleration, offset)#EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 144 | MyEpos5.Reset(); |
joe_feubli | 10:1c42bbd596dc | 145 | |
joe_feubli | 10:1c42bbd596dc | 146 | MyEpos6.SetPar(10,3440, 1, 12000, 3.8); //Set the motor parameter( Motortype, Current limit, Pole pairs, max velocity, thermal time constant winding)#EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 147 | MyEpos6.SetHomingPar(11, 100, 100, -7000); //Set Homing Parameter (homing mode->35=Actual Position, speed, acceleration, offset)#EINGESTELLT |
joe_feubli | 10:1c42bbd596dc | 148 | MyEpos6.Reset(); |
joe_feubli | 10:1c42bbd596dc | 149 | |
joe_feubli | 10:1c42bbd596dc | 150 | MyEpos7.SetPar(10,2660, 1, 3100, 2.76); //Set the motor parameter( Motortype, Current limit, Pole pairs, max velocity, thermal time constant winding) |
joe_feubli | 10:1c42bbd596dc | 151 | MyEpos7.SetHomingPar(23, 100, 100, 0); //Set Homing Parameter (homing mode, speed, acceleration, offset) |
joe_feubli | 10:1c42bbd596dc | 152 | MyEpos7.Reset(); |
joe_feubli | 10:1c42bbd596dc | 153 | */ |
ODEM | 0:aaf583a75b97 | 154 | |
ODEM | 0:aaf583a75b97 | 155 | while(1){ |
joe_feubli | 2:0f4e77a22fd9 | 156 | switch (current_step){ |
joe_feubli | 2:0f4e77a22fd9 | 157 | case 1://HOMING: |
joe_feubli | 6:3eaa420dc2f5 | 158 | led1 = 1; |
joe_feubli | 5:524e83ec5174 | 159 | |
joe_feubli | 6:3eaa420dc2f5 | 160 | MyEpos1.Power(1); |
joe_feubli | 6:3eaa420dc2f5 | 161 | MyEpos2.Power(1); |
joe_feubli | 5:524e83ec5174 | 162 | MyEpos3.Power(1); |
joe_feubli | 5:524e83ec5174 | 163 | MyEpos4.Power(1); |
joe_feubli | 5:524e83ec5174 | 164 | MyEpos5.Power(1); |
joe_feubli | 5:524e83ec5174 | 165 | MyEpos6.Power(1); |
joe_feubli | 6:3eaa420dc2f5 | 166 | MyEpos7.Power(1); |
joe_feubli | 6:3eaa420dc2f5 | 167 | |
joe_feubli | 6:3eaa420dc2f5 | 168 | /***********************HOMING*************************/ |
joe_feubli | 6:3eaa420dc2f5 | 169 | |
joe_feubli | 7:44f2f9fd2eeb | 170 | if (node5_homed == false){ |
joe_feubli | 7:44f2f9fd2eeb | 171 | MyEpos5.Homing(); //Kopf |
joe_feubli | 7:44f2f9fd2eeb | 172 | node5_homed = true; |
joe_feubli | 7:44f2f9fd2eeb | 173 | break; |
joe_feubli | 7:44f2f9fd2eeb | 174 | } |
joe_feubli | 7:44f2f9fd2eeb | 175 | |
joe_feubli | 6:3eaa420dc2f5 | 176 | if (node1_homed == false){ |
joe_feubli | 6:3eaa420dc2f5 | 177 | MyEpos1.Homing(); //Solarpanel_Aussen_Links |
joe_feubli | 6:3eaa420dc2f5 | 178 | node1_homed = true; |
joe_feubli | 6:3eaa420dc2f5 | 179 | break; |
joe_feubli | 6:3eaa420dc2f5 | 180 | } |
joe_feubli | 6:3eaa420dc2f5 | 181 | |
joe_feubli | 6:3eaa420dc2f5 | 182 | if (node3_homed == false){ |
joe_feubli | 6:3eaa420dc2f5 | 183 | MyEpos3.Homing(); //Solarpanel_Aussen_Rechts |
joe_feubli | 6:3eaa420dc2f5 | 184 | node3_homed = true; |
joe_feubli | 6:3eaa420dc2f5 | 185 | break; |
joe_feubli | 6:3eaa420dc2f5 | 186 | } |
joe_feubli | 6:3eaa420dc2f5 | 187 | |
joe_feubli | 6:3eaa420dc2f5 | 188 | if (node7_homed == false){ |
joe_feubli | 6:3eaa420dc2f5 | 189 | MyEpos7.Homing(); //Bohrer |
joe_feubli | 6:3eaa420dc2f5 | 190 | node7_homed = true; |
joe_feubli | 6:3eaa420dc2f5 | 191 | break; |
joe_feubli | 6:3eaa420dc2f5 | 192 | } |
joe_feubli | 6:3eaa420dc2f5 | 193 | |
joe_feubli | 7:44f2f9fd2eeb | 194 | if (node1_homed == true and node2_homed == false and node5_homed == true){ |
joe_feubli | 7:44f2f9fd2eeb | 195 | MyEpos5.MoveAbsolute(-3000,500,100,100); //Kopf |
joe_feubli | 6:3eaa420dc2f5 | 196 | MyEpos2.Homing(); //Solarpanel_Innen_Links |
joe_feubli | 7:44f2f9fd2eeb | 197 | MyEpos5.MoveAbsolute(500,100,50,50); //Kopf |
joe_feubli | 7:44f2f9fd2eeb | 198 | wait(3); |
joe_feubli | 6:3eaa420dc2f5 | 199 | node2_homed = true; |
joe_feubli | 6:3eaa420dc2f5 | 200 | break; |
joe_feubli | 2:0f4e77a22fd9 | 201 | } |
joe_feubli | 6:3eaa420dc2f5 | 202 | |
joe_feubli | 6:3eaa420dc2f5 | 203 | if (node3_homed == true and node4_homed == false){ |
joe_feubli | 6:3eaa420dc2f5 | 204 | MyEpos4.Homing(); //Solarpanel_Innen_Rechts |
joe_feubli | 6:3eaa420dc2f5 | 205 | node4_homed = true; |
joe_feubli | 6:3eaa420dc2f5 | 206 | break; |
joe_feubli | 6:3eaa420dc2f5 | 207 | } |
joe_feubli | 6:3eaa420dc2f5 | 208 | |
joe_feubli | 6:3eaa420dc2f5 | 209 | if (node7_homed == true and node6_homed == false){ |
joe_feubli | 6:3eaa420dc2f5 | 210 | MyEpos6.Homing();//Bohrgestell |
joe_feubli | 6:3eaa420dc2f5 | 211 | node6_homed = true; |
joe_feubli | 6:3eaa420dc2f5 | 212 | break; |
joe_feubli | 6:3eaa420dc2f5 | 213 | } |
joe_feubli | 6:3eaa420dc2f5 | 214 | if (node1_homed == true and node2_homed == true and node3_homed == true and node4_homed == true and node5_homed == true and node6_homed == true and node7_homed == true){ |
joe_feubli | 6:3eaa420dc2f5 | 215 | current_step = 2;//BEREIT; |
joe_feubli | 7:44f2f9fd2eeb | 216 | MyEpos1.Power(0); |
joe_feubli | 7:44f2f9fd2eeb | 217 | MyEpos2.Power(0); |
joe_feubli | 7:44f2f9fd2eeb | 218 | MyEpos3.Power(0); |
joe_feubli | 7:44f2f9fd2eeb | 219 | MyEpos4.Power(0); |
joe_feubli | 7:44f2f9fd2eeb | 220 | wait(0.1); |
joe_feubli | 7:44f2f9fd2eeb | 221 | MyEpos5.Power(0); |
joe_feubli | 2:0f4e77a22fd9 | 222 | } |
joe_feubli | 10:1c42bbd596dc | 223 | |
joe_feubli | 10:1c42bbd596dc | 224 | |
joe_feubli | 10:1c42bbd596dc | 225 | |
joe_feubli | 8:98d4028cdea6 | 226 | |
joe_feubli | 6:3eaa420dc2f5 | 227 | led1 = 0; |
joe_feubli | 2:0f4e77a22fd9 | 228 | break; |
joe_feubli | 2:0f4e77a22fd9 | 229 | |
joe_feubli | 2:0f4e77a22fd9 | 230 | |
joe_feubli | 2:0f4e77a22fd9 | 231 | case 2://BEREIT: |
joe_feubli | 6:3eaa420dc2f5 | 232 | led2 = 1; |
joe_feubli | 8:98d4028cdea6 | 233 | MyEpos5.SetDigOut(4,0); |
joe_feubli | 6:3eaa420dc2f5 | 234 | if (MyEpos5.GetDigIn(3) == 1){ |
joe_feubli | 8:98d4028cdea6 | 235 | MyEpos5.SetDigOut(4,1); |
joe_feubli | 10:1c42bbd596dc | 236 | current_step = 6; |
joe_feubli | 7:44f2f9fd2eeb | 237 | wait_ms(10); |
joe_feubli | 6:3eaa420dc2f5 | 238 | MyEpos1.Power(1); |
joe_feubli | 6:3eaa420dc2f5 | 239 | MyEpos2.Power(1); |
joe_feubli | 6:3eaa420dc2f5 | 240 | MyEpos3.Power(1); |
joe_feubli | 9:039318b9096e | 241 | // MyEpos4.Power(1); |
joe_feubli | 6:3eaa420dc2f5 | 242 | MyEpos5.Power(1); |
joe_feubli | 6:3eaa420dc2f5 | 243 | } |
joe_feubli | 10:1c42bbd596dc | 244 | wait_ms(10); |
joe_feubli | 9:039318b9096e | 245 | led2 = 0; |
joe_feubli | 2:0f4e77a22fd9 | 246 | break; |
ODEM | 1:c53aafa72b36 | 247 | |
joe_feubli | 2:0f4e77a22fd9 | 248 | |
joe_feubli | 10:1c42bbd596dc | 249 | case 3://START_AUSFAHREN: |
joe_feubli | 10:1c42bbd596dc | 250 | |
joe_feubli | 10:1c42bbd596dc | 251 | break; |
joe_feubli | 10:1c42bbd596dc | 252 | |
joe_feubli | 10:1c42bbd596dc | 253 | |
joe_feubli | 10:1c42bbd596dc | 254 | case 5://USV: |
joe_feubli | 10:1c42bbd596dc | 255 | led4 = 1; |
joe_feubli | 10:1c42bbd596dc | 256 | MyEpos5.SetDigOut(4,1); |
joe_feubli | 10:1c42bbd596dc | 257 | switch (usv_step){ |
joe_feubli | 10:1c42bbd596dc | 258 | case 1: |
joe_feubli | 10:1c42bbd596dc | 259 | wait(0.1); |
joe_feubli | 10:1c42bbd596dc | 260 | if (node1_homed == true){ |
joe_feubli | 10:1c42bbd596dc | 261 | MyEpos1.MoveAbsolute(0,500,500,500); //Panel_Aussen_Links |
joe_feubli | 10:1c42bbd596dc | 262 | MyEpos1.MoveAbsolute(2000,500,500,500); //Panel_Aussen_Links |
joe_feubli | 10:1c42bbd596dc | 263 | wait(0.1); |
joe_feubli | 10:1c42bbd596dc | 264 | } |
joe_feubli | 10:1c42bbd596dc | 265 | if (node3_homed == true){ |
joe_feubli | 10:1c42bbd596dc | 266 | MyEpos3.MoveAbsolute(0,500,500,500); //Panel_Aussen_Rechts |
joe_feubli | 10:1c42bbd596dc | 267 | MyEpos3.MoveAbsolute(-2000,500,500,500); //Panel_Aussen_Rechts |
joe_feubli | 10:1c42bbd596dc | 268 | wait(0.1); |
joe_feubli | 10:1c42bbd596dc | 269 | } |
joe_feubli | 10:1c42bbd596dc | 270 | /* if (node7_homed == true){ |
joe_feubli | 10:1c42bbd596dc | 271 | MyEpos7.MoveAbsolute(0,500,500,500); // Bohrer |
joe_feubli | 10:1c42bbd596dc | 272 | wait(0.1); |
joe_feubli | 10:1c42bbd596dc | 273 | } |
joe_feubli | 10:1c42bbd596dc | 274 | */ wait(0.1); |
joe_feubli | 10:1c42bbd596dc | 275 | usv_step = 2; |
joe_feubli | 10:1c42bbd596dc | 276 | if (MyEpos1.TargetReached()==1 and MyEpos3.TargetReached()==1){ |
joe_feubli | 10:1c42bbd596dc | 277 | usv_step = 2; |
joe_feubli | 10:1c42bbd596dc | 278 | } |
joe_feubli | 10:1c42bbd596dc | 279 | break; |
joe_feubli | 10:1c42bbd596dc | 280 | |
joe_feubli | 10:1c42bbd596dc | 281 | case 2: |
joe_feubli | 10:1c42bbd596dc | 282 | if (node2_homed == true and MyEpos1.TargetReached()==1){ |
joe_feubli | 10:1c42bbd596dc | 283 | wait(1); |
joe_feubli | 10:1c42bbd596dc | 284 | MyEpos1.MoveAbsolute(0,500,100,100); //Panel Aussen Links |
joe_feubli | 10:1c42bbd596dc | 285 | MyEpos3.MoveAbsolute(0,500,100,100); //Panel Aussen Rechts |
joe_feubli | 10:1c42bbd596dc | 286 | MyEpos2.MoveAbsolute(0,500,500,500); //Panel_Innen_Links |
joe_feubli | 10:1c42bbd596dc | 287 | wait_ms(10); |
joe_feubli | 10:1c42bbd596dc | 288 | } |
joe_feubli | 10:1c42bbd596dc | 289 | wait(0.1); |
joe_feubli | 10:1c42bbd596dc | 290 | /* if (node4_homed == true and MyEpos3.TargetReached()==1){ |
joe_feubli | 10:1c42bbd596dc | 291 | wait(1); |
joe_feubli | 10:1c42bbd596dc | 292 | MyEpos4.MoveAbsolute(0,500,500,500); //Panel_Innen_Links |
joe_feubli | 10:1c42bbd596dc | 293 | wait_ms(10); |
joe_feubli | 10:1c42bbd596dc | 294 | } |
joe_feubli | 10:1c42bbd596dc | 295 | if (node6_homed == true and MyEpos7.TargetReached()==1){ |
joe_feubli | 10:1c42bbd596dc | 296 | wait(1); |
joe_feubli | 10:1c42bbd596dc | 297 | MyEpos6.MoveAbsolute(0,500,500,500); // Bohrer |
joe_feubli | 10:1c42bbd596dc | 298 | wait_ms(10); |
joe_feubli | 10:1c42bbd596dc | 299 | } |
joe_feubli | 10:1c42bbd596dc | 300 | */ wait(1); |
joe_feubli | 10:1c42bbd596dc | 301 | if (MyEpos2.TargetReached()==1 /*and MyEpos4.TargetReached()==1 and MyEpos6.TargetReached()==1*/){ |
joe_feubli | 10:1c42bbd596dc | 302 | usv_step = 3; |
joe_feubli | 10:1c42bbd596dc | 303 | } |
joe_feubli | 10:1c42bbd596dc | 304 | break; |
joe_feubli | 10:1c42bbd596dc | 305 | |
joe_feubli | 10:1c42bbd596dc | 306 | case 3: |
joe_feubli | 10:1c42bbd596dc | 307 | MyEpos5.MoveAbsolute(0,800,500,500); //Kopf |
joe_feubli | 10:1c42bbd596dc | 308 | wait(0.1); |
joe_feubli | 10:1c42bbd596dc | 309 | if (MyEpos5.TargetReached()==1){ |
joe_feubli | 10:1c42bbd596dc | 310 | usv_step = 4; |
joe_feubli | 10:1c42bbd596dc | 311 | wait(0.1); |
joe_feubli | 10:1c42bbd596dc | 312 | } |
joe_feubli | 10:1c42bbd596dc | 313 | break; |
joe_feubli | 10:1c42bbd596dc | 314 | |
joe_feubli | 10:1c42bbd596dc | 315 | case 4: |
joe_feubli | 10:1c42bbd596dc | 316 | /*while (MyEpos5.TargetReached()==0){ |
joe_feubli | 10:1c42bbd596dc | 317 | wait_ms(10); |
joe_feubli | 10:1c42bbd596dc | 318 | }*/ |
joe_feubli | 10:1c42bbd596dc | 319 | MyEpos1.Power(0); |
joe_feubli | 10:1c42bbd596dc | 320 | MyEpos2.Power(0); |
joe_feubli | 10:1c42bbd596dc | 321 | MyEpos3.Power(0); |
joe_feubli | 10:1c42bbd596dc | 322 | MyEpos4.Power(0); |
joe_feubli | 10:1c42bbd596dc | 323 | MyEpos5.Power(0); |
joe_feubli | 10:1c42bbd596dc | 324 | MyEpos6.Power(0); |
joe_feubli | 10:1c42bbd596dc | 325 | MyEpos7.Power(0); |
joe_feubli | 10:1c42bbd596dc | 326 | usv_step = 5; |
joe_feubli | 10:1c42bbd596dc | 327 | MyEpos1.Power(0); |
joe_feubli | 10:1c42bbd596dc | 328 | MyEpos2.Power(0); |
joe_feubli | 10:1c42bbd596dc | 329 | MyEpos3.Power(0); |
joe_feubli | 10:1c42bbd596dc | 330 | MyEpos4.Power(0); |
joe_feubli | 10:1c42bbd596dc | 331 | MyEpos5.Power(0); |
joe_feubli | 10:1c42bbd596dc | 332 | MyEpos6.Power(0); |
joe_feubli | 10:1c42bbd596dc | 333 | MyEpos7.Power(0); |
joe_feubli | 10:1c42bbd596dc | 334 | usv_step = 5; |
joe_feubli | 10:1c42bbd596dc | 335 | break; |
joe_feubli | 10:1c42bbd596dc | 336 | |
joe_feubli | 10:1c42bbd596dc | 337 | case 5: |
joe_feubli | 10:1c42bbd596dc | 338 | if(buffering == 1){ |
joe_feubli | 10:1c42bbd596dc | 339 | led3 = 1; |
joe_feubli | 10:1c42bbd596dc | 340 | } else { |
joe_feubli | 10:1c42bbd596dc | 341 | led3 = 0; |
joe_feubli | 10:1c42bbd596dc | 342 | current_step=1; |
joe_feubli | 10:1c42bbd596dc | 343 | usv_step=1; |
joe_feubli | 10:1c42bbd596dc | 344 | ausfahren_step=1; |
joe_feubli | 10:1c42bbd596dc | 345 | einfahren_step=1; |
joe_feubli | 10:1c42bbd596dc | 346 | } |
joe_feubli | 10:1c42bbd596dc | 347 | /*if (buffering == 0){ |
joe_feubli | 10:1c42bbd596dc | 348 | current_step = 1; |
joe_feubli | 10:1c42bbd596dc | 349 | usv_step = 1; |
joe_feubli | 10:1c42bbd596dc | 350 | }*/ |
joe_feubli | 10:1c42bbd596dc | 351 | wait(1); |
joe_feubli | 10:1c42bbd596dc | 352 | break; |
joe_feubli | 10:1c42bbd596dc | 353 | } |
joe_feubli | 10:1c42bbd596dc | 354 | led4 = 0; |
joe_feubli | 10:1c42bbd596dc | 355 | break; |
joe_feubli | 10:1c42bbd596dc | 356 | |
joe_feubli | 10:1c42bbd596dc | 357 | case 6://Test |
joe_feubli | 7:44f2f9fd2eeb | 358 | led3 = 1; |
joe_feubli | 6:3eaa420dc2f5 | 359 | if (einfahren == false){ |
joe_feubli | 6:3eaa420dc2f5 | 360 | switch (ausfahren_step){ |
joe_feubli | 6:3eaa420dc2f5 | 361 | case 1: |
joe_feubli | 6:3eaa420dc2f5 | 362 | MyEpos5.MoveAbsolute(-150000,800,100,100); //Kopf |
joe_feubli | 6:3eaa420dc2f5 | 363 | ausfahren_step = 2; |
joe_feubli | 6:3eaa420dc2f5 | 364 | wait(1); |
joe_feubli | 6:3eaa420dc2f5 | 365 | break; |
joe_feubli | 6:3eaa420dc2f5 | 366 | |
joe_feubli | 6:3eaa420dc2f5 | 367 | case 2: |
joe_feubli | 6:3eaa420dc2f5 | 368 | if (MyEpos5.TargetReached()==1){ |
joe_feubli | 7:44f2f9fd2eeb | 369 | MyEpos1.MoveAbsolute(0,500,100,100); //Panel Aussen Links |
joe_feubli | 7:44f2f9fd2eeb | 370 | MyEpos3.MoveAbsolute(0,500,100,100); //Panel Aussen Rechts |
joe_feubli | 6:3eaa420dc2f5 | 371 | MyEpos2.MoveAbsolute(310000,500,100,100); //Panel Aussen Links |
joe_feubli | 6:3eaa420dc2f5 | 372 | ausfahren_step = 3; |
joe_feubli | 10:1c42bbd596dc | 373 | wait(1); |
joe_feubli | 6:3eaa420dc2f5 | 374 | } |
joe_feubli | 6:3eaa420dc2f5 | 375 | break; |
joe_feubli | 6:3eaa420dc2f5 | 376 | |
joe_feubli | 6:3eaa420dc2f5 | 377 | case 3: |
joe_feubli | 6:3eaa420dc2f5 | 378 | if (MyEpos2.TargetReached()==1){ |
joe_feubli | 6:3eaa420dc2f5 | 379 | MyEpos1.MoveAbsolute(318000,500,100,100); //Panel Aussen Links |
joe_feubli | 6:3eaa420dc2f5 | 380 | MyEpos3.MoveAbsolute(-318000,500,100,100); //Panel Aussen Rechts |
joe_feubli | 6:3eaa420dc2f5 | 381 | |
joe_feubli | 6:3eaa420dc2f5 | 382 | ausfahren_step = 4; |
joe_feubli | 6:3eaa420dc2f5 | 383 | wait(1); |
joe_feubli | 6:3eaa420dc2f5 | 384 | } |
joe_feubli | 6:3eaa420dc2f5 | 385 | break; |
joe_feubli | 6:3eaa420dc2f5 | 386 | |
joe_feubli | 6:3eaa420dc2f5 | 387 | case 4: |
joe_feubli | 6:3eaa420dc2f5 | 388 | if (MyEpos1.TargetReached()==1 and MyEpos3.TargetReached()==1){ |
joe_feubli | 6:3eaa420dc2f5 | 389 | einfahren = true; |
joe_feubli | 6:3eaa420dc2f5 | 390 | einfahren_step = 1; |
joe_feubli | 6:3eaa420dc2f5 | 391 | wait(1); |
joe_feubli | 6:3eaa420dc2f5 | 392 | } |
joe_feubli | 6:3eaa420dc2f5 | 393 | break; |
joe_feubli | 10:1c42bbd596dc | 394 | |
joe_feubli | 10:1c42bbd596dc | 395 | } |
joe_feubli | 10:1c42bbd596dc | 396 | } |
joe_feubli | 6:3eaa420dc2f5 | 397 | |
joe_feubli | 6:3eaa420dc2f5 | 398 | if (einfahren == true){ |
joe_feubli | 6:3eaa420dc2f5 | 399 | ausfahren_step = 1; |
joe_feubli | 6:3eaa420dc2f5 | 400 | switch (einfahren_step){ |
joe_feubli | 6:3eaa420dc2f5 | 401 | case 1: |
joe_feubli | 10:1c42bbd596dc | 402 | MyEpos1.MoveAbsolute(1000,500,100,100); //Panel Aussen Links |
joe_feubli | 10:1c42bbd596dc | 403 | MyEpos3.MoveAbsolute(-1000,500,100,100); //Panel Aussen Rechts |
joe_feubli | 8:98d4028cdea6 | 404 | MyEpos1.MoveAbsolute(2000,500,100,100); //Panel Aussen Links |
joe_feubli | 8:98d4028cdea6 | 405 | MyEpos3.MoveAbsolute(-2000,500,100,100); //Panel Aussen Rechts |
joe_feubli | 6:3eaa420dc2f5 | 406 | einfahren_step = 2; |
joe_feubli | 6:3eaa420dc2f5 | 407 | wait(1); |
joe_feubli | 6:3eaa420dc2f5 | 408 | break; |
joe_feubli | 6:3eaa420dc2f5 | 409 | |
joe_feubli | 6:3eaa420dc2f5 | 410 | case 2: |
joe_feubli | 6:3eaa420dc2f5 | 411 | if (MyEpos1.TargetReached()==1 and MyEpos3.TargetReached()==1){ |
joe_feubli | 10:1c42bbd596dc | 412 | wait(1); |
joe_feubli | 8:98d4028cdea6 | 413 | MyEpos1.MoveAbsolute(0,500,100,100); //Panel Aussen Links |
joe_feubli | 8:98d4028cdea6 | 414 | MyEpos3.MoveAbsolute(0,500,100,100); //Panel Aussen Rechts |
joe_feubli | 6:3eaa420dc2f5 | 415 | MyEpos2.MoveAbsolute(0,500,100,100); //Panel Aussen Links |
joe_feubli | 6:3eaa420dc2f5 | 416 | einfahren_step = 3; |
joe_feubli | 6:3eaa420dc2f5 | 417 | wait(1); |
joe_feubli | 6:3eaa420dc2f5 | 418 | } |
joe_feubli | 6:3eaa420dc2f5 | 419 | break; |
joe_feubli | 6:3eaa420dc2f5 | 420 | |
joe_feubli | 6:3eaa420dc2f5 | 421 | case 3: |
joe_feubli | 6:3eaa420dc2f5 | 422 | if (MyEpos2.TargetReached()==1){ |
joe_feubli | 6:3eaa420dc2f5 | 423 | MyEpos5.MoveAbsolute(0,500,100,100); //Kopf |
joe_feubli | 6:3eaa420dc2f5 | 424 | wait(1); |
joe_feubli | 6:3eaa420dc2f5 | 425 | MyEpos1.Power(0); |
joe_feubli | 6:3eaa420dc2f5 | 426 | MyEpos2.Power(0); |
joe_feubli | 6:3eaa420dc2f5 | 427 | MyEpos3.Power(0); |
joe_feubli | 6:3eaa420dc2f5 | 428 | MyEpos4.Power(0); |
joe_feubli | 6:3eaa420dc2f5 | 429 | einfahren_step = 4; |
joe_feubli | 6:3eaa420dc2f5 | 430 | } |
joe_feubli | 6:3eaa420dc2f5 | 431 | break; |
joe_feubli | 6:3eaa420dc2f5 | 432 | |
joe_feubli | 6:3eaa420dc2f5 | 433 | case 4: |
joe_feubli | 6:3eaa420dc2f5 | 434 | if (MyEpos5.TargetReached()==1){ |
joe_feubli | 6:3eaa420dc2f5 | 435 | einfahren = false; |
joe_feubli | 6:3eaa420dc2f5 | 436 | current_step = 2; |
joe_feubli | 6:3eaa420dc2f5 | 437 | wait(1); |
joe_feubli | 6:3eaa420dc2f5 | 438 | MyEpos5.Power(0); |
joe_feubli | 6:3eaa420dc2f5 | 439 | } |
joe_feubli | 10:1c42bbd596dc | 440 | break; |
joe_feubli | 10:1c42bbd596dc | 441 | |
joe_feubli | 10:1c42bbd596dc | 442 | } |
joe_feubli | 10:1c42bbd596dc | 443 | } |
joe_feubli | 7:44f2f9fd2eeb | 444 | led3 = 0; |
ODEM | 1:c53aafa72b36 | 445 | break; |
joe_feubli | 10:1c42bbd596dc | 446 | }//case |
joe_feubli | 2:0f4e77a22fd9 | 447 | }//while |
joe_feubli | 10:1c42bbd596dc | 448 | }//main |