aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Diagnostics
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-10-22 09:57:56 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-10-22 09:57:56 +0300
commite64ec3bb6dd7294f9765bf4ca032e4aea42509e8 (patch)
treef46a2564394361a1b6f0ab1c42cfd0b61f8b60ff /Software/Embedded_SW/Embedded/Modules/Diagnostics
parent62c58ec1e5496c2e6a12be1179ee8ed5ee2890f3 (diff)
downloadTango-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.c77
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;
}
}