aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-02-19 10:32:48 +0200
committerAvi Levkovich <avi@twine-s.com>2020-02-19 10:32:48 +0200
commit685b1da155bda741a3378a1c19a04ffd110a0a33 (patch)
treee38a3740bf4727dfa9368c6010c6cd55d6910ffb /Software/Embedded_SW/Embedded/Modules
parent94fccc66fd2b8b6aed1371546dfd8cef68d5e60d (diff)
parentbb51ac752b58b3d64e86a8150e7a9b1f5749e379 (diff)
downloadTango-685b1da155bda741a3378a1c19a04ffd110a0a33.tar.gz
Tango-685b1da155bda741a3378a1c19a04ffd110a0a33.zip
merge conflict
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c18
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c24
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c101
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c13
6 files changed, 92 insertions, 74 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index e5064ef70..2c7512129 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -606,7 +606,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
StartPT100 = TEMP_SENSE_ANALOG_DRYER_TEMP1;
if (Ten_msTick)
{
- //Speed_Data = Calculate_Speed_Sensor_Velocity();
+ Speed_Data = Read_Speed_Sensor_TypeII();
//MillisecReadFromTempSensor(Sensor_Read, NULL);
//if (Sensor_Read++ >= MAX_MAIN_CARD_TEMPERATURE_SENSOR_ID) Sensor_Read = 0;
if(Machine_Idle_Mode == true)
@@ -720,7 +720,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
}
Trigger_WHS_PT100_Read_All();
Trigger_WHS_MAX11614_Read_allADC();
-// WHS_Blower_Avarege_ORF1(); //drier
+ WHS_Blower_Avarege_ORF1(); //drier
WHS_Blower_Avarege_ORF3(); //head
Trigger_WHSReadAllFanTacho ();
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
index 36d4505d0..63fe510c4 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
@@ -314,12 +314,14 @@ uint32_t DiagnosticsLoadDigitalValues(void)
DigitalOutputState[index].interfaceio = INTERFACE_IOS__GPO_SPARE_SSR13_CTRL;
DigitalOutputState[index++].value = ReadHeadMagnetBit();
- DigitalOutputState[index].interfaceio = INTERFACE_IOS__GPO_LED3;
- //DigitalOutputState[index++].value = HeadCard_Actuators_Status(ACTIN);
+ /*if (Head_Type == HEAD_TYPE_SYLKO) //rapid/pp machines
+ {
+ DigitalOutputState[index].interfaceio = INTERFACE_IOS__GPO_LED3;
+ DigitalOutputState[index++].value = HeadCard_Actuators_Status(ACTIN);
- DigitalOutputState[index].interfaceio = INTERFACE_IOS__GPO_LED4;
- // indication of movement cause the switch in the tech board to change, also doesn't go through the task
- //DigitalOutputState[index++].value = HeadCard_Actuators_Status(ACTOT);
+ DigitalOutputState[index].interfaceio = INTERFACE_IOS__GPO_LED4;
+ DigitalOutputState[index++].value = HeadCard_Actuators_Status(ACTOT);
+ }*/
DigitalOutputState[index].interfaceio = INTERFACE_IOS__GPI_WCONTAINER_FULL;
DigitalOutputState[index++].value = WHS_IsContainerFull();
@@ -408,7 +410,7 @@ void DiagnosticTenMsecCollection(void)
DiagnosticLoadDancerError(POOLER_DANCER,ThreadGetMotorCalculatedError(POOLER_DANCER));
DiagnosticLoadDancerError(FEEDER_DANCER,ThreadGetMotorCalculatedError(FEEDER_DANCER));
- //DiagnosticLoadSpeedSensor(getSensorSpeedData());
+ DiagnosticLoadSpeedSensor(getSensorSpeedData());
}
void DiagnosticOneMinuteCollection(void)
{
@@ -444,7 +446,7 @@ void DiagnosticOneMinuteCollection(void)
}
DiagnosticsMonitor.n_overalltemperature = 1;
OverallTemperature = max(MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP1),MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP2));
- OverallTemperature = ((int)(MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP1))*1000 + (int)(MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP2)));
+ OverallTemperature = ((int)(MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP1))*10 + (int)(MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP2)/100));
DiagnosticsMonitor.overalltemperature = &OverallTemperature;
DiagnosticsMonitor.n_midtank1level = 1;
@@ -794,7 +796,9 @@ void Diagnostic100msecCollection(void)
}
}
+ DiagnosticsMonitor.n_drierzone1heatercurrent = 1;
HeatersCurrent[HEATER_DRYER_CURRENT_1][0] = Get_Heaters_Current(HEATER_DRYER_CURRENT_1);
+ DiagnosticsMonitor.n_drierzone2heatercurrent = 1;
HeatersCurrent[HEATER_DRYER_CURRENT_2][0] = Get_Heaters_Current(HEATER_DRYER_CURRENT_2);
/*dispenser1motorfrequency[DiagnosticsIndex] = MotorGetSpeed(HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1);
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
index f43cf8c56..6e4eed580 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
@@ -27,9 +27,9 @@
uint32_t CloseValveTimeout = 10;
uint32_t OpenValveTimeout = 10;
-#define DISPENSER_BUILD_PRESSURE_SPEED 900
-#define DISPENSER_BUILD_PRESSURE_LIMIT 1.5
-#define DISPENSER_BUILD_PRESSURE_TIMEOUT 60000
+#define DISPENSER_BUILD_PRESSURE_SPEED 940
+#define DISPENSER_BUILD_PRESSURE_LIMIT 1.0
+#define DISPENSER_BUILD_PRESSURE_TIMEOUT 120000
#define DISPENSER_BUILD_PRESSURE_LAG 50
#define DEFAULT_NANOLITER_PER_PULSE 2.34
uint32_t DispenserPrepareSpeed = DISPENSER_BUILD_PRESSURE_SPEED;
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index 14718ab0e..0c28ee564 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -519,12 +519,12 @@ uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue)
if (DispenserUsedInJob[i] == true) //we actually should check for all dispensers
{
HW_Motor_Id = DispenserIdToMotorId[i];
- if (GetDispenserPressure(i) > DispenserPreparePressure*1.02)
+ if (GetDispenserPressure(i) > DispenserPreparePressure*1.05)
{
NumofReadyDispensers++;
- CurrentDispenserSpeed[i] = 0;
#ifdef SPECIAL_DISPENSERS
MotorStop(HW_Motor_Id, Hard_Hiz);
+ CurrentDispenserSpeed[i] = 0;
//Report("IDS stopped ready",__FILE__,i,(int)(DispenserPreparePressure*100),RpWarning,(int)NumofReadyDispensers,0);
#else
tempSpeed = CurrentDispenserSpeed[i];
@@ -569,7 +569,7 @@ uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue)
Report("pressureReady = true or timeout;",__FILE__,DispenserBuildTimeCounter,NumofReadyDispensers,RpWarning,(int)NumOfActiveDispensers,0);
}
}
-#ifndef SPECIAL_DISPENSERS
+//#ifndef SPECIAL_DISPENSERS
else if (endOfPrepareWCF == false)
{
if ((DispenserBuildTimeCounter == PRESSURE_READ_TIME_GAP)&&(FirstBrushStop))
@@ -614,8 +614,11 @@ uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue)
segmentfirst_speed /= 100;
DispenserSegmentReady[DispenserId] = false;
//Control3WayValvesWithCallback (DispenserId, Dispenser_Mixer, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer
- //IDS_Dispenser_Start_Motor_and_Open_Valve(DispenserId,segmentfirst_speed,NULL);
+#ifdef SPECIAL_DISPENSERS
+ IDS_Dispenser_Start_Motor_and_Open_Valve(DispenserId,segmentfirst_speed,NULL);
+#else
MotorSetSpeed(HW_Motor_Id, segmentfirst_speed);
+#endif
CurrentDispenserSpeed[Dispenser_i] = segmentfirst_speed;
usnprintf(IdMessage, 80,
@@ -657,13 +660,13 @@ uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue)
}
}
-#endif
+/*#endif
#ifdef SPECIAL_DISPENSERS
if (pressureReady == true)
-#else
+#else*/
//start new stage
if (endOfPrepareWCF == true)
-#endif
+//#endif
{
SafeRemoveControlCallback(DispenserPrepareControlId, IDS_Prepare_Callback );
DispenserPrepareControlId = 0xFF;
@@ -785,6 +788,9 @@ uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue)
for (i = 0; i < MAX_DYE_DISPENSERS; i++)
{
dispenserspeed = DispenserPrepareSpeed;
+#ifdef SPECIAL_DISPENSERS
+ dispenserspeed = 300;
+#endif
TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[i];
if (DispenserUsedInJob[i] == true) //we actually should check for all dispensers
@@ -1060,7 +1066,7 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback);
//cleaning
return OK;
}
-#ifndef SPECIAL_DISPENSERS
+//#ifndef SPECIAL_DISPENSERS
if ((InterSegmentStartWFCFDispensers > 12000)&&(InterSegmentStartWFCFDispensers == (InterSegmentStepsCount+12000)))
{
//start prepare 4 seconds before wcf
@@ -1141,7 +1147,7 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback);
//close waste valve one second before segment - trial
Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Head);
}
-#endif
+//#endif
return OK;
}
uint32_t IDSCheckSegmentData(void *SegmentDetails, int SegmentId)
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index 51fe807d8..d3a97bf3a 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -107,64 +107,65 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
}
}
else
- if((request->amount == 0x3E8) && (request->delay <= 0x0fff))// set WHS Blower speed 0x00-0xfff
- {
- if (WHS_Type == WHS_TYPE_NEW)
+ if((request->amount == 0x3E8) && (request->delay <= 0x0fff))// set WHS Blower speed 0x00-0xfff
{
- Trigger_SetWHSBlowerVoltage (request->delay);
- response.progress = 0;
- response.has_progress = true;
- } //Trigger_WHS_Set_Volt_Blower_Control(request->delay);
- }
+ if (WHS_Type == WHS_TYPE_NEW)
+ {
+ Trigger_SetWHSBlowerVoltage (request->delay);
+ response.progress = 0;
+ response.has_progress = false;
+ }
+ }
else
if (request->amount == 0x3E7) // set WHS Blower speed by Q value
{
if (WHS_Type == WHS_TYPE_NEW)
{
- Trigger_WHS_Set_Blower_Control_Closed_Loop (request->delay);
+ WHS_Set_Blower_Control_Closed_Loop (request->delay);
response.progress = 0;
- response.has_progress = true;
- } //Trigger_WHS_Set_Volt_Blower_Control(request->delay);
+ response.has_progress = false;
+ }
}
- else if(request->amount == 0x3EA)
- {
- uint16_t tempu16 = 0;
- if (WHS_Type == WHS_TYPE_NEW)
- {
- switch(request->delay )// set WHS Blower speed 0x00-0xfff
- {
- case 0:
- get_orf_1(&tempu16);
- break;
- case 1:
- get_orf_2(&tempu16);
- break;
- case 2:
- get_orf_3(&tempu16);
- break;
- case 3:
- get_vlev1(&tempu16);
- break;
- case 4:
- get_vlev2(&tempu16);
- break;
- case 5:
- get_gas_out(&tempu16);
- break;
- case 6:
- get_cur_fan(&tempu16);
- break;
- case 7:
- get_cur_vlv1(&tempu16);
- break;
- case 8:
- tempu16 = 0; //get_cur_vlv2(&tempu16);
- break;
- default :
- tempu16 = 0x500; //get_cur_vlv2(&tempu16);
- break;
+ else
+ if(request->amount == 0x3EA)
+ {
+ uint16_t tempu16 = 0;
+ if (WHS_Type == WHS_TYPE_NEW)
+ {
+ switch(request->delay )// set WHS Blower speed 0x00-0xfff
+ {
+ case 0:
+ get_orf_1(&tempu16);
+ break;
+ case 1:
+ get_orf_2(&tempu16);
+ break;
+ case 2:
+ get_orf_3(&tempu16);
+ break;
+ case 3:
+ get_vlev1(&tempu16);
+ break;
+ case 4:
+ get_vlev2(&tempu16);
+ break;
+ case 5:
+ get_gas_out(&tempu16);
+ break;
+ case 6:
+ get_cur_fan(&tempu16);
+ break;
+ case 7:
+ get_cur_vlv1(&tempu16);
+ break;
+ case 8:
+ tempu16 = 0; //get_cur_vlv2(&tempu16);
+ break;
+ default :
+ tempu16 = 0x500; //get_cur_vlv2(&tempu16);
+ break;
+ }
}
- }
response.progress = (double)tempu16;
response.has_progress = true;
}
@@ -511,7 +512,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
if((request->amount == 0x0CE) && (request->delay == 0x0CE)) //Get Gas Sensor
{
LOG_ERROR(request->delay,"FlashInitAndLoad");
- FlashInitAndLoad();
+ FlashInit();
response.progress = (double)OK;
response.has_progress = true;
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index fd48e799a..1dd101f82 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -28,6 +28,7 @@
#include "drivers/Heater/Heater.h"
#include "drivers/Motors/Motor.h"
#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
+#include "drivers/FPGA/FPGA_SPI_Comm.h"
#include "modules/heaters/heaters.h"
#include "modules/General/process.h"
#include "modules/ids/ids_ex.h"
@@ -117,8 +118,8 @@ uint32_t Control_Delta_Position_Pass(uint32_t Current_Read,uint32_t Previous_Rea
if (Current_Read < Previous_Read)
{
- ReportWithPackageFilter(ThreadFilter,"Length rollover",__FILE__,__LINE__,(int)Current_Read,RpWarning,(int)Previous_Read,0);
Time_Pass = (MAX_COUNTER - Previous_Read) + Current_Read + 1;
+ ReportWithPackageFilter(ThreadFilter,"Length rollover",__FILE__,Time_Pass,(int)Current_Read,RpWarning,(int)Previous_Read,0);
}
else
Time_Pass = Current_Read - Previous_Read;
@@ -178,7 +179,10 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
initialpos = 0;
}
prevprev = PreviousPosition;
- positionDiff = Control_Delta_Position_Pass(CurrentPosition,PreviousPosition);
+ if (Extended_Motor_Param[ThreadMotorIdToMotorId[index]] == true) //powerstep driver reverses the direction
+ positionDiff = Control_Delta_Position_Pass(PoolerPreviousPosition,PoolerCurrentPosition);
+ else
+ positionDiff = Control_Delta_Position_Pass(PoolerCurrentPosition,PoolerPreviousPosition);
//positionDiff = positionDiff / MotorsCfg[ThreadMotorIdToMotorId[index]].microstep;
PreviousPosition = CurrentPosition;
@@ -268,7 +272,10 @@ uint32_t PoolerThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
Poolerinitialpos = 0;
}
prevprev = PoolerPreviousPosition;
- positionDiff = Control_Delta_Position_Pass(PoolerCurrentPosition,PoolerPreviousPosition);
+ if (Extended_Motor_Param[ThreadMotorIdToMotorId[index]] == true) //powerstep driver reverses the direction
+ positionDiff = Control_Delta_Position_Pass(PoolerPreviousPosition,PoolerCurrentPosition);
+ else
+ positionDiff = Control_Delta_Position_Pass(PoolerCurrentPosition,PoolerPreviousPosition);
//positionDiff = positionDiff / MotorsCfg[ThreadMotorIdToMotorId[index]].microstep;
PoolerPreviousPosition = PoolerCurrentPosition;