diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-10-22 09:57:56 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-10-22 09:57:56 +0300 |
| commit | e64ec3bb6dd7294f9765bf4ca032e4aea42509e8 (patch) | |
| tree | f46a2564394361a1b6f0ab1c42cfd0b61f8b60ff /Software/Embedded_SW/Embedded/Modules/Diagnostics | |
| parent | 62c58ec1e5496c2e6a12be1179ee8ed5ee2890f3 (diff) | |
| download | Tango-e64ec3bb6dd7294f9765bf4ca032e4aea42509e8.tar.gz Tango-e64ec3bb6dd7294f9765bf4ca032e4aea42509e8.zip | |
IDS - do not switch off valve between segments if used in the next segment. SCREW - preparations for interrupts. Alarm Handling - low temperature. Homing - bi-directional.
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Diagnostics')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c | 77 |
1 files changed, 53 insertions, 24 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c index ff2294b6b..960581da7 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c @@ -35,10 +35,10 @@ #include "StateMachines/Printing/PrintingSTM.h" -FPGA_GPI_ENUM Motor_Id_to_LS_Id[NUM_OF_MOTORS] = { - MAX_GPI, //MOTO_DH_CLEANHEAD = 0, - MAX_GPI, //MOTO_DH_CLEANMECH = 1, - MAX_GPI, //MOTO_DH_LID = 2, +FPGA_GPI_ENUM Motor_Id_to_LS_IdDown[NUM_OF_MOTORS] = { // limit switch for normal homing into working mode + MAX_GPI, //MOTO_DH_CLEANHEAD = 0, // closing the loading system + MAX_GPI, //MOTO_DH_CLEANMECH = 1, //dispensers down + GPI_LS_DH_LID_CLOSED, //MOTO_DH_LID = 2, MAX_GPI, //MOTO_DRYER_DRIVING = 3, MAX_GPI, //MOTO_DRYER_LID = 4, MAX_GPI, //MOTO_DRYER_LOADARM = 5, @@ -55,12 +55,39 @@ FPGA_GPI_ENUM Motor_Id_to_LS_Id[NUM_OF_MOTORS] = { GPI_LS_LDANCER1_DOWN, //MOTO_LDANCER1 = 16, GPI_LS_LDANCER2_DOWN, //MOTO_LDANCER2 = 17, MAX_GPI, //MOTO_LDRIVING = 18, + GPI_LS_LLOADMOTOR_DOWN, //MOTO_LLOADING = 19, + GPI_LS_LPIVOT_DOWN, //MOTO_LPIVOT1 = 20, + GPI_LS_RDANCER_DOWN, //MOTO_RDANCER = 21, + MAX_GPI, //MOTO_RDRIVING = 22, + GPI_LS_RDANCER_LONG, //MOTO_RLOADARM = 23, + GPI_LS_RLOADMOTOR_DOWN, //MOTO_RLOADING = 24, +}; +FPGA_GPI_ENUM Motor_Id_to_LS_IdUp[NUM_OF_MOTORS] = { // limit switch for normal homing out of working mode + MAX_GPI, //MOTO_DH_CLEANHEAD = 0, // opening the loading system + MAX_GPI, //MOTO_DH_CLEANMECH = 1, //dispensers up - empting + GPI_LS_DH_LID_OPEN, //MOTO_DH_LID = 2, + MAX_GPI, //MOTO_DRYER_DRIVING = 3, + MAX_GPI, //MOTO_DRYER_LID = 4, + MAX_GPI, //MOTO_DRYER_LOADARM = 5, + GPI_LS_DISPENSER_UP_1, //MOTO_DISPENSER_1 = 6, + GPI_LS_DISPENSER_UP_2, //MOTO_DISPENSER_2 = 7, + GPI_LS_DISPENSER_UP_3, //MOTO_DISPENSER_3 = 8, + GPI_LS_DISPENSER_UP_4, //MOTO_DISPENSER_4 = 9, + GPI_LS_DISPENSER_UP_5, //MOTO_DISPENSER_5 = 10, + GPI_LS_DISPENSER_UP_6, //MOTO_DISPENSER_6 = 11, + GPI_LS_DISPENSER_UP_7, //MOTO_DISPENSER_7 = 12, + GPI_LS_DISPENSER_UP_8, //MOTO_DISPENSER_8 = 13, + GPI_LS_SCREW_RIGHT, //MOTO_SCREW = 14, + MAX_GPI, //MOTO_WINDER = 15, + GPI_LS_LDANCER1_UP, //MOTO_LDANCER1 = 16, + GPI_LS_LDANCER2_UP, //MOTO_LDANCER2 = 17, + MAX_GPI, //MOTO_LDRIVING = 18, GPI_LS_LLOADMOTOR_UP, //MOTO_LLOADING = 19, GPI_LS_LPIVOT_UP, //MOTO_LPIVOT1 = 20, - GPI_LS_RDANCER_DOWN, //MOTO_RDANCER = 21, + GPI_LS_RDANCER_UP, //MOTO_RDANCER = 21, MAX_GPI, //MOTO_RDRIVING = 22, GPI_LS_RLOADRAM_UP, //MOTO_RLOADARM = 23, - GPI_LS_RLOADMOTOR_DOWN, //MOTO_RLOADING = 24, + GPI_LS_RLOADMOTOR_UP, //MOTO_RLOADING = 24, }; typedef enum { MotorHomingDirectionUp, @@ -132,11 +159,23 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer) { if ((JobIsActive() == false)&&(isMotorConfigured(MotorId) == true)) { - if ( Motor_Id_to_LS_Id[MotorId] != MAX_GPI) + if (request->direction == MOTOR_DIRECTION__Forward) //opening the loading system + { + if ( Motor_Id_to_LS_IdUp[MotorId] != MAX_GPI) + { + MotorMovetoLimitSwitch (MotorId,MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_IdUp[MotorId], MotorHomingRequestCallback); + ustrncpy (HomingToken[MotorId], requestContainer->token,36); + return OK; + } + } + else // closing the system into normal work { - MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_Id[MotorId], MotorHomingRequestCallback); - ustrncpy (HomingToken[MotorId], requestContainer->token,36); - return OK; + if ( Motor_Id_to_LS_IdDown[MotorId] != MAX_GPI) + { + MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_IdDown[MotorId], MotorHomingRequestCallback); + ustrncpy (HomingToken[MotorId], requestContainer->token,36); + return OK; + } } } } @@ -225,20 +264,10 @@ uint32_t DispenserHomingRequestFunc(MessageContainer* requestContainer) { if ((JobIsActive() == false)&&(isMotorConfigured(MotorId) == true)) { - IDS_HomeDispenser(request->index,speed,DispenserHomingRequestCallback); - /*if ( Motor_Id_to_LS_Id[MotorId] != MAX_GPI) - { - //open dispenser valve dispenser to midtank direction - Control3WayValvesWithCallback ((Valves_t) request->index, MidTank_Dispenser, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer - //Valve_Set((Valves_t) request->index, MidTank_Dispenser); - //open dry air valve in the dispenser - Valve_Set((Valves_t) (request->index+VALVE_2W_MID_AIR_8), Atm_MidTank_ON); - - MotorSetMicroStep(MotorId, 1); - - MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_Id[MotorId], DispenserHomingRequestCallback); - return OK; - }*/ + if (request->direction == MOTOR_DIRECTION__Backward) //dispenser homing + IDS_HomeDispenser(request->index,speed,DispenserHomingRequestCallback); + else //empty dispenser - support TBD + IDS_EmptyDispenser(request->index,speed,DispenserHomingRequestCallback);//return ERROR; } } |
