aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c5
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c35
2 files changed, 36 insertions, 4 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index 71bae1f40..eb5f12136 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -859,6 +859,11 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl
TargetNumberOfStepsPreRun = InitialDispenserTimeout;
MaximalPressurePreRun = InitialDispenserPressure;
+ if(Head_Type == HEAD_TYPE_ARC)
+ {
+ MotorMovetoLimitSwitch(HARDWARE_MOTOR_TYPE__MOTO_DH_LID,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_LID].directionthreadwize, 30, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID], NULL,30000);
+ }
+
for (Motor_i = 0;Motor_i < MAX_SYSTEM_DISPENSERS;Motor_i++)
{
TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[Motor_i];
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index 87ad612ba..697f1bd5d 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -36,7 +36,7 @@
#include "Modules/AlarmHandling/AlarmHandling.h"
#include "Control/MillisecTask.h"
#include "drivers/Flash_ram/MCU_E2Prom.h"
-
+#include "Drivers/Uart_Comm/BTSR/BTSR.h"
#include "drivers/SSI_Comm/SSI_Comm.h"
////////////////////////////////State machine operation////////////////////////////////////
@@ -79,6 +79,7 @@ double LengthCalculationMultiplier;
uint32_t PoolerPreviousPosition = 0, PoolerCurrentPosition = 0;
double PoolerTotalProcessedLength = 0.0;
double PoolerLengthCalculationMultiplier;
+double threadlengthfactor = 1.0;
double TempPoolerTotalProcessedLength = 0.0;
double TempTotalProcessedLength = 0.0;
@@ -109,6 +110,7 @@ void SendSegmentFail(void);
double KeepNormalizedError = 0;
bool ThreadControlActive = false;
+extern BTSR_t BTSR[MaxUFeeders];
////////////////////////Slow Motor State////////////////////////////////////
//uint32_t ThreadPreSegmentState(void *JobDetails);
@@ -337,9 +339,13 @@ uint32_t PoolerThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
}**/
//}
-#ifdef BTSR_NO_PULLER_TFU
- if (CurrentControlledSpeed[WINDER_MOTOR]>100)
- length = dyeingspeed/10;
+#ifdef UFEEDER_BTSR
+ length = BTSR[RUFeeder1].LengthInMeter * threadlengthfactor;
+#else
+ #ifdef BTSR_NO_PULLER_TFU
+ if (CurrentControlledSpeed[WINDER_MOTOR]>100)
+ length = dyeingspeed/10;
+ #endif
#endif
PoolerTotalProcessedLength+= (length/100);
TempPoolerTotalProcessedLength = PoolerTotalProcessedLength;
@@ -1080,6 +1086,16 @@ uint32_t ThreadPrepareState(void *JobDetails)
initialpos = 0xFFFF;
Poolerinitialpos = 0xFFFF;
PrepareState = true;
+
+#ifdef UFEEDER_BTSR
+ int application = JobTicket->btsrparameters->btsrapplicationtype;
+ int type = JobTicket->btsrparameters->btsryarntype;
+ uint16_t tension = (uint16_t)(JobTicket->btsrparameters->feedingtension*10);
+ uint16_t tension_err = (uint16_t)(JobTicket->btsrparameters->tensionerror*10);
+ uint16_t alarm_time = 5; //no parameter
+ threadlengthfactor = JobTicket->btsrparameters->threadlengthfactor;
+#endif
+
AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_BREAK,false);
AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_TENSION_CONTROL_FAILURE_PULLER_DANCER,false);
AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_TENSION_CONTROL_FAILURE_FEEDER_DANCER,false);
@@ -1097,8 +1113,18 @@ uint32_t ThreadPrepareState(void *JobDetails)
IntersegmentLength = JobTicket->intersegmentlength;
PrepareWaitCount = 0;
+
+#ifdef UFEEDER_BTSR
+ status = ThreadPrepare_Tension (HARDWARE_DANCER_TYPE__LeftDancer, JobTicket->btsrparameters->exittension);
+ ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_Tension Winder",__FILE__,HARDWARE_DANCER_TYPE__LeftDancer,PrepareWaitCount,RpWarning,(int)JobTicket->btsrparameters->exittension,0);
+ BTSR_RML_Settings(RUFeeder1, application, type, tension, tension_err, alarm_time);
+ BTSR_Reset_Length(RUFeeder1, HIGHEST);
+ BTSR_Read_Length(RUFeeder1, HIGHEST);
+ ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_Tension BTSR",__FILE__,application,type,RpError,tension,tension_err);
+#else
status = ThreadPrepare_Tension (HARDWARE_DANCER_TYPE__LeftDancer, windertension);
ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_Tension Winder",__FILE__,HARDWARE_DANCER_TYPE__LeftDancer,PrepareWaitCount,RpWarning,(int)windertension,0);
+#endif
#ifndef BTSR_NO_PULLER_TFU
status = ThreadPrepare_Tension (HARDWARE_DANCER_TYPE__MiddleDancer, pullertension);
ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_Tension Puller",__FILE__,HARDWARE_DANCER_TYPE__MiddleDancer,PrepareWaitCount,RpWarning,(int)pullertension,0);
@@ -1107,6 +1133,7 @@ uint32_t ThreadPrepareState(void *JobDetails)
status = ThreadPrepare_Tension (HARDWARE_DANCER_TYPE__RightDancer, feedertension);
ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_Tension Feeder",__FILE__,HARDWARE_DANCER_TYPE__RightDancer,PrepareWaitCount,RpWarning,(int)feedertension,0);
#endif
+
FirstCalcInJob = true;
if(MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDRIVING].speedmaster == false)
{