aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-06-23 09:42:30 +0300
committerAvi Levkovich <avi@twine-s.com>2020-06-23 09:42:30 +0300
commit6138caa64d75f6580790095e1cdbbb00ed58d795 (patch)
treebb8eccbc637d7e133ade69238ff64f790e2efdd9 /Software/Embedded_SW/Embedded/Modules
parentd215fe8f95a8522ff8ef915d5666087a2f271f2e (diff)
parentda3c540b1b9079a3357a7a9b7f37d07127ce0b09 (diff)
downloadTango-6138caa64d75f6580790095e1cdbbb00ed58d795.tar.gz
Tango-6138caa64d75f6580790095e1cdbbb00ed58d795.zip
merge conflicts
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c11
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/Safety.c42
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c9
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c19
4 files changed, 65 insertions, 16 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 8af4720a6..eded4bdce 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -976,6 +976,13 @@ JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob)
AlarmId = Alarm_i;
ReportWithPackageFilter(AlarmFilter,"an alarm preventing job", __FILE__,__LINE__,AlarmItem[Alarm_i].EventType, AlarmItem[Alarm_i].Severity, AlarmItem[Alarm_i].DeviceId, 0);
break;
+ case EVENT_TYPE__ELECTRICAL_CABINET_OVERTEMPERATURE:
+ case EVENT_TYPE__MACHINE_INTERNAL_OVERTEMPERATURE:
+ case EVENT_TYPE__MACHINE_INTERNAL_OVERTEMPERATURE_2:
+ FoundReason = JOB_TEMPERATURE_ALARM;
+ AlarmId = Alarm_i;
+ ReportWithPackageFilter(AlarmFilter,"machine internal over-temperature is preventing job", __FILE__,__LINE__,AlarmItem[Alarm_i].EventType, AlarmItem[Alarm_i].Severity, AlarmItem[Alarm_i].DeviceId, 0);
+ break;
default:
break;
}
@@ -1214,7 +1221,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
}
break;
case ALARM_SOURCE_TYPE__CurrentAlarm:
- if (CheckCurrentAlarms)
+ if ((CheckCurrentAlarms)&&(getIdleState()==false))
{
if (AlarmItem[Alarm_i].ModuleDeviceId == 0xFF)
{
@@ -1338,7 +1345,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
break;
if (AlarmItem[Alarm_i].Severity == DEBUG_LOG_CATEGORY__Warning)
FluidLevelWarning = AlarmItem[Alarm_i].AlarmValue;
- else if (AlarmItem[Alarm_i].Severity == DEBUG_LOG_CATEGORY__Error)
+ else if ((AlarmItem[Alarm_i].Severity == DEBUG_LOG_CATEGORY__Error)&&(AlarmItem[Alarm_i].AlarmDirection == UNDER_VALUE))
FluidLevelError = AlarmItem[Alarm_i].AlarmValue;
value = Get_MidTank_Int1000_Sensor(AlarmItem[Alarm_i].DeviceId);
if (AlarmItem[Alarm_i].AlarmDirection == OVER_VALUE)
diff --git a/Software/Embedded_SW/Embedded/Modules/General/Safety.c b/Software/Embedded_SW/Embedded/Modules/General/Safety.c
index e8454370c..400b083e4 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/Safety.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/Safety.c
@@ -65,7 +65,46 @@ uint32_t Safety_Main_State(uint32_t IfIndex, uint32_t BusyFlag)
if (AllDispensersInSafety)
{
- if (Get_COVER_1_State(DryerDoor))
+ if (WHS_GPI_SW_FILTER_PRES())
+ {
+ //report and handle filter missing
+ AlarmHandlingSetAlarm(EVENT_TYPE__AIR_FILTER_NOT_INSTALLED, true);
+ mAirFilterAlarmState = true;
+ AirFilterAlarmState = true;
+ }
+ else
+ {
+ if (WHS_GPI_WASTE_FLOW_SWITCH() == false)
+ {
+ //report and handle air flow failure
+ //if blower if off handling is different
+ AlarmHandlingSetAlarm(EVENT_TYPE__NO_AIR_PRESSURE, true);
+ mAirFlowAlarmState = true;
+ AirFlowAlarmState = true;
+ }
+ else
+ {
+ if (Get_COVER_1_State(DryerDoor))
+ {
+ //report and handle dryer door open
+ AlarmHandlingSetAlarm(EVENT_TYPE__DRYER_DOOR_OPEN, true);
+ mDrierDoorAlarmState = true;
+ DrierDoorAlarmState = true;
+ }
+ else
+ {
+ //if (WHS_GPI_WASTE_OVERFULL()) - cannot read this switch
+ {
+ //report and handle waste overflow
+ AlarmHandlingSetAlarm(EVENT_TYPE__WASTE_CONTAINER_OVERFLOW, true);
+ mWasteOverflowAlarmState = true;
+ WasteOverflowAlarmState = true;
+ }
+ }
+ }
+ }
+
+/* if (Get_COVER_1_State(DryerDoor))
{
//report and handle dryer door open
AlarmHandlingSetAlarm(EVENT_TYPE__DRYER_DOOR_OPEN, true);
@@ -103,6 +142,7 @@ uint32_t Safety_Main_State(uint32_t IfIndex, uint32_t BusyFlag)
}
}
}
+ */
}
else if (AnyDispensersInSafety)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
index b796cae50..0e3bf95a4 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
@@ -106,6 +106,11 @@ uint32_t InternalWindingConfigMessage(JobSpool* request)
InternalWinderCfg.segmentoffsetpulses = request->segmentoffsetpulses;
InternalWinderCfg.spoolbackingrate = request->backingrate;
InternalWinderCfg.startoffsetpulses = request->startoffsetpulses;
+ if (request->has_limitswitchstartpointoffset)
+ {
+ InternalWinderCfg.startoffsetpulses += request->limitswitchstartpointoffset;
+ Report("limit switch start point offset",__FILE__,__LINE__,(int)(request->startoffsetpulses),RpWarning,(int)(request->limitswitchstartpointoffset), 0);
+ }
InternalWinderCfg.SpoolBottomBackingRate = request->bottombackingrate;
InternalWinderCfg.NumberOfRotationPerPassage = 3.1415926*3;//request->rotationsperpassage;
if (request->rotationsperpassage > 6.1)
@@ -543,7 +548,7 @@ uint32_t WinderDistanceToSpoolEnded(uint32_t deviceID, uint32_t ReadValue)
}
uint32_t ScrewDTSCallback(uint32_t deviceID, uint32_t BusyFlag)
{
- REPORT_MSG ((int)msec_millisecondCounter,"ScrewDTSCallback called");
+ Report("ScrewDTSCallback called", __FILE__,__LINE__,msec_millisecondCounter, RpMessage, ScrewSpeed, 0);
SafeRemoveControlCallback(ScrewDTSControlId, ScrewDTSCallback);
if (ScrewControlId != 0xFF)
@@ -566,7 +571,7 @@ uint32_t WinderDistanceToSpoolState(void )
REPORT_MSG ((int)DTS_Time,"WinderDistanceToSpoolState");
ScrewDTSControlId = AddControlCallback("screw DTS",ScrewDTSCallback, DTS_Time-WinderBackToBaseTime,TemplateDataReadCBFunction,0,0,0);
- REPORT_MSG ((int)msec_millisecondCounter,"ScrewDTSCallback start");
+ Report("ScrewDTSCallback start", __FILE__,DTS_Time,msec_millisecondCounter, RpMessage, WinderBackToBaseTime, 0);
return OK;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index e7a333cc2..21211481e 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -794,16 +794,6 @@ uint32_t ThreadInitialTestStub(HardwareMotor * request)
}
uint32_t HandleJobThreadControlParameters(ThreadParameters* ThreadParams)
{
- /*
- FEEDER_MOTOR,
- DRYER_MOTOR,
- POOLER_MOTOR,
- WINDER_MOTOR,
- MotorControlConfig[Motor_i].m_params.Kd = MotorsControl[Pid_Id].derivativetime;
- MotorControlConfig[Motor_i].m_params.Kp = MotorsControl[Pid_Id].proportionalgain;
- MotorControlConfig[Motor_i].m_params.Ki = MotorsControl[Pid_Id].integraltime;
-
- */
if (ThreadParams == NULL)
{
return OK;
@@ -828,6 +818,7 @@ uint32_t HandleJobThreadControlParameters(ThreadParameters* ThreadParams)
MotorControlConfig[WINDER_MOTOR].m_params.Ki = ThreadParams->winderi;
if(ThreadParams->winderd)
MotorControlConfig[WINDER_MOTOR].m_params.Kd = ThreadParams->winderd;
+ ReportWithPackageFilter(ThreadFilter,"Rockers activity",__FILE__,__LINE__,(int)Thread_Rockers_Bypass,RpWarning,(int)ThreadParams->bypassrockers,0);
if(ThreadParams->bypassrockers)
Thread_Rockers_Bypass = true;
@@ -850,14 +841,20 @@ uint32_t Release_Right_TFU_Tension()
{
Report("Release_Right_TFU_Tension",__FILE__,__LINE__,HARDWARE_MOTOR_TYPE__MOTO_RDANCER,RpMessage,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].pulseperround/4,0);
RTFU_Up = false;
- status = MotorMoveWithCallback(HARDWARE_MOTOR_TYPE__MOTO_RDANCER, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].directionthreadwize, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].pulseperround/2, Release_Right_TFU_TensionCallback,1000);
+ status = MotorMoveWithCallback(HARDWARE_MOTOR_TYPE__MOTO_RDANCER, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].directionthreadwize, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].pulseperround/4* MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].microstep, Release_Right_TFU_TensionCallback,1000);
}
return status;
}
+uint32_t Adjust_Right_TFU_Tension_2nd_Callback(uint32_t MotorId, uint32_t ReadValue)
+{
+ Report("Adjust_Right_TFU_Tension_2ndCallback 4 more steps",__FILE__,__LINE__,MotorId,RpMessage,0,0);
+ return OK;
+}
uint32_t Adjust_Right_TFU_Tension_Callback(uint32_t MotorId, uint32_t ReadValue)
{
Report("Adjust_Right_TFU_Tension_Callback",__FILE__,__LINE__,MotorId,RpMessage,0,0);
+ MotorMoveWithCallback(HARDWARE_MOTOR_TYPE__MOTO_RDANCER, 1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].directionthreadwize,4* MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].microstep, Release_Right_TFU_TensionCallback,1000);
RTFU_Up = true;
return OK;
}