diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-06-28 17:02:53 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-06-28 17:02:53 +0300 |
| commit | 4d3782e72e3bc9db6aab280abe7dd8c9cc2b5dbe (patch) | |
| tree | d84d5be0167fa282bcd09c703fd547133aff7753 /Software | |
| parent | d057362f6b686794534eace6f6f738ef4393f6ae (diff) | |
| parent | 3d6d6436378270961c571602d84bff870162b3af (diff) | |
| download | Tango-4d3782e72e3bc9db6aab280abe7dd8c9cc2b5dbe.tar.gz Tango-4d3782e72e3bc9db6aab280abe7dd8c9cc2b5dbe.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software')
84 files changed, 21248 insertions, 231 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Heaters/Head_Heaters.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Heaters/Head_Heaters.c index e4f7f81ad..a5c9376d2 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Heaters/Head_Heaters.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Heaters/Head_Heaters.c @@ -59,7 +59,7 @@ uint32_t Write_Head_Card_Heaters_Commands() if(Semaphore_pend(I2C_Sem, BIOS_NO_WAIT)) { status = Head_Write_IO_Reg(0x40,LOW_AND_HIGH); - status = Head_Write_IO_Reg(0x42,LOW); + status |= Head_Write_IO_Reg(0x42,LOW); Semaphore_post(I2C_Sem); } else diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c index ab05c92a9..8bd21b9b4 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c @@ -123,6 +123,11 @@ uint32_t I2C_ReadBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* data return 0xFF; } + /*if (Task_self()!= I2C_Task_Handle) + { + status = ERROR; + } + status = OK;*/ I2CMasterSlaveAddrSet(I2C_BASE, addr, true); if (len == 1) { @@ -223,7 +228,7 @@ uint32_t I2C_Write(uint32_t I2C_ID, uint32_t Slave_Add, uint32_t *I2C_Write_buf, status = I2C_WriteBuff(I2C_BASE, Slave_Add, I2C_Write_buf, No_BytesToWrite); if (status) { - if (Arb_Loss_Count++ > 10) + if (Arb_Loss_Count++ >= 5) { Arb_Loss_Count= 0; Init_All_I2C(); @@ -276,7 +281,7 @@ uint32_t I2C_Read(uint32_t I2C_ID, uint32_t Slave_Add, uint32_t *I2C_Read_buf, u //status = I2C_ReadFifo(I2C_BASE, Slave_Add, buff, No_BytesToRead); if (status) { - if (Arb_Loss_Count++ > 10) + if (Arb_Loss_Count++ >= 5) { Arb_Loss_Count= 0; Init_All_I2C(); diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c index 13ecbd12c..44ab8d710 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c @@ -49,6 +49,8 @@ typedef enum HeadArcPressureAction, HeadValveAction, + DispenserReadData, + /* enum for WHS :*/ WHS_start, WHS_init_I2C_IO, @@ -225,6 +227,18 @@ void Trigger_Head_MixerValve(int direction) return; } +void Trigger_Dispenser_ReadData(int dispenserId) +{ + I2C_ReadingMessageStruc I2C_ReadingMessage; + //uint8_t Midtank_i; + + I2C_ReadingMessage.messageId = DispenserReadData; + I2C_ReadingMessage.parameter = dispenserId; + if (I2C_ReadingMsgQ != NULL) + Mailbox_post(I2C_ReadingMsgQ , &I2C_ReadingMessage, BIOS_NO_WAIT); + return; +} + void Trigger_HeaterWriting(void) { I2C_ReadingMessageStruc I2C_ReadingMessage; @@ -624,6 +638,9 @@ void I2C_ReadingTask(UArg arg0, UArg arg1) break; case Head_Outputs_Writing: break; + case DispenserReadData: + Dispenser_EEPROM_Read_Data(I2C_ReadingMessage.parameter); + break; case WHS_PT100_Reading: for (Sensor_i = WHS_PT100_1_0X80_0; Sensor_i <= WHS_PT100_4_0X82_1; Sensor_i++) { diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h index 35440bca5..20fcb0074 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h @@ -55,4 +55,6 @@ void Trigger_Head_Magnet(int direction); void Trigger_Head_MixerValve(int direction); void Trigger_Head_PressureArc(bool Enable_Disable); +void Trigger_Dispenser_ReadData(int dispenserId); + #endif /* DRIVERS_I2C_COMMUNICATION_I2C_TASK_H_ */ diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c index f75e6c6e6..c5f8037aa 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.c @@ -430,7 +430,7 @@ void SendLimitedBlowerControl(int mV) //SegmentReady(Module_Heaters,ModuleFail); ReportWithPackageFilter(HeatersFilter, "Waste airflow Error",__FILE__,__LINE__,mV,RpError, 0,0); HeatersEnd(); - return OK; + return; } } else diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c index 8fb0fc573..8f5bd0b1d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c +++ b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c @@ -286,6 +286,82 @@ bool MotorParseStatus(TimerMotors_t _motorId) } return OK; } +uint32_t MotorGetOverCurrentStatus(TimerMotors_t _motorId) +{ + if (MotorDriverResponse[_motorId].DriverType == CombinrdMotDriver) + { + return (PStep01Status[_motorId].bits.OCD_ActiveLow==0); + } + else + if (MotorDriverResponse[_motorId].DriverType == VoltageMotDriver) + { + return (VolMotDriverStatus[_motorId].bits.OCD_ActiveLow==0); + } + else + if (MotorDriverResponse[_motorId].DriverType == CurrentMotDriver) + { + return (CurMotDriverStatus[_motorId].bits.OCD_ActiveLow==0); + } + + return ERROR; +} +uint32_t MotorGetUnderVoltageStatus(TimerMotors_t _motorId) +{ + if (MotorDriverResponse[_motorId].DriverType == CombinrdMotDriver) + { + return (PStep01Status[_motorId].bits.UVLO_ActiveLow==0); + } + else + if (MotorDriverResponse[_motorId].DriverType == VoltageMotDriver) + { + return (VolMotDriverStatus[_motorId].bits.UVLO_ActiveLow==0); + } + else + if (MotorDriverResponse[_motorId].DriverType == CurrentMotDriver) + { + return (CurMotDriverStatus[_motorId].bits.UVLO_ActiveLow==0); + } + + return ERROR; +} +uint32_t MotorGetStallStatus(TimerMotors_t _motorId) +{ + if (MotorDriverResponse[_motorId].DriverType == CombinrdMotDriver) + { + return (PStep01Status[_motorId].bits.STALL_A_ActiveLow==0); + } + else + if (MotorDriverResponse[_motorId].DriverType == VoltageMotDriver) + { + return (VolMotDriverStatus[_motorId].bits.STEP_LOSS_A_ActiveLow && VolMotDriverStatus[_motorId].bits.STEP_LOSS_B_ActiveLow); + } + else + if (MotorDriverResponse[_motorId].DriverType == CurrentMotDriver) + { + return false; + } + + return ERROR; +} +uint32_t MotorGetOverHeatStatus(TimerMotors_t _motorId) +{ + if (MotorDriverResponse[_motorId].DriverType == CombinrdMotDriver) + { + return (PStep01Status[_motorId].bits.TH_STATUS>1); + } + else + if (MotorDriverResponse[_motorId].DriverType == VoltageMotDriver) + { + return (VolMotDriverStatus[_motorId].bits.TH_SD_ActiveLow==0); + } + else + if (MotorDriverResponse[_motorId].DriverType == CurrentMotDriver) + { + return (CurMotDriverStatus[_motorId].bits.TH_SD_ActiveLow==0); + } + + return ERROR; +} uint32_t MotorGetStatus(TimerMotors_t _motorId) { diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.h b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.h index 5e39b481a..aa5ffbb12 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.h +++ b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.h @@ -222,7 +222,7 @@ typedef union bool WRONG_CMD : 1; //8 bool UVLO_ActiveLow : 1; //9 bool TH_WRN : 1; //10 - bool TH_SD : 1; //11 + bool TH_SD_ActiveLow : 1; //11 bool OCD_ActiveLow : 1; //12 bool X_Bit_13 : 1; //13 bool X_Bit_14 : 1; //14 @@ -328,6 +328,11 @@ uint32_t MotorSetKvalDec(TimerMotors_t _motorId, uint8_t Value); void MotorActionsInit(void); +uint32_t MotorGetOverHeatStatus(TimerMotors_t _motorId); +uint32_t MotorGetStallStatus(TimerMotors_t _motorId); +uint32_t MotorGetUnderVoltageStatus(TimerMotors_t _motorId); +uint32_t MotorGetOverCurrentStatus(TimerMotors_t _motorId); + uint32_t MotorGetStatus(TimerMotors_t _motorId); uint32_t MotorGetStatusFromFPGA_Callback(TimerMotors_t _motorId,uint32_t Data); typedef enum { diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index f73c1c2c7..356f192a3 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -1240,14 +1240,14 @@ uint32_t AlarmHandlingLoop(uint32_t tick) if (doubleValue >= (float)(AlarmItem[Alarm_i].AlarmValue*CurrentAlarmHighLimit)) { Status = true; - if (AlarmState[Alarm_i].Status == false) - ReportWithPackageFilter(AlarmFilter,"OverCurrent Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + //if (AlarmState[Alarm_i].Status == false) + // ReportWithPackageFilter(AlarmFilter,"OverCurrent Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); } if ((doubleValue <= (float)(AlarmItem[Alarm_i].AlarmValue*CurrentAlarmLowLimit))&&(isHeaterReady(AlarmItem[Alarm_i].DeviceId)==false)&&(doubleValue>100)) { Status = true; - if (AlarmState[Alarm_i].Status == false) - ReportWithPackageFilter(AlarmFilter,"OverCurrent Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + //if (AlarmState[Alarm_i].Status == false) + // ReportWithPackageFilter(AlarmFilter,"OverCurrent Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); } } else @@ -1255,8 +1255,8 @@ uint32_t AlarmHandlingLoop(uint32_t tick) if (doubleValue <= 0.1) { Status = true; - if (AlarmState[Alarm_i].Status == false) - ReportWithPackageFilter(AlarmFilter,"loop break Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + //if (AlarmState[Alarm_i].Status == false) + // ReportWithPackageFilter(AlarmFilter,"loop break Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); } } } @@ -1281,7 +1281,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) { //usnprintf(AlarmReasonStr, 100, "OverCurrent Alarm %d ON dev %d debounce %d/%d value %d",AlarmItem[Alarm_i].EventType,AlarmItem[Alarm_i].DeviceId,AlarmState[Alarm_i].DebounceCounter,AlarmItem[Alarm_i].DebounceValue,(int)(doubleValue*100)); //ReportWithPackageFilter(AlarmFilter,AlarmReasonStr, __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); - ReportWithPackageFilter(AlarmFilter,"OverCurrent Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + // ReportWithPackageFilter(AlarmFilter,"OverCurrent Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); } } } @@ -1294,7 +1294,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) { //usnprintf(AlarmReasonStr, 100, "LOOP BREAK Alarm %d ON dev %d debounce %d/%d value %d",AlarmItem[Alarm_i].EventType,AlarmItem[Alarm_i].DeviceId,AlarmState[Alarm_i].DebounceCounter,AlarmItem[Alarm_i].DebounceValue,(int)(doubleValue*100)); //ReportWithPackageFilter(AlarmFilter,AlarmReasonStr, __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); - ReportWithPackageFilter(AlarmFilter,"loop break Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + // ReportWithPackageFilter(AlarmFilter,"loop break Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); } } } @@ -1309,7 +1309,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) } break; case ALARM_SOURCE_TYPE__MotorAlarm: - if (CheckMotorAlarms) + if (0)//(CheckMotorAlarms) { if (FPGA_WD_Occurred == true) { @@ -1321,7 +1321,32 @@ uint32_t AlarmHandlingLoop(uint32_t tick) } else { - value = MotorGetStatus((TimerMotors_t)AlarmItem[Alarm_i].DeviceId); + switch (AlarmItem[Alarm_i].AlarmValue) + { + case 1: + Status = MotorGetOverCurrentStatus((TimerMotors_t)AlarmItem[Alarm_i].DeviceId); + if (Status == true) + Report("------Overcurrent on motor------", __FILE__,__LINE__,AlarmItem[Alarm_i].DeviceId, RpMessage, AlarmItem[Alarm_i].EventType, 0); + break; + case 2: + Status = MotorGetUnderVoltageStatus((TimerMotors_t)AlarmItem[Alarm_i].DeviceId); + if (Status == true) + Report("------Undervoltage on motor------", __FILE__,__LINE__,AlarmItem[Alarm_i].DeviceId, RpMessage, AlarmItem[Alarm_i].EventType, 0); + break; + case 3: + Status = MotorGetStallStatus((TimerMotors_t)AlarmItem[Alarm_i].DeviceId); + if (Status == true) + Report("------Stall on motor------", __FILE__,__LINE__,AlarmItem[Alarm_i].DeviceId, RpMessage, AlarmItem[Alarm_i].EventType, 0); + break; + case 4: + Status = MotorGetOverHeatStatus((TimerMotors_t)AlarmItem[Alarm_i].DeviceId); + if (Status == true) + Report("------Overtemperature on motor------", __FILE__,__LINE__,AlarmItem[Alarm_i].DeviceId, RpMessage, AlarmItem[Alarm_i].EventType, 0); + break; + default: + Status = false; + } + /*value = MotorGetStatus((TimerMotors_t)AlarmItem[Alarm_i].DeviceId); if (AlarmItem[Alarm_i].AlarmDirection == true) { if (value && AlarmItem[Alarm_i].AlarmValue) @@ -1335,7 +1360,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) { Status = true; } - } + }*/ } } else diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index d2379c309..6d4d1c668 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -496,7 +496,7 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest) LOG_ERROR (DispenserId, "Dispenser identification failed"); //return ERROR; } - status |= Dispenser_EEPROM_Read_Data(DispenserId); + Trigger_Dispenser_ReadData(DispenserId); } Calculateinit(); } diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 1221be915..309eada85 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -785,10 +785,13 @@ int PrepareDCHeater(int HeaterId, uint32_t Frequency, uint32_t SetTemperatue) AlarmHandlingSetAlarm(HeaterUnderEventType_B[HeaterId], false); AlarmHandlingSetAlarm(HeaterEventType[HeaterId], false); - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) - Enable_Reading_Heaters_ADC(HeaterId2CurrentId[HeaterId]); - else - Enable_Reading_Heaters_Current(HeaterId2CurrentId[HeaterId]); + if (HeaterPreviousRead[HeaterId] < HeaterCmd[HeaterId].targettemperatue ) + { + if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + Enable_Reading_Heaters_ADC(HeaterId2CurrentId[HeaterId]); + else + Enable_Reading_Heaters_Current(HeaterId2CurrentId[HeaterId]); + } //ReportWithPackageFilter(HeatersFilter,"PrepareHeater Read", __FILE__,HeaterId, SetTemperatue, RpWarning,HeaterPreviousRead[HeaterId], 0); if (ControlIdtoMaxHeaterId [HeaterId] == 0xFF) @@ -1021,11 +1024,19 @@ uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) ReportWithPackageFilter(HeatersFilter, "Temperature Error",__FILE__,__LINE__,index,RpError, 0,0); return OK; } - if (getIdleState() == false) + //if (getIdleState() == false) + //not idle, not cooling to temp { - ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, turned off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterReady[index],0); - ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,index,OverHeatCounter[index],RpWarning,HeaterControl[index].sensormaxvalue, 0); - AlarmHandlingSetAlarm(HeaterEventType[index], true); + if ((HeaterReady[index]==false)&&(HeaterPreviousRead[index]>HeaterCmd[index].targettemperatue)) + { + ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, cooling off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterCmd[index].targettemperatue,0); + } + else + { + ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, turned off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterReady[index],0); + ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,index,OverHeatCounter[index],RpWarning,HeaterControl[index].sensormaxvalue, 0); + AlarmHandlingSetAlarm(HeaterEventType[index], true); + } } } if (index == HEATER_TYPE__DryerAirHeater) @@ -1767,21 +1778,21 @@ uint32_t HeatersControlLoop(uint32_t tick) continue; if (DCTimeSliceAllocation[DcHeaterId] > 0) //heater active { - if (SliceCounter == 0) + if (SliceCounter == DcHeaterId) { if (HeaterMaxTempFlag[DcHeaterId] == false) { ActivateHeater (DcHeaterId); } } - else if (SliceCounter >= DCTimeSliceAllocation[DcHeaterId]) //turn off + else if (SliceCounter-DcHeaterId >= DCTimeSliceAllocation[DcHeaterId]) //turn off { DeActivateHeater (DcHeaterId); } } else { - DeActivateHeater (DcHeaterId); + DeActivateHeater (DcHeaterId); } } //handle the time sharing module diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index 0575f0388..5a4e4f02d 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -492,6 +492,14 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) response.has_progress = true; } else + if(request->amount == 0xAD5) //Set SecondFeederCorrection + { + LOG_ERROR(request->delay,"Set SecondFeederCorrection"); + SecondFeederCorrection = request->delay; + response.progress = SecondFeederCorrection; + response.has_progress = true; + } + else if((request->amount == 0x01) && ((request->delay &0x010000) == 0x010000)) //change mode powerset01 { response.progress = Power_Step_01_Mode(((request->delay &0x00FF00)>>8), request->delay &0x0000FF); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h index 5c9b360f6..4081b53f2 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h @@ -23,6 +23,7 @@ typedef enum threadMotorsEnum extern double TotalProcessedLength; extern double PoolerTotalProcessedLength; +extern int SecondFeederCorrection; void ThreadSetBreakSensorLimit(int limit); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 21211481e..8a4960433 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -846,15 +846,22 @@ uint32_t Release_Right_TFU_Tension() return status; } +int SecondFeederCorrection = 4; 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); + MotorStop (HARDWARE_MOTOR_TYPE__MOTO_RDANCER,Soft_Stop); //per L6470 errata between mov and run commands + Report("Adjust_Right_TFU_Tension_2ndCallback x more steps",__FILE__,__LINE__,MotorId,RpMessage,SecondFeederCorrection,0); + if (JobIsActive()==false) + { + Report("release tension - job aborted",__FILE__,__LINE__,MotorId,RpMessage,0,0); + Release_Right_TFU_Tension(); + } 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); + MotorMoveWithCallback(HARDWARE_MOTOR_TYPE__MOTO_RDANCER, 1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].directionthreadwize,SecondFeederCorrection* MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].microstep, Adjust_Right_TFU_Tension_2nd_Callback,1000); RTFU_Up = true; return OK; } diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c index e14b420fa..761433888 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c @@ -846,6 +846,7 @@ uint32_t PowerUpUpdateFunc(MessageContainer* requestContainer) StartPowerUpRequest* request = start_power_up_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); ustrncpy (PowerUpToken, requestContainer->token,36); + PowerUpUpdate(MachineStateDetail); start_power_up_request__free_unpacked(request,NULL); return status; } diff --git a/Software/Stubs Collection/stubs/DispenserEEpromRead.cs b/Software/Stubs Collection/stubs/DispenserEEpromRead.cs index 538223d81..650cb2c80 100644 --- a/Software/Stubs Collection/stubs/DispenserEEpromRead.cs +++ b/Software/Stubs Collection/stubs/DispenserEEpromRead.cs @@ -12,14 +12,16 @@ using Tango.Stubs; public void OnExecute(StubManager stubManager) { + uint i; -DispenserEEpromRequest dispenserEEpromRequest = new DispenserEEpromRequest(); -dispenserEEpromRequest.DispenserId = 4; -dispenserEEpromRequest.BurnRequest = false; + StubDispenserEEpromRequest dispenserEEpromRequest = new StubDispenserEEpromRequest(); + for (i = 0; i<8;i++) + { + dispenserEEpromRequest.DispenserId = i; + dispenserEEpromRequest.BurnRequest = false; + var response = stubManager.Run<StubDispenserEEpromResponse>(dispenserEEpromRequest); + stubManager.Write( dispenserEEpromRequest); - - - - var response = stubManager.Run<DispenserEEpromResponse>(dispenserEEpromRequest); + } }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs b/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs new file mode 100644 index 000000000..b11f900ad --- /dev/null +++ b/Software/Stubs Collection/stubs/LoadingArmandCenterCalibration.cs @@ -0,0 +1,28 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ +//Loading Arm Calibration - this command writes the arm position to a non-volatile memory + +ProgressRequest progressRequest = new ProgressRequest(); +progressRequest.Amount = 0xB1; +//progressRequest.Delay = 1; + + var response = stubManager.Run<ProgressResponse>(progressRequest); + + progressRequest.Amount = 0xB2; + progressRequest.Delay = 0; + + response = stubManager.Run<ProgressResponse>(progressRequest); + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV new file mode 100644 index 000000000..414b0f976 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV @@ -0,0 +1,5401 @@ +,RPM +0,2688 +1,2688 +2,2675 +3,2688 +4,2688 +5,2688 +6,2688 +7,2688 +8,2688 +9,2688 +10,2688 +11,2688 +12,2700 +13,2688 +14,2675 +15,2688 +16,2688 +17,2688 +18,2688 +19,2688 +20,2688 +21,2688 +22,2688 +23,2675 +24,2688 +25,2688 +26,2688 +27,2688 +28,2688 +29,2688 +30,2688 +31,2688 +32,2688 +33,2688 +34,2688 +35,2688 +36,2688 +37,2688 +38,2688 +39,2675 +40,2688 +41,2688 +42,2688 +43,2675 +44,2688 +45,2688 +46,2688 +47,2688 +48,2688 +49,2688 +50,2688 +51,2688 +52,2688 +53,2688 +54,2688 +55,2688 +56,2675 +57,2675 +58,2688 +59,2688 +60,2688 +61,2688 +62,2688 +63,2688 +64,2688 +65,2675 +66,2688 +67,2688 +68,2688 +69,2688 +70,2675 +71,2688 +72,2688 +73,2688 +74,2688 +75,2688 +76,2688 +77,2688 +78,2688 +79,2688 +80,2688 +81,2688 +82,2688 +83,2688 +84,2688 +85,2688 +86,2688 +87,2688 +88,2688 +89,2688 +90,2688 +91,2688 +92,2688 +93,2688 +94,2675 +95,2688 +96,2688 +97,2688 +98,2688 +99,2688 +100,2688 +101,2688 +102,2688 +103,2688 +104,2688 +105,2688 +106,2688 +107,2688 +108,2688 +109,2688 +110,2688 +111,2688 +112,2688 +113,2688 +114,2675 +115,2688 +116,2688 +117,2688 +118,2675 +119,2688 +120,2688 +121,2675 +122,2688 +123,2688 +124,2688 +125,2688 +126,2688 +127,2688 +128,2688 +129,2688 +130,2688 +131,2675 +132,2688 +133,2688 +134,2688 +135,2688 +136,2688 +137,2688 +138,2688 +139,2688 +140,2688 +141,2688 +142,2688 +143,2688 +144,2688 +145,2688 +146,2688 +147,2688 +148,2688 +149,2688 +150,2675 +151,2688 +152,2688 +153,2675 +154,2688 +155,2688 +156,2688 +157,2688 +158,2688 +159,2675 +160,2688 +161,2688 +162,2688 +163,2688 +164,2675 +165,2688 +166,2688 +167,2688 +168,2688 +169,2688 +170,2688 +171,2688 +172,2688 +173,2688 +174,2688 +175,2675 +176,2688 +177,2688 +178,2688 +179,2688 +180,2688 +181,2675 +182,2688 +183,2688 +184,2688 +185,2688 +186,2688 +187,2675 +188,2675 +189,2688 +190,2688 +191,2688 +192,2688 +193,2675 +194,2688 +195,2688 +196,2688 +197,2688 +198,2675 +199,2688 +200,2688 +201,2700 +202,2688 +203,2688 +204,2688 +205,2688 +206,2675 +207,2688 +208,2675 +209,2688 +210,2675 +211,2688 +212,2688 +213,2675 +214,2688 +215,2688 +216,2688 +217,2688 +218,2675 +219,2688 +220,2688 +221,2688 +222,2688 +223,2688 +224,2688 +225,2688 +226,2675 +227,2688 +228,2688 +229,2675 +230,2688 +231,2675 +232,2688 +233,2688 +234,2688 +235,2688 +236,2688 +237,2688 +238,2688 +239,2688 +240,2688 +241,2688 +242,2688 +243,2688 +244,2688 +245,2688 +246,2688 +247,2688 +248,2688 +249,2688 +250,2675 +251,2688 +252,2688 +253,2688 +254,2688 +255,2688 +256,2675 +257,2688 +258,2688 +259,2688 +260,2688 +261,2688 +262,2688 +263,2688 +264,2688 +265,2688 +266,2688 +267,2688 +268,2688 +269,2688 +270,2688 +271,2688 +272,2688 +273,2688 +274,2688 +275,2688 +276,2688 +277,2688 +278,2688 +279,2688 +280,2688 +281,2688 +282,2688 +283,2688 +284,2675 +285,2675 +286,2688 +287,2688 +288,2688 +289,2688 +290,2688 +291,2688 +292,2688 +293,2688 +294,2688 +295,2688 +296,2675 +297,2688 +298,2688 +299,2688 +300,2688 +301,2688 +302,2688 +303,2688 +304,2688 +305,2688 +306,2688 +307,2688 +308,2688 +309,2688 +310,2675 +311,2688 +312,2688 +313,2688 +314,2675 +315,2688 +316,2688 +317,2688 +318,2688 +319,2688 +320,2688 +321,2688 +322,2688 +323,2688 +324,2688 +325,2688 +326,2688 +327,2688 +328,2688 +329,2688 +330,2688 +331,2688 +332,2688 +333,2688 +334,2700 +335,2688 +336,2688 +337,2688 +338,2688 +339,2688 +340,2700 +341,2688 +342,2688 +343,2688 +344,2688 +345,2700 +346,2688 +347,2675 +348,2688 +349,2688 +350,2675 +351,2688 +352,2688 +353,2688 +354,2688 +355,2688 +356,2688 +357,2688 +358,2688 +359,2688 +360,2688 +361,2688 +362,2688 +363,2688 +364,2688 +365,2688 +366,2688 +367,2688 +368,2688 +369,2688 +370,2688 +371,2675 +372,2700 +373,2688 +374,2688 +375,2675 +376,2688 +377,2688 +378,2688 +379,2688 +380,2688 +381,2688 +382,2688 +383,2688 +384,2688 +385,2688 +386,2688 +387,2688 +388,2688 +389,2675 +390,2688 +391,2688 +392,2675 +393,2688 +394,2688 +395,2688 +396,2700 +397,2688 +398,2688 +399,2688 +400,2688 +401,2688 +402,2688 +403,2688 +404,2688 +405,2688 +406,2688 +407,2688 +408,2688 +409,2688 +410,2688 +411,2688 +412,2688 +413,2688 +414,2688 +415,2688 +416,2688 +417,2688 +418,2688 +419,2688 +420,2688 +421,2688 +422,2688 +423,2688 +424,2688 +425,2688 +426,2688 +427,2688 +428,2688 +429,2675 +430,2700 +431,2675 +432,2688 +433,2688 +434,2688 +435,2688 +436,2688 +437,2688 +438,2688 +439,2688 +440,2688 +441,2688 +442,2675 +443,2688 +444,2688 +445,2688 +446,2688 +447,2688 +448,2675 +449,2675 +450,2675 +451,2688 +452,2688 +453,2688 +454,2688 +455,2688 +456,2688 +457,2688 +458,2688 +459,2688 +460,2688 +461,2688 +462,2688 +463,2688 +464,2688 +465,2688 +466,2688 +467,2688 +468,2688 +469,2688 +470,2688 +471,2688 +472,2688 +473,2688 +474,2688 +475,2688 +476,2688 +477,2675 +478,2688 +479,2688 +480,2688 +481,2688 +482,2688 +483,2688 +484,2688 +485,2688 +486,2688 +487,2688 +488,2688 +489,2688 +490,2688 +491,2688 +492,2688 +493,2688 +494,2688 +495,2688 +496,2688 +497,2688 +498,2688 +499,2688 +500,2675 +501,2688 +502,2675 +503,2688 +504,2688 +505,2688 +506,2688 +507,2688 +508,2688 +509,2688 +510,2688 +511,2688 +512,2688 +513,2688 +514,2688 +515,2688 +516,2700 +517,2688 +518,2688 +519,2688 +520,2688 +521,2688 +522,2688 +523,2688 +524,2675 +525,2688 +526,2688 +527,2675 +528,2688 +529,2675 +530,2688 +531,2688 +532,2688 +533,2688 +534,2688 +535,2688 +536,2688 +537,2688 +538,2688 +539,2688 +540,2688 +541,2688 +542,2688 +543,2688 +544,2688 +545,2688 +546,2688 +547,2688 +548,2688 +549,2688 +550,2688 +551,2688 +552,2688 +553,2688 +554,2688 +555,2688 +556,2688 +557,2675 +558,2688 +559,2688 +560,2700 +561,2688 +562,2688 +563,2688 +564,2688 +565,2688 +566,2688 +567,2688 +568,2675 +569,2688 +570,2688 +571,2688 +572,2688 +573,2688 +574,2688 +575,2688 +576,2688 +577,2688 +578,2688 +579,2688 +580,2688 +581,2688 +582,2675 +583,2675 +584,2688 +585,2675 +586,2688 +587,2688 +588,2688 +589,2688 +590,2688 +591,2688 +592,2688 +593,2688 +594,2688 +595,2688 +596,2688 +597,2688 +598,2688 +599,2688 +600,2688 +601,2675 +602,2688 +603,2688 +604,2688 +605,2688 +606,2688 +607,2688 +608,2688 +609,2688 +610,2688 +611,2688 +612,2688 +613,2688 +614,2688 +615,2688 +616,2688 +617,2688 +618,2688 +619,2688 +620,2688 +621,2688 +622,2688 +623,2688 +624,2675 +625,2688 +626,2688 +627,2688 +628,2688 +629,2675 +630,2688 +631,2675 +632,2688 +633,2688 +634,2688 +635,2675 +636,2675 +637,2688 +638,2688 +639,2688 +640,2688 +641,2688 +642,2688 +643,2688 +644,2688 +645,2688 +646,2688 +647,2675 +648,2688 +649,2688 +650,2688 +651,2688 +652,2688 +653,2675 +654,2688 +655,2688 +656,2688 +657,2688 +658,2688 +659,2688 +660,2688 +661,2688 +662,2688 +663,2688 +664,2688 +665,2675 +666,2688 +667,2675 +668,2688 +669,2688 +670,2688 +671,2688 +672,2688 +673,2688 +674,2688 +675,2688 +676,2675 +677,2688 +678,2688 +679,2688 +680,2675 +681,2675 +682,2688 +683,2688 +684,2688 +685,2688 +686,2688 +687,2688 +688,2688 +689,2688 +690,2688 +691,2688 +692,2688 +693,2688 +694,2688 +695,2688 +696,2688 +697,2688 +698,2688 +699,2688 +700,2688 +701,2688 +702,2688 +703,2688 +704,2688 +705,2688 +706,2688 +707,2675 +708,2688 +709,2688 +710,2688 +711,2688 +712,2688 +713,2675 +714,2688 +715,2688 +716,2688 +717,2675 +718,2688 +719,2688 +720,2688 +721,2688 +722,2688 +723,2688 +724,2688 +725,2688 +726,2688 +727,2688 +728,2675 +729,2688 +730,2688 +731,2688 +732,2675 +733,2675 +734,2675 +735,2688 +736,2688 +737,2675 +738,2688 +739,2688 +740,2688 +741,2688 +742,2688 +743,2688 +744,2688 +745,2688 +746,2688 +747,2688 +748,2688 +749,2688 +750,2688 +751,2688 +752,2688 +753,2688 +754,2688 +755,2688 +756,2688 +757,2688 +758,2688 +759,2688 +760,2688 +761,2688 +762,2688 +763,2688 +764,2688 +765,2675 +766,2688 +767,2688 +768,2688 +769,2688 +770,2688 +771,2688 +772,2688 +773,2688 +774,2688 +775,2675 +776,2688 +777,2688 +778,2688 +779,2688 +780,2700 +781,2688 +782,2688 +783,2688 +784,2688 +785,2688 +786,2688 +787,2688 +788,2688 +789,2675 +790,2688 +791,2688 +792,2688 +793,2688 +794,2688 +795,2688 +796,2675 +797,2688 +798,2688 +799,2688 +800,2675 +801,2688 +802,2688 +803,2688 +804,2688 +805,2675 +806,2688 +807,2688 +808,2688 +809,2688 +810,2688 +811,2688 +812,2688 +813,2688 +814,2688 +815,2688 +816,2688 +817,2688 +818,2688 +819,2688 +820,2688 +821,2688 +822,2688 +823,2688 +824,2675 +825,2688 +826,2688 +827,2688 +828,2688 +829,2688 +830,2688 +831,2675 +832,2688 +833,2688 +834,2688 +835,2688 +836,2688 +837,2688 +838,2688 +839,2688 +840,2688 +841,2688 +842,2688 +843,2688 +844,2675 +845,2688 +846,2675 +847,2688 +848,2688 +849,2675 +850,2688 +851,2688 +852,2688 +853,2688 +854,2688 +855,2688 +856,2688 +857,2688 +858,2688 +859,2688 +860,2688 +861,2688 +862,2688 +863,2688 +864,2688 +865,2688 +866,2688 +867,2688 +868,2688 +869,2675 +870,2688 +871,2688 +872,2688 +873,2688 +874,2688 +875,2688 +876,2688 +877,2688 +878,2688 +879,2688 +880,2688 +881,2688 +882,2700 +883,2688 +884,2675 +885,2688 +886,2675 +887,2688 +888,2688 +889,2688 +890,2688 +891,2688 +892,2688 +893,2688 +894,2688 +895,2688 +896,2688 +897,2688 +898,2688 +899,2675 +900,2688 +901,2688 +902,2675 +903,2688 +904,2688 +905,2688 +906,2675 +907,2688 +908,2688 +909,2688 +910,2688 +911,2688 +912,2688 +913,2688 +914,2688 +915,2675 +916,2688 +917,2675 +918,2688 +919,2688 +920,2688 +921,2688 +922,2675 +923,2688 +924,2688 +925,2688 +926,2688 +927,2688 +928,2688 +929,2688 +930,2688 +931,2688 +932,2675 +933,2688 +934,2688 +935,2688 +936,2688 +937,2688 +938,2688 +939,2688 +940,2688 +941,2688 +942,2688 +943,2688 +944,2675 +945,2688 +946,2688 +947,2688 +948,2688 +949,2688 +950,2688 +951,2688 +952,2688 +953,2688 +954,2688 +955,2688 +956,2688 +957,2688 +958,2688 +959,2688 +960,2688 +961,2688 +962,2688 +963,2688 +964,2688 +965,2688 +966,2688 +967,2688 +968,2688 +969,2675 +970,2688 +971,2688 +972,2688 +973,2688 +974,2688 +975,2688 +976,2688 +977,2688 +978,2688 +979,2688 +980,2675 +981,2688 +982,2688 +983,2688 +984,2688 +985,2688 +986,2688 +987,2688 +988,2688 +989,2688 +990,2688 +991,2688 +992,2688 +993,2688 +994,2688 +995,2688 +996,2688 +997,2688 +998,2688 +999,2688 +1000,2688 +1001,2688 +1002,2688 +1003,2688 +1004,2688 +1005,2688 +1006,2688 +1007,2688 +1008,2688 +1009,2688 +1010,2688 +1011,2688 +1012,2688 +1013,2688 +1014,2688 +1015,2675 +1016,2688 +1017,2688 +1018,2688 +1019,2675 +1020,2675 +1021,2688 +1022,2675 +1023,2675 +1024,2688 +1025,2688 +1026,2675 +1027,2688 +1028,2688 +1029,2688 +1030,2688 +1031,2688 +1032,2688 +1033,2688 +1034,2688 +1035,2688 +1036,2688 +1037,2688 +1038,2688 +1039,2688 +1040,2688 +1041,2688 +1042,2688 +1043,2688 +1044,2688 +1045,2688 +1046,2688 +1047,2688 +1048,2688 +1049,2688 +1050,2688 +1051,2688 +1052,2688 +1053,2688 +1054,2688 +1055,2675 +1056,2688 +1057,2688 +1058,2688 +1059,2675 +1060,2675 +1061,2688 +1062,2675 +1063,2688 +1064,2688 +1065,2688 +1066,2688 +1067,2688 +1068,2688 +1069,2688 +1070,2675 +1071,2688 +1072,2688 +1073,2688 +1074,2688 +1075,2688 +1076,2688 +1077,2688 +1078,2688 +1079,2688 +1080,2688 +1081,2688 +1082,2688 +1083,2688 +1084,2675 +1085,2688 +1086,2688 +1087,2688 +1088,2688 +1089,2688 +1090,2688 +1091,2688 +1092,2688 +1093,2688 +1094,2688 +1095,2688 +1096,2688 +1097,2688 +1098,2688 +1099,2688 +1100,2675 +1101,2688 +1102,2688 +1103,2688 +1104,2688 +1105,2675 +1106,2688 +1107,2688 +1108,2675 +1109,2688 +1110,2688 +1111,2688 +1112,2688 +1113,2688 +1114,2688 +1115,2675 +1116,2688 +1117,2688 +1118,2688 +1119,2688 +1120,2688 +1121,2688 +1122,2688 +1123,2688 +1124,2688 +1125,2688 +1126,2688 +1127,2688 +1128,2688 +1129,2688 +1130,2688 +1131,2688 +1132,2688 +1133,2688 +1134,2688 +1135,2675 +1136,2688 +1137,2688 +1138,2688 +1139,2688 +1140,2688 +1141,2688 +1142,2688 +1143,2688 +1144,2688 +1145,2688 +1146,2688 +1147,2688 +1148,2675 +1149,2688 +1150,2688 +1151,2688 +1152,2688 +1153,2688 +1154,2688 +1155,2688 +1156,2688 +1157,2688 +1158,2688 +1159,2688 +1160,2688 +1161,2688 +1162,2688 +1163,2688 +1164,2688 +1165,2688 +1166,2688 +1167,2675 +1168,2688 +1169,2688 +1170,2688 +1171,2688 +1172,2688 +1173,2688 +1174,2688 +1175,2688 +1176,2675 +1177,2688 +1178,2675 +1179,2675 +1180,2688 +1181,2688 +1182,2688 +1183,2688 +1184,2688 +1185,2688 +1186,2688 +1187,2675 +1188,2688 +1189,2688 +1190,2675 +1191,2688 +1192,2675 +1193,2688 +1194,2688 +1195,2688 +1196,2688 +1197,2688 +1198,2688 +1199,2688 +1200,2688 +1201,2688 +1202,2688 +1203,2688 +1204,2688 +1205,2688 +1206,2688 +1207,2675 +1208,2688 +1209,2688 +1210,2688 +1211,2688 +1212,2688 +1213,2688 +1214,2688 +1215,2688 +1216,2688 +1217,2688 +1218,2688 +1219,2688 +1220,2688 +1221,2688 +1222,2688 +1223,2700 +1224,2688 +1225,2688 +1226,2688 +1227,2675 +1228,2688 +1229,2688 +1230,2688 +1231,2688 +1232,2688 +1233,2688 +1234,2688 +1235,2688 +1236,2688 +1237,2688 +1238,2688 +1239,2688 +1240,2675 +1241,2688 +1242,2688 +1243,2688 +1244,2688 +1245,2675 +1246,2675 +1247,2688 +1248,2688 +1249,2688 +1250,2688 +1251,2688 +1252,2688 +1253,2688 +1254,2675 +1255,2688 +1256,2688 +1257,2700 +1258,2688 +1259,2688 +1260,2688 +1261,2688 +1262,2688 +1263,2688 +1264,2688 +1265,2688 +1266,2688 +1267,2688 +1268,2688 +1269,2688 +1270,2688 +1271,2688 +1272,2688 +1273,2688 +1274,2688 +1275,2675 +1276,2688 +1277,2688 +1278,2688 +1279,2688 +1280,2688 +1281,2688 +1282,2688 +1283,2688 +1284,2675 +1285,2688 +1286,2688 +1287,2675 +1288,2688 +1289,2688 +1290,2688 +1291,2688 +1292,2688 +1293,2688 +1294,2675 +1295,2688 +1296,2688 +1297,2688 +1298,2688 +1299,2688 +1300,2688 +1301,2688 +1302,2688 +1303,2688 +1304,2688 +1305,2688 +1306,2688 +1307,2688 +1308,2688 +1309,2688 +1310,2675 +1311,2688 +1312,2688 +1313,2700 +1314,2688 +1315,2675 +1316,2688 +1317,2688 +1318,2688 +1319,2688 +1320,2688 +1321,2688 +1322,2675 +1323,2688 +1324,2688 +1325,2688 +1326,2688 +1327,2688 +1328,2688 +1329,2688 +1330,2688 +1331,2688 +1332,2688 +1333,2688 +1334,2688 +1335,2688 +1336,2688 +1337,2688 +1338,2688 +1339,2688 +1340,2688 +1341,2688 +1342,2688 +1343,2688 +1344,2688 +1345,2688 +1346,2688 +1347,2688 +1348,2688 +1349,2688 +1350,2688 +1351,2688 +1352,2675 +1353,2688 +1354,2675 +1355,2688 +1356,2688 +1357,2688 +1358,2688 +1359,2688 +1360,2688 +1361,2688 +1362,2688 +1363,2688 +1364,2688 +1365,2688 +1366,2675 +1367,2675 +1368,2675 +1369,2688 +1370,2675 +1371,2688 +1372,2688 +1373,2688 +1374,2688 +1375,2688 +1376,2688 +1377,2688 +1378,2688 +1379,2688 +1380,2688 +1381,2688 +1382,2688 +1383,2688 +1384,2688 +1385,2688 +1386,2688 +1387,2688 +1388,2688 +1389,2688 +1390,2688 +1391,2688 +1392,2688 +1393,2688 +1394,2688 +1395,2688 +1396,2675 +1397,2688 +1398,2688 +1399,2688 +1400,2675 +1401,2688 +1402,2688 +1403,2688 +1404,2688 +1405,2688 +1406,2688 +1407,2688 +1408,2688 +1409,2688 +1410,2700 +1411,2688 +1412,2675 +1413,2688 +1414,2688 +1415,2688 +1416,2700 +1417,2688 +1418,2688 +1419,2688 +1420,2688 +1421,2688 +1422,2688 +1423,2688 +1424,2688 +1425,2688 +1426,2688 +1427,2688 +1428,2688 +1429,2688 +1430,2688 +1431,2688 +1432,2688 +1433,2675 +1434,2688 +1435,2688 +1436,2675 +1437,2688 +1438,2688 +1439,2688 +1440,2688 +1441,2688 +1442,2688 +1443,2688 +1444,2688 +1445,2688 +1446,2688 +1447,2688 +1448,2688 +1449,2688 +1450,2688 +1451,2688 +1452,2688 +1453,2688 +1454,2688 +1455,2688 +1456,2675 +1457,2688 +1458,2688 +1459,2688 +1460,2688 +1461,2688 +1462,2675 +1463,2688 +1464,2688 +1465,2688 +1466,2675 +1467,2688 +1468,2688 +1469,2688 +1470,2688 +1471,2688 +1472,2688 +1473,2688 +1474,2675 +1475,2688 +1476,2688 +1477,2675 +1478,2675 +1479,2688 +1480,2688 +1481,2688 +1482,2688 +1483,2688 +1484,2688 +1485,2688 +1486,2688 +1487,2688 +1488,2688 +1489,2688 +1490,2688 +1491,2688 +1492,2688 +1493,2688 +1494,2688 +1495,2688 +1496,2688 +1497,2688 +1498,2688 +1499,2688 +1500,2688 +1501,2688 +1502,2688 +1503,2688 +1504,2688 +1505,2688 +1506,2688 +1507,2688 +1508,2688 +1509,2688 +1510,2688 +1511,2675 +1512,2688 +1513,2688 +1514,2688 +1515,2688 +1516,2688 +1517,2688 +1518,2688 +1519,2688 +1520,2688 +1521,2688 +1522,2688 +1523,2688 +1524,2688 +1525,2688 +1526,2688 +1527,2688 +1528,2688 +1529,2688 +1530,2688 +1531,2688 +1532,2688 +1533,2688 +1534,2688 +1535,2675 +1536,2675 +1537,2688 +1538,2688 +1539,2688 +1540,2688 +1541,2688 +1542,2675 +1543,2688 +1544,2688 +1545,2688 +1546,2688 +1547,2688 +1548,2688 +1549,2688 +1550,2688 +1551,2688 +1552,2688 +1553,2688 +1554,2688 +1555,2688 +1556,2688 +1557,2688 +1558,2688 +1559,2688 +1560,2688 +1561,2688 +1562,2688 +1563,2675 +1564,2675 +1565,2688 +1566,2688 +1567,2688 +1568,2688 +1569,2688 +1570,2688 +1571,2688 +1572,2688 +1573,2688 +1574,2675 +1575,2688 +1576,2688 +1577,2675 +1578,2688 +1579,2688 +1580,2688 +1581,2688 +1582,2675 +1583,2688 +1584,2688 +1585,2688 +1586,2688 +1587,2688 +1588,2688 +1589,2688 +1590,2688 +1591,2688 +1592,2675 +1593,2688 +1594,2688 +1595,2688 +1596,2688 +1597,2688 +1598,2688 +1599,2688 +1600,2688 +1601,2688 +1602,2688 +1603,2688 +1604,2675 +1605,2688 +1606,2688 +1607,2688 +1608,2688 +1609,2688 +1610,2675 +1611,2688 +1612,2688 +1613,2688 +1614,2675 +1615,2688 +1616,2688 +1617,2688 +1618,2688 +1619,2688 +1620,2688 +1621,2688 +1622,2688 +1623,2688 +1624,2688 +1625,2688 +1626,2688 +1627,2688 +1628,2688 +1629,2688 +1630,2688 +1631,2688 +1632,2675 +1633,2688 +1634,2688 +1635,2675 +1636,2688 +1637,2688 +1638,2688 +1639,2688 +1640,2688 +1641,2688 +1642,2675 +1643,2688 +1644,2688 +1645,2688 +1646,2688 +1647,2688 +1648,2688 +1649,2688 +1650,2688 +1651,2688 +1652,2688 +1653,2688 +1654,2688 +1655,2688 +1656,2688 +1657,2688 +1658,2688 +1659,2688 +1660,2688 +1661,2688 +1662,2688 +1663,2688 +1664,2688 +1665,2688 +1666,2688 +1667,2688 +1668,2688 +1669,2688 +1670,2688 +1671,2688 +1672,2688 +1673,2688 +1674,2688 +1675,2688 +1676,2688 +1677,2688 +1678,2688 +1679,2688 +1680,2688 +1681,2688 +1682,2688 +1683,2688 +1684,2675 +1685,2688 +1686,2688 +1687,2688 +1688,2688 +1689,2688 +1690,2688 +1691,2688 +1692,2675 +1693,2688 +1694,2688 +1695,2688 +1696,2688 +1697,2688 +1698,2688 +1699,2688 +1700,2688 +1701,2675 +1702,2688 +1703,2688 +1704,2700 +1705,2688 +1706,2688 +1707,2688 +1708,2688 +1709,2688 +1710,2688 +1711,2688 +1712,2675 +1713,2688 +1714,2688 +1715,2688 +1716,2688 +1717,2688 +1718,2688 +1719,2688 +1720,2688 +1721,2688 +1722,2688 +1723,2688 +1724,2675 +1725,2688 +1726,2688 +1727,2688 +1728,2688 +1729,2688 +1730,2688 +1731,2688 +1732,2688 +1733,2688 +1734,2688 +1735,2688 +1736,2688 +1737,2688 +1738,2688 +1739,2688 +1740,2688 +1741,2688 +1742,2700 +1743,2688 +1744,2688 +1745,2688 +1746,2688 +1747,2688 +1748,2688 +1749,2688 +1750,2688 +1751,2688 +1752,2688 +1753,2688 +1754,2688 +1755,2688 +1756,2675 +1757,2688 +1758,2688 +1759,2688 +1760,2688 +1761,2675 +1762,2688 +1763,2688 +1764,2688 +1765,2675 +1766,2688 +1767,2688 +1768,2688 +1769,2688 +1770,2688 +1771,2688 +1772,2688 +1773,2688 +1774,2688 +1775,2688 +1776,2675 +1777,2688 +1778,2688 +1779,2688 +1780,2688 +1781,2688 +1782,2688 +1783,2688 +1784,2675 +1785,2688 +1786,2688 +1787,2688 +1788,2675 +1789,2688 +1790,2688 +1791,2688 +1792,2675 +1793,2675 +1794,2688 +1795,2688 +1796,2688 +1797,2688 +1798,2675 +1799,2688 +1800,2688 +1801,2688 +1802,2688 +1803,2688 +1804,2688 +1805,2688 +1806,2688 +1807,2688 +1808,2688 +1809,2688 +1810,2688 +1811,2688 +1812,2688 +1813,2688 +1814,2688 +1815,2688 +1816,2688 +1817,2688 +1818,2688 +1819,2675 +1820,2688 +1821,2688 +1822,2688 +1823,2688 +1824,2688 +1825,2688 +1826,2688 +1827,2688 +1828,2688 +1829,2688 +1830,2688 +1831,2688 +1832,2688 +1833,2688 +1834,2688 +1835,2688 +1836,2688 +1837,2688 +1838,2688 +1839,2688 +1840,2688 +1841,2688 +1842,2688 +1843,2688 +1844,2688 +1845,2688 +1846,2675 +1847,2688 +1848,2688 +1849,2688 +1850,2688 +1851,2688 +1852,2688 +1853,2688 +1854,2688 +1855,2688 +1856,2688 +1857,2688 +1858,2688 +1859,2688 +1860,2688 +1861,2688 +1862,2688 +1863,2688 +1864,2688 +1865,2688 +1866,2688 +1867,2688 +1868,2688 +1869,2688 +1870,2688 +1871,2688 +1872,2688 +1873,2688 +1874,2688 +1875,2688 +1876,2688 +1877,2700 +1878,2675 +1879,2688 +1880,2675 +1881,2688 +1882,2688 +1883,2688 +1884,2688 +1885,2688 +1886,2688 +1887,2688 +1888,2688 +1889,2700 +1890,2688 +1891,2688 +1892,2688 +1893,2675 +1894,2688 +1895,2688 +1896,2688 +1897,2688 +1898,2688 +1899,2688 +1900,2688 +1901,2688 +1902,2688 +1903,2688 +1904,2688 +1905,2688 +1906,2688 +1907,2688 +1908,2688 +1909,2688 +1910,2675 +1911,2688 +1912,2688 +1913,2675 +1914,2688 +1915,2688 +1916,2688 +1917,2688 +1918,2688 +1919,2688 +1920,2688 +1921,2688 +1922,2688 +1923,2688 +1924,2688 +1925,2688 +1926,2688 +1927,2688 +1928,2688 +1929,2675 +1930,2688 +1931,2688 +1932,2688 +1933,2675 +1934,2688 +1935,2688 +1936,2688 +1937,2688 +1938,2688 +1939,2688 +1940,2675 +1941,2688 +1942,2688 +1943,2688 +1944,2688 +1945,2688 +1946,2688 +1947,2688 +1948,2688 +1949,2688 +1950,2688 +1951,2688 +1952,2688 +1953,2688 +1954,2688 +1955,2688 +1956,2688 +1957,2688 +1958,2688 +1959,2688 +1960,2688 +1961,2688 +1962,2688 +1963,2688 +1964,2688 +1965,2675 +1966,2688 +1967,2688 +1968,2688 +1969,2688 +1970,2688 +1971,2688 +1972,2688 +1973,2675 +1974,2688 +1975,2688 +1976,2688 +1977,2675 +1978,2688 +1979,2688 +1980,2688 +1981,2688 +1982,2688 +1983,2688 +1984,2688 +1985,2675 +1986,2688 +1987,2688 +1988,2688 +1989,2688 +1990,2675 +1991,2688 +1992,2688 +1993,2688 +1994,2675 +1995,2675 +1996,2688 +1997,2688 +1998,2688 +1999,2675 +2000,2688 +2001,2688 +2002,2688 +2003,2688 +2004,2688 +2005,2688 +2006,2688 +2007,2688 +2008,2688 +2009,2688 +2010,2688 +2011,2688 +2012,2688 +2013,2688 +2014,2688 +2015,2688 +2016,2688 +2017,2688 +2018,2688 +2019,2688 +2020,2675 +2021,2675 +2022,2675 +2023,2688 +2024,2688 +2025,2688 +2026,2688 +2027,2688 +2028,2675 +2029,2688 +2030,2688 +2031,2688 +2032,2675 +2033,2688 +2034,2688 +2035,2688 +2036,2688 +2037,2688 +2038,2688 +2039,2675 +2040,2688 +2041,2688 +2042,2675 +2043,2688 +2044,2688 +2045,2688 +2046,2688 +2047,2700 +2048,2688 +2049,2675 +2050,2688 +2051,2688 +2052,2688 +2053,2688 +2054,2688 +2055,2675 +2056,2688 +2057,2688 +2058,2688 +2059,2688 +2060,2688 +2061,2688 +2062,2688 +2063,2688 +2064,2675 +2065,2675 +2066,2700 +2067,2688 +2068,2688 +2069,2688 +2070,2688 +2071,2688 +2072,2688 +2073,2688 +2074,2688 +2075,2688 +2076,2688 +2077,2688 +2078,2688 +2079,2688 +2080,2688 +2081,2688 +2082,2688 +2083,2688 +2084,2675 +2085,2688 +2086,2688 +2087,2688 +2088,2688 +2089,2688 +2090,2688 +2091,2688 +2092,2688 +2093,2688 +2094,2688 +2095,2688 +2096,2688 +2097,2688 +2098,2688 +2099,2688 +2100,2688 +2101,2688 +2102,2688 +2103,2688 +2104,2688 +2105,2688 +2106,2688 +2107,2688 +2108,2688 +2109,2688 +2110,2688 +2111,2688 +2112,2688 +2113,2688 +2114,2688 +2115,2688 +2116,2688 +2117,2688 +2118,2688 +2119,2688 +2120,2688 +2121,2688 +2122,2688 +2123,2688 +2124,2688 +2125,2688 +2126,2688 +2127,2688 +2128,2688 +2129,2688 +2130,2675 +2131,2688 +2132,2688 +2133,2688 +2134,2688 +2135,2688 +2136,2688 +2137,2688 +2138,2688 +2139,2688 +2140,2688 +2141,2688 +2142,2688 +2143,2688 +2144,2688 +2145,2688 +2146,2688 +2147,2688 +2148,2688 +2149,2688 +2150,2688 +2151,2688 +2152,2688 +2153,2688 +2154,2688 +2155,2688 +2156,2688 +2157,2688 +2158,2688 +2159,2688 +2160,2688 +2161,2688 +2162,2675 +2163,2688 +2164,2688 +2165,2688 +2166,2688 +2167,2688 +2168,2688 +2169,2688 +2170,2688 +2171,2688 +2172,2688 +2173,2675 +2174,2688 +2175,2688 +2176,2688 +2177,2688 +2178,2688 +2179,2688 +2180,2688 +2181,2675 +2182,2688 +2183,2688 +2184,2688 +2185,2688 +2186,2688 +2187,2688 +2188,2688 +2189,2688 +2190,2688 +2191,2688 +2192,2688 +2193,2688 +2194,2688 +2195,2675 +2196,2688 +2197,2688 +2198,2688 +2199,2688 +2200,2675 +2201,2688 +2202,2688 +2203,2688 +2204,2688 +2205,2688 +2206,2675 +2207,2688 +2208,2688 +2209,2675 +2210,2688 +2211,2688 +2212,2688 +2213,2688 +2214,2688 +2215,2688 +2216,2688 +2217,2688 +2218,2688 +2219,2688 +2220,2688 +2221,2688 +2222,2688 +2223,2688 +2224,2688 +2225,2675 +2226,2675 +2227,2688 +2228,2688 +2229,2688 +2230,2688 +2231,2688 +2232,2688 +2233,2688 +2234,2688 +2235,2688 +2236,2688 +2237,2688 +2238,2688 +2239,2688 +2240,2688 +2241,2688 +2242,2688 +2243,2688 +2244,2688 +2245,2688 +2246,2688 +2247,2688 +2248,2688 +2249,2688 +2250,2688 +2251,2688 +2252,2688 +2253,2688 +2254,2688 +2255,2688 +2256,2688 +2257,2675 +2258,2688 +2259,2688 +2260,2688 +2261,2688 +2262,2688 +2263,2688 +2264,2688 +2265,2688 +2266,2688 +2267,2688 +2268,2688 +2269,2688 +2270,2688 +2271,2675 +2272,2688 +2273,2688 +2274,2688 +2275,2675 +2276,2688 +2277,2688 +2278,2688 +2279,2688 +2280,2688 +2281,2688 +2282,2688 +2283,2688 +2284,2688 +2285,2688 +2286,2688 +2287,2675 +2288,2688 +2289,2688 +2290,2688 +2291,2688 +2292,2688 +2293,2688 +2294,2700 +2295,2688 +2296,2688 +2297,2688 +2298,2688 +2299,2688 +2300,2675 +2301,2688 +2302,2688 +2303,2688 +2304,2688 +2305,2688 +2306,2688 +2307,2688 +2308,2688 +2309,2688 +2310,2688 +2311,2688 +2312,2688 +2313,2688 +2314,2688 +2315,2675 +2316,2675 +2317,2688 +2318,2688 +2319,2688 +2320,2688 +2321,2688 +2322,2688 +2323,2688 +2324,2688 +2325,2688 +2326,2675 +2327,2688 +2328,2688 +2329,2688 +2330,2688 +2331,2688 +2332,2675 +2333,2675 +2334,2688 +2335,2688 +2336,2688 +2337,2688 +2338,2688 +2339,2688 +2340,2688 +2341,2688 +2342,2688 +2343,2688 +2344,2688 +2345,2688 +2346,2688 +2347,2688 +2348,2675 +2349,2688 +2350,2688 +2351,2675 +2352,2688 +2353,2688 +2354,2688 +2355,2688 +2356,2688 +2357,2688 +2358,2688 +2359,2675 +2360,2688 +2361,2688 +2362,2688 +2363,2688 +2364,2688 +2365,2675 +2366,2688 +2367,2688 +2368,2688 +2369,2688 +2370,2675 +2371,2675 +2372,2688 +2373,2688 +2374,2688 +2375,2688 +2376,2675 +2377,2688 +2378,2675 +2379,2688 +2380,2688 +2381,2688 +2382,2688 +2383,2675 +2384,2675 +2385,2688 +2386,2688 +2387,2688 +2388,2688 +2389,2688 +2390,2688 +2391,2688 +2392,2688 +2393,2688 +2394,2688 +2395,2688 +2396,2688 +2397,2688 +2398,2688 +2399,2688 +2400,2688 +2401,2688 +2402,2688 +2403,2688 +2404,2688 +2405,2688 +2406,2688 +2407,2688 +2408,2688 +2409,2675 +2410,2688 +2411,2688 +2412,2688 +2413,2688 +2414,2675 +2415,2688 +2416,2688 +2417,2688 +2418,2688 +2419,2688 +2420,2688 +2421,2688 +2422,2688 +2423,2688 +2424,2688 +2425,2688 +2426,2688 +2427,2688 +2428,2688 +2429,2688 +2430,2688 +2431,2688 +2432,2700 +2433,2688 +2434,2688 +2435,2688 +2436,2688 +2437,2688 +2438,2675 +2439,2688 +2440,2688 +2441,2688 +2442,2688 +2443,2688 +2444,2688 +2445,2688 +2446,2688 +2447,2688 +2448,2688 +2449,2688 +2450,2688 +2451,2688 +2452,2688 +2453,2688 +2454,2688 +2455,2688 +2456,2688 +2457,2688 +2458,2688 +2459,2675 +2460,2688 +2461,2688 +2462,2688 +2463,2675 +2464,2700 +2465,2688 +2466,2675 +2467,2688 +2468,2688 +2469,2688 +2470,2688 +2471,2688 +2472,2688 +2473,2688 +2474,2688 +2475,2688 +2476,2688 +2477,2688 +2478,2675 +2479,2688 +2480,2688 +2481,2688 +2482,2688 +2483,2688 +2484,2688 +2485,2688 +2486,2675 +2487,2688 +2488,2688 +2489,2688 +2490,2688 +2491,2688 +2492,2688 +2493,2688 +2494,2688 +2495,2688 +2496,2688 +2497,2688 +2498,2688 +2499,2675 +2500,2688 +2501,2688 +2502,2675 +2503,2675 +2504,2688 +2505,2688 +2506,2688 +2507,2688 +2508,2688 +2509,2688 +2510,2675 +2511,2688 +2512,2688 +2513,2688 +2514,2675 +2515,2688 +2516,2688 +2517,2688 +2518,2688 +2519,2688 +2520,2675 +2521,2688 +2522,2688 +2523,2688 +2524,2675 +2525,2688 +2526,2688 +2527,2688 +2528,2688 +2529,2688 +2530,2688 +2531,2688 +2532,2688 +2533,2688 +2534,2688 +2535,2688 +2536,2675 +2537,2688 +2538,2688 +2539,2688 +2540,2688 +2541,2688 +2542,2675 +2543,2688 +2544,2688 +2545,2688 +2546,2688 +2547,2675 +2548,2688 +2549,2675 +2550,2688 +2551,2688 +2552,2688 +2553,2688 +2554,2688 +2555,2688 +2556,2700 +2557,2688 +2558,2688 +2559,2688 +2560,2688 +2561,2688 +2562,2675 +2563,2688 +2564,2688 +2565,2688 +2566,2688 +2567,2688 +2568,2688 +2569,2688 +2570,2688 +2571,2688 +2572,2688 +2573,2688 +2574,2688 +2575,2688 +2576,2688 +2577,2688 +2578,2688 +2579,2688 +2580,2688 +2581,2688 +2582,2688 +2583,2688 +2584,2688 +2585,2688 +2586,2688 +2587,2688 +2588,2688 +2589,2688 +2590,2688 +2591,2688 +2592,2688 +2593,2688 +2594,2688 +2595,2688 +2596,2688 +2597,2688 +2598,2688 +2599,2688 +2600,2688 +2601,2688 +2602,2675 +2603,2675 +2604,2688 +2605,2688 +2606,2688 +2607,2688 +2608,2688 +2609,2700 +2610,2688 +2611,2688 +2612,2688 +2613,2675 +2614,2688 +2615,2688 +2616,2688 +2617,2688 +2618,2688 +2619,2688 +2620,2688 +2621,2688 +2622,2688 +2623,2688 +2624,2688 +2625,2688 +2626,2688 +2627,2688 +2628,2688 +2629,2688 +2630,2688 +2631,2688 +2632,2688 +2633,2688 +2634,2688 +2635,2688 +2636,2688 +2637,2688 +2638,2688 +2639,2688 +2640,2688 +2641,2688 +2642,2688 +2643,2688 +2644,2688 +2645,2688 +2646,2688 +2647,2675 +2648,2688 +2649,2688 +2650,2675 +2651,2688 +2652,2688 +2653,2688 +2654,2688 +2655,2688 +2656,2688 +2657,2688 +2658,2688 +2659,2688 +2660,2688 +2661,2688 +2662,2688 +2663,2675 +2664,2688 +2665,2688 +2666,2688 +2667,2675 +2668,2688 +2669,2688 +2670,2688 +2671,2688 +2672,2675 +2673,2688 +2674,2688 +2675,2675 +2676,2688 +2677,2688 +2678,2688 +2679,2688 +2680,2688 +2681,2688 +2682,2688 +2683,2688 +2684,2675 +2685,2688 +2686,2688 +2687,2688 +2688,2688 +2689,2688 +2690,2688 +2691,2688 +2692,2688 +2693,2688 +2694,2675 +2695,2688 +2696,2688 +2697,2688 +2698,2688 +2699,2688 +2700,2675 +2701,2688 +2702,2688 +2703,2675 +2704,2688 +2705,2688 +2706,2688 +2707,2675 +2708,2688 +2709,2688 +2710,2688 +2711,2688 +2712,2688 +2713,2688 +2714,2688 +2715,2675 +2716,2675 +2717,2688 +2718,2688 +2719,2688 +2720,2688 +2721,2688 +2722,2688 +2723,2688 +2724,2688 +2725,2688 +2726,2688 +2727,2688 +2728,2688 +2729,2675 +2730,2688 +2731,2675 +2732,2688 +2733,2688 +2734,2688 +2735,2688 +2736,2688 +2737,2688 +2738,2688 +2739,2688 +2740,2688 +2741,2688 +2742,2688 +2743,2688 +2744,2688 +2745,2688 +2746,2688 +2747,2688 +2748,2688 +2749,2688 +2750,2688 +2751,2688 +2752,2688 +2753,2688 +2754,2675 +2755,2688 +2756,2675 +2757,2688 +2758,2675 +2759,2688 +2760,2688 +2761,2688 +2762,2688 +2763,2688 +2764,2688 +2765,2675 +2766,2675 +2767,2688 +2768,2688 +2769,2688 +2770,2688 +2771,2688 +2772,2688 +2773,2688 +2774,2688 +2775,2688 +2776,2688 +2777,2688 +2778,2688 +2779,2688 +2780,2688 +2781,2688 +2782,2688 +2783,2675 +2784,2688 +2785,2688 +2786,2688 +2787,2688 +2788,2688 +2789,2688 +2790,2675 +2791,2688 +2792,2688 +2793,2688 +2794,2688 +2795,2688 +2796,2688 +2797,2688 +2798,2688 +2799,2688 +2800,2688 +2801,2688 +2802,2688 +2803,2688 +2804,2688 +2805,2688 +2806,2688 +2807,2688 +2808,2688 +2809,2688 +2810,2688 +2811,2675 +2812,2688 +2813,2688 +2814,2675 +2815,2688 +2816,2688 +2817,2675 +2818,2688 +2819,2688 +2820,2688 +2821,2688 +2822,2688 +2823,2688 +2824,2675 +2825,2688 +2826,2688 +2827,2688 +2828,2688 +2829,2688 +2830,2688 +2831,2688 +2832,2688 +2833,2688 +2834,2688 +2835,2688 +2836,2688 +2837,2675 +2838,2688 +2839,2675 +2840,2688 +2841,2688 +2842,2688 +2843,2688 +2844,2688 +2845,2688 +2846,2688 +2847,2688 +2848,2688 +2849,2688 +2850,2688 +2851,2688 +2852,2688 +2853,2688 +2854,2688 +2855,2688 +2856,2688 +2857,2688 +2858,2688 +2859,2675 +2860,2688 +2861,2688 +2862,2675 +2863,2688 +2864,2688 +2865,2675 +2866,2688 +2867,2688 +2868,2688 +2869,2688 +2870,2688 +2871,2688 +2872,2688 +2873,2688 +2874,2688 +2875,2688 +2876,2688 +2877,2675 +2878,2688 +2879,2688 +2880,2688 +2881,2688 +2882,2688 +2883,2688 +2884,2688 +2885,2688 +2886,2688 +2887,2688 +2888,2688 +2889,2688 +2890,2688 +2891,2688 +2892,2688 +2893,2688 +2894,2688 +2895,2688 +2896,2688 +2897,2688 +2898,2688 +2899,2688 +2900,2688 +2901,2688 +2902,2688 +2903,2688 +2904,2688 +2905,2688 +2906,2688 +2907,2688 +2908,2688 +2909,2688 +2910,2688 +2911,2688 +2912,2688 +2913,2688 +2914,2688 +2915,2688 +2916,2688 +2917,2675 +2918,2688 +2919,2688 +2920,2688 +2921,2688 +2922,2688 +2923,2675 +2924,2688 +2925,2688 +2926,2688 +2927,2688 +2928,2688 +2929,2688 +2930,2675 +2931,2688 +2932,2688 +2933,2688 +2934,2688 +2935,2700 +2936,2688 +2937,2688 +2938,2688 +2939,2688 +2940,2675 +2941,2688 +2942,2688 +2943,2688 +2944,2688 +2945,2675 +2946,2688 +2947,2688 +2948,2688 +2949,2688 +2950,2688 +2951,2688 +2952,2688 +2953,2688 +2954,2688 +2955,2688 +2956,2688 +2957,2688 +2958,2688 +2959,2688 +2960,2688 +2961,2688 +2962,2688 +2963,2688 +2964,2675 +2965,2688 +2966,2688 +2967,2675 +2968,2688 +2969,2688 +2970,2688 +2971,2688 +2972,2688 +2973,2688 +2974,2688 +2975,2688 +2976,2688 +2977,2688 +2978,2675 +2979,2688 +2980,2688 +2981,2688 +2982,2688 +2983,2688 +2984,2688 +2985,2688 +2986,2688 +2987,2688 +2988,2688 +2989,2688 +2990,2688 +2991,2688 +2992,2688 +2993,2688 +2994,2688 +2995,2688 +2996,2688 +2997,2688 +2998,2688 +2999,2688 +3000,2688 +3001,2688 +3002,2688 +3003,2688 +3004,2688 +3005,2688 +3006,2688 +3007,2688 +3008,2688 +3009,2688 +3010,2688 +3011,2688 +3012,2688 +3013,2688 +3014,2688 +3015,2688 +3016,2688 +3017,2688 +3018,2688 +3019,2675 +3020,2688 +3021,2688 +3022,2688 +3023,2700 +3024,2688 +3025,2688 +3026,2688 +3027,2688 +3028,2688 +3029,2688 +3030,2688 +3031,2688 +3032,2688 +3033,2688 +3034,2688 +3035,2688 +3036,2688 +3037,2688 +3038,2688 +3039,2688 +3040,2688 +3041,2688 +3042,2700 +3043,2688 +3044,2675 +3045,2688 +3046,2688 +3047,2688 +3048,2688 +3049,2688 +3050,2688 +3051,2688 +3052,2675 +3053,2688 +3054,2675 +3055,2688 +3056,2688 +3057,2688 +3058,2688 +3059,2675 +3060,2688 +3061,2688 +3062,2688 +3063,2675 +3064,2688 +3065,2688 +3066,2688 +3067,2675 +3068,2688 +3069,2688 +3070,2688 +3071,2688 +3072,2688 +3073,2675 +3074,2688 +3075,2688 +3076,2675 +3077,2688 +3078,2688 +3079,2688 +3080,2688 +3081,2688 +3082,2688 +3083,2688 +3084,2688 +3085,2688 +3086,2675 +3087,2688 +3088,2688 +3089,2688 +3090,2688 +3091,2688 +3092,2688 +3093,2688 +3094,2688 +3095,2688 +3096,2688 +3097,2688 +3098,2688 +3099,2675 +3100,2675 +3101,2688 +3102,2688 +3103,2688 +3104,2688 +3105,2688 +3106,2688 +3107,2688 +3108,2688 +3109,2688 +3110,2675 +3111,2688 +3112,2688 +3113,2688 +3114,2688 +3115,2688 +3116,2688 +3117,2675 +3118,2688 +3119,2688 +3120,2688 +3121,2688 +3122,2688 +3123,2688 +3124,2675 +3125,2688 +3126,2688 +3127,2688 +3128,2688 +3129,2688 +3130,2688 +3131,2688 +3132,2675 +3133,2700 +3134,2688 +3135,2688 +3136,2688 +3137,2675 +3138,2688 +3139,2675 +3140,2688 +3141,2688 +3142,2688 +3143,2675 +3144,2688 +3145,2688 +3146,2688 +3147,2688 +3148,2688 +3149,2688 +3150,2688 +3151,2688 +3152,2688 +3153,2688 +3154,2688 +3155,2688 +3156,2688 +3157,2688 +3158,2688 +3159,2688 +3160,2688 +3161,2688 +3162,2688 +3163,2688 +3164,2688 +3165,2688 +3166,2688 +3167,2688 +3168,2700 +3169,2688 +3170,2675 +3171,2688 +3172,2688 +3173,2688 +3174,2675 +3175,2688 +3176,2675 +3177,2688 +3178,2688 +3179,2688 +3180,2688 +3181,2688 +3182,2675 +3183,2688 +3184,2688 +3185,2688 +3186,2688 +3187,2688 +3188,2688 +3189,2688 +3190,2688 +3191,2688 +3192,2688 +3193,2675 +3194,2688 +3195,2688 +3196,2688 +3197,2675 +3198,2688 +3199,2688 +3200,2675 +3201,2688 +3202,2688 +3203,2688 +3204,2688 +3205,2688 +3206,2675 +3207,2688 +3208,2688 +3209,2688 +3210,2688 +3211,2688 +3212,2688 +3213,2688 +3214,2688 +3215,2688 +3216,2688 +3217,2688 +3218,2688 +3219,2688 +3220,2688 +3221,2688 +3222,2675 +3223,2688 +3224,2675 +3225,2688 +3226,2688 +3227,2688 +3228,2688 +3229,2688 +3230,2688 +3231,2688 +3232,2688 +3233,2688 +3234,2688 +3235,2688 +3236,2688 +3237,2688 +3238,2688 +3239,2688 +3240,2688 +3241,2688 +3242,2688 +3243,2688 +3244,2675 +3245,2688 +3246,2688 +3247,2688 +3248,2688 +3249,2688 +3250,2688 +3251,2688 +3252,2688 +3253,2688 +3254,2688 +3255,2688 +3256,2688 +3257,2688 +3258,2688 +3259,2688 +3260,2688 +3261,2688 +3262,2688 +3263,2688 +3264,2688 +3265,2688 +3266,2688 +3267,2688 +3268,2675 +3269,2688 +3270,2688 +3271,2688 +3272,2688 +3273,2688 +3274,2675 +3275,2688 +3276,2688 +3277,2688 +3278,2688 +3279,2688 +3280,2688 +3281,2688 +3282,2688 +3283,2688 +3284,2688 +3285,2688 +3286,2675 +3287,2688 +3288,2688 +3289,2688 +3290,2688 +3291,2688 +3292,2688 +3293,2688 +3294,2675 +3295,2688 +3296,2688 +3297,2688 +3298,2688 +3299,2688 +3300,2688 +3301,2688 +3302,2688 +3303,2688 +3304,2688 +3305,2688 +3306,2688 +3307,2688 +3308,2688 +3309,2688 +3310,2688 +3311,2675 +3312,2688 +3313,2675 +3314,2688 +3315,2675 +3316,2688 +3317,2688 +3318,2688 +3319,2688 +3320,2688 +3321,2688 +3322,2675 +3323,2675 +3324,2688 +3325,2688 +3326,2688 +3327,2688 +3328,2688 +3329,2688 +3330,2675 +3331,2688 +3332,2688 +3333,2688 +3334,2675 +3335,2688 +3336,2688 +3337,2688 +3338,2688 +3339,2688 +3340,2688 +3341,2688 +3342,2688 +3343,2688 +3344,2688 +3345,2688 +3346,2688 +3347,2688 +3348,2675 +3349,2688 +3350,2688 +3351,2688 +3352,2688 +3353,2688 +3354,2688 +3355,2675 +3356,2675 +3357,2675 +3358,2688 +3359,2688 +3360,2688 +3361,2688 +3362,2688 +3363,2688 +3364,2688 +3365,2688 +3366,2688 +3367,2688 +3368,2688 +3369,2675 +3370,2688 +3371,2688 +3372,2688 +3373,2688 +3374,2688 +3375,2688 +3376,2688 +3377,2688 +3378,2688 +3379,2688 +3380,2688 +3381,2688 +3382,2688 +3383,2675 +3384,2688 +3385,2688 +3386,2688 +3387,2688 +3388,2688 +3389,2688 +3390,2675 +3391,2688 +3392,2688 +3393,2688 +3394,2688 +3395,2688 +3396,2675 +3397,2688 +3398,2688 +3399,2675 +3400,2688 +3401,2688 +3402,2675 +3403,2688 +3404,2688 +3405,2688 +3406,2675 +3407,2688 +3408,2675 +3409,2688 +3410,2688 +3411,2675 +3412,2688 +3413,2688 +3414,2688 +3415,2688 +3416,2688 +3417,2688 +3418,2688 +3419,2675 +3420,2688 +3421,2688 +3422,2688 +3423,2675 +3424,2688 +3425,2688 +3426,2688 +3427,2700 +3428,2688 +3429,2675 +3430,2675 +3431,2688 +3432,2688 +3433,2688 +3434,2688 +3435,2688 +3436,2688 +3437,2688 +3438,2688 +3439,2688 +3440,2688 +3441,2688 +3442,2688 +3443,2675 +3444,2688 +3445,2675 +3446,2688 +3447,2688 +3448,2688 +3449,2688 +3450,2688 +3451,2675 +3452,2688 +3453,2688 +3454,2688 +3455,2688 +3456,2688 +3457,2675 +3458,2688 +3459,2688 +3460,2675 +3461,2675 +3462,2688 +3463,2688 +3464,2688 +3465,2688 +3466,2688 +3467,2688 +3468,2688 +3469,2688 +3470,2688 +3471,2688 +3472,2688 +3473,2688 +3474,2688 +3475,2688 +3476,2688 +3477,2688 +3478,2688 +3479,2688 +3480,2688 +3481,2675 +3482,2688 +3483,2675 +3484,2688 +3485,2688 +3486,2688 +3487,2688 +3488,2688 +3489,2675 +3490,2688 +3491,2675 +3492,2675 +3493,2688 +3494,2688 +3495,2688 +3496,2688 +3497,2688 +3498,2688 +3499,2675 +3500,2688 +3501,2688 +3502,2688 +3503,2688 +3504,2688 +3505,2688 +3506,2688 +3507,2688 +3508,2688 +3509,2688 +3510,2688 +3511,2675 +3512,2688 +3513,2688 +3514,2688 +3515,2688 +3516,2688 +3517,2688 +3518,2688 +3519,2688 +3520,2688 +3521,2675 +3522,2675 +3523,2688 +3524,2688 +3525,2688 +3526,2688 +3527,2675 +3528,2688 +3529,2688 +3530,2688 +3531,2688 +3532,2688 +3533,2688 +3534,2688 +3535,2688 +3536,2688 +3537,2688 +3538,2688 +3539,2675 +3540,2688 +3541,2675 +3542,2675 +3543,2688 +3544,2688 +3545,2688 +3546,2688 +3547,2688 +3548,2688 +3549,2688 +3550,2688 +3551,2688 +3552,2675 +3553,2688 +3554,2688 +3555,2675 +3556,2688 +3557,2675 +3558,2688 +3559,2688 +3560,2688 +3561,2688 +3562,2688 +3563,2688 +3564,2688 +3565,2688 +3566,2688 +3567,2688 +3568,2675 +3569,2688 +3570,2688 +3571,2688 +3572,2688 +3573,2675 +3574,2675 +3575,2688 +3576,2688 +3577,2688 +3578,2688 +3579,2688 +3580,2688 +3581,2688 +3582,2688 +3583,2688 +3584,2688 +3585,2688 +3586,2675 +3587,2688 +3588,2688 +3589,2688 +3590,2688 +3591,2688 +3592,2688 +3593,2688 +3594,2688 +3595,2688 +3596,2688 +3597,2688 +3598,2675 +3599,2688 +3600,2688 +3601,2675 +3602,2688 +3603,2675 +3604,2675 +3605,2675 +3606,2688 +3607,2675 +3608,2688 +3609,2688 +3610,2688 +3611,2688 +3612,2688 +3613,2688 +3614,2688 +3615,2688 +3616,2688 +3617,2675 +3618,2688 +3619,2688 +3620,2675 +3621,2688 +3622,2688 +3623,2688 +3624,2688 +3625,2688 +3626,2688 +3627,2688 +3628,2688 +3629,2688 +3630,2688 +3631,2688 +3632,2688 +3633,2688 +3634,2688 +3635,2688 +3636,2688 +3637,2688 +3638,2688 +3639,2675 +3640,2688 +3641,2688 +3642,2688 +3643,2688 +3644,2688 +3645,2688 +3646,2688 +3647,2688 +3648,2688 +3649,2688 +3650,2688 +3651,2688 +3652,2688 +3653,2688 +3654,2688 +3655,2688 +3656,2688 +3657,2675 +3658,2688 +3659,2688 +3660,2688 +3661,2688 +3662,2688 +3663,2688 +3664,2675 +3665,2688 +3666,2688 +3667,2688 +3668,2688 +3669,2688 +3670,2688 +3671,2688 +3672,2688 +3673,2688 +3674,2688 +3675,2688 +3676,2688 +3677,2688 +3678,2688 +3679,2688 +3680,2688 +3681,2688 +3682,2688 +3683,2688 +3684,2675 +3685,2688 +3686,2688 +3687,2688 +3688,2688 +3689,2688 +3690,2675 +3691,2688 +3692,2688 +3693,2688 +3694,2688 +3695,2688 +3696,2688 +3697,2688 +3698,2688 +3699,2688 +3700,2688 +3701,2688 +3702,2688 +3703,2675 +3704,2688 +3705,2688 +3706,2688 +3707,2688 +3708,2688 +3709,2675 +3710,2688 +3711,2688 +3712,2688 +3713,2688 +3714,2688 +3715,2688 +3716,2688 +3717,2688 +3718,2688 +3719,2700 +3720,2688 +3721,2675 +3722,2688 +3723,2675 +3724,2688 +3725,2688 +3726,2688 +3727,2675 +3728,2688 +3729,2688 +3730,2688 +3731,2675 +3732,2688 +3733,2688 +3734,2688 +3735,2688 +3736,2688 +3737,2675 +3738,2688 +3739,2688 +3740,2688 +3741,2688 +3742,2688 +3743,2688 +3744,2688 +3745,2688 +3746,2688 +3747,2688 +3748,2688 +3749,2675 +3750,2688 +3751,2688 +3752,2688 +3753,2688 +3754,2688 +3755,2688 +3756,2688 +3757,2675 +3758,2688 +3759,2688 +3760,2688 +3761,2688 +3762,2688 +3763,2688 +3764,2688 +3765,2688 +3766,2688 +3767,2675 +3768,2688 +3769,2688 +3770,2688 +3771,2688 +3772,2688 +3773,2688 +3774,2688 +3775,2688 +3776,2688 +3777,2688 +3778,2688 +3779,2688 +3780,2688 +3781,2688 +3782,2688 +3783,2688 +3784,2688 +3785,2688 +3786,2688 +3787,2688 +3788,2688 +3789,2688 +3790,2688 +3791,2688 +3792,2688 +3793,2688 +3794,2688 +3795,2688 +3796,2688 +3797,2688 +3798,2688 +3799,2688 +3800,2688 +3801,2688 +3802,2675 +3803,2688 +3804,2688 +3805,2688 +3806,2688 +3807,2688 +3808,2688 +3809,2688 +3810,2688 +3811,2688 +3812,2688 +3813,2688 +3814,2688 +3815,2688 +3816,2688 +3817,2688 +3818,2675 +3819,2688 +3820,2688 +3821,2688 +3822,2688 +3823,2688 +3824,2688 +3825,2675 +3826,2688 +3827,2688 +3828,2688 +3829,2688 +3830,2688 +3831,2688 +3832,2688 +3833,2688 +3834,2688 +3835,2688 +3836,2688 +3837,2688 +3838,2688 +3839,2688 +3840,2688 +3841,2675 +3842,2688 +3843,2675 +3844,2688 +3845,2675 +3846,2688 +3847,2688 +3848,2675 +3849,2675 +3850,2688 +3851,2688 +3852,2688 +3853,2688 +3854,2688 +3855,2688 +3856,2675 +3857,2688 +3858,2688 +3859,2688 +3860,2688 +3861,2688 +3862,2675 +3863,2688 +3864,2688 +3865,2688 +3866,2688 +3867,2675 +3868,2688 +3869,2688 +3870,2688 +3871,2688 +3872,2675 +3873,2688 +3874,2688 +3875,2675 +3876,2688 +3877,2688 +3878,2688 +3879,2688 +3880,2688 +3881,2688 +3882,2688 +3883,2688 +3884,2688 +3885,2688 +3886,2688 +3887,2688 +3888,2688 +3889,2688 +3890,2688 +3891,2688 +3892,2688 +3893,2688 +3894,2688 +3895,2688 +3896,2688 +3897,2688 +3898,2688 +3899,2688 +3900,2700 +3901,2688 +3902,2688 +3903,2688 +3904,2688 +3905,2688 +3906,2688 +3907,2675 +3908,2688 +3909,2675 +3910,2688 +3911,2688 +3912,2688 +3913,2688 +3914,2688 +3915,2688 +3916,2688 +3917,2688 +3918,2688 +3919,2675 +3920,2688 +3921,2688 +3922,2688 +3923,2688 +3924,2688 +3925,2688 +3926,2688 +3927,2688 +3928,2688 +3929,2688 +3930,2688 +3931,2688 +3932,2688 +3933,2688 +3934,2688 +3935,2688 +3936,2688 +3937,2675 +3938,2675 +3939,2688 +3940,2688 +3941,2688 +3942,2675 +3943,2688 +3944,2688 +3945,2688 +3946,2688 +3947,2688 +3948,2675 +3949,2675 +3950,2688 +3951,2688 +3952,2688 +3953,2688 +3954,2688 +3955,2688 +3956,2688 +3957,2688 +3958,2688 +3959,2688 +3960,2688 +3961,2675 +3962,2688 +3963,2688 +3964,2688 +3965,2688 +3966,2700 +3967,2688 +3968,2688 +3969,2688 +3970,2688 +3971,2688 +3972,2688 +3973,2688 +3974,2675 +3975,2675 +3976,2688 +3977,2688 +3978,2688 +3979,2688 +3980,2688 +3981,2688 +3982,2688 +3983,2688 +3984,2688 +3985,2675 +3986,2675 +3987,2688 +3988,2688 +3989,2688 +3990,2688 +3991,2688 +3992,2688 +3993,2688 +3994,2688 +3995,2688 +3996,2688 +3997,2688 +3998,2688 +3999,2688 +4000,2688 +4001,2688 +4002,2688 +4003,2688 +4004,2688 +4005,2675 +4006,2688 +4007,2688 +4008,2688 +4009,2688 +4010,2688 +4011,2688 +4012,2675 +4013,2688 +4014,2688 +4015,2688 +4016,2688 +4017,2688 +4018,2688 +4019,2688 +4020,2675 +4021,2675 +4022,2688 +4023,2688 +4024,2688 +4025,2688 +4026,2688 +4027,2688 +4028,2688 +4029,2688 +4030,2688 +4031,2688 +4032,2688 +4033,2688 +4034,2688 +4035,2688 +4036,2688 +4037,2688 +4038,2688 +4039,2688 +4040,2675 +4041,2688 +4042,2688 +4043,2675 +4044,2688 +4045,2688 +4046,2688 +4047,2688 +4048,2688 +4049,2688 +4050,2675 +4051,2688 +4052,2688 +4053,2688 +4054,2688 +4055,2688 +4056,2688 +4057,2688 +4058,2688 +4059,2688 +4060,2688 +4061,2688 +4062,2675 +4063,2700 +4064,2688 +4065,2688 +4066,2688 +4067,2688 +4068,2675 +4069,2688 +4070,2675 +4071,2688 +4072,2688 +4073,2688 +4074,2688 +4075,2688 +4076,2688 +4077,2688 +4078,2688 +4079,2688 +4080,2688 +4081,2688 +4082,2700 +4083,2688 +4084,2700 +4085,2688 +4086,2688 +4087,2688 +4088,2688 +4089,2675 +4090,2688 +4091,2688 +4092,2688 +4093,2688 +4094,2688 +4095,2688 +4096,2688 +4097,2688 +4098,2688 +4099,2688 +4100,2688 +4101,2688 +4102,2688 +4103,2688 +4104,2688 +4105,2688 +4106,2688 +4107,2700 +4108,2688 +4109,2688 +4110,2688 +4111,2688 +4112,2675 +4113,2675 +4114,2688 +4115,2688 +4116,2688 +4117,2688 +4118,2688 +4119,2688 +4120,2700 +4121,2688 +4122,2688 +4123,2688 +4124,2688 +4125,2688 +4126,2688 +4127,2688 +4128,2688 +4129,2675 +4130,2688 +4131,2688 +4132,2688 +4133,2688 +4134,2688 +4135,2688 +4136,2688 +4137,2675 +4138,2688 +4139,2675 +4140,2688 +4141,2688 +4142,2688 +4143,2688 +4144,2675 +4145,2688 +4146,2688 +4147,2675 +4148,2688 +4149,2688 +4150,2688 +4151,2688 +4152,2688 +4153,2700 +4154,2675 +4155,2688 +4156,2675 +4157,2675 +4158,2688 +4159,2688 +4160,2688 +4161,2675 +4162,2688 +4163,2688 +4164,2688 +4165,2688 +4166,2688 +4167,2688 +4168,2688 +4169,2675 +4170,2688 +4171,2688 +4172,2688 +4173,2688 +4174,2688 +4175,2688 +4176,2688 +4177,2675 +4178,2688 +4179,2688 +4180,2688 +4181,2688 +4182,2675 +4183,2688 +4184,2688 +4185,2688 +4186,2688 +4187,2688 +4188,2688 +4189,2688 +4190,2688 +4191,2688 +4192,2688 +4193,2688 +4194,2675 +4195,2688 +4196,2688 +4197,2688 +4198,2688 +4199,2688 +4200,2688 +4201,2688 +4202,2675 +4203,2688 +4204,2688 +4205,2688 +4206,2675 +4207,2688 +4208,2688 +4209,2688 +4210,2688 +4211,2688 +4212,2688 +4213,2688 +4214,2688 +4215,2675 +4216,2675 +4217,2688 +4218,2675 +4219,2688 +4220,2688 +4221,2688 +4222,2688 +4223,2688 +4224,2688 +4225,2688 +4226,2688 +4227,2688 +4228,2688 +4229,2688 +4230,2688 +4231,2675 +4232,2688 +4233,2688 +4234,2675 +4235,2675 +4236,2688 +4237,2688 +4238,2688 +4239,2688 +4240,2675 +4241,2688 +4242,2688 +4243,2675 +4244,2688 +4245,2688 +4246,2688 +4247,2688 +4248,2688 +4249,2688 +4250,2700 +4251,2675 +4252,2688 +4253,2688 +4254,2688 +4255,2688 +4256,2688 +4257,2688 +4258,2688 +4259,2688 +4260,2688 +4261,2688 +4262,2688 +4263,2688 +4264,2688 +4265,2675 +4266,2688 +4267,2688 +4268,2688 +4269,2688 +4270,2688 +4271,2675 +4272,2688 +4273,2700 +4274,2688 +4275,2675 +4276,2688 +4277,2688 +4278,2688 +4279,2688 +4280,2675 +4281,2688 +4282,2688 +4283,2688 +4284,2688 +4285,2675 +4286,2688 +4287,2688 +4288,2675 +4289,2688 +4290,2675 +4291,2688 +4292,2688 +4293,2688 +4294,2688 +4295,2688 +4296,2688 +4297,2688 +4298,2688 +4299,2688 +4300,2688 +4301,2688 +4302,2688 +4303,2688 +4304,2688 +4305,2688 +4306,2688 +4307,2675 +4308,2675 +4309,2688 +4310,2688 +4311,2688 +4312,2675 +4313,2675 +4314,2688 +4315,2688 +4316,2688 +4317,2688 +4318,2688 +4319,2675 +4320,2688 +4321,2688 +4322,2688 +4323,2688 +4324,2675 +4325,2688 +4326,2688 +4327,2688 +4328,2688 +4329,2688 +4330,2675 +4331,2688 +4332,2688 +4333,2688 +4334,2688 +4335,2688 +4336,2688 +4337,2700 +4338,2688 +4339,2688 +4340,2688 +4341,2688 +4342,2688 +4343,2700 +4344,2688 +4345,2675 +4346,2688 +4347,2688 +4348,2675 +4349,2675 +4350,2688 +4351,2688 +4352,2688 +4353,2688 +4354,2688 +4355,2688 +4356,2688 +4357,2688 +4358,2688 +4359,2688 +4360,2688 +4361,2688 +4362,2688 +4363,2688 +4364,2688 +4365,2688 +4366,2688 +4367,2688 +4368,2688 +4369,2688 +4370,2688 +4371,2688 +4372,2688 +4373,2675 +4374,2675 +4375,2688 +4376,2688 +4377,2675 +4378,2688 +4379,2688 +4380,2688 +4381,2688 +4382,2688 +4383,2688 +4384,2688 +4385,2688 +4386,2675 +4387,2688 +4388,2688 +4389,2688 +4390,2688 +4391,2688 +4392,2688 +4393,2688 +4394,2688 +4395,2688 +4396,2688 +4397,2688 +4398,2700 +4399,2688 +4400,2688 +4401,2688 +4402,2688 +4403,2688 +4404,2688 +4405,2688 +4406,2688 +4407,2688 +4408,2675 +4409,2688 +4410,2688 +4411,2688 +4412,2688 +4413,2688 +4414,2688 +4415,2675 +4416,2688 +4417,2688 +4418,2688 +4419,2688 +4420,2688 +4421,2688 +4422,2688 +4423,2688 +4424,2688 +4425,2688 +4426,2688 +4427,2688 +4428,2688 +4429,2688 +4430,2688 +4431,2688 +4432,2688 +4433,2688 +4434,2688 +4435,2688 +4436,2688 +4437,2688 +4438,2688 +4439,2688 +4440,2688 +4441,2688 +4442,2688 +4443,2675 +4444,2688 +4445,2675 +4446,2675 +4447,2688 +4448,2688 +4449,2688 +4450,2688 +4451,2675 +4452,2688 +4453,2688 +4454,2675 +4455,2688 +4456,2688 +4457,2688 +4458,2688 +4459,2688 +4460,2688 +4461,2688 +4462,2688 +4463,2688 +4464,2688 +4465,2688 +4466,2688 +4467,2688 +4468,2688 +4469,2688 +4470,2688 +4471,2688 +4472,2688 +4473,2688 +4474,2688 +4475,2688 +4476,2675 +4477,2688 +4478,2688 +4479,2688 +4480,2688 +4481,2688 +4482,2688 +4483,2688 +4484,2688 +4485,2688 +4486,2688 +4487,2688 +4488,2688 +4489,2688 +4490,2688 +4491,2688 +4492,2675 +4493,2688 +4494,2688 +4495,2688 +4496,2688 +4497,2688 +4498,2688 +4499,2688 +4500,2688 +4501,2688 +4502,2688 +4503,2688 +4504,2688 +4505,2688 +4506,2688 +4507,2688 +4508,2688 +4509,2688 +4510,2688 +4511,2688 +4512,2688 +4513,2688 +4514,2688 +4515,2675 +4516,2688 +4517,2675 +4518,2688 +4519,2688 +4520,2688 +4521,2688 +4522,2688 +4523,2688 +4524,2688 +4525,2688 +4526,2688 +4527,2688 +4528,2688 +4529,2688 +4530,2688 +4531,2688 +4532,2688 +4533,2688 +4534,2688 +4535,2688 +4536,2688 +4537,2675 +4538,2675 +4539,2688 +4540,2688 +4541,2688 +4542,2688 +4543,2688 +4544,2688 +4545,2688 +4546,2688 +4547,2688 +4548,2688 +4549,2688 +4550,2688 +4551,2688 +4552,2688 +4553,2688 +4554,2675 +4555,2688 +4556,2688 +4557,2688 +4558,2688 +4559,2688 +4560,2688 +4561,2688 +4562,2688 +4563,2688 +4564,2688 +4565,2675 +4566,2688 +4567,2688 +4568,2688 +4569,2688 +4570,2688 +4571,2688 +4572,2688 +4573,2688 +4574,2688 +4575,2688 +4576,2688 +4577,2688 +4578,2700 +4579,2688 +4580,2688 +4581,2688 +4582,2688 +4583,2688 +4584,2688 +4585,2688 +4586,2688 +4587,2688 +4588,2688 +4589,2675 +4590,2675 +4591,2675 +4592,2688 +4593,2688 +4594,2688 +4595,2688 +4596,2688 +4597,2688 +4598,2688 +4599,2688 +4600,2688 +4601,2688 +4602,2688 +4603,2688 +4604,2688 +4605,2688 +4606,2700 +4607,2688 +4608,2688 +4609,2688 +4610,2688 +4611,2688 +4612,2688 +4613,2688 +4614,2688 +4615,2675 +4616,2688 +4617,2688 +4618,2688 +4619,2688 +4620,2688 +4621,2688 +4622,2688 +4623,2688 +4624,2688 +4625,2688 +4626,2688 +4627,2688 +4628,2688 +4629,2688 +4630,2688 +4631,2688 +4632,2688 +4633,2688 +4634,2688 +4635,2688 +4636,2688 +4637,2688 +4638,2688 +4639,2688 +4640,2688 +4641,2688 +4642,2688 +4643,2688 +4644,2688 +4645,2688 +4646,2688 +4647,2688 +4648,2688 +4649,2688 +4650,2688 +4651,2688 +4652,2688 +4653,2688 +4654,2688 +4655,2688 +4656,2688 +4657,2688 +4658,2688 +4659,2688 +4660,2675 +4661,2688 +4662,2688 +4663,2688 +4664,2688 +4665,2688 +4666,2675 +4667,2688 +4668,2688 +4669,2688 +4670,2688 +4671,2688 +4672,2688 +4673,2688 +4674,2688 +4675,2688 +4676,2688 +4677,2688 +4678,2688 +4679,2688 +4680,2688 +4681,2688 +4682,2688 +4683,2688 +4684,2688 +4685,2688 +4686,2688 +4687,2675 +4688,2688 +4689,2688 +4690,2688 +4691,2688 +4692,2688 +4693,2688 +4694,2700 +4695,2675 +4696,2688 +4697,2688 +4698,2688 +4699,2675 +4700,2688 +4701,2675 +4702,2688 +4703,2688 +4704,2688 +4705,2688 +4706,2675 +4707,2688 +4708,2688 +4709,2688 +4710,2688 +4711,2688 +4712,2675 +4713,2688 +4714,2688 +4715,2688 +4716,2688 +4717,2688 +4718,2688 +4719,2688 +4720,2688 +4721,2688 +4722,2688 +4723,2688 +4724,2688 +4725,2675 +4726,2688 +4727,2688 +4728,2675 +4729,2688 +4730,2688 +4731,2688 +4732,2688 +4733,2688 +4734,2688 +4735,2688 +4736,2688 +4737,2688 +4738,2688 +4739,2688 +4740,2688 +4741,2688 +4742,2688 +4743,2688 +4744,2688 +4745,2688 +4746,2688 +4747,2688 +4748,2688 +4749,2688 +4750,2688 +4751,2688 +4752,2688 +4753,2688 +4754,2688 +4755,2688 +4756,2688 +4757,2688 +4758,2688 +4759,2688 +4760,2688 +4761,2688 +4762,2688 +4763,2688 +4764,2688 +4765,2688 +4766,2688 +4767,2688 +4768,2688 +4769,2688 +4770,2688 +4771,2675 +4772,2688 +4773,2688 +4774,2688 +4775,2688 +4776,2688 +4777,2688 +4778,2688 +4779,2688 +4780,2688 +4781,2688 +4782,2688 +4783,2675 +4784,2688 +4785,2688 +4786,2688 +4787,2675 +4788,2688 +4789,2688 +4790,2688 +4791,2688 +4792,2688 +4793,2688 +4794,2688 +4795,2688 +4796,2688 +4797,2688 +4798,2688 +4799,2688 +4800,2688 +4801,2688 +4802,2688 +4803,2700 +4804,2688 +4805,2688 +4806,2688 +4807,2688 +4808,2688 +4809,2688 +4810,2688 +4811,2688 +4812,2688 +4813,2688 +4814,2688 +4815,2688 +4816,2688 +4817,2675 +4818,2688 +4819,2688 +4820,2688 +4821,2675 +4822,2688 +4823,2688 +4824,2688 +4825,2688 +4826,2688 +4827,2675 +4828,2688 +4829,2688 +4830,2688 +4831,2688 +4832,2688 +4833,2675 +4834,2688 +4835,2688 +4836,2688 +4837,2688 +4838,2688 +4839,2688 +4840,2688 +4841,2688 +4842,2675 +4843,2688 +4844,2688 +4845,2688 +4846,2688 +4847,2688 +4848,2688 +4849,2675 +4850,2688 +4851,2675 +4852,2688 +4853,2688 +4854,2688 +4855,2688 +4856,2688 +4857,2688 +4858,2688 +4859,2688 +4860,2688 +4861,2688 +4862,2688 +4863,2688 +4864,2688 +4865,2688 +4866,2688 +4867,2675 +4868,2688 +4869,2688 +4870,2688 +4871,2675 +4872,2688 +4873,2675 +4874,2675 +4875,2688 +4876,2688 +4877,2688 +4878,2688 +4879,2688 +4880,2688 +4881,2688 +4882,2688 +4883,2688 +4884,2688 +4885,2688 +4886,2688 +4887,2688 +4888,2688 +4889,2688 +4890,2688 +4891,2688 +4892,2688 +4893,2688 +4894,2688 +4895,2688 +4896,2688 +4897,2688 +4898,2688 +4899,2688 +4900,2688 +4901,2688 +4902,2675 +4903,2688 +4904,2688 +4905,2688 +4906,2688 +4907,2688 +4908,2688 +4909,2688 +4910,2688 +4911,2688 +4912,2688 +4913,2688 +4914,2688 +4915,2688 +4916,2688 +4917,2688 +4918,2688 +4919,2688 +4920,2688 +4921,2688 +4922,2688 +4923,2688 +4924,2688 +4925,2688 +4926,2688 +4927,2688 +4928,2688 +4929,2688 +4930,2688 +4931,2688 +4932,2688 +4933,2688 +4934,2688 +4935,2675 +4936,2675 +4937,2688 +4938,2688 +4939,2688 +4940,2688 +4941,2688 +4942,2688 +4943,2688 +4944,2675 +4945,2675 +4946,2688 +4947,2675 +4948,2688 +4949,2675 +4950,2688 +4951,2688 +4952,2688 +4953,2688 +4954,2688 +4955,2688 +4956,2675 +4957,2688 +4958,2688 +4959,2688 +4960,2675 +4961,2688 +4962,2688 +4963,2688 +4964,2688 +4965,2688 +4966,2675 +4967,2688 +4968,2688 +4969,2675 +4970,2688 +4971,2688 +4972,2688 +4973,2688 +4974,2688 +4975,2688 +4976,2675 +4977,2688 +4978,2688 +4979,2688 +4980,2688 +4981,2688 +4982,2688 +4983,2688 +4984,2675 +4985,2688 +4986,2688 +4987,2688 +4988,2688 +4989,2675 +4990,2688 +4991,2675 +4992,2688 +4993,2688 +4994,2675 +4995,2688 +4996,2688 +4997,2688 +4998,2688 +4999,2688 +5000,2675 +5001,2688 +5002,2688 +5003,2688 +5004,2688 +5005,2675 +5006,2700 +5007,2688 +5008,2688 +5009,2688 +5010,2688 +5011,2688 +5012,2688 +5013,2688 +5014,2688 +5015,2675 +5016,2688 +5017,2688 +5018,2688 +5019,2688 +5020,2688 +5021,2675 +5022,2688 +5023,2688 +5024,2688 +5025,2688 +5026,2688 +5027,2675 +5028,2688 +5029,2688 +5030,2688 +5031,2688 +5032,2688 +5033,2688 +5034,2688 +5035,2688 +5036,2688 +5037,2688 +5038,2688 +5039,2688 +5040,2688 +5041,2688 +5042,2688 +5043,2688 +5044,2688 +5045,2688 +5046,2688 +5047,2688 +5048,2688 +5049,2688 +5050,2688 +5051,2688 +5052,2688 +5053,2688 +5054,2688 +5055,2688 +5056,2688 +5057,2688 +5058,2688 +5059,2688 +5060,2675 +5061,2688 +5062,2688 +5063,2688 +5064,2688 +5065,2688 +5066,2688 +5067,2688 +5068,2675 +5069,2675 +5070,2688 +5071,2688 +5072,2688 +5073,2688 +5074,2688 +5075,2688 +5076,2688 +5077,2688 +5078,2688 +5079,2675 +5080,2675 +5081,2688 +5082,2688 +5083,2688 +5084,2688 +5085,2688 +5086,2688 +5087,2688 +5088,2675 +5089,2688 +5090,2688 +5091,2688 +5092,2688 +5093,2688 +5094,2688 +5095,2688 +5096,2688 +5097,2675 +5098,2688 +5099,2688 +5100,2688 +5101,2688 +5102,2688 +5103,2688 +5104,2688 +5105,2688 +5106,2688 +5107,2688 +5108,2688 +5109,2675 +5110,2688 +5111,2688 +5112,2688 +5113,2688 +5114,2688 +5115,2688 +5116,2675 +5117,2688 +5118,2688 +5119,2688 +5120,2688 +5121,2688 +5122,2688 +5123,2688 +5124,2688 +5125,2688 +5126,2675 +5127,2700 +5128,2688 +5129,2688 +5130,2688 +5131,2688 +5132,2688 +5133,2688 +5134,2688 +5135,2688 +5136,2688 +5137,2688 +5138,2688 +5139,2688 +5140,2688 +5141,2688 +5142,2688 +5143,2688 +5144,2688 +5145,2688 +5146,2675 +5147,2688 +5148,2688 +5149,2688 +5150,2688 +5151,2688 +5152,2675 +5153,2688 +5154,2688 +5155,2688 +5156,2688 +5157,2688 +5158,2688 +5159,2675 +5160,2688 +5161,2688 +5162,2688 +5163,2688 +5164,2688 +5165,2675 +5166,2688 +5167,2675 +5168,2688 +5169,2675 +5170,2688 +5171,2688 +5172,2688 +5173,2688 +5174,2688 +5175,2675 +5176,2675 +5177,2675 +5178,2688 +5179,2675 +5180,2688 +5181,2688 +5182,2675 +5183,2688 +5184,2688 +5185,2688 +5186,2688 +5187,2688 +5188,2688 +5189,2688 +5190,2688 +5191,2688 +5192,2688 +5193,2688 +5194,2688 +5195,2675 +5196,2688 +5197,2688 +5198,2688 +5199,2688 +5200,2675 +5201,2675 +5202,2688 +5203,2688 +5204,2688 +5205,2688 +5206,2688 +5207,2688 +5208,2675 +5209,2688 +5210,2688 +5211,2688 +5212,2688 +5213,2688 +5214,2688 +5215,2688 +5216,2688 +5217,2688 +5218,2688 +5219,2688 +5220,2688 +5221,2675 +5222,2688 +5223,2688 +5224,2688 +5225,2688 +5226,2688 +5227,2688 +5228,2688 +5229,2688 +5230,2688 +5231,2675 +5232,2688 +5233,2688 +5234,2688 +5235,2688 +5236,2688 +5237,2688 +5238,2688 +5239,2688 +5240,2675 +5241,2688 +5242,2688 +5243,2688 +5244,2688 +5245,2688 +5246,2688 +5247,2688 +5248,2688 +5249,2688 +5250,2688 +5251,2688 +5252,2688 +5253,2688 +5254,2688 +5255,2688 +5256,2688 +5257,2688 +5258,2688 +5259,2688 +5260,2675 +5261,2688 +5262,2688 +5263,2688 +5264,2688 +5265,2688 +5266,2675 +5267,2688 +5268,2688 +5269,2688 +5270,2688 +5271,2688 +5272,2675 +5273,2688 +5274,2688 +5275,2688 +5276,2688 +5277,2688 +5278,2688 +5279,2688 +5280,2688 +5281,2688 +5282,2688 +5283,2688 +5284,2688 +5285,2688 +5286,2675 +5287,2675 +5288,2688 +5289,2688 +5290,2688 +5291,2688 +5292,2688 +5293,2688 +5294,2688 +5295,2688 +5296,2688 +5297,2688 +5298,2688 +5299,2688 +5300,2688 +5301,2688 +5302,2688 +5303,2688 +5304,2688 +5305,2675 +5306,2688 +5307,2688 +5308,2688 +5309,2688 +5310,2688 +5311,2688 +5312,2688 +5313,2688 +5314,2688 +5315,2688 +5316,2688 +5317,2688 +5318,2688 +5319,2688 +5320,2688 +5321,2688 +5322,2688 +5323,2688 +5324,2688 +5325,2688 +5326,2688 +5327,2688 +5328,2688 +5329,2688 +5330,2675 +5331,2688 +5332,2688 +5333,2688 +5334,2688 +5335,2688 +5336,2688 +5337,2688 +5338,2688 +5339,2688 +5340,2688 +5341,2688 +5342,2688 +5343,2688 +5344,2688 +5345,2688 +5346,2688 +5347,2688 +5348,2688 +5349,2688 +5350,2675 +5351,2688 +5352,2675 +5353,2688 +5354,2688 +5355,2688 +5356,2688 +5357,2675 +5358,2688 +5359,2688 +5360,2688 +5361,2688 +5362,2688 +5363,2675 +5364,2688 +5365,2688 +5366,2688 +5367,2675 +5368,2688 +5369,2688 +5370,2688 +5371,2688 +5372,2688 +5373,2688 +5374,2688 +5375,2688 +5376,2688 +5377,2688 +5378,2688 +5379,2688 +5380,2688 +5381,2688 +5382,2688 +5383,2675 +5384,2688 +5385,2688 +5386,2688 +5387,2688 +5388,2688 +5389,2688 +5390,2688 +5391,2688 +5392,2688 +5393,2688 +5394,2688 +5395,2688 +5396,2688 +5397,2688 +5398,2688 +5399,2675 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs new file mode 100644 index 000000000..c88a17313 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test.cs @@ -0,0 +1,204 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +Int32 position_32bit=0; +Int32 last_14bit_position; + +const Int32 HomeStart=1024; +const Int32 DrierLoadingArm_Motor = 5; +const Int32 NM_ROUND =30; +public void OnExecute(StubManager stubManager) +{ + Test_Load_Arm(); + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + +} + +bool Encoder_Dryer_Exist() +{ + Int32 temp; + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission + + var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); + var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); + + temp = Convert.ToInt32 (response.Value & 0x0300); + if (temp==0) + return true; + else + return false; +} + + + +void ReadEncoder_Dryer() +{ + Int32 temp; + Int32 temp1; + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission + + var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); + var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); + + temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); + if (temp>last_14bit_position) + { + temp1=temp-last_14bit_position; + position_32bit=position_32bit+temp1; + if (temp1>0x2000) + position_32bit=position_32bit-0x4000; + } + else if (temp<last_14bit_position) + + { + temp1=last_14bit_position-temp; + position_32bit=position_32bit-temp1; + if (temp1>0x2000) + position_32bit=position_32bit+0x4000; + } + + last_14bit_position=temp; + + return ; +} + +int Test_Load_Arm() +{ + int Loop_Nm = 1; + + Int32 temp3=0; + Int32 j=0; + Int32 i=0; + + if (!Encoder_Dryer_Exist()) + { + + stubManager.Write("Encoder of Dryer Fail \n"); + return 0; + + } + + var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); + //stubManager.WriteLine(response); + Loop_Nm = int.Parse(response); + + ReadEncoder_Dryer(); + position_32bit=0; + ReadEncoder_Dryer(); + Int32 temp=position_32bit; + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 + Thread.Sleep(50); +// temp=ReadEncoder_Dryer(); + while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min + { + i++; + Thread.Sleep(50); + ReadEncoder_Dryer(); +// stubManager.Write("position_32bit " + position_32bit +"\t"); + + if (Math.Abs(position_32bit)> (50*0x4000)) + temp3=3; + if ((position_32bit-temp)>20) + temp3++; +// stubManager.Write("Temp " + temp +"\n"); + temp=position_32bit; +// stubManager.Write("Temp3 " + temp3 +"\n"); + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); + if(result1 == DialogResult.No) + { + + stubManager.Write("Arm Motor Not rotate\n"); + return 0; + } + + DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); + if(result2 == DialogResult.No) + { + + stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); + return 0; + } + position_32bit=0; + +for (int loop=0;i<Loop_Nm;i++) + + { + stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); + + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); +// Thread.Sleep(50); + i=0; + temp3=0; + + + while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min + { + Thread.Sleep(50); + i++; + ReadEncoder_Dryer(); + + if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) + temp3=3; + if ((temp-position_32bit)>20) + temp3++; + temp=position_32bit; + + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + DialogResult result5 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo); + if(temp3 >2 ) + { + stubManager.Write("Arm Motor not make 30 rounds\n"); + return 0; + } + + Thread.Sleep(50); + stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); + + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); + i=0; + temp3=0; + + while ((temp3<3)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min + { + Thread.Sleep(50); + i++; + ReadEncoder_Dryer(); + + if (Math.Abs(position_32bit)< HomeStart) + temp3=3; + if ((position_32bit-temp)>20) + temp3++; + temp=position_32bit; + + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo); + if(temp3 >2 ) + { + stubManager.Write("Arm Motor not make 30 rounds\n"); + return 0; + } + Thread.Sleep(50); + + + + + } + return 0; +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs new file mode 100644 index 000000000..c4c3f13f4 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test1.cs @@ -0,0 +1,217 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +Int32 position_32bit=0; +Int32 last_14bit_position; + +const Int32 HomeStart=2048; +const Int32 DrierLoadingArm_Motor = 5; +const Int32 NM_ROUND =30; +public void OnExecute(StubManager stubManager) +{ + Test_Load_Arm(); + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + +} + +bool Encoder_Dryer_Exist() +{ + Int32 temp; + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission + + var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); + var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); + + temp = Convert.ToInt32 (response.Value & 0x0300); + if (temp==0) + return true; + else + return false; +} + + + +void ReadEncoder_Dryer() +{ + Int32 temp; + Int32 temp1; + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission + + var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); + var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); + + temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); + if (temp>last_14bit_position) + { + temp1=temp-last_14bit_position; + position_32bit=position_32bit+temp1; + if (temp1>0x2000) + position_32bit=position_32bit-0x4000; + } + else if (temp<last_14bit_position) + + { + temp1=last_14bit_position-temp; + position_32bit=position_32bit-temp1; + if (temp1>0x2000) + position_32bit=position_32bit+0x4000; + } + + last_14bit_position=temp; + + return ; +} + +int Test_Load_Arm() +{ + int Loop_Nm = 1; + + Int32 temp3=0; + Int32 j=0; + Int32 i=0; + + if (!Encoder_Dryer_Exist()) + { + + stubManager.Write("Encoder of Dryer Fail \n"); + return 0; + + } + + var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); + //stubManager.WriteLine(response); + Loop_Nm = int.Parse(response); + + ReadEncoder_Dryer(); + position_32bit=0; + ReadEncoder_Dryer(); + Int32 temp=position_32bit; + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 + Thread.Sleep(50); +// temp=ReadEncoder_Dryer(); + while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min + { + i++; + Thread.Sleep(30); + ReadEncoder_Dryer(); +// stubManager.Write("position_32bit " + position_32bit +"\t"); + + if (Math.Abs(position_32bit)> (50*0x4000)) + temp3=3; + if ((position_32bit-temp)>20) + temp3++; +// stubManager.Write("Temp " + temp +"\n"); + temp=position_32bit; +// stubManager.Write("Temp3 " + temp3 +"\n"); + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); + if(result1 == DialogResult.No) + { + + stubManager.Write("Arm Motor Not rotate\n"); + return 0; + } + + DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); + if(result2 == DialogResult.No) + { + + stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); + return 0; + } + + Thread.Sleep(1000); + + ReadEncoder_Dryer(); + position_32bit=0; + ReadEncoder_Dryer(); + position_32bit=0; +for (int loop=0;loop<Loop_Nm;loop++) + + { + stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); + temp=position_32bit; + stubManager.Write("position_32bit = " + position_32bit +"\n"); + + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); +// Thread.Sleep(50); + i=0; + temp3=-2; + + + while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min + { + Thread.Sleep(30); + i++; + ReadEncoder_Dryer(); + + if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) + temp3=3; + if ((temp-position_32bit)>20) + temp3++; + temp=position_32bit; + +// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); + + + + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0); + + if(temp3 !=3 ) + { + stubManager.Write("Arm Motor not make 30 rounds\n"); + return 0; + } + + Thread.Sleep(1000); + stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); + stubManager.Write("position_32bit = " + position_32bit +"\n"); + + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); + i=0; + temp3=-2; + temp=position_32bit; + + while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min + { + Thread.Sleep(50); + i++; + ReadEncoder_Dryer(); + + if (Math.Abs(position_32bit)< HomeStart) + temp3=3; + if ((position_32bit-temp)>20) + temp3++; + temp=position_32bit; +// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); + + + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 0); + + if(temp3 !=3 ) + { + stubManager.Write("Arm Motor not make 30 rounds\n"); + return 0; + } + Thread.Sleep(1000); + + + + + } + return 0; +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs new file mode 100644 index 000000000..7670a8708 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Arm_Test2.cs @@ -0,0 +1,227 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +Int32 position_32bit=0; +Int32 last_14bit_position; + +const Int32 HomeStart=2048; +const Int32 DrierLoadingArm_Motor = 5; +const Int32 NM_ROUND =30; +public void OnExecute(StubManager stubManager) +{ + Test_Load_Arm(); + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + +} + +bool Encoder_Dryer_Exist() +{ + Int32 temp; + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission + + var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); + var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); + + temp = Convert.ToInt32 (response.Value & 0x0300); + if (temp==0) + return true; + else + return false; +} + + + +void ReadEncoder_Dryer() +{ + Int32 temp; + Int32 temp1; + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission + + var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); + var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); + + temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); + if (temp>last_14bit_position) + { + temp1=temp-last_14bit_position; + position_32bit=position_32bit+temp1; + if (temp1>0x2000) + position_32bit=position_32bit-0x4000; + } + else if (temp<last_14bit_position) + + { + temp1=last_14bit_position-temp; + position_32bit=position_32bit-temp1; + if (temp1>0x2000) + position_32bit=position_32bit+0x4000; + } + + last_14bit_position=temp; + + return ; +} + +int Test_Load_Arm() +{ + int Loop_Nm = 1; + + Int32 temp3=0; + Int32 j=0; + Int32 i=0; + + if (!Encoder_Dryer_Exist()) + { + + stubManager.Write("Encoder of Dryer Fail \n"); + return 0; + + } + + var response = stubManager.ShowResponseWindow("Enter Loop Number for Dryer.", ""); + //stubManager.WriteLine(response); + Loop_Nm = int.Parse(response); + + ReadEncoder_Dryer(); + position_32bit=0; + ReadEncoder_Dryer(); + Int32 temp=position_32bit; + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 + Thread.Sleep(50); +// temp=ReadEncoder_Dryer(); + while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min + { + i++; + Thread.Sleep(30); + ReadEncoder_Dryer(); +// stubManager.Write("position_32bit " + position_32bit +"\t"); + + if (Math.Abs(position_32bit)> (50*0x4000)) + temp3=3; + if ((position_32bit-temp)>20) + temp3++; +// stubManager.Write("Temp " + temp +"\n"); + temp=position_32bit; +// stubManager.Write("Temp3 " + temp3 +"\n"); + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + DialogResult result1 = MessageBox.Show("Arm Motor rotate ?", "Warning",MessageBoxButtons.YesNo); + if(result1 == DialogResult.No) + { + + stubManager.Write("Arm Motor Not rotate\n"); + return 0; + } + + DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?", "Warning",MessageBoxButtons.YesNo); + if(result2 == DialogResult.No) + { + + stubManager.Write("Arm Motor Not arrive to mecahnicl stopper \n"); + return 0; + } + + Thread.Sleep(1000); + stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 50); + Thread.Sleep(1000); + + ReadEncoder_Dryer(); + position_32bit=0; + ReadEncoder_Dryer(); + position_32bit=0; +for (int loop=0;loop<Loop_Nm;loop++) + + { + stubManager.Write("Loop Nm " + (loop+1) +" strat up posision \n"); + temp=position_32bit; + stubManager.Write("position_32bit = " + position_32bit +"\n"); + +// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, true, 200); + stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, true, 7680 * NM_ROUND); + +// Thread.Sleep(50); + i=0; + temp3=-2; + + + while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min + { + Thread.Sleep(30); + i++; + ReadEncoder_Dryer(); + +// if (Math.Abs(position_32bit)> (NM_ROUND*0x4000)) +// temp3=3; + if (temp==position_32bit) + temp3++; + temp=position_32bit; + +// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); + + + + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + if (Math.Abs(position_32bit - NM_ROUND*0x4000 )> 500) + + { + stubManager.Write("Arm Motor not make 30 rounds\n"); + return 0; + } + + + Thread.Sleep(1000); + stubManager.Write("Loop Nm " + (loop+1) +" strat down posision \n"); + stubManager.Write("position_32bit = " + position_32bit +"\n"); + +// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 200); + stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,5, false, 7680 * NM_ROUND); + i=0; + temp3=-2; + temp=position_32bit; + + while ((temp3<2)&& (i<12000) ) //wait until Limit Switch or timeout 12000*50msec=10min + { + Thread.Sleep(50); + i++; + ReadEncoder_Dryer(); + + // if (Math.Abs(position_32bit)< HomeStart) + // temp3=3; + if (position_32bit==temp) + temp3++; + temp=position_32bit; +// stubManager.Write("position_32bit = " +position_32bit +"\ttemp3 = " + temp3 +"\n"); + + + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); + + + if (Math.Abs(position_32bit )> 500) + + { + stubManager.Write("Arm Motor not make 30 rounds\n"); + return 0; + } + + Thread.Sleep(1000); + + + + + } + return 0; +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs index 59374a636..d3cc0b43c 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_LimitSwitch.cs @@ -25,9 +25,10 @@ public void OnExecute(StubManager stubManager) if (Get_Driver_Type(4)>0x14) PowerStep_driver=1; - + for (int i=0;i<1;i++) + { stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,4, false, 0x800000+2*PowerStep_driver); //mov Dryer Lid motor up - + Bit=1; while (Bit != 0x0) //wait until Dryer Lid open { Bit = GetBit(FPGA1, F1_LS_01_Direct,4); @@ -49,12 +50,12 @@ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard st Bit = GetBit(FPGA1, F1_LS_01_Direct,5); Thread.Sleep(100); } - stubManager.Write("\n--------2-Lid Close--------"); + stubManager.Write("\n--------2-Lid Close--------\nCycle \t"+i); stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,4, 2); //Hard stop hiZ motor - +} } diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs index c5bcb93e5..b059a170f 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs @@ -18,26 +18,25 @@ include "Tango_Defines_SSR.cs" public void OnExecute(StubManager stubManager) { - //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 +float temp=0; +float temp1=4096*95*5; + + //Write GPO_DRYER_SSR1_CTRL SSR/SSR no. 1 var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); // stubManager.WriteHex(response.TemperatureCMultBy100,4); SetBit (FPGA2, F2_CTRL, 10, 1); stubManager.Write("\tTesting SSR no. 1\t"); - Thread.Sleep(10000); - - // Request ---- -// UInt32 : ADCDevice - -// Response ---- -// UInt32 : ADCDevice -// Int32 : SamplingInBits -// Int32 : VoltageSamplingMv -// String : Status -// UInt32 : StatusWord + Thread.Sleep(1000); + + var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16); - stubManager.WriteLine(response1.SamplingInBits); - stubManager.WriteLine(response1.VoltageSamplingMv); - + + temp=Convert.ToUInt32 (response1.SamplingInBits); + temp=temp*800*3*100; + temp=temp/(4096*95*50); + stubManager.Write("Current = "+ temp + "A\n"); + temp=temp*60; + stubManager.Write("Voltage = "+ temp + " Volt\n"); SetBit (FPGA2, F2_CTRL, 10, 0); @@ -51,22 +50,23 @@ var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" stubManager.WriteHex(response.TemperatureCMultBy100,4); SetBit (FPGA2, F2_CTRL, 9, 1); stubManager.Write("\tTesting SSR no. 2\t"); - Thread.Sleep(10000); + Thread.Sleep(1000); + +response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17); + + temp=Convert.ToUInt32 (response1.SamplingInBits); + stubManager.WriteLine(temp); + temp=temp*800*3*100; + temp=temp/(4096*95*120); + stubManager.Write("Current = "+ temp + "A\n"); + temp=temp*120; + stubManager.Write("Voltage = "+ temp + " Volt\n"); + + SetBit (FPGA2, F2_CTRL, 9, 0); response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,7); // stubManager.WriteHex(response.TemperatureCMultBy100,4); stubManager.Write("\n"); - //Write GPO_DRYER_SSR3_CTRL SSR/SSR no. 3 - response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,8); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); - SetBit (FPGA2, F2_CTRL, 8, 1); - stubManager.Write("\tTesting SSR no. 3\t"); - Thread.Sleep(10000); - SetBit (FPGA2, F2_CTRL, 8, 0); - response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,8); // - stubManager.WriteHex(response.TemperatureCMultBy100,4); - stubManager.Write("\n"); - }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV new file mode 100644 index 000000000..daadff892 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV @@ -0,0 +1,658 @@ +24/06/2020 9:51:30 +Heating to 190 +24/06/2020 9:51:30 + 99 + 99 + 99 + 99 + 99 + 99 + 99 + 98 + 98 + 98 + 98 + 99 + 99 + 99 + 100 + 100 + 100 + 101 + 102 + 103 + 103 + 104 + 104 + 105 + 105 + 106 + 106 + 107 + 107 + 108 + 108 + 109 + 109 + 110 + 110 + 111 + 111 + 112 + 112 + 112 + 113 + 113 + 114 + 114 + 115 + 115 + 116 + 116 + 116 + 117 + 117 + 118 + 118 + 119 + 119 + 119 + 120 + 120 + 121 + 121 + 121 + 122 + 122 + 123 + 123 + 123 + 124 + 124 + 125 + 125 + 125 + 126 + 126 + 126 + 127 + 127 + 127 + 128 + 128 + 129 + 129 + 129 + 130 + 130 + 130 + 131 + 131 + 131 + 132 + 132 + 132 + 133 + 133 + 133 + 134 + 134 + 134 + 135 + 135 + 135 + 136 + 136 + 136 + 136 + 137 + 137 + 137 + 138 + 138 + 138 + 139 + 139 + 139 + 140 + 140 + 140 + 140 + 141 + 141 + 141 + 142 + 142 + 142 + 143 + 143 + 143 + 144 + 144 + 144 + 144 + 145 + 145 + 145 + 145 + 146 + 146 + 146 + 147 + 147 + 147 + 147 + 148 + 148 + 148 + 148 + 149 + 149 + 149 + 149 + 150 + 150 + 150 + 150 + 151 + 151 + 151 + 151 + 152 + 152 + 152 + 152 + 153 + 153 + 153 + 153 + 153 + 154 + 154 + 154 + 154 + 155 + 155 + 155 + 155 + 156 + 156 + 156 + 156 + 156 + 157 + 157 + 157 + 157 + 158 + 158 + 158 + 158 + 158 + 159 + 159 + 159 + 159 + 160 + 160 + 160 + 160 + 160 + 161 + 161 + 161 + 161 + 161 + 162 + 162 + 162 + 162 + 162 + 163 + 163 + 163 + 163 + 163 + 164 + 164 + 164 + 164 + 164 + 165 + 165 + 165 + 165 + 165 + 166 + 166 + 166 + 166 + 166 + 167 + 167 + 167 + 167 + 168 + 168 + 168 + 168 + 168 + 168 + 169 + 169 + 169 + 169 + 169 + 170 + 170 + 170 + 170 + 170 + 171 + 171 + 171 + 171 + 171 + 171 + 172 + 172 + 172 + 172 + 172 + 173 + 173 + 173 + 173 + 173 + 173 + 174 + 174 + 174 + 174 + 174 + 174 + 175 + 175 + 175 + 175 + 175 + 175 + 176 + 176 + 176 + 176 + 176 + 177 + 177 + 177 + 177 + 177 + 177 + 177 + 177 + 178 + 178 + 178 + 178 + 178 + 178 + 178 + 178 + 178 + 179 + 179 + 179 + 179 + 179 + 179 + 179 + 179 + 179 + 180 + 180 + 180 + 180 + 180 + 180 + 180 + 180 + 180 + 181 + 181 + 181 + 181 + 181 + 181 + 181 + 181 + 182 + 182 + 182 + 182 + 182 + 182 + 182 + 183 + 183 + 183 + 183 + 183 + 183 + 183 + 184 + 184 + 184 + 184 + 184 + 184 + 185 + 185 + 185 + 185 + 185 + 185 + 186 + 186 + 186 + 186 + 186 + 186 + 186 + 187 + 187 + 187 + 187 + 187 + 187 + 187 + 188 + 188 + 188 + 188 + 188 + 188 + 188 + 188 + 189 +24/06/2020 9:57:48 +cooling down +24/06/2020 9:59:48 + 190 + 190 + 190 + 190 + 190 + 190 + 190 + 190 + 190 + 190 + 190 + 190 + 190 + 190 + 189 + 189 + 189 + 189 + 189 + 189 + 189 + 188 + 188 + 188 + 188 + 188 + 187 + 187 + 187 + 187 + 186 + 186 + 186 + 186 + 185 + 185 + 185 + 184 + 184 + 184 + 183 + 183 + 183 + 182 + 182 + 182 + 182 + 181 + 181 + 180 + 180 + 180 + 179 + 179 + 179 + 178 + 178 + 178 + 177 + 177 + 177 + 176 + 176 + 176 + 176 + 175 + 175 + 175 + 174 + 174 + 174 + 173 + 173 + 173 + 173 + 172 + 172 + 172 + 171 + 171 + 171 + 171 + 170 + 170 + 170 + 169 + 169 + 169 + 169 + 168 + 168 + 168 + 168 + 167 + 167 + 167 + 166 + 166 + 166 + 166 + 165 + 165 + 165 + 165 + 164 + 164 + 164 + 164 + 163 + 163 + 163 + 163 + 163 + 162 + 162 + 162 + 162 + 161 + 161 + 161 + 161 + 161 + 160 + 160 + 160 + 160 + 159 + 159 + 159 + 159 + 159 + 158 + 158 + 158 + 158 + 158 + 158 + 157 + 157 + 157 + 157 + 157 + 156 + 156 + 156 + 156 + 156 + 156 + 155 + 155 + 155 + 155 + 155 + 154 + 154 + 154 + 154 + 154 + 154 + 153 + 153 + 153 + 153 + 153 + 153 + 153 + 152 + 152 + 152 + 152 + 152 + 152 + 152 + 151 + 151 + 151 + 151 + 151 + 151 + 151 + 150 + 150 + 150 + 150 + 150 + 150 + 150 + 149 + 149 + 149 + 149 + 149 + 149 + 149 + 148 + 148 + 148 + 148 + 148 + 148 + 148 + 148 + 148 + 147 + 147 + 147 + 147 + 147 + 147 + 147 + 147 + 147 + 146 + 146 + 146 + 146 + 146 + 146 + 146 + 146 + 146 + 145 + 145 + 145 + 145 + 145 + 145 + 145 + 145 + 145 + 144 + 144 + 144 + 144 + 144 + 144 + 144 + 144 + 144 + 144 + 143 + 143 + 143 + 143 + 143 + 143 + 143 + 143 + 143 + 143 + 142 + 142 + 142 + 142 + 142 + 142 + 142 + 142 + 142 + 142 + 142 + 142 + 141 + 141 + 141 + 141 + 141 + 141 + 141 + 141 + 141 + 141 + 140 + 140 + 140 + 140 + 140 + 140 + 140 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs new file mode 100644 index 000000000..bd92ea498 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_motor_test.cs @@ -0,0 +1,29 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + +stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200); + + + + + + + + + + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs index 8ac0d41dc..de04260fa 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/GPO_Blower_PWM.cs @@ -14,14 +14,15 @@ include "..\..\Defines\Tango_Defines_Basic.cs" include "Tango_Defines_SSR.cs" include "Tango_Defines_Tacho.cs" - +const int Time_Test_On_Second= 60*30*3 ; //1.5 hour +const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour public void OnExecute(StubManager stubManager) { var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - + UInt32 temp; SetBit(FPGA1,0x3d2,5,0); //turn on Blower SetBit(FPGA1,0x3d2,4,1); //Dir @@ -29,18 +30,30 @@ public void OnExecute(StubManager stubManager) - const int LOW = 50;//0 - 100% + const int LOW = 70;//0 - 100% var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit + + + stubManager.WriteToFile(File_Name,",RPM "); + + + for (int i=0;i<Time_Test_On_Second;i++) + + { - Thread.Sleep(4000); + Thread.Sleep(1000); RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0); - stubManager.Write("\nFan5 Speed-"); - stubManager.WriteHex(RetVal.Value,4); + temp=60/12; //60 sec + temp=temp *29166667; + temp=temp/RetVal.Value; + temp=temp/250; + stubManager.AppendToFile(File_Name,i+ ","+ temp ); + + stubManager.Write("Fan5 Speed- \t"+temp + "\n"); +// stubManager.WriteHex(RetVal.Value,4); + } SetBit(FPGA1,0x3d2,5,1); //turn off Blower - - // low + high = 100 % in order use the same freq - // there is option to change only the high (low + freq constasnt) this will chnga the freq }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv new file mode 100644 index 000000000..a31cc8341 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test.csv @@ -0,0 +1,1795 @@ +24/05/2020 13:21:48 +0,0 +58,0 +75,0 +92,-2 +111,53 +132,36 +151,-53 +172,-14 +192,-117 +212,-100 +248,-149 +268,-309 +289,-377 +309,-453 +328,-462 +350,-539 +369,-687 +388,-747 +410,-829 +431,-842 +451,-922 +464,-991 +494,-1044 +515,-1221 +535,-1237 +557,-1312 +578,-1459 +599,-1538 +619,-1552 +639,-1626 +660,-1701 +685,-1846 +704,-1873 +720,-1940 +733,-2000 +749,-2113 +765,-2172 +783,-2231 +802,-2298 +820,-2369 +836,-2435 +861,-2494 +878,-2525 +899,-2593 +919,-2735 +933,-2809 +952,-2861 +966,-2932 +982,-2986 +996,-2982 +1014,-3033 +1035,-3101 +1052,-3242 +1078,-3239 +1101,-3341 +1124,-3425 +1146,-3570 +1181,-3595 +1203,-3783 +1216,-3799 +1235,-3850 +1250,-3921 +1277,-3984 +1298,-4147 +1318,-4223 +1336,-4294 +1355,-4298 +1374,-4365 +1396,-4444 +1427,-4591 +1458,-4713 +1484,-4751 +1505,-4914 +1533,-4960 +1555,-5028 +1574,-5172 +1596,-5244 +1619,-5268 +1642,-5419 +1664,-5499 +1686,-5520 +1706,-5606 +1733,-5740 +1757,-5783 +1776,-5935 +1793,-6007 +1811,-6065 +1830,-6133 +1849,-6207 +1870,-6276 +1891,-6285 +1912,-6366 +1940,-6511 +1962,-6546 +1977,-6627 +1992,-6683 +2012,-6739 +2032,-6815 +2055,-6963 +2077,-6996 +2093,-7053 +2119,-7114 +2142,-7283 +2164,-7362 +2187,-7380 +2210,-7531 +2235,-7615 +2254,-7642 +2276,-7714 +2302,-7874 +2322,-7900 +2342,-7972 +2373,-8107 +2396,-8161 +2416,-8310 +2442,-8383 +2465,-8413 +2490,-8566 +2512,-8591 +2536,-8677 +2562,-8785 +2581,-8858 +2612,-8929 +2653,-9040 +2681,-9265 +2700,-9302 +2720,-9370 +2741,-9446 +2760,-9591 +2782,-9659 +2805,-9679 +2829,-9834 +2848,-9917 +2866,-9988 +2888,-10052 +2907,-10069 +2925,-10142 +2939,-10213 +2961,-10260 +2997,-10379 +3021,-10549 +3041,-10570 +3062,-10646 +3081,-10717 +3102,-10790 +3124,-10934 +3146,-11013 +3165,-11031 +3183,-11105 +3203,-11176 +3229,-11309 +3251,-11341 +3271,-11427 +3291,-11562 +3309,-11635 +3331,-11704 +3349,-11783 +3367,-11800 +3388,-11860 +3405,-11927 +3434,-11996 +3450,-12165 +3465,-12226 +3484,-12284 +3503,-12351 +3519,-12424 +3532,-12485 +3554,-12535 +3578,-12558 +3600,-12638 +3626,-12784 +3648,-12819 +3670,-12898 +3683,-13042 +3705,-13028 +3728,-13181 +3746,-13196 +3761,-13260 +3780,-13332 +3800,-13399 +3817,-13546 +3837,-13532 +3871,-13699 +3887,-13736 +3906,-13799 +3923,-13929 +3943,-13927 +3963,-14067 +3982,-14138 +3998,-14214 +4017,-14271 +4043,-14281 +4062,-14375 +4078,-14512 +4100,-14570 +4122,-14650 +4143,-14668 +4165,-14750 +4188,-14912 +4205,-14982 +4234,-15015 +4255,-15158 +4268,-15231 +4286,-15282 +4309,-15353 +4323,-15375 +4344,-15488 +4362,-15511 +4381,-15579 +4401,-15647 +4422,-15718 +4444,-15860 +4470,-15888 +4493,-16044 +4515,-16130 +4536,-16147 +4558,-16220 +4575,-16366 +4596,-16434 +4622,-16458 +4644,-16543 +4674,-16690 +4697,-16742 +4714,-16887 +4733,-16945 +4749,-17019 +4772,-17084 +4786,-17104 +4803,-17219 +4820,-17281 +4834,-17347 +4847,-17398 +4878,-17453 +4895,-17500 +4915,-17567 +4935,-17706 +4952,-17778 +4967,-17844 +4985,-17831 +5004,-17962 +5021,-18035 +5037,-18099 +5056,-18159 +5094,-18189 +5113,-18369 +5131,-18440 +5150,-18442 +5169,-18512 +5189,-18582 +5205,-18658 +5220,-18719 +5241,-18775 +5266,-18922 +5287,-19012 +5306,-19028 +5326,-19100 +5349,-19244 +5374,-19335 +5393,-19353 +5410,-19424 +5424,-19486 +5444,-19536 +5471,-19705 +5491,-19721 +5511,-19789 +5529,-19869 +5551,-19944 +5564,-20076 +5586,-20060 +5608,-20205 +5633,-20234 +5652,-20317 +5684,-20387 +5706,-20507 +5722,-20652 +5741,-20713 +5758,-20789 +5774,-20843 +5789,-20839 +5805,-20901 +5827,-20964 +5845,-21104 +5866,-21173 +5886,-21250 +5914,-21265 +5937,-21434 +5952,-21454 +5984,-21572 +6002,-21693 +6022,-21759 +6035,-21827 +6055,-21880 +6074,-21952 +6096,-21963 +6124,-22044 +6139,-22210 +6161,-22270 +6183,-22287 +6201,-22367 +6223,-22432 +6236,-22578 +6255,-22567 +6272,-22706 +6288,-22696 +6333,-22837 +6356,-22935 +6370,-23012 +6392,-23067 +6408,-23144 +6429,-23276 +6446,-23350 +6467,-23413 +6486,-23488 +6507,-23559 +6521,-23575 +6542,-23627 +6562,-23707 +6583,-23777 +6604,-23924 +6628,-24003 +6647,-24020 +6669,-24103 +6696,-24238 +6724,-24362 +6741,-24445 +6760,-24507 +6780,-24579 +6805,-24595 +6829,-24754 +6848,-24777 +6872,-24847 +6890,-24936 +6918,-25083 +6939,-25111 +6956,-25181 +6971,-25240 +6990,-25300 +7007,-25366 +7024,-25432 +7045,-25497 +7064,-25648 +7086,-25710 +7108,-25787 +7137,-25898 +7156,-25978 +7184,-26052 +7202,-26158 +7224,-26220 +7238,-26306 +7255,-26354 +7275,-26415 +7296,-26493 +7310,-26509 +7336,-26584 +7351,-26654 +7370,-26712 +7392,-26779 +7405,-26926 +7426,-26916 +7446,-27058 +7464,-27130 +7483,-27193 +7507,-27270 +7541,-27400 +7555,-27417 +7573,-27468 +7593,-27538 +7616,-27613 +7636,-27759 +7660,-27839 +7677,-27865 +7701,-27933 +7724,-28080 +7743,-28161 +7777,-28174 +7798,-28359 +7821,-28381 +7837,-28533 +7856,-28585 +7875,-28655 +7889,-28723 +7907,-28712 +7934,-28851 +7957,-28890 +7974,-29033 +7989,-29098 +8003,-29087 +8024,-29140 +8048,-29224 +8100,-29328 +8117,-29567 +8146,-29633 +8169,-29672 +8192,-29823 +8209,-29846 +8226,-29909 +8245,-29966 +8258,-30037 +8284,-30092 +8306,-30261 +8329,-30336 +8348,-30355 +8378,-30432 +8402,-30552 +8425,-30632 +8439,-30779 +8459,-30833 +8490,-30859 +8505,-31025 +8519,-31011 +8545,-31067 +8570,-31177 +8592,-31257 +8622,-31430 +8643,-31449 +8662,-31595 +8683,-31670 +8701,-31742 +8721,-31815 +8747,-31838 +8765,-31984 +8786,-32053 +8813,-32076 +8835,-32236 +8854,-32311 +8869,-32381 +8890,-32442 +8904,-32458 +8925,-32575 +8939,-32587 +8952,-32700 +8972,-32751 +9004,-32783 +9026,-32946 +9043,-33020 +9063,-33084 +9081,-33099 +9098,-33168 +9117,-33226 +9139,-33298 +9160,-33382 +9180,-33528 +9202,-33599 +9224,-33614 +9252,-33700 +9274,-33808 +9292,-33884 +9304,-33949 +9326,-34004 +9342,-34154 +9360,-34142 +9377,-34203 +9395,-34272 +9415,-34341 +9445,-34481 +9467,-34531 +9485,-34671 +9505,-34744 +9527,-34761 +9541,-34837 +9556,-34892 +9576,-35011 +9591,-35017 +9610,-35137 +9640,-35168 +9659,-35321 +9682,-35337 +9707,-35423 +9728,-35574 +9750,-35594 +9767,-35681 +9781,-35733 +9797,-35848 +9818,-35909 +9838,-35921 +9867,-36005 +9889,-36110 +9907,-36191 +9931,-36258 +9950,-36410 +9971,-36485 +9989,-36497 +10010,-36562 +10031,-36641 +10057,-36777 +10081,-36820 +10101,-36901 +10123,-37038 +10145,-37121 +10161,-37135 +10180,-37193 +10206,-37285 +10227,-37432 +10248,-37509 +10270,-37525 +10291,-37673 +10313,-37751 +10330,-37830 +10344,-37894 +10368,-37947 +10387,-37972 +10407,-38047 +10425,-38120 +10439,-38183 +10459,-38236 +10486,-38377 +10507,-38415 +10523,-38488 +10541,-38553 +10561,-38620 +10578,-38696 +10592,-38758 +10610,-38810 +10630,-38869 +10652,-38952 +10679,-39094 +10702,-39132 +10724,-39289 +10746,-39361 +10763,-39383 +10792,-39464 +10809,-39617 +10823,-39679 +10837,-39731 +10854,-39716 +10884,-39853 +10901,-39893 +10918,-39957 +10939,-40021 +10959,-40171 +10977,-40241 +10991,-40305 +11007,-40362 +11020,-40350 +11035,-40403 +11051,-40518 +11081,-40576 +11113,-40661 +11132,-40739 +11151,-40873 +11172,-40952 +11194,-41027 +11213,-41043 +11227,-41116 +11248,-41163 +11283,-41294 +11308,-41450 +11329,-41537 +11352,-41553 +11370,-41638 +11391,-41702 +11408,-41850 +11428,-41906 +11448,-41982 +11473,-42053 +11493,-42082 +11512,-42221 +11535,-42291 +11559,-42322 +11579,-42404 +11598,-42538 +11622,-42618 +11644,-42636 +11663,-42718 +11701,-42790 +11718,-42997 +11741,-43062 +11760,-43141 +11778,-43156 +11804,-43232 +11829,-43388 +11849,-43411 +11871,-43482 +11894,-43629 +11919,-43715 +11947,-43746 +11974,-43853 +12021,-44016 +12040,-44123 +12083,-44198 +12103,-44417 +12125,-44487 +12147,-44507 +12178,-44624 +12198,-44707 +12219,-44850 +12241,-44919 +12266,-44937 +12286,-45032 +12309,-45174 +12331,-45195 +12351,-45280 +12384,-45423 +12405,-45472 +12428,-45622 +12447,-45704 +12469,-45707 +12491,-45794 +12508,-45940 +12523,-46004 +12538,-46059 +12553,-46050 +12567,-46104 +12580,-46216 +12605,-46267 +12624,-46295 +12640,-46365 +12659,-46425 +12681,-46498 +12694,-46643 +12716,-46628 +12731,-46772 +12750,-46833 +12775,-46905 +12798,-46942 +12820,-47084 +12846,-47120 +12859,-47197 +12876,-47246 +12895,-47312 +12908,-47378 +12928,-47490 +12942,-47507 +12960,-47562 +12989,-47650 +13009,-47797 +13031,-47876 +13049,-47891 +13069,-47958 +13085,-48034 +13107,-48096 +13126,-48241 +13147,-48314 +13168,-48388 +13195,-48402 +13230,-48571 +13249,-48698 +13263,-48772 +13284,-48821 +13298,-48841 +13316,-48955 +13332,-49021 +13346,-49084 +13359,-49132 +13387,-49123 +13409,-49227 +13432,-49309 +13453,-49458 +13470,-49542 +13490,-49601 +13506,-49672 +13526,-49732 +13544,-49739 +13564,-49809 +13592,-49977 +13615,-49994 +13634,-50072 +13653,-50144 +13669,-50281 +13683,-50276 +13695,-50325 +13711,-50385 +13727,-50499 +13747,-50565 +13767,-50571 +13799,-50650 +13822,-50774 +13841,-50921 +13867,-51000 +13880,-51017 +13914,-51134 +13938,-51268 +13960,-51290 +13980,-51364 +13995,-51508 +14010,-51564 +14028,-51551 +14056,-51710 +14078,-51734 +14112,-51885 +14134,-51931 +14153,-52077 +14175,-52149 +14190,-52230 +14209,-52284 +14231,-52353 +14244,-52374 +14272,-52452 +14291,-52595 +14310,-52661 +14343,-52737 +14364,-52861 +14377,-52933 +14400,-52984 +14413,-53004 +14427,-53122 +14453,-53137 +14470,-53204 +14485,-53263 +14499,-53324 +14521,-53442 +14558,-53478 +14580,-53602 +14602,-53743 +14622,-53826 +14642,-53833 +14665,-53905 +14693,-54058 +14716,-54100 +14735,-54182 +14748,-54247 +14771,-54305 +14791,-54458 +14811,-54528 +14829,-54599 +14856,-54610 +14871,-54775 +14899,-54853 +14913,-54865 +14932,-54981 +14952,-54992 +14970,-55074 +14995,-55136 +15023,-55254 +15042,-55329 +15070,-55470 +15092,-55505 +15115,-55582 +15133,-55729 +15151,-55801 +15170,-55869 +15189,-55934 +15209,-55946 +15228,-56019 +15247,-56088 +15268,-56157 +15295,-56303 +15313,-56343 +15331,-56406 +15344,-56470 +15364,-56581 +15377,-56591 +15395,-56710 +15415,-56715 +15433,-56782 +15454,-56853 +15486,-56935 +15508,-57055 +15528,-57197 +15548,-57271 +15569,-57346 +15588,-57360 +15608,-57429 +15627,-57497 +15648,-57568 +15675,-57713 +15695,-57752 +15718,-57824 +15738,-57978 +15760,-58050 +15779,-58064 +15793,-58136 +15808,-58186 +15826,-58305 +15846,-58374 +15864,-58388 +15890,-58453 +15911,-58611 +15935,-58639 +15949,-58720 +15967,-58768 +15980,-58834 +15998,-58951 +16017,-58954 +16038,-59022 +16059,-59104 +16089,-59245 +16111,-59292 +16133,-59435 +16152,-59518 +16169,-59592 +16192,-59656 +16223,-59674 +16242,-59791 +16260,-59860 +16288,-59930 +16308,-60097 +16328,-60114 +16355,-60185 +16379,-60355 +16398,-60380 +16412,-60442 +16431,-60495 +16445,-60565 +16467,-60619 +16481,-60700 +16506,-60748 +16527,-60918 +16547,-60995 +16565,-61063 +16588,-61069 +16620,-61225 +16641,-61272 +16663,-61342 +16682,-61488 +16702,-61561 +16718,-61634 +16744,-61693 +16766,-61722 +16784,-61874 +16806,-61943 +16827,-61965 +16844,-62041 +16867,-62185 +16887,-62253 +16908,-62329 +16929,-62402 +16951,-62422 +16973,-62581 +16994,-62653 +17014,-62666 +17031,-62736 +17050,-62804 +17064,-62875 +17083,-62926 +17108,-62994 +17144,-63114 +17165,-63287 +17185,-63305 +17204,-63374 +17223,-63446 +17236,-63517 +17253,-63571 +17269,-63630 +17288,-63693 +17310,-63766 +17330,-63846 +17349,-63995 +17375,-64015 +17394,-64086 +17416,-64158 +17432,-64310 +17449,-64380 +17465,-64430 +17479,-64490 +17499,-64484 +17513,-64621 +17539,-64610 +17560,-64771 +17579,-64778 +17593,-64856 +17612,-64905 +17634,-64976 +17653,-65056 +17676,-65193 +17698,-65281 +17715,-65299 +17741,-65361 +17764,-65524 +17785,-65605 +17805,-65622 +17825,-65699 +17849,-65844 +17867,-65866 +17887,-65930 +17907,-66003 +17927,-66079 +17946,-66218 +17965,-66291 +17992,-66358 +18027,-66474 +18051,-66534 +18072,-66683 +18088,-66758 +18110,-66763 +18132,-66837 +18155,-66920 +18172,-67068 +18202,-67131 +18225,-67246 +18245,-67329 +18265,-67339 +18284,-67417 +18307,-67491 +18331,-67647 +18351,-67665 +18370,-67736 +18387,-67806 +18414,-67878 +18433,-68039 +18455,-68042 +18479,-68131 +18500,-68287 +18521,-68358 +18538,-68372 +18552,-68434 +18566,-68489 +18589,-68604 +18609,-68624 +18637,-68784 +18658,-68868 +18679,-68881 +18702,-68961 +18715,-69108 +18737,-69093 +18759,-69239 +18779,-69319 +18802,-69337 +18818,-69484 +18846,-69479 +18870,-69590 +18892,-69738 +18915,-69821 +18931,-69850 +18945,-69900 +18965,-70016 +18979,-70027 +18995,-70150 +19014,-70201 +19049,-70231 +19072,-70345 +19091,-70423 +19106,-70493 +19126,-70547 +19145,-70620 +19163,-70692 +19185,-70760 +19205,-70908 +19242,-70978 +19264,-71059 +19283,-71140 +19297,-71273 +19317,-71258 +19335,-71333 +19353,-71467 +19368,-71534 +19386,-71524 +19404,-71590 +19420,-71722 +19446,-71719 +19468,-71827 +19485,-71896 +19503,-71960 +19521,-72027 +19539,-72097 +19557,-72165 +19579,-72303 +19600,-72377 +19626,-72455 +19647,-72487 +19669,-72627 +19687,-72708 +19703,-72713 +19720,-72778 +19738,-72899 +19759,-72964 +19779,-72979 +19798,-73056 +19830,-73197 +19849,-73242 +19871,-73320 +19889,-73466 +19906,-73528 +19922,-73597 +19937,-73653 +19954,-73717 +19970,-73771 +19988,-73766 +20001,-73831 +20027,-73883 +20049,-74053 +20069,-74069 +20085,-74135 +20099,-74193 +20132,-74250 +20152,-74433 +20172,-74444 +20191,-74517 +20206,-74584 +20234,-74641 +20256,-74814 +20274,-74826 +20296,-74900 +20313,-74979 +20335,-75114 +20352,-75191 +20375,-75250 +20394,-75336 +20413,-75342 +20440,-75504 +20460,-75581 +20482,-75593 +20499,-75676 +20521,-75740 +20540,-75881 +20561,-75956 +20583,-76031 +20602,-76049 +20624,-76119 +20646,-76198 +20673,-76308 +20695,-76379 +20719,-76524 +20738,-76612 +20760,-76620 +20775,-76702 +20793,-76757 +20814,-76827 +20835,-76903 +20858,-77049 +20880,-77071 +20900,-77147 +20912,-77221 +20933,-77275 +20955,-77350 +20975,-77498 +20997,-77567 +21030,-77602 +21064,-77802 +21084,-77847 +21103,-77909 +21121,-77980 +21141,-78050 +21159,-78119 +21176,-78253 +21200,-78323 +21219,-78406 +21235,-78409 +21248,-78532 +21270,-78580 +21299,-78606 +21322,-78781 +21336,-78800 +21354,-78912 +21369,-78984 +21385,-79035 +21400,-79102 +21419,-79164 +21433,-79224 +21459,-79273 +21478,-79314 +21492,-79383 +21509,-79436 +21526,-79499 +21546,-79565 +21566,-79639 +21586,-79718 +21601,-79855 +21623,-79841 +21641,-79987 +21670,-80019 +21690,-80101 +21711,-80242 +21730,-80316 +21749,-80388 +21771,-80394 +21790,-80473 +21811,-80545 +21830,-80690 +21849,-80760 +21874,-80829 +21900,-80954 +21924,-81022 +21941,-81054 +21968,-81218 +21988,-81283 +22008,-81295 +22032,-81372 +22052,-81519 +22073,-81597 +22087,-81610 +22118,-81731 +22146,-81860 +22168,-81881 +22187,-82026 +22210,-82099 +22258,-82180 +22283,-82370 +22333,-82463 +22355,-82578 +22379,-82729 +22401,-82771 +22418,-82836 +22440,-82899 +22457,-82982 +22472,-83048 +22495,-83112 +22521,-83251 +22542,-83288 +22570,-83362 +22586,-83466 +22607,-83590 +22628,-83609 +22648,-83683 +22667,-83821 +22686,-83891 +22706,-83968 +22726,-83978 +22742,-84049 +22762,-84110 +22778,-84181 +22803,-84244 +22823,-84402 +22844,-84478 +22865,-84494 +22882,-84569 +22896,-84632 +22914,-84684 +22934,-84748 +22951,-84832 +22980,-84891 +23001,-85006 +23024,-85078 +23043,-85227 +23060,-85299 +23083,-85366 +23105,-85446 +23129,-85461 +23164,-85600 +23193,-85747 +23214,-85794 +23233,-85930 +23254,-86001 +23274,-86078 +23288,-86093 +23307,-86210 +23327,-86280 +23344,-86292 +23361,-86356 +23385,-86437 +23402,-86582 +23430,-86635 +23451,-86678 +23468,-86756 +23489,-86820 +23503,-86959 +23516,-86943 +23533,-86995 +23553,-87058 +23569,-87131 +23593,-87193 +23615,-87346 +23634,-87423 +23650,-87434 +23672,-87558 +23691,-87575 +23713,-87644 +23738,-87792 +23760,-87822 +23783,-87902 +23805,-88053 +23818,-88132 +23838,-88183 +23851,-88259 +23871,-88313 +23887,-88382 +23900,-88437 +23918,-88423 +23938,-88561 +23959,-88637 +23987,-88649 +24008,-88817 +24032,-88890 +24055,-88928 +24075,-89066 +24088,-89138 +24105,-89123 +24127,-89257 +24150,-89336 +24177,-89353 +24201,-89532 +24224,-89548 +24241,-89632 +24264,-89696 +24280,-89847 +24300,-89910 +24321,-89982 +24343,-89993 +24364,-90076 +24396,-90226 +24413,-90269 +24430,-90333 +24449,-90393 +24470,-90537 +24489,-90617 +24505,-90674 +24519,-90738 +24536,-90728 +24556,-90791 +24580,-90932 +24611,-90957 +24636,-91143 +24658,-91162 +24678,-91307 +24699,-91378 +24721,-91458 +24737,-91477 +24758,-91536 +24777,-91614 +24801,-91754 +24825,-91846 +24846,-91866 +24864,-92013 +24880,-92073 +24899,-92071 +24917,-92206 +24941,-92279 +24963,-92301 +24982,-92381 +25006,-92453 +25028,-92613 +25045,-92625 +25066,-92686 +25084,-92771 +25101,-92828 +25122,-92893 +25141,-93033 +25160,-93105 +25179,-93174 +25199,-93245 +25223,-93263 +25258,-93438 +25278,-93478 +25299,-93620 +25326,-93694 +25350,-93802 +25373,-93889 +25395,-93903 +25417,-94059 +25439,-94137 +25470,-94182 +25483,-94326 +25500,-94380 +25517,-94446 +25539,-94516 +25553,-94585 +25566,-94633 +25582,-94619 +25595,-94680 +25618,-94730 +25640,-94817 +25660,-94962 +25678,-95036 +25697,-95104 +25716,-95173 +25735,-95177 +25754,-95247 +25770,-95326 +25786,-95388 +25803,-95442 +25823,-95507 +25851,-95577 +25869,-95693 +25892,-95755 +25913,-95839 +25933,-95986 +25954,-96065 +25974,-96078 +25993,-96143 +26007,-96217 +26036,-96274 +26056,-96449 +26070,-96517 +26088,-96570 +26109,-96635 +26132,-96654 +26163,-96736 +26185,-96847 +26207,-96933 +26233,-97084 +26256,-97116 +26277,-97261 +26296,-97345 +26311,-97416 +26329,-97471 +26341,-97534 +26358,-97585 +26376,-97651 +26392,-97712 +26411,-97775 +26440,-97846 +26461,-97892 +26480,-98033 +26501,-98112 +26525,-98124 +26549,-98212 +26586,-98329 +26603,-98446 +26619,-98558 +26635,-98619 +26656,-98679 +26681,-98759 +26704,-98792 +26724,-98944 +26747,-98955 +26770,-99039 +26785,-99191 +26801,-99245 +26820,-99307 +26837,-99389 +26866,-99447 +26890,-99493 +26910,-99638 +26927,-99712 +26949,-99780 +26983,-99800 +27010,-99941 +27026,-100094 +27055,-100148 +27083,-100198 +27101,-100358 +27123,-100369 +27139,-100441 +27155,-100500 +27176,-100567 +27190,-100643 +27208,-100697 +27232,-100768 +27252,-100913 +27273,-100994 +27287,-101005 +27309,-101117 +27324,-101137 +27346,-101207 +27368,-101283 +27391,-101428 +27407,-101505 +27421,-101571 +27440,-101623 +27459,-101641 +27478,-101712 +27499,-101774 +27526,-101849 +27541,-102017 +27560,-102067 +27579,-102144 +27593,-102206 +27606,-102258 +27622,-102245 +27648,-102393 +27661,-102463 +27674,-102511 +27693,-102497 +27723,-102642 +27740,-102681 +27759,-102740 +27778,-102812 +27798,-102887 +27814,-103025 +27833,-103016 +27852,-103155 +27873,-103228 +27889,-103243 +27909,-103366 +27929,-103375 +27959,-103450 +27981,-103566 +28000,-103650 +28023,-103789 +28037,-103865 +28057,-103927 +28076,-103993 +28096,-104062 +28116,-104136 +28137,-104144 +28166,-104227 +28189,-104334 +28207,-104422 +28230,-104487 +28260,-104637 +28276,-104752 +28303,-104827 +28325,-104848 +28339,-104926 +28368,-104978 +28384,-105154 +28407,-105215 +28429,-105238 +28447,-105317 +28468,-105374 +28490,-105524 +28511,-105548 +28532,-105617 +28551,-105691 +28582,-105843 +28602,-105885 +28624,-105958 +28639,-106093 +28654,-106153 +28676,-106148 +28698,-106294 +28720,-106372 +28742,-106389 +28762,-106542 +28784,-106612 +28801,-106690 +28834,-106760 +28856,-106883 +28876,-106900 +28894,-107049 +28914,-107042 +28931,-107182 +28949,-107245 +28968,-107309 +28987,-107378 +29008,-107448 +29036,-107466 +29062,-107645 +29084,-107663 +29106,-107742 +29129,-107895 +29150,-107975 +29173,-108080 +29195,-108138 +29221,-108226 +29243,-108255 +29262,-108397 +29276,-108473 +29296,-108522 +29323,-108560 +29346,-108715 +29379,-108786 +29394,-108913 +29415,-108969 +29434,-109041 +29461,-109116 +29478,-109151 +29501,-109218 +29525,-109370 +29546,-109388 +29564,-109472 +29584,-109534 +29604,-109607 +29625,-109740 +29641,-109821 +29657,-109891 +29685,-109942 +29705,-109980 +29724,-110052 +29747,-110193 +29770,-110277 +29789,-110297 +29811,-110368 +29834,-110519 +29856,-110537 +29876,-110614 +29899,-110762 +29925,-110813 +29939,-110875 +29954,-110930 +29971,-111046 +29988,-111112 +30007,-111124 +30021,-111182 +30035,-111297 +30065,-111352 +30091,-111468 +30109,-111560 +30131,-111623 +30145,-111642 +30160,-111691 +30179,-111816 +30202,-111827 +30223,-111907 +30245,-112050 +30266,-112133 +30286,-112154 +30304,-112220 +30332,-112288 +30355,-112411 +30369,-112486 +30389,-112537 +30402,-112608 +30418,-112655 +30434,-112717 +30449,-112778 +30467,-112904 +30480,-112960 +30502,-113018 +30531,-113035 +30554,-113213 +30574,-113228 +30593,-113301 +30612,-113374 +30631,-113442 +30654,-113580 +30682,-113661 +30704,-113771 +30723,-113850 +30748,-113867 +30762,-113953 +30789,-114009 +30814,-114179 +30836,-114199 +30857,-114348 +30871,-114425 +30890,-114479 +30909,-114551 +30931,-114618 +30952,-114639 +30969,-114717 +30990,-114784 +31005,-114922 +31025,-114911 +31050,-115059 +31073,-115144 +31095,-115160 +31114,-115311 +31149,-115366 +31167,-115512 +31193,-115582 +31207,-115617 +31221,-115670 +31244,-115721 +31288,-115805 +31311,-116036 +31331,-116058 +31354,-116131 +31386,-116264 +31410,-116405 +31433,-116425 +31459,-116511 +31481,-116672 +31521,-116700 +31547,-116917 +31567,-116940 +31587,-117015 +31615,-117084 +31634,-117252 +31652,-117261 +31674,-117329 +31689,-117409 +31708,-117464 +31730,-117611 +31746,-117682 +31768,-117742 +31788,-117825 +31805,-117835 +31825,-117900 +31853,-117979 +31873,-118147 +31892,-118171 +31909,-118229 +31923,-118289 +31937,-118405 +31954,-118456 +31976,-118520 +32004,-118537 +32020,-118714 +32033,-118766 +32056,-118753 +32076,-118903 +32096,-118977 +32119,-118992 +32137,-119066 +32159,-119134 +32197,-119261 +32219,-119428 +32238,-119441 +32255,-119514 +32271,-119578 +32289,-119635 +32305,-119700 +32323,-119764 +32338,-119836 +32353,-119886 +32367,-119947 +32381,-120062 +32412,-120135 +32447,-120253 +32469,-120361 +32488,-120442 +32510,-120514 +32524,-120531 +32546,-120648 +32566,-120661 +32581,-120742 +32594,-120791 +32607,-120903 +32639,-120956 +32662,-121074 +32684,-121153 +32707,-121176 +32729,-121326 +32750,-121416 +32773,-121422 +32795,-121508 +32820,-121663 +32844,-121682 +32864,-121836 +32881,-121911 +32896,-121980 +32910,-122031 +32927,-122018 +32948,-122159 +32962,-122224 +32979,-122282 +32994,-122280 +33015,-122336 +33040,-122407 +33077,-122520 +33099,-122639 +33118,-122714 +33134,-122785 +33150,-122847 +33163,-122907 +33182,-122954 +33204,-123027 +33224,-123108 +33251,-123246 +33275,-123289 +33294,-123435 +33318,-123522 +33335,-123536 +33357,-123607 +33378,-123680 +33400,-123825 +33417,-123908 +33438,-123921 +33467,-123977 +33490,-124154 +33511,-124178 +33531,-124253 +33547,-124326 +33563,-124390 +33586,-124443 +33607,-124596 +33626,-124676 +33648,-124740 +33677,-124761 +33699,-124934 +33712,-124951 +33726,-125064 +33743,-125115 +33766,-125180 +33790,-125207 +33813,-125360 +33838,-125448 +33864,-125545 +33890,-125632 +33912,-125666 +33934,-125812 +33960,-125891 +33975,-125927 +33992,-125982 +34011,-126044 +34027,-126114 +34042,-126178 +34063,-126235 +34089,-126306 +34109,-126465 +34131,-126482 +34144,-126559 +34168,-126613 +34188,-126761 +34206,-126833 +34226,-126905 +34246,-126978 +34277,-127046 +34306,-127172 +34328,-127280 +34348,-127359 +34368,-127371 +34391,-127449 +34411,-127597 +34431,-127673 +34453,-127740 +34473,-127775 +34496,-127839 +34515,-127987 +34541,-128059 +34566,-128093 +34590,-128256 +34608,-128269 +34632,-128342 +34653,-128492 +34674,-128569 +34695,-128646 +34717,-128661 +34748,-128816 +34769,-128866 +34783,-129005 +34803,-128988 +34819,-129131 +34843,-129204 +34870,-129232 +34891,-129320 +34912,-129463 +34927,-129482 +34955,-129599 +34977,-129710 +34995,-129788 +35011,-129852 +35028,-129913 +35046,-129975 +35065,-130038 +35085,-130115 +35098,-130124 +35114,-130247 +35131,-130298 +35155,-130364 +35197,-130489 +35214,-130608 +35234,-130669 +35250,-130745 +35272,-130806 +35292,-130888 +35306,-130899 +35321,-130954 +35337,-131070 +35368,-131140 +35391,-131252 +35411,-131335 +35426,-131348 +35442,-131406 +35465,-131527 +35479,-131542 +35493,-131594 +35519,-131685 +35545,-131751 +35565,-131854 +35579,-131919 +35593,-132035 +35608,-132085 +35636,-132165 +35656,-132185 +35677,-132262 +35699,-132410 +35722,-132487 +35741,-132504 +35760,-132572 +35788,-132736 +35805,-132758 +35823,-132821 +35839,-132882 +35862,-132947 +35883,-133102 +35903,-133178 +35925,-133248 +35946,-133268 +35961,-133348 +35979,-133415 +36006,-133467 +36026,-133577 +36047,-133644 +36071,-133727 +36098,-133894 +36116,-133913 +36133,-133978 +36153,-134041 +36181,-134112 +36204,-134220 +36226,-134303 +36245,-134453 +36268,-134524 +36287,-134541 +36305,-134611 +36326,-134684 +36360,-134760 +36384,-134958 +36411,-135044 +36429,-135156 +36443,-135143 +36461,-135193 +36482,-135265 +36498,-135416 +36516,-135468 +36544,-135550 +36563,-135570 +36585,-135645 +36607,-135790 +36629,-135865 +36657,-135883 +36682,-136058 +36703,-136087 +36726,-136160 +36746,-136314 +36768,-136389 +36788,-136407 +36806,-136475 +36821,-136544 +36846,-136602 +36866,-136765 +36886,-136840 +36905,-136845 +36921,-136914 +36941,-136980 +36958,-137055 +36980,-137114 +37003,-137264 +37022,-137349 +37048,-137357 +37070,-137515 +37089,-141224 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs new file mode 100644 index 000000000..9be6f1ec6 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.cs @@ -0,0 +1,78 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + + +Int32 last_14bit_position; +Int32 position_32bit=0; +const Int32 DrierLoadingArm_Motor = 5; +public void OnExecute(StubManager stubManager) +{ + string FileName="test.csv"; + var stopwatch = new Stopwatch(); + stopwatch.Start(); + + long elapsed_time = stopwatch.ElapsedMilliseconds; + + ReadEncoder_Dryer(); + position_32bit=0; + ReadEncoder_Dryer(); + Int32 temp=position_32bit; + + stubManager.WriteToFile(FileName,DateTime.Now +" " ); +//stubManager.AppendToFile("test.csv",elapsed_time+ ","+ position_32bit ); + + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DrierLoadingArm_Motor, false, 100);//40 + elapsed_time = stopwatch.ElapsedMilliseconds; + stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit ); + while (true) + { + ReadEncoder_Dryer(); + elapsed_time = stopwatch.ElapsedMilliseconds; +stubManager.AppendToFile(FileName,elapsed_time+ ","+ position_32bit ); + Thread.Sleep(1); + } + +} + + + +void ReadEncoder_Dryer() +{ + Int32 temp; + Int32 temp1; + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission + + var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190); + var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192); + + temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); + if (temp>last_14bit_position) + { + temp1=temp-last_14bit_position; + position_32bit=position_32bit+temp1; + if (temp1>0x2000) + position_32bit=position_32bit-0x4000; + } + else if (temp<last_14bit_position) + + { + temp1=last_14bit_position-temp; + position_32bit=position_32bit-temp1; + if (temp1>0x2000) + position_32bit=position_32bit+0x4000; + } + + last_14bit_position=temp; + + return ; +} + diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv new file mode 100644 index 000000000..ed306d345 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test1.csv @@ -0,0 +1,345 @@ +24/05/2020 14:15:24 +0,0 +0,-8 +0,27 +0,32 +0,34 +0,-18 +0,32 +0,36 +0,-20 +0,30 +0,41 +0,35 +0,36 +0,41 +0,36 +0,36 +0,-21 +0,31 +0,-21 +0,30 +0,-21 +0,31 +0,-20 +0,31 +0,-20 +0,31 +0,-21 +0,35 +0,38 +0,30 +0,-21 +0,30 +0,-20 +0,30 +0,-21 +0,31 +0,38 +0,31 +0,-20 +0,30 +0,-20 +0,31 +0,-21 +0,31 +0,-21 +0,30 +0,-22 +0,37 +0,36 +0,38 +0,39 +0,33 +0,-22 +0,30 +0,-21 +0,30 +0,-21 +0,30 +0,-20 +0,31 +0,41 +0,34 +0,40 +0,37 +0,30 +0,-22 +0,34 +0,41 +0,35 +0,37 +0,39 +0,37 +0,40 +0,33 +0,38 +0,33 +0,-20 +0,36 +0,37 +0,39 +0,39 +0,38 +0,37 +0,39 +0,35 +0,36 +0,-21 +0,38 +0,40 +0,32 +0,-22 +0,33 +0,41 +0,31 +0,-22 +0,36 +0,35 +0,32 +0,-17 +0,-22 +0,7 +0,43 +0,122 +0,287 +0,302 +0,374 +0,452 +0,582 +0,725 +0,779 +0,803 +0,799 +0,716 +0,557 +0,454 +0,473 +0,381 +0,349 +0,216 +0,66 +0,96 +0,-62 +0,-157 +0,-231 +0,-327 +0,-310 +0,-463 +0,-542 +0,-600 +0,-712 +0,-789 +0,-807 +0,-957 +0,-1015 +0,-1013 +0,-1172 +0,-1175 +0,-1269 +0,-1400 +0,-1434 +0,-1496 +0,-1573 +0,-1683 +0,-1750 +0,-1781 +0,-1914 +0,-1998 +0,-2131 +0,-2150 +0,-2225 +0,-2269 +0,-2328 +0,-2420 +0,-2553 +0,-2626 +0,-2692 +0,-2768 +0,-2888 +0,-2963 +0,-2969 +0,-3054 +0,-3215 +0,-3229 +0,-3304 +0,-3448 +0,-3526 +0,-3605 +0,-3709 +0,-3780 +0,-3806 +0,-3865 +0,-3984 +0,-3992 +0,-4074 +0,-4222 +0,-4204 +0,-4269 +0,-4407 +0,-4445 +0,-4512 +0,-4586 +0,-4728 +0,-4814 +0,-4875 +0,-4890 +0,-4967 +0,-5038 +0,-5109 +0,-5216 +0,-5297 +0,-5447 +0,-5496 +0,-5566 +0,-5637 +0,-5718 +0,-5724 +0,-5806 +0,-5962 +0,-6037 +0,-6145 +0,-6222 +0,-6235 +0,-6320 +0,-6467 +0,-6490 +0,-6576 +0,-6636 +0,-6784 +0,-7020 +0,-7175 +0,-7206 +0,-7271 +0,-7334 +0,-7405 +0,-7465 +0,-7611 +0,-7684 +0,-7726 +0,-7882 +0,-7909 +0,-7984 +0,-8052 +0,-8183 +0,-8249 +0,-8333 +0,-8383 +0,-8461 +0,-8488 +0,-8553 +0,-8625 +0,-8693 +0,-8831 +0,-8904 +0,-8920 +0,-8998 +0,-9109 +0,-9167 +0,-9195 +0,-9360 +0,-9374 +0,-9433 +0,-9517 +0,-9657 +0,-9721 +0,-9718 +0,-9862 +0,-9934 +0,-9946 +0,-10025 +0,-10191 +0,-10262 +0,-10325 +0,-10379 +0,-10438 +0,-10490 +0,-10559 +0,-10544 +0,-10687 +0,-10757 +0,-10873 +0,-10953 +0,-11008 +0,-11063 +0,-11062 +0,-11215 +0,-11230 +0,-11303 +0,-11378 +0,-11523 +0,-11560 +0,-11706 +0,-11794 +0,-11816 +0,-11868 +0,-11990 +0,-11991 +0,-12065 +0,-12136 +0,-12189 +0,-12350 +0,-12376 +0,-12459 +0,-12527 +0,-12595 +0,-12658 +0,-12798 +0,-12790 +0,-12925 +0,-12999 +0,-13076 +0,-13100 +0,-13259 +0,-13277 +0,-13358 +0,-13505 +0,-13586 +0,-13654 +0,-13676 +0,-13739 +0,-13806 +0,-13958 +0,-14016 +0,-14049 +0,-14118 +0,-14187 +0,-14244 +0,-14297 +0,-14365 +0,-14453 +0,-14595 +0,-14618 +0,-14698 +0,-14754 +0,-14837 +0,-14973 +0,-15045 +0,-15116 +0,-15187 +0,-15235 +0,-15287 +0,-15353 +0,-15386 +0,-15499 +0,-15565 +0,-15616 +0,-15701 +0,-15764 +0,-15787 +0,-15856 +0,-15994 +0,-16074 +0,-16097 +0,-16271 +0,-16340 +0,-16359 +0,-16504 +0,-16502 +0,-16565 +0,-16617 +0,-16692 +0,-16830 +0,-16905 +0,-16944 +0,-17014 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv new file mode 100644 index 000000000..756c780f4 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test12.csv @@ -0,0 +1,283 @@ +24/05/2020 14:47:25 +41,0 +63,7 +77,-31 +91,-29 +117,18 +131,-77 +162,-86 +175,-131 +195,-105 +212,-219 +226,-189 +244,-283 +265,-341 +286,-357 +300,-430 +323,-543 +345,-561 +366,-712 +386,-795 +403,-803 +425,-926 +459,-944 +480,-1076 +502,-1145 +524,-1289 +544,-1319 +563,-1389 +585,-1458 +605,-1537 +627,-1681 +649,-1703 +672,-1781 +695,-1925 +723,-2014 +744,-2124 +764,-2190 +789,-2274 +809,-2306 +824,-2441 +841,-2430 +864,-2490 +882,-2636 +904,-2711 +927,-2732 +949,-2809 +973,-2960 +996,-2980 +1010,-3068 +1024,-3117 +1047,-3232 +1071,-3260 +1090,-3409 +1109,-3476 +1131,-3545 +1150,-3563 +1166,-3636 +1180,-3699 +1196,-3749 +1219,-3872 +1243,-3902 +1266,-4051 +1280,-4071 +1293,-4181 +1315,-4230 +1339,-4322 +1356,-4343 +1375,-4400 +1395,-4474 +1412,-4618 +1432,-4683 +1457,-4765 +1486,-4784 +1510,-4961 +1524,-4984 +1547,-5035 +1560,-5115 +1580,-5168 +1597,-5246 +1612,-5312 +1633,-5361 +1653,-5440 +1672,-5577 +1685,-5649 +1709,-5634 +1728,-5788 +1744,-5855 +1758,-5919 +1777,-5969 +1792,-6041 +1808,-6100 +1831,-6160 +1847,-6179 +1866,-6304 +1885,-6312 +1904,-6381 +1930,-6451 +1953,-6620 +1972,-6637 +1994,-6707 +2010,-6851 +2032,-6849 +2054,-6997 +2073,-7014 +2091,-7083 +2121,-7159 +2143,-7267 +2165,-7345 +2181,-7424 +2195,-7556 +2209,-7547 +2229,-7607 +2245,-7669 +2262,-7732 +2276,-7795 +2296,-7847 +2310,-7924 +2329,-7971 +2355,-8048 +2376,-8209 +2398,-8285 +2411,-8299 +2434,-8415 +2457,-8435 +2479,-8582 +2501,-8612 +2519,-8690 +2539,-8753 +2557,-8824 +2576,-8891 +2607,-9028 +2629,-9082 +2645,-9227 +2659,-9290 +2681,-9279 +2698,-9424 +2720,-9487 +2741,-9509 +2761,-9583 +2796,-9738 +2815,-9793 +2834,-9858 +2859,-9996 +2876,-10039 +2890,-10089 +2909,-10148 +2923,-10212 +2945,-10330 +2963,-10344 +2979,-10411 +2994,-10476 +3015,-10533 +3046,-10612 +3069,-10727 +3082,-10804 +3107,-10853 +3122,-10945 +3137,-11001 +3152,-11056 +3170,-11120 +3189,-11187 +3208,-11256 +3229,-11327 +3248,-11473 +3266,-11536 +3283,-11607 +3296,-11664 +3319,-11648 +3341,-11799 +3354,-11817 +3374,-11932 +3390,-12002 +3405,-12061 +3427,-12121 +3440,-12139 +3458,-12251 +3473,-12260 +3490,-12374 +3512,-12438 +3546,-12457 +3565,-12580 +3588,-12657 +3611,-12809 +3631,-12894 +3653,-12902 +3677,-12986 +3696,-13139 +3716,-13210 +3739,-13225 +3757,-13306 +3777,-13372 +3807,-13512 +3830,-13560 +3847,-13707 +3863,-13771 +3885,-13831 +3908,-13917 +3924,-13944 +3947,-13997 +3967,-14147 +4025,-14263 +4060,-14374 +4083,-14502 +4106,-14586 +4129,-14735 +4143,-14759 +4162,-14875 +4180,-14945 +4199,-15010 +4222,-15017 +4240,-15175 +4258,-15243 +4278,-15305 +4292,-15377 +4318,-15431 +4342,-15476 +4361,-15622 +4380,-15690 +4395,-15758 +4410,-15817 +4427,-15808 +4443,-15863 +4462,-15925 +4476,-15996 +4496,-16050 +4513,-16126 +4534,-16187 +4568,-16345 +4587,-16454 +4603,-16526 +4619,-16582 +4641,-16645 +4663,-16728 +4676,-16740 +4689,-16854 +4702,-16901 +4720,-16884 +4734,-16954 +4753,-17004 +4774,-17075 +4795,-17230 +4812,-17304 +4828,-17365 +4842,-17425 +4863,-17481 +4877,-17556 +4891,-17608 +4911,-17594 +4926,-17738 +4946,-17724 +4973,-17877 +4996,-17905 +5020,-17982 +5043,-18144 +5063,-18160 +5078,-18236 +5097,-18286 +5110,-18359 +5126,-18407 +5146,-18474 +5161,-18539 +5174,-18658 +5192,-18708 +5205,-18773 +5220,-18823 +5249,-18813 +5270,-18926 +5287,-19001 +5303,-19069 +5324,-19129 +5344,-19202 +5360,-19341 +5383,-19409 +5401,-19431 +5415,-19493 +5430,-19607 +5443,-19660 +5464,-19716 +5554,-20053 +5575,-20128 +5592,-20147 +5612,-20199 +5631,-20274 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv new file mode 100644 index 000000000..7344cf879 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test13.csv @@ -0,0 +1,290 @@ +24/05/2020 14:47:49 +41,0 +56,0 +71,0 +90,-1 +104,-9 +122,-19 +155,-104 +176,-162 +197,-137 +216,-184 +235,-295 +257,-352 +279,-425 +300,-496 +321,-510 +342,-592 +356,-736 +371,-722 +387,-772 +405,-829 +426,-907 +445,-1049 +476,-1115 +497,-1171 +516,-1318 +534,-1335 +555,-1450 +576,-1462 +594,-1542 +613,-1609 +627,-1680 +645,-1727 +666,-1795 +689,-1944 +710,-2032 +738,-2045 +758,-2209 +779,-2291 +797,-2301 +811,-2367 +827,-2478 +843,-2537 +859,-2598 +874,-2660 +893,-2721 +914,-2789 +934,-2866 +956,-2879 +982,-2962 +999,-3121 +1019,-3185 +1039,-3194 +1057,-3274 +1082,-3420 +1102,-3494 +1122,-3567 +1136,-3578 +1149,-3690 +1164,-3743 +1178,-3797 +1199,-3790 +1228,-3950 +1249,-3977 +1267,-4119 +1289,-4183 +1306,-4263 +1329,-4332 +1350,-4351 +1363,-4425 +1400,-4481 +1422,-4620 +1436,-4764 +1450,-4750 +1475,-4805 +1491,-4961 +1508,-5022 +1525,-5084 +1543,-5150 +1569,-5234 +1585,-5243 +1605,-5304 +1622,-5379 +1639,-5441 +1659,-5502 +1681,-5581 +1701,-5726 +1729,-5801 +1743,-5838 +1778,-5901 +1802,-6033 +1817,-6174 +1839,-6236 +1853,-6310 +1867,-6364 +1881,-6353 +1897,-6406 +1912,-6467 +1930,-6519 +1953,-6589 +1975,-6741 +1995,-6823 +2014,-6847 +2030,-6906 +2052,-6966 +2065,-7038 +2085,-7155 +2104,-7159 +2117,-7229 +2131,-7346 +2147,-7395 +2174,-7456 +2211,-7505 +2232,-7630 +2247,-7777 +2263,-7763 +2282,-7824 +2305,-7959 +2320,-8049 +2333,-8098 +2350,-8149 +2367,-8216 +2385,-8211 +2407,-8342 +2432,-8429 +2453,-8453 +2470,-8596 +2493,-8661 +2513,-8747 +2532,-8815 +2552,-8873 +2574,-8924 +2590,-8913 +2605,-8955 +2627,-9053 +2647,-9020 +2675,-9031 +2698,-9022 +2719,-9025 +2734,-9025 +2752,-9025 +2768,-9025 +2782,-9025 +2802,-9025 +2821,-9025 +2843,-9025 +2863,-9025 +2881,-9025 +2904,-9025 +2931,-9025 +2948,-9025 +2967,-9025 +2982,-9025 +2997,-9025 +3021,-9025 +3057,-9025 +3080,-9025 +3102,-9025 +3117,-9025 +3133,-9025 +3150,-9025 +3178,-9025 +3203,-9025 +3217,-9025 +3231,-9025 +3249,-9025 +3265,-9025 +3285,-9025 +3300,-9025 +3319,-9025 +3336,-9025 +3350,-9025 +3370,-9025 +3385,-9025 +3411,-9025 +3433,-9025 +3449,-9025 +3464,-9025 +3478,-9025 +3498,-9025 +3518,-9025 +3532,-9025 +3552,-9025 +3567,-9025 +3585,-9025 +3604,-9025 +3633,-9025 +3654,-9025 +3676,-9025 +3697,-9025 +3718,-9025 +3737,-9025 +3757,-9025 +3773,-9025 +3786,-9025 +3806,-9025 +3821,-9025 +3835,-9025 +3853,-9025 +3880,-9025 +3902,-9025 +3920,-9025 +3938,-9025 +3952,-9025 +3966,-9025 +3986,-9025 +4007,-9025 +4027,-9025 +4047,-9025 +4061,-9025 +4082,-9025 +4106,-9025 +4134,-9025 +4148,-9025 +4164,-9025 +4177,-9025 +4194,-9025 +4207,-9025 +4220,-9025 +4232,-9025 +4248,-9025 +4269,-9025 +4288,-9025 +4308,-9025 +4324,-9025 +4352,-9025 +4374,-9025 +4388,-9025 +4411,-9025 +4427,-9025 +4444,-9025 +4463,-9025 +4478,-9025 +4499,-9025 +4521,-9025 +4541,-9025 +4559,-9025 +4572,-9025 +4602,-9025 +4624,-9025 +4640,-9025 +4653,-9025 +4670,-9025 +4684,-9025 +4702,-9025 +4720,-9025 +4733,-9025 +4748,-9025 +4766,-9025 +4780,-9025 +4803,-9025 +4822,-9025 +4837,-9025 +4860,-9025 +4883,-9025 +4906,-9025 +4920,-9025 +4933,-9025 +4956,-9025 +4973,-9025 +4993,-9025 +5013,-9025 +5030,-9025 +5062,-9025 +5085,-9025 +5104,-9025 +5126,-9025 +5140,-9025 +5156,-9025 +5172,-9025 +5189,-9025 +5205,-9025 +5225,-9025 +5245,-9025 +5263,-9025 +5280,-9025 +5310,-9025 +5323,-9025 +5372,-9025 +5401,-9025 +5421,-9025 +5435,-9025 +5450,-9025 +5467,-9025 +5489,-9025 +5513,-9025 +5533,-9025 +5554,-9025 +5584,-9025 +5605,-9025 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv new file mode 100644 index 000000000..82a9b98c3 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test14.csv @@ -0,0 +1,224 @@ +24/05/2020 14:48:02 +40,0 +59,0 +80,0 +116,-3 +138,-99 +159,-72 +180,-172 +203,-146 +224,-203 +243,-262 +264,-315 +282,-379 +301,-438 +324,-525 +346,-674 +364,-752 +393,-814 +415,-929 +434,-948 +454,-1015 +474,-1086 +496,-1165 +515,-1315 +537,-1381 +558,-1400 +578,-1477 +597,-1553 +618,-1685 +639,-1765 +660,-1840 +680,-1856 +703,-1936 +725,-2078 +751,-2113 +794,-2297 +816,-2356 +836,-2431 +857,-2510 +886,-2660 +907,-2696 +921,-2836 +946,-2907 +967,-2987 +988,-2997 +1010,-3077 +1029,-3223 +1045,-3295 +1064,-3354 +1082,-3423 +1105,-3491 +1127,-3519 +1148,-3601 +1170,-3738 +1184,-3817 +1199,-3868 +1216,-3930 +1232,-3989 +1247,-3983 +1266,-4043 +1282,-4114 +1309,-4244 +1334,-4286 +1348,-4368 +1363,-4416 +1382,-4485 +1400,-4551 +1415,-4621 +1431,-4669 +1450,-4736 +1470,-4804 +1492,-4882 +1518,-5027 +1540,-5060 +1560,-5212 +1579,-5279 +1593,-5352 +1612,-5400 +1633,-5470 +1650,-5548 +1671,-5616 +1691,-5637 +1710,-5702 +1727,-5774 +1755,-5907 +1777,-5950 +1793,-6030 +1814,-6086 +1833,-6231 +1854,-6298 +1868,-6378 +1887,-6426 +1908,-6454 +1931,-6526 +1949,-6600 +1985,-6758 +2007,-6873 +2026,-6957 +2046,-7021 +2066,-7031 +2082,-7104 +2095,-7165 +2115,-7280 +2132,-7285 +2149,-7354 +2164,-7414 +2182,-7538 +2212,-7542 +2231,-7725 +2250,-7787 +2266,-7796 +2284,-7915 +2304,-7929 +2326,-8015 +2348,-8148 +2372,-8233 +2392,-8259 +2411,-8326 +2439,-8391 +2462,-8507 +2485,-8587 +2498,-8649 +2519,-8751 +2538,-8801 +2551,-8781 +2564,-8872 +2585,-8835 +2599,-8925 +2625,-8929 +2647,-8919 +2667,-8921 +2687,-8921 +2702,-8921 +2724,-8921 +2745,-8921 +2763,-8921 +2785,-8921 +2806,-8921 +2819,-8921 +2842,-8921 +2865,-8921 +2887,-8921 +2908,-8921 +2922,-8921 +2935,-8921 +2956,-8921 +2977,-8921 +3004,-8921 +3029,-8921 +3046,-8921 +3063,-8921 +3092,-8921 +3107,-8921 +3124,-8921 +3140,-8921 +3159,-8921 +3180,-8921 +3201,-8921 +3222,-8921 +3241,-8921 +3261,-8921 +3281,-8921 +3307,-8921 +3330,-8921 +3348,-8921 +3366,-8921 +3381,-8921 +3399,-8921 +3418,-8921 +3433,-8921 +3455,-8921 +3474,-8921 +3493,-8921 +3515,-8921 +3543,-8921 +3565,-8921 +3587,-8921 +3607,-8921 +3620,-8922 +3634,-8922 +3647,-8922 +3666,-8922 +3684,-8922 +3704,-8922 +3717,-8922 +3735,-8922 +3764,-8922 +3785,-8922 +3805,-8922 +3826,-8922 +3845,-8922 +3861,-8922 +3879,-8922 +3896,-8922 +3911,-8922 +3928,-8922 +3945,-8922 +3966,-8922 +3997,-8922 +4021,-8922 +4041,-8922 +4062,-8922 +4080,-8922 +4099,-8921 +4115,-8921 +4135,-8921 +4156,-8921 +4177,-8921 +4199,-8921 +4226,-8921 +4249,-8921 +4273,-8921 +4286,-8921 +4301,-8921 +4317,-8921 +4338,-8921 +4360,-8921 +4381,-8921 +4405,-8921 +4428,-8921 +4448,-8921 +4477,-8921 +4497,-8921 +4521,-8921 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv new file mode 100644 index 000000000..7099494c8 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test15.csv @@ -0,0 +1,181 @@ +24/05/2020 14:48:15 +55,0 +74,0 +88,-1 +102,-5 +123,-18 +146,22 +168,-82 +191,-121 +215,-103 +238,-166 +260,-233 +281,-298 +299,-375 +322,-506 +353,-598 +375,-710 +392,-782 +417,-849 +439,-884 +461,-1026 +477,-1102 +500,-1169 +522,-1195 +545,-1340 +567,-1421 +596,-1449 +619,-1620 +637,-1636 +658,-1698 +678,-1782 +701,-1928 +726,-1951 +746,-2029 +768,-2175 +791,-2201 +813,-2277 +841,-2358 +862,-2468 +883,-2544 +906,-2682 +925,-2766 +939,-2837 +953,-2891 +968,-2943 +984,-2929 +999,-2991 +1019,-3044 +1055,-3205 +1088,-3337 +1112,-3382 +1137,-3482 +1156,-3559 +1181,-3705 +1202,-3784 +1219,-3805 +1235,-3867 +1258,-3929 +1277,-4008 +1291,-4085 +1323,-4135 +1343,-4255 +1359,-4325 +1372,-4386 +1394,-4500 +1415,-4523 +1435,-4597 +1455,-4733 +1475,-4810 +1492,-4887 +1512,-4948 +1531,-4957 +1560,-5027 +1575,-5204 +1591,-5251 +1610,-5310 +1623,-5380 +1638,-5435 +1654,-5422 +1672,-5481 +1694,-5550 +1713,-5696 +1735,-5765 +1762,-5788 +1782,-5951 +1802,-6024 +1821,-6099 +1844,-6108 +1866,-6188 +1886,-6335 +1906,-6410 +1928,-6484 +1944,-6500 +1958,-6563 +1972,-6677 +1996,-6725 +2019,-6756 +2041,-6905 +2061,-6986 +2081,-7062 +2102,-7075 +2126,-7155 +2149,-7303 +2171,-7384 +2193,-7411 +2212,-7554 +2242,-7623 +2261,-7670 +2285,-7825 +2305,-7834 +2327,-7903 +2344,-7989 +2364,-8053 +2383,-8188 +2402,-8258 +2425,-8331 +2447,-8361 +2482,-8435 +2504,-8558 +2529,-8624 +2551,-8694 +2571,-8745 +2593,-8850 +2615,-8822 +2662,-8898 +2684,-8890 +2719,-8890 +2741,-8890 +2761,-8890 +2780,-8891 +2802,-8891 +2822,-8891 +2841,-8891 +2864,-8891 +2878,-8891 +2895,-8891 +2909,-8891 +2935,-8891 +2960,-8891 +2977,-8891 +2993,-8891 +3008,-8891 +3027,-8891 +3044,-8891 +3064,-8891 +3085,-8891 +3104,-8891 +3122,-8891 +3148,-8891 +3172,-8891 +3193,-8891 +3208,-8891 +3222,-8891 +3240,-8891 +3264,-8891 +3282,-8891 +3304,-8891 +3326,-8891 +3343,-8891 +3360,-8891 +3384,-8891 +3407,-8891 +3433,-8891 +3450,-8891 +3470,-8891 +3484,-8891 +3499,-8891 +3513,-8891 +3527,-8891 +3547,-8891 +3569,-8891 +3593,-8891 +3616,-8890 +3629,-8890 +3652,-8890 +3670,-8890 +3691,-8890 +3706,-8890 +3726,-8890 +3744,-8890 +3762,-8890 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv new file mode 100644 index 000000000..a5743e552 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test16.csv @@ -0,0 +1,231 @@ +24/05/2020 14:48:26 +44,0 +61,0 +82,0 +102,-5 +123,-17 +136,25 +150,4 +180,-83 +201,-141 +218,-125 +236,-166 +258,-282 +279,-287 +301,-362 +323,-443 +342,-587 +359,-663 +381,-725 +399,-739 +421,-805 +444,-959 +474,-1007 +497,-1159 +513,-1244 +534,-1297 +548,-1371 +562,-1423 +581,-1477 +602,-1553 +622,-1625 +646,-1642 +664,-1719 +691,-1860 +711,-1891 +732,-1967 +752,-2042 +771,-2185 +790,-2261 +809,-2329 +829,-2394 +852,-2408 +886,-2563 +911,-2694 +931,-2718 +960,-2797 +982,-2969 +999,-2982 +1019,-3046 +1041,-3126 +1062,-3274 +1081,-3346 +1101,-3417 +1115,-3430 +1135,-3548 +1149,-3556 +1177,-3676 +1199,-3778 +1220,-3863 +1242,-3878 +1259,-3957 +1276,-4097 +1291,-4091 +1305,-4144 +1328,-4199 +1343,-4283 +1363,-4336 +1388,-4412 +1402,-4569 +1416,-4618 +1430,-4605 +1448,-4663 +1470,-4729 +1492,-4876 +1507,-4896 +1521,-5013 +1552,-5028 +1572,-5116 +1602,-5250 +1619,-5300 +1635,-5361 +1655,-5421 +1670,-5496 +1690,-5554 +1717,-5697 +1743,-5745 +1759,-5901 +1780,-5957 +1802,-6035 +1820,-6054 +1846,-6118 +1869,-6281 +1884,-6303 +1903,-6424 +1924,-6432 +1939,-6509 +1957,-6562 +1970,-6626 +1984,-6744 +2004,-6797 +2018,-6869 +2036,-6921 +2062,-6986 +2084,-7019 +2103,-7100 +2119,-7232 +2140,-7228 +2163,-7373 +2186,-7404 +2207,-7551 +2227,-7626 +2247,-7702 +2268,-7718 +2283,-7794 +2311,-7849 +2331,-8015 +2350,-8087 +2367,-8150 +2386,-8193 +2405,-8177 +2423,-8227 +2436,-8325 +2456,-8288 +2473,-8313 +2487,-8316 +2516,-8310 +2534,-8311 +2550,-8311 +2579,-8311 +2593,-8311 +2615,-8311 +2635,-8311 +2651,-8311 +2674,-8311 +2695,-8311 +2712,-8311 +2739,-8311 +2763,-8311 +2784,-8311 +2806,-8311 +2822,-8311 +2838,-8311 +2859,-8311 +2876,-8311 +2891,-8311 +2908,-8311 +2922,-8311 +2940,-8311 +2964,-8311 +2996,-8311 +3029,-8311 +3043,-8311 +3065,-8311 +3087,-8311 +3101,-8311 +3120,-8311 +3133,-8311 +3149,-8311 +3166,-8311 +3179,-8311 +3195,-8311 +3222,-8311 +3237,-8311 +3256,-8311 +3275,-8311 +3288,-8311 +3301,-8311 +3316,-8311 +3335,-8311 +3348,-8311 +3370,-8311 +3383,-8311 +3404,-8311 +3425,-8311 +3441,-8311 +3457,-8311 +3474,-8311 +3491,-8311 +3505,-8311 +3518,-8311 +3535,-8311 +3549,-8311 +3565,-8311 +3589,-8311 +3617,-8311 +3640,-8311 +3669,-8311 +3688,-8311 +3703,-8311 +3725,-8311 +3739,-8311 +3756,-8311 +3773,-8311 +3793,-8311 +3810,-8311 +3823,-8311 +3851,-8311 +3867,-8311 +3887,-8311 +3908,-8311 +3922,-8311 +3942,-8311 +3963,-8311 +3986,-8311 +4005,-8311 +4027,-8311 +4041,-8311 +4074,-8311 +4097,-8311 +4119,-8311 +4142,-8311 +4159,-8311 +4176,-8311 +4193,-8311 +4206,-8311 +4219,-8311 +4238,-8311 +4252,-8311 +4277,-8311 +4303,-8311 +4321,-8311 +4340,-8311 +4362,-8311 +4382,-8311 +4406,-8311 +4423,-8311 +4438,-8312 +4456,-8312 +4473,-8312 +4490,-8312 +4518,-8312 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv new file mode 100644 index 000000000..ba03e113f --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test2.csv @@ -0,0 +1,271 @@ +24/05/2020 14:16:54 +0,0 +0,8 +0,80 +0,-7 +0,-34 +0,-163 +0,-239 +0,-342 +0,-385 +0,-457 +0,-479 +0,-630 +0,-672 +0,-752 +0,-856 +0,-1017 +0,-989 +0,-1092 +0,-1160 +0,-1179 +0,-1350 +0,-1424 +0,-1433 +0,-1507 +0,-1580 +0,-1630 +0,-1732 +0,-1717 +0,-1850 +0,-1932 +0,-1995 +0,-2042 +0,-2125 +0,-2151 +0,-2230 +0,-2375 +0,-2439 +0,-2467 +0,-2618 +0,-2700 +0,-2711 +0,-2785 +0,-2906 +0,-2969 +0,-3038 +0,-3121 +0,-3265 +0,-3339 +0,-3412 +0,-3467 +0,-3481 +0,-3545 +0,-3719 +0,-3738 +0,-3802 +0,-3890 +0,-4028 +0,-4107 +0,-4120 +0,-4192 +0,-4277 +0,-4424 +0,-4489 +0,-4522 +0,-4672 +0,-4741 +0,-4795 +0,-4788 +0,-4926 +0,-4987 +0,-5060 +0,-5130 +0,-5204 +0,-5305 +0,-5386 +0,-5458 +0,-5520 +0,-5539 +0,-5617 +0,-5771 +0,-5790 +0,-5873 +0,-6011 +0,-6076 +0,-6119 +0,-6188 +0,-6259 +0,-6407 +0,-6476 +0,-6548 +0,-6611 +0,-6675 +0,-6739 +0,-6749 +0,-6925 +0,-6941 +0,-7023 +0,-7165 +0,-7227 +0,-7298 +0,-7372 +0,-7424 +0,-7498 +0,-7520 +0,-7583 +0,-7751 +0,-7815 +0,-7892 +0,-7902 +0,-7977 +0,-8029 +0,-8146 +0,-8199 +0,-8217 +0,-8340 +0,-8397 +0,-8436 +0,-8578 +0,-8650 +0,-8702 +0,-8776 +0,-8850 +0,-8872 +0,-8931 +0,-9002 +0,-9123 +0,-9194 +0,-9266 +0,-9411 +0,-9491 +0,-9498 +0,-9559 +0,-9719 +0,-9789 +0,-9858 +0,-9881 +0,-9963 +0,-10084 +0,-10233 +0,-10309 +0,-10373 +0,-10438 +0,-10500 +0,-10684 +0,-10769 +0,-10785 +0,-10897 +0,-11015 +0,-10998 +0,-11132 +0,-11206 +0,-11242 +0,-11399 +0,-11466 +0,-11531 +0,-11603 +0,-11608 +0,-11779 +0,-11860 +0,-11925 +0,-11943 +0,-12093 +0,-12163 +0,-12216 +0,-12213 +0,-12348 +0,-12430 +0,-12444 +0,-12511 +0,-12681 +0,-12702 +0,-12784 +0,-12854 +0,-12909 +0,-12980 +0,-13118 +0,-13180 +0,-13261 +0,-13322 +0,-13374 +0,-13411 +0,-13467 +0,-13543 +0,-13619 +0,-13756 +0,-13833 +0,-13848 +0,-13929 +0,-13985 +0,-14039 +0,-14162 +0,-14176 +0,-14351 +0,-14359 +0,-14473 +0,-14522 +0,-14590 +0,-14673 +0,-14741 +0,-14793 +0,-14844 +0,-14829 +0,-14888 +0,-15033 +0,-15076 +0,-15190 +0,-15202 +0,-15273 +0,-15422 +0,-15493 +0,-15572 +0,-15636 +0,-15649 +0,-15732 +0,-15888 +0,-15967 +0,-16038 +0,-16107 +0,-16258 +0,-16281 +0,-16397 +0,-16422 +0,-16501 +0,-16561 +0,-16619 +0,-16678 +0,-16829 +0,-16857 +0,-16933 +0,-16992 +0,-17106 +0,-17157 +0,-17224 +0,-17276 +0,-17349 +0,-17422 +0,-17477 +0,-17545 +0,-17659 +0,-17731 +0,-17802 +0,-17821 +0,-17904 +0,-18048 +0,-18124 +0,-18152 +0,-18230 +0,-18282 +0,-18354 +0,-18511 +0,-18532 +0,-18606 +0,-18752 +0,-18817 +0,-18805 +0,-18954 +0,-19003 +0,-19070 +0,-19096 +0,-19185 +0,-19347 +0,-19369 +0,-19444 +0,-19580 +0,-19566 +0,-19709 +0,-19780 +0,-19853 +0,-19904 +0,-19983 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv new file mode 100644 index 000000000..91ae72e87 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test3.csv @@ -0,0 +1,127 @@ +24/05/2020 14:17:18 +0,0 +0,0 +0,51 +0,-62 +0,-97 +0,-19 +0,-15 +0,-64 +0,-15 +0,-8 +0,-16 +0,-4 +0,-13 +0,-5 +0,-17 +0,-5 +0,-16 +0,-5 +0,-16 +0,-4 +0,-17 +0,-7 +0,-15 +0,-14 +0,-7 +0,-14 +0,-6 +0,-15 +0,-10 +0,-11 +0,-11 +0,-8 +0,-11 +0,-7 +0,-13 +0,-17 +0,-16 +0,-5 +0,-17 +0,-4 +0,-16 +0,-5 +0,-17 +0,-5 +0,-17 +0,-5 +0,-18 +0,-5 +0,-17 +0,-9 +0,-13 +0,-5 +0,-16 +0,-8 +0,-13 +0,-15 +0,-10 +0,-15 +0,-5 +0,-17 +0,-5 +0,-17 +0,-6 +0,-15 +0,-6 +0,-17 +0,-6 +0,-17 +0,-5 +0,-17 +0,-9 +0,-14 +0,-11 +0,-5 +0,-18 +0,-5 +0,-16 +0,-5 +0,-11 +0,-14 +0,-5 +0,-17 +0,-5 +0,-17 +0,-5 +0,-17 +0,-13 +0,-8 +0,-12 +0,-7 +0,-18 +0,-6 +0,-17 +0,-7 +0,-14 +0,-10 +0,-12 +0,-10 +0,-9 +0,-15 +0,-5 +0,-13 +0,-10 +0,-15 +0,-8 +0,-17 +0,-6 +0,-13 +0,-11 +0,-12 +0,-11 +0,-13 +0,-10 +0,-13 +0,-5 +0,-18 +0,-5 +0,-14 +0,-11 +0,-17 +0,-5 +0,-17 +0,-6 +0,-13 +0,-13 +0,-6 diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs index d2b36b111..c9945fb1e 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs @@ -9,10 +9,83 @@ using System.Threading.Tasks; using System.Collections.Generic; using Tango.PMR.Printing; using Tango.Stubs; +using Tango.PMR.Stubs; + +const string File_Name = @"P:\Scripts\Assemblies\Dryer\Dryer_Tset.CSV"; //3 hour public void OnExecute(StubManager stubManager) { + int j; + + stubManager.WriteToFile(File_Name,DateTime.Now +" " ); + + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200); + + for (int i=0;i<5;i++) + + { + stubManager.WriteLine("--------------------loop number " + i +" ---------------------" ); + + Blower_190(); + stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); + stubManager.WriteLine("Heating to 190 " ); + stubManager.AppendToFile(File_Name,"Heating to 190 " ); + + stubManager.AppendToFile(File_Name,DateTime.Now +" " ); + + j=0; + + while (j==0) + { + var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp + + stubManager.WriteLine(response.TemperatureCMultBy100/100); + stubManager.AppendToFile(File_Name," " + response.TemperatureCMultBy100/100); + stubManager.Write("\n"); + if (response.TemperatureCMultBy100>(18900)) //18900 + j=1; + Thread.Sleep(1000); + + } +// stubManager.WriteLine("start motor " ); + +// stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3, true, 2200); //rotate Dryer Motor. +// Thread.Sleep(1000*20);// + stubManager.AppendToFile(File_Name,DateTime.Now +" " ); + + Thread.Sleep(1000*60*2);//2 minits +// stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,3,3); //stop motor +// stubManager.WriteLine("stop motor " ); + + Blower_0(); + stubManager.WriteLine("cooling down " ); + stubManager.AppendToFile(File_Name,"cooling down " ); + stubManager.AppendToFile(File_Name,DateTime.Now +" "); + + j=0; + while (j==0) + { + var response1 = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" ,6); //read air temp + stubManager.WriteLine(response1.TemperatureCMultBy100/100); + stubManager.AppendToFile(File_Name, " " + (response1.TemperatureCMultBy100/100)); +stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); + stubManager.Write("\n"); + if (response1.TemperatureCMultBy100<6000)// + j=1; + Thread.Sleep(1000); + + } + stubManager.AppendToFile(File_Name,DateTime.Now +" " ); + + + } + +} + +void Blower_190() + + { UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); ProcessParameters processParameters = new ProcessParameters(); @@ -29,8 +102,8 @@ processParameters.HeadZone3Temp = 0; processParameters.HeadZone4Temp = 0; processParameters.HeadZone5Temp = 0; processParameters.HeadZone6Temp = 0; -processParameters.DryerAirFlow = 0; -processParameters.DryerZone1Temp = 100; +processParameters.DryerAirFlow = 5; +processParameters.DryerZone1Temp = 190; processParameters.DryerZone2Temp = 0; processParameters.DryerZone3Temp = 0; processParameters.DryerBufferLength = 0; @@ -53,5 +126,49 @@ uploadProcessParametersRequest.ProcessParameters = processParameters; var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); +} +void Blower_0() + + { +UploadProcessParametersRequest uploadProcessParametersRequest = new UploadProcessParametersRequest(); + +ProcessParameters processParameters = new ProcessParameters(); +processParameters.DyeingSpeed = 0; +processParameters.MinInkUptake = 0; +processParameters.MaxInkUptake = 0; +processParameters.FeederTension = 0; +processParameters.PullerTension = 0; +processParameters.WinderTension = 0; +processParameters.MixerTemp = 0; +processParameters.HeadZone1Temp = 0; +processParameters.HeadZone2Temp = 0; +processParameters.HeadZone3Temp = 0; +processParameters.HeadZone4Temp = 0; +processParameters.HeadZone5Temp = 0; +processParameters.HeadZone6Temp = 0; +processParameters.DryerAirFlow = 5; +processParameters.DryerZone1Temp = 00; +processParameters.DryerZone2Temp = 0; +processParameters.DryerZone3Temp = 0; +processParameters.DryerBufferLength = 0; +processParameters.HeadAirFlow = 0; +processParameters.TableIndex = 0; +processParameters.HeadZone7Temp = 0; +processParameters.HeadZone8Temp = 0; +processParameters.HeadZone9Temp = 0; +processParameters.HeadZone10Temp = 0; +processParameters.HeadZone11Temp = 0; +processParameters.HeadZone12Temp = 0; +processParameters.RBlowerFlow = 0; +processParameters.RBlowerTemp = 0; +processParameters.LBlowerFlow = 0; +processParameters.LBlowerTemp = 0; +processParameters.PressureBuildUp = 0; + +uploadProcessParametersRequest.ProcessParameters = processParameters; + + + + var response = stubManager.Run<UploadProcessParametersResponse>(uploadProcessParametersRequest); }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs new file mode 100644 index 000000000..92c50a57e --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_Test.cs @@ -0,0 +1,34 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ +int Delay_UP=200; //msec +int Delay_stop=500; +int Delay_limit=1000; + + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch + Thread.Sleep(1000); + while (true) + { + + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN down up + Thread.Sleep(Delay_UP); + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN + Thread.Sleep(Delay_stop); + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch + Thread.Sleep(Delay_limit); + + } + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs new file mode 100644 index 000000000..6d71a9ac3 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_test.cs @@ -0,0 +1,32 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + int sleep_up=4000;//2 second + int sleep_dn=1000;//2 second + while (true) + { + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down + Thread.Sleep(sleep_dn); + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up + Thread.Sleep(sleep_up); + + } + // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown + // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up + + + + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs new file mode 100644 index 000000000..6730fe86c --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position.cs @@ -0,0 +1,93 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + + + + +const Int32 x_ABS_POS = 0x01; +const Int32 x_EL_POS = 0x02; +const Int32 x_MARK = 0x03; +const Int32 x_SPEED = 0x04; +const Int32 x_ACC = 0x05; +const Int32 x_DEC = 0x06; +const Int32 x_MAX_SPEED = 0x07; +const Int32 x_MIN_SPEED = 0x08; +const Int32 x_FS_SPD = 0x15; +const Int32 x_KVAL_HOLD = 0x09; +const Int32 x_KVAL_RUN = 0x0A; +const Int32 x_KVAL_ACC = 0x0B; +const Int32 x_KVAL_DEC = 0x0C; +const Int32 x_INT_SPD = 0x0D; +const Int32 x_ST_SLP = 0x0E; +const Int32 x_FN_SLP_ACC = 0x0F; +const Int32 x_FN_SLP_DEC = 0x10; +const Int32 x_K_THERM = 0x11; +const Int32 x_ADC_OUT = 0x12; +const Int32 x_OCD_TH = 0x13; +const Int32 x_STALL_TH = 0x14; +const Int32 x_STEP_MODE = 0x16; +const Int32 x_ALARM_EN = 0x17; +const Int32 x_CONFIG = 0x18; +const Int32 x_STATUS = 0x19; +//------------------------------- +const Int32 x_GET_PARAM = 0x20; +//------------------------------- +const Int32 F1_LS_02_Direct = 0x60000030 ; +const Int32 F1_LS_LSPARE2 = 0x0004; //up + + + + + + + + + + + + + +public void OnExecute(StubManager stubManager) +{ + int counter; + + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); + response.RecivedData=response.RecivedData & 0x00ffffff; + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\n"); + + +//----------------------------------------- check F1_LS_LDANCER2_UP ------------------------------------------------- + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,17,false,100); //move Lloading up + counter =0; + while ( counter < 800) + { + counter = counter + 1; +var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move down + if ((response1.Value & F1_LS_LSPARE2) != F1_LS_LSPARE2 ) + counter=350; + + Thread.Sleep(100); + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); + response.RecivedData=response.RecivedData & 0x00ffffff; + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\n"); + + + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position1.cs new file mode 100644 index 000000000..c578c8152 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position1.cs @@ -0,0 +1,104 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + + + + +const Int32 x_ABS_POS = 0x01; +const Int32 x_EL_POS = 0x02; +const Int32 x_MARK = 0x03; +const Int32 x_SPEED = 0x04; +const Int32 x_ACC = 0x05; +const Int32 x_DEC = 0x06; +const Int32 x_MAX_SPEED = 0x07; +const Int32 x_MIN_SPEED = 0x08; +const Int32 x_FS_SPD = 0x15; +const Int32 x_KVAL_HOLD = 0x09; +const Int32 x_KVAL_RUN = 0x0A; +const Int32 x_KVAL_ACC = 0x0B; +const Int32 x_KVAL_DEC = 0x0C; +const Int32 x_INT_SPD = 0x0D; +const Int32 x_ST_SLP = 0x0E; +const Int32 x_FN_SLP_ACC = 0x0F; +const Int32 x_FN_SLP_DEC = 0x10; +const Int32 x_K_THERM = 0x11; +const Int32 x_ADC_OUT = 0x12; +const Int32 x_OCD_TH = 0x13; +const Int32 x_STALL_TH = 0x14; +const Int32 x_STEP_MODE = 0x16; +const Int32 x_ALARM_EN = 0x17; +const Int32 x_CONFIG = 0x18; +const Int32 x_STATUS = 0x19; +//------------------------------- +const Int32 x_GET_PARAM = 0x20; +//------------------------------- +const Int32 F1_LS_02_Direct = 0x60000030 ; +const Int32 F1_LS_LSPARE2 = 0x0004; //up + + + + + + + + + + + + + +public void OnExecute(StubManager stubManager) +{ + int counter; + + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); + response.RecivedData=response.RecivedData & 0x00ffffff; + stubManager.WriteHex(response.RecivedData,8); + stubManager.Write("\n"); + + var response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); + response3.RecivedData=response3.RecivedData & 0x00007; + + stubManager.WriteHex(response3.RecivedData,4); + stubManager.Write("\nNober uStep is - "); + if (response3.RecivedData>4) + response3.RecivedData=4; + stubManager.WriteLine(Math.Pow(2,response3.RecivedData)); + + +//----------------------------------------- check F1_LS_LDANCER2_UP ------------------------------------------------- + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,17,false,100); //move Lloading up + counter =0; + while ( counter < 800) + { + counter = counter + 1; +var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move down + if ((response1.Value & F1_LS_LSPARE2) != F1_LS_LSPARE2 ) + counter=900; + + Thread.Sleep(100); + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z + +var response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); + response2.RecivedData=response2.RecivedData & 0x00ffffff; + stubManager.WriteHex(response2.RecivedData,8); + stubManager.Write("\n"); + + stubManager.Write("Motor positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData))); + + + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position2.cs new file mode 100644 index 000000000..ebd2cf414 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/LTFU/LTFU_Right_Position2.cs @@ -0,0 +1,145 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + + + + +const Int32 x_ABS_POS = 0x01; +const Int32 x_EL_POS = 0x02; +const Int32 x_MARK = 0x03; +const Int32 x_SPEED = 0x04; +const Int32 x_ACC = 0x05; +const Int32 x_DEC = 0x06; +const Int32 x_MAX_SPEED = 0x07; +const Int32 x_MIN_SPEED = 0x08; +const Int32 x_FS_SPD = 0x15; +const Int32 x_KVAL_HOLD = 0x09; +const Int32 x_KVAL_RUN = 0x0A; +const Int32 x_KVAL_ACC = 0x0B; +const Int32 x_KVAL_DEC = 0x0C; +const Int32 x_INT_SPD = 0x0D; +const Int32 x_ST_SLP = 0x0E; +const Int32 x_FN_SLP_ACC = 0x0F; +const Int32 x_FN_SLP_DEC = 0x10; +const Int32 x_K_THERM = 0x11; +const Int32 x_ADC_OUT = 0x12; +const Int32 x_OCD_TH = 0x13; +const Int32 x_STALL_TH = 0x14; +const Int32 x_STEP_MODE = 0x16; +const Int32 x_ALARM_EN = 0x17; +const Int32 x_CONFIG = 0x18; +const Int32 x_STATUS = 0x19; +//------------------------------- +const Int32 x_GET_PARAM = 0x20; +//------------------------------- +const Int32 F1_LS_02_Direct = 0x60000030 ; +const Int32 F1_LS_LSPARE2 = 0x0004; //up +const Int32 F1_LS_LDANCER1_UP = 0x1000; + + + + + + + + + + + + + +public void OnExecute(StubManager stubManager) +{ + int counter; + + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); + response.RecivedData=response.RecivedData & 0x00ffffff; + stubManager.WriteHex(response.RecivedData,8); + stubManager.Write("\n"); + + var response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); + response3.RecivedData=response3.RecivedData & 0x00007; + + stubManager.WriteHex(response3.RecivedData,4); + stubManager.Write("\nNober uStep is - "); + if (response3.RecivedData>4) + response3.RecivedData=4; + stubManager.WriteLine(Math.Pow(2,response3.RecivedData)); + + +//----------------------------------------- check F1_LS_LDANCER2_UP ------------------------------------------------- + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,17,false,100); //move Lloading up + counter =0; + while ( counter < 800) + { + counter = counter + 1; +var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move down + if ((response1.Value & F1_LS_LSPARE2) != F1_LS_LSPARE2 ) + counter=900; + + Thread.Sleep(100); + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,17, 3); //hold Ldancer high z + +var response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,17, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); + response2.RecivedData=response2.RecivedData & 0x00ffffff; + stubManager.WriteHex(response2.RecivedData,8); + stubManager.Write("\n"); + + stubManager.Write("Motor Puller positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData))); +//--------------------------------------------------------------------------------------------------------------------- + + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); + response.RecivedData=response.RecivedData & 0x00ffffff; + stubManager.WriteHex(response.RecivedData,8); + stubManager.Write("\n"); + + response3 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); + response3.RecivedData=response3.RecivedData & 0x00007; + + stubManager.WriteHex(response3.RecivedData,4); + stubManager.Write("\nNober uStep is - "); + if (response3.RecivedData>4) + response3.RecivedData=4; + stubManager.WriteLine(Math.Pow(2,response3.RecivedData)); + + +//----------------------------------------- check F1_LS_LDANCER2_UP ------------------------------------------------- + stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,16,false,100); //move Lloading up + counter =0; + while ( counter < 800) + { + counter = counter + 1; + var response8 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_LS_02_Direct); //if F1_LS_LSPARE2 is up then move up + if ((response8.Value & F1_LS_LDANCER1_UP) !=F1_LS_LDANCER1_UP ) //if F1_LS_LDANCER1_UP is up then error + counter=900; + + Thread.Sleep(100); + } + stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,16, 3); //hold Ldancer high z + + response2 = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,16, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); + response2.RecivedData=response2.RecivedData & 0x00ffffff; + stubManager.WriteHex(response2.RecivedData,8); + stubManager.Write("\n"); + + stubManager.Write("Motor Winder positon is - "+ (response2.RecivedData-response.RecivedData)/(Math.Pow(2,response3.RecivedData))); + + + + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors.cs index 9af524c88..7c0243c49 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/Calibrate_Midtank_pressure_sensors.cs @@ -12,7 +12,7 @@ using Tango.PMR.EmbeddedParameters; using Tango.Stubs; //---------------------- -const double MIN_SLOP=0.8; +const double MIN_SLOP=0.7; const double MAX_SLOP=1.4; const double ERROR_SLOP=-1; const double MIN_50cc_on_volt=2.3; diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs new file mode 100644 index 000000000..254a3143b --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs @@ -0,0 +1,450 @@ +using System; +using System.IO; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.PMR.EmbeddedParameters; +using Tango.Stubs; + +//---------------------- +const double MIN_SLOP=0.7; +const double MAX_SLOP=1.4; +const double ERROR_SLOP=-1; +const double MIN_50cc_on_volt=2.3; +const double MAX_50cc_on_volt=3.2; +const double ERROR_50cc_on_volt=-1; + +int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8}; +uint [,] ADC_Add_Chnl = new uint [8,2] { + {0x44,0x20}, + {0x44,0x08}, + {0x46,0x80}, + {0x46,0x20}, + {0x44,0x10}, + {0x44,0x04}, + {0x46,0x40}, + {0x46,0x10}, + }; + + +const Int32 F3_VALVE_OUT = 0x600008E2 ; +string Machine_SN ; +private const string FILE_PATH = @"C:\MidTankLog\"; +string File_name; +double [,] voltage_array = new double[9,9]; +string [] Parameter = new string[5] {"\t","Empty [V]","100cc [V]","800cc [V]"," b [L/V] "}; + +//---------------------- +const Int32 I2C_ID = 2; +//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46 +//---------------------- + + + + + + + + + + + +public void OnExecute(StubManager stubManager) +{ + Int32 midtankno = 0; + double Slop; + double Zero_Point; + + + if (!Directory.Exists(FILE_PATH)) + { + Directory.CreateDirectory(FILE_PATH); + } + + + + var response = stubManager.ShowResponseWindow("Enter Midtank S/N: ", ""); + stubManager.Write("\n"); + Machine_SN = response; + stubManager.WriteLine(Machine_SN); + File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".LOG"; + stubManager.Write(File_name); + stubManager.WriteToFile(File_name,"MidTank S/N:" + Machine_SN); + +// voltage_array[1,0]=1; +// voltage_array[2,0]=2; +// voltage_array[3,0]=3; +// voltage_array[4,0]=4; +// voltage_array[5,0]=5; +// voltage_array[6,0]=6; +// voltage_array[7,0]=7; +// voltage_array[8,0]=8; + + + + var response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", ""); + stubManager.WriteLine(response1); + midtankno = Int32.Parse(response1); + stubManager.WriteToFile(File_name,"MidTank Number:\t" + response1); + + + + + string box_msg = "Please Insert cartridge "; +// string box_title = "Midatnk empty"; +// MessageBox.Show(box_msg, box_title); + MessageBox.Show(box_msg); + + open_valve(midtankno,1,1) ; //open Air valve + open_valve(midtankno,0,1) ; //open Ink valve + + + + + + + + + + + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x000f); // open all valve air of midtank and close all ink of midtank + Thread.Sleep(500); + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x00ff); // open all valve air of midtank and close all ink of midtank + Thread.Sleep(500); + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0fff); // open all valve air of midtank and close all ink of midtank + Thread.Sleep(500); + stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0xffff); // open all valve air and ink of midtank + + Thread.Sleep(2500); + + Thread.Sleep(1000); + + read_pressure_sensor(1); + + box_msg ="Insert 100cc of appropriate ink/lube to each midtank\n\t1.black ink\n\t2. Magenta ink\n\t3. Transparent ink\n\t4. Cleaner\n\t5. Cyan ink\n\t6. Yellow ink\n\t7. Spot color\n\t8. Lubricant/n"; + MessageBox.Show(box_msg); + + read_pressure_sensor(2); + + // voltage_array[3,2]=2.5; + + box_msg = "Add another 700cc for ink and TI \nFor Lubbricant add 500cc only."; + MessageBox.Show(box_msg); + read_pressure_sensor(3); + stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0000); // close all valve air and ink of midtank + // voltage_array[3,3]=4.5; + + calc_slop(); + print_table(); + + insert_slop_t_eeprom(); + box_msg ="Turn Power Off and On to finish the calibration."; + MessageBox.Show(box_msg); + + } + +int calc_slop() + { + stubManager.Write("\n "); + + double delta; + for (uint i=1;i<9;i++) + { + delta=voltage_array[i,3]-voltage_array[i,2]; + + stubManager.Write("\nMidtank No:"+i +"="+delta); + if (i==8) + delta=0.5/delta; //0.5 litter on lubricant + else + delta=0.7/delta; //0.7 litter + + if ((delta<MIN_SLOP) || (delta >MAX_SLOP)) + { + voltage_array[i,4]=ERROR_SLOP; + // stubManager.Write("123"); + } + else if ((voltage_array[i,2]<MIN_50cc_on_volt) || (voltage_array[i,2]>MAX_50cc_on_volt )) + voltage_array[i,4]=ERROR_SLOP; + else + voltage_array[i,4]=delta; + } + return 1; + } + + + int insert_slop_t_eeprom() +{ + stubManager.Write("\n "); + + MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); + + + for (uint i=1;i<9;i++) + { + if (voltage_array[i,4]!= ERROR_SLOP) + { + MidTankData midTankData = new MidTankData(); + midTankData.MidTankId = i-1; + midTankData.InitialOffsetA = voltage_array[i,2]; + midTankData.SlopeB = voltage_array[i,4]; + + stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]); + + + midTankDataSetupRequest.MidTankInfo.Add(midTankData); + + } +var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); + + + + } + + +return 1; +} + + + +int print_table() + { + + for (uint i=0;i<5;i++) + { + stubManager.AppendToFile(File_name,Parameter[i]+"\t"+voltage_array[1,i]+"\t"+voltage_array[2,i]+"\t"+voltage_array[3,i]+"\t"+voltage_array[4,i]+"\t"+voltage_array[5,i]+"\t"+voltage_array[6,i]+"\t"+voltage_array[7,i]+"\t"+voltage_array[8,i]) ; + } + + + return 1; + + } + + + +int adc_configuration(uint I2C_Slave_Add,uint channel ) + { + StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); + stubI2CWriteBytesRequest.I2CId = I2C_ID; + stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; + + UInt32 uInt32 = new UInt32(); + stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels + stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write + + var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); + + return 1; + } + + +int adc_set_for_read_ch(uint I2C_Slave_Add) + { + StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); + stubI2CWriteBytesRequest.I2CId = I2C_ID; + stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; + + UInt32 uInt32 = new UInt32(); + stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write + + var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); + + return 1; + } + + + + +int adc_read_ch(uint I2C_Slave_Add,uint table_index_x,uint table_index_y) + { + StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); + stubI2CReadBytesRequest.I2CId = I2C_ID; + stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add; + stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read + + var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); + uint temph=0; + uint templ=0; + uint temp; + double calc; + double calc1; + double calc2; + temph=response1.ReadBytes[0]; + templ=response1.ReadBytes[1]; + temp = (temph << 8) | templ; + temp=temp & 0x0fff; + + calc = (double)temp *2.5 / 4096.0; + stubManager.Write("ADC [volts]:\t"); + stubManager.Write(calc+"\t"); + + calc1 = (1.96- calc) * 4.64 + 1.96; + stubManager.Write("Vsensor [volts]:\t"); + stubManager.Write(calc1); + + voltage_array[table_index_x,table_index_y]=calc1; + + return 1; + } + +int read_pressure_sensor(uint i ) + { + + stubManager.Write("\n-----------MIDTANK_PRESSESENS-------test_no= "+i); + + stubManager.Write("\n1_1= "); + + adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2 + adc_set_for_read_ch(0x44); + adc_read_ch(0x44,1,i); + + stubManager.Write("\n2_1= "); + adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4 + adc_set_for_read_ch(0x44); + adc_read_ch(0x44,2,i); + + stubManager.Write("\n3_1= "); + adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0 + adc_set_for_read_ch(0x46); + adc_read_ch(0x46,3,i); + + stubManager.Write("\n4_1= "); + adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2 + adc_set_for_read_ch(0x46); + adc_read_ch(0x46,4,i); + + stubManager.Write("\n1_2= "); + adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3 + adc_set_for_read_ch(0x44); + adc_read_ch(0x44,5,i); + + stubManager.Write("\n2_2= "); + adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5 + adc_set_for_read_ch(0x44); + adc_read_ch(0x44,6,i); + + stubManager.Write("\n3_2= "); + adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1 + adc_set_for_read_ch(0x46); + adc_read_ch(0x46,7,i); + + stubManager.Write("\n4_2= "); + adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3 + adc_set_for_read_ch(0x46); + adc_read_ch(0x46,8,i); + + return 1; + } +//strat mat + +//-------------------------------- +int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak +{ + int temp1=Convert_Midtank_No[valve_nm-1] ; + + string temp; + SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1); + + if (check_valve!=0) + { + temp="Air"; + if (valve_type==1) + temp="Ink"; + + DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo); + if(result == DialogResult.No) + { +// Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; + stubManager.Write(temp +"Valve\tFail\n"); + return 0; + } + else + { +// Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; + stubManager.Write(temp +"Valve\tOpen\n"); + return 1; + } + + } + return 1; + +} +//-------------------------------- +int close_valve (int valve_nm,int valve_type,int check_valve) +{ + int temp1=Convert_Midtank_No[valve_nm-1]; + + string temp; + SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0); + if (check_valve!=0) + { + temp="Air"; + if (valve_type==1) + temp="Ink"; + + DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo); + if(result == DialogResult.No) + { +// Units_status[(valve_nm-1)*3+valve_type,1]="Fail"; + stubManager.Write(temp +"Valve\tFail\n"); + return 0; + } + else + { +// Units_status[(valve_nm-1)*3+valve_type,1]="Pass"; + stubManager.Write(temp +"Valve\tclose\n"); + return 1; + } + } + return 1; + +} + +public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit) +{ + Int32 BitMask; + var RetVal = Fpga_Read_Reg(Adr); + Int32 RV = (Int32) RetVal.Value; + + if (Bit == 0x1) + { + BitMask = 0x1 << BitNo; + RV = RV | BitMask; + Fpga_Write_Reg( Adr, RV ); + } + else if (Bit == 0x0) + { + BitMask = ~(0x1 << BitNo); + RV = RV & BitMask; + Fpga_Write_Reg(Adr, RV ); + } + return 1; +} + +int Fpga_Write_Reg(Int32 Addr, Int32 Data) +{ + var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data); + + return 1; +} + + + +StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr) +{ + var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr); + response.Value = response.Value & 0xffff; + + return response; +} + + + + +//end mati
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams1.cs new file mode 100644 index 000000000..d3aa81e83 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams1.cs @@ -0,0 +1,151 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; +using Tango.PMR.EmbeddedParameters; + +public void OnExecute(StubManager stubManager) +{ + uint midtankno = 0; + double Slop; + double Zero_Point; + +MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); + + var response = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", ""); + //stubManager.WriteLine(response); + stubManager.Write("\n"); + midtankno = uint.Parse(response); + + var response1 = stubManager.ShowResponseWindow("Enter Midtank Slop ", ""); + //stubManager.WriteLine(response); + stubManager.Write("\n"); + Slop = double.Parse(response1); + + var response2= stubManager.ShowResponseWindow("Enter Zero point (100cc)", ""); + //stubManager.WriteLine(response); + stubManager.Write("\n"); + Zero_Point = double.Parse(response2); + + DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + "with Slop "+ Slop +" and Zero_Point " + Zero_Point , "Warning",MessageBoxButtons.YesNo); + if(result == DialogResult.Yes) + { + MidTankData midTankData = new MidTankData(); + midTankData.MidTankId = midtankno-1; + midTankData.InitialOffsetA = Zero_Point; + midTankData.SlopeB = Slop; + midTankDataSetupRequest.MidTankInfo.Add(midTankData); + var response3 = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); + string box_msg ="Turn Power Off and On to finish the calibration."; + MessageBox.Show(box_msg); + + } + +} + + + +//MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); + +//50cc [V] 1.93242734375 1.94375546875 1.9295953125 1.935259375 1.92109921875 2.8245171875 1.92676328125 1.92676328125 + //b [mL/V] -1 -1 -1 -1 -1 0.885922630082808 -1 -1 +/* +MidTankData midTankData = new MidTankData(); +midTankData.MidTankId = 0; +midTankData.InitialOffsetA = 2.64273428916931; +midTankData.SlopeB = 0.899999976158142; + +MidTankData midTankData1 = new MidTankData(); +midTankData1.MidTankId = 1; +midTankData1.InitialOffsetA = 2.63755464553833; +midTankData1.SlopeB = 0.899999976158142; + +MidTankData midTankData2 = new MidTankData(); +midTankData2.MidTankId = 2; +midTankData2.InitialOffsetA = 2.63525938987732; +midTankData2.SlopeB = 0.899999976158142; + +MidTankData midTankData3 = new MidTankData(); +midTankData3.MidTankId = 3; +midTankData3.InitialOffsetA = 1.4276158142; +midTankData3.SlopeB = 0.899999976158142; + + +MidTankData midTankData4 = new MidTankData(); +midTankData4.MidTankId = 4; +midTankData4.InitialOffsetA = 2.61099219322205; +midTankData4.SlopeB = 0.899999976158142; + + +MidTankData midTankData5 = new MidTankData(); +midTankData5.MidTankId = 5; +midTankData5.InitialOffsetA = 2.62451720237732; +midTankData5.SlopeB = 0.899999976158142; + + +MidTankData midTankData6 = new MidTankData(); +midTankData6.MidTankId = 6; +midTankData6.InitialOffsetA = 2.62676334381104; +midTankData6.SlopeB = 0.899999976158142; + +MidTankData midTankData7 = new MidTankData(); +midTankData7.MidTankId = 7; +midTankData7.InitialOffsetA = 2.62676334381104; +midTankData7.SlopeB = 0.899999976158142; + + + +midTankDataSetupRequest.MidTankInfo.Add(midTankData); +midTankDataSetupRequest.MidTankInfo.Add(midTankData1); +midTankDataSetupRequest.MidTankInfo.Add(midTankData2); +midTankDataSetupRequest.MidTankInfo.Add(midTankData3); +midTankDataSetupRequest.MidTankInfo.Add(midTankData4); +midTankDataSetupRequest.MidTankInfo.Add(midTankData5); +midTankDataSetupRequest.MidTankInfo.Add(midTankData6); +midTankDataSetupRequest.MidTankInfo.Add(midTankData7); + + +var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); + */ + +//} + +/* + int insert_slop_t_eeprom() +{ + stubManager.Write("\n "); + + MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest(); + + + for (uint i=1;i<9;i++) + { + if (voltage_array[i,4]!= ERROR_SLOP) + { + MidTankData midTankData = new MidTankData(); + midTankData.MidTankId = i-1; + midTankData.InitialOffsetA = voltage_array[i,2]; + midTankData.SlopeB = voltage_array[i,4]; + + stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]); + + + midTankDataSetupRequest.MidTankInfo.Add(midTankData); + + } +var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest); + + + + } +} + +*/ + diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs new file mode 100644 index 000000000..505444080 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev2.cs @@ -0,0 +1,292 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +//unmark Auto logging ! + +//General Configuration +const Int32 x_ABS_POS = 0x01; +const Int32 x_EL_POS = 0x02; +const Int32 x_MARK = 0x03; +const Int32 x_SPEED = 0x04; +const Int32 x_ACC = 0x05; +const Int32 x_DEC = 0x06; +const Int32 x_MAX_SPEED = 0x07; +const Int32 x_MIN_SPEED = 0x08; +const Int32 x_ADC_OUT = 0x12; +const Int32 x_OCD_TH = 0x13; +const Int32 x_FS_SPD = 0x15; +const Int32 x_STEP_MODE = 0x16; +const Int32 x_ALARM_EN = 0x17; +const Int32 x_POWERSTEP01_GATECFG1 = 0x18; +const Int32 x_POWERSTEP01_GATECFG2 = 0x19; +const Int32 x_POWERSTEP01_CONFIG = 0x1A; +const Int32 x_POWERSTEP01_STATUS = 0x1B; +//VOLTAGE / CURRENT +const Int32 x_KTVAL_HOLD = 0x09; +const Int32 x_KTVAL_RUN = 0x0A; +const Int32 x_KTVAL_ACC = 0x0B; +const Int32 x_KTVAL_DEC = 0x0C; +const Int32 x_ST_SLP_T_FAST = 0x0E; +const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F; +const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10; + +const Int32 x_INT_SPD = 0x0D;//voltage +const Int32 x_K_THERM = 0x11;//VOLTAGE +const Int32 x_STALL_TH = 0x14;//VOLTAGE + +//------------------------------- +const Int32 x_GET_PARAM = 0x20; +//------------------------------- +Int32 Start_index = 0; // start from motor + +const Int32 Max_Motor_ID = 25; + +string[] Motor_ID = new string[30]; + + +Motor_ID[0] ="DH_CLEANHEAD "; +Motor_ID[1] ="DH_CLEANMECH "; +Motor_ID[2] ="DH_LID "; +Motor_ID[3] ="DRYER_DRIVING"; +Motor_ID[4] ="DRYER_LID "; +Motor_ID[5] ="DRYER_LOADARM"; +Motor_ID[6] ="DISPENCER_1 "; +Motor_ID[7] ="DISPENCER_2 "; +Motor_ID[8] ="DISPENCER_3 "; +Motor_ID[9] ="DISPENCER_4 "; +Motor_ID[10]="DISPENCER_5 "; +Motor_ID[11]="DISPENCER_6 "; +Motor_ID[12]="DISPENCER_7 "; +Motor_ID[13]="DISPENCER_8 "; +Motor_ID[14]="SCREW "; +Motor_ID[15]="WINDER "; +Motor_ID[16]="LDANCER1 "; +Motor_ID[17]="LDANCER2 "; +Motor_ID[18]="LDRIVING "; +Motor_ID[19]="LLODING "; +Motor_ID[20]="LPIVOT "; +Motor_ID[21]="RDANCER "; +Motor_ID[22]="RDRIVING "; +Motor_ID[23]="RLOADARM "; +Motor_ID[24]="RLODING "; +Motor_ID[25]="SPARE1_1 "; +Motor_ID[26]="SPARE1_2 "; +Motor_ID[27]="SPARE2_1 "; +Motor_ID[28]="SPARE2_2 "; +Motor_ID[29]="SPARE3 "; + + + + +public void OnExecute(StubManager stubManager) +{ + Int32 i = 0; + + Int32 motname = 0; +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); + + for (i = Start_index; i < Max_Motor_ID; i++) + { + + if((i%8 ==0) ) + { + stubManager.Write("\n\n"); + stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tOCD_TH\t\tSTALL_TH\tFS_SPD\n"); + stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n"); + } + //stubManager.Write(i); + + stubManager.Write(Motor_ID[i]); + stubManager.Write("\t\t"); + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + stubManager.Write("\n\n"); + + } + + + + for (i = Start_index; i < Max_Motor_ID; i++) + { + + if((i%8 ==0) ) + { + stubManager.Write("\n\n"); + + stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC_TON_MIN\tSLP_DEC_TOFF_MIN\n"); + stubManager.Write("-----\t\t\t-------\t------\t\t---------------\t----------------\n"); + } + + stubManager.Write(Motor_ID[i]); + +// stubManager.Write(i); + stubManager.Write("\t\t"); + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + stubManager.Write("\n\n"); + + } + + + for (i = Start_index; i < Max_Motor_ID; i++) + { + + if((i%8 ==0) ) + { + stubManager.Write("\n\n"); + + stubManager.Write("MoTor\t\t\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); + stubManager.Write("-----\t\t\t------------\t\t-----------\t\t-------------\t\t------------\n"); + } + + stubManager.Write(Motor_ID[i]); + stubManager.Write("\t\t"); + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\n\n"); + + + } + + for (i = Start_index; i < Max_Motor_ID; i++) + { + + if((i%8 ==0) ) + { + stubManager.Write("\n\n"); + + stubManager.Write("MoTor\t\t\tABS_POS\tEL_POS\t\tMARK\t\tSPEED\t\tALARM_EN\tK_THERM\tADC_OUT\tDriver_Type\n"); + stubManager.Write("-----\t\t\t-------\t------\t\t----\t\t-----\t\t--------\t--------\t------\t\t---------\n"); + } + + stubManager.Write(Motor_ID[i]); + + stubManager.Write("\t\t"); + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0); + stubManager.WriteHex((response.RecivedData * 1000.0 / 67108.0),4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + if( response.RecivedData > 0x15 && response.RecivedData < 0x1c ) + stubManager.Write("\t\tDual_Driver"); + else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 ) + stubManager.Write("\t\tVolage_Driver"); + else if ( response.RecivedData > 8 && response.RecivedData < 0x0a) + stubManager.Write("\t\tCurrent_Driver"); + else + stubManager.Write("\t\tNo_Driver"); + + stubManager.Write("\n\n"); + + } + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs new file mode 100644 index 000000000..f448e0971 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/RTFU/RTFU_SSI1.cs @@ -0,0 +1,93 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +include "..\..\Defines\Tango_Defines_Basic.cs" +include "Tango_Defines_SSI.cs" +//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs" +//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_SSI.cs" +const Int32 F1_RDANCER_ROTENC_DATA_p_RX_lsb = 0x600001a0; +const Int32 F1_RDANCER_ROTENC_DATA_p_RX_msb = 0x600001a2; +const Int32 F1_RDANCER_ROTENC_DATA_p_TX = 0x600001ae; + + + + + +public void OnExecute(StubManager stubManager) +{ + + int k = 0; + + Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1,0 ); + Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2,0 ); + + //Set output clock frequency to about 200 kHz + Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg1, 0x0024, 0); + Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg2, 0x0024, 0); + + Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1, 0); + Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2, 0); + + for (int i = 0; i < 100; i++) + { + + + stubManager.Write("RDANCER1 - "+ ReadEncoder()+ "\n" ); + + + + + Thread.Sleep(400); + + + + + + + + + + + + + + + + + +// SSI_Read_Write(FPGA1, F1_RDANCER_ROTENC_MSB, F1_RDANCER_ROTENC_LSB, F1_RDANCER_ROTENC_TX); +// SSI_Read_Write(FPGA1, F1_RSPARE_ROTENC_MSB, F1_RSPARE_ROTENC_LSB, F1_RSPARE_ROTENC_TX); +// stubManager.Write("\n"); +// k++; +// if ( (k & 0x8) == 0x08 ) { +// k = 0; +// stubManager.Write(" RDANCER RSpeed \n"); +// } +// Thread.Sleep(400); + } + + +} + +Int32 ReadEncoder() +{ + Int32 temp; + stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F1_RDANCER_ROTENC_DATA_p_TX, 0x0000); //triggers a TX transmission + + var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_lsb); + var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F1_RDANCER_ROTENC_DATA_p_RX_msb); + + temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff)); + + + return temp; +} diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs new file mode 100644 index 000000000..c52424b2f --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/WHS_waste_Tank_Calibration_Save_V0.cs @@ -0,0 +1,90 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +double V0_default_ml = 8.7433; + +public void OnExecute(StubManager stubManager) +{ + var response1 = stubManager.ShowResponseWindow("Warning - you are going to change the value of Vo in the eeprom !!!\nPlease Enter Password to confirme:"); + if (response1=="Aa123456") + { + stubManager.WriteLine(response1); + + //Write_0_Vo_in_ml_to_eeprom + stubManager.WriteLine("\nWrite_0_Vo_in_ml_to_eeprom"); + StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); + stubWhsEEpromRequest.BurnRequest = true; //write + StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); + stubWhsEEpromData.Orifice1Flow = 0; + stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; + var response = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); + + //wait_10mSec + stubManager.WriteLine("\nwait_10mSec"); + Thread.Sleep(100); //Sleep for 10 milli. + + //Read_Vo_in_ml_from_eeprom & verify it is 0 + stubManager.WriteLine("\nRead_Vo_in_ml_from_eeprom & verify it is 0"); + stubWhsEEpromRequest.BurnRequest = false; //write + stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; + var response2 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); + + //Read_Vo_in_mV + stubManager.WriteLine("\nRead_Vo_in_mV"); + var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01); + //Print_Vo_in_mV + stubManager.WriteLine(response3.Progress); + + //check validity + stubManager.WriteLine("\ncheck validity"); + if((response3.Progress <= 800) || (response3.Progress >=1200)) + { + response3.Progress = 1076; //default + stubManager.Write("\nERROR ------ Vreading value outside the defined range !!! ------"); + } + else + { + //calculate_V0_in_ml + stubManager.WriteLine("\ncalculate_V0_in_ml"); + V0_default_ml = V0_default_ml * response3.Progress; + + //print_Vo_in_ml + stubManager.WriteLine("\nprint_Vo_in_ml"); + stubManager.WriteLine(V0_default_ml); + stubManager.WriteLine(""); + + //Write_Vo_in_ml_to_eeprom + stubManager.WriteLine("\nWrite_Vo_in_ml_to_eeprom"); + stubWhsEEpromRequest.BurnRequest = true; //write + + stubWhsEEpromData.Orifice1Flow = V0_default_ml; + stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; + var response4 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); + + //wait_10mSec + stubManager.WriteLine("\nwait_10mSec"); + Thread.Sleep(100); //Sleep for 10 milli. + + //Read_Vo_in_ml_from_eeprom + stubManager.WriteLine("\nRead_Vo_in_ml_from_eeprom"); + stubWhsEEpromRequest.BurnRequest = false; //write + stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; + var response5 = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); + + //Check if we read the correct value + stubManager.WriteLine("\nVerify that we read the correct value of Orifice1Flow!!"); + } + + stubManager.WriteLine("\n -- END OF SCRIPT -- "); + + } +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs new file mode 100644 index 000000000..6e7617cc0 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs @@ -0,0 +1,28 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + int x=80; + + // var response1 = stubManager.ShowResponseWindow("Please Enter fan value from 0 to 255:"); + // int x = Int32.Parse(response1); + + + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac2, x); //whs fan1 full + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac3, x); //whs fan2 full + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac4, x); //whs fan3 full + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac5, x); //whs fan4 full + + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs index d5c98e2cd..c365c4884 100644 --- a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower.cs @@ -16,6 +16,6 @@ public void OnExecute(StubManager stubManager) //Blower speed var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, /*disable control loop*/0x0000 + /* speed =*/0xFFF); //Blower speed // to enable control loop send 0x1000 - // speed max voltage value is 0xFFF + // speed max voltage value is 0xFFF //12 bit (0xFFF) -> 5V }
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs new file mode 100644 index 000000000..740f0778d --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/newWHS/Blower_Data.cs @@ -0,0 +1,28 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ +//show current data +/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3Ea, /*Head_Q=*/0x3000); // +//start/stop whs control and set value +int StopWhsControl = 0; +int RestartWhsControl = 0x1000; + stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/StopWhsControl + 2700); // +// stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/RestartWhsControl +2700); // + +//enable loop +/*var response1 =*/ //stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); // +//500=1F4 +//250=FA + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV new file mode 100644 index 000000000..6473707c7 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Defines/Blowe_RMO_LOG.CSV @@ -0,0 +1,47 @@ +,RPM +0,1672 +1,1628 +2,1633 +3,1672 +4,1672 +5,1628 +6,1666 +7,1672 +8,1628 +9,1672 +10,1628 +11,1628 +12,1628 +13,1628 +14,1666 +15,1672 +16,1628 +17,1628 +18,1628 +19,1628 +20,1666 +21,1628 +22,1672 +23,1672 +24,1628 +25,1672 +26,1628 +27,1628 +28,1666 +29,1666 +30,1628 +31,1623 +32,1672 +33,1628 +34,1628 +35,1633 +36,1628 +37,1666 +38,1628 +39,1672 +40,1666 +41,1623 +42,1672 +43,1633 +44,1633 +45,1672 diff --git a/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs b/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs new file mode 100644 index 000000000..703d34ae9 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Dispenser_setup.cs @@ -0,0 +1,1415 @@ + +//-------------------------------------------------------------------------------- +include "Dispenser_setup_mbar.cs" +include "Dispenser_Motor_stop.cs" +include "Dispenser_setup_form_valve close.cs" +include "Dispenser_setup_form_valve open.cs" +include "Dispenser_Motor_run.cs" +include "Dispenser_Motor_Up.cs" +include "Dispenser_Motor_Down.cs" +include "EEPROM.cs" + +//-------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Tango.PMR.Stubs; +using Tango.Stubs; +using System.IO; + +//-------------------------------------------------------------------------------- +int Characterization; +UInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0}; + +string[] Dispenser_Fname= new string[9]; +string [] Dispenser_name= new string[8]; +string [] PCB_SN= new string[8]; +string [] Dispenser_PN= new string[8]; + +Int32 [,] Dispenser_no = new Int32 [8,2] {{-1,0},{-1,0},{-1,0},{-1,0},{-1,0},{-1,0},{-1,0},{-1,0}}; + +Int32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0}; +Int32 [] max_pressure_level = new Int32 [8] {20000,20000,20000,20000,20000,20000,20000,20000}; +Int32 [] min_pressure_level = new Int32 [8] {-20000,-20000,-20000,-20000,-20000,-20000,-20000,-20000}; + +Int32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0}; +Int32 [] Loop_cnt= new Int32[8]{1,1,1,1,1,1,1,1}; +Int32 [] Loop_length= new Int32[8]{1,1,1,1,1,1,1,1}; + +//byte [] Empty_EEprom=0; + +byte [] Empty_EEprom= new byte[8]; +byte [] Dry_Run_EEprom =new byte[8]; +byte [] Flow_EEprom =new byte[8]; + + + +Int32 msec_index=0; + +byte [] EEPROM_Data = new byte [128]; + +const int X_location =500;//260 +const int Y_location =40; + +Int32 [] Dispenser_sample_rate= new Int32[8]{1,1,1,1,1,1,1,1}; +//int dispenserNumber=1; +//int Table=0; +string shortDateString; +string ButtonPress; +string ButtonName; +UInt32 Type_card; + + +UInt32 RD_LS_01_Direct; +UInt32 RD_LS_02_Direct; +UInt32 RD_LS_03_Direct; +UInt32 RD_LS_04_Direct; + +OpenFileDialog _openFiledialog; + +CancellationTokenSource _cancellationTokenSource; +string path ; +string Tbl_File_Name; + +Int32 Press_Sensor_Type ;//0 - 0-10 Bar ; 1- (-1) - 10 Bar ; +ushort check_sum=0; + +//start mat +//-------------------------------------------------------------------------------- +[STAThread] +public void OnExecute(StubManager stubManager) +{ +Dispenser_Fname[0]=""; +Dispenser_Fname[1]=""; +Dispenser_Fname[2]=""; +Dispenser_Fname[3]=""; +Dispenser_Fname[4]=""; +Dispenser_Fname[5]=""; +Dispenser_Fname[6]=""; +Dispenser_Fname[7]=""; +//---------------------------------------------------------------------------------- +stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0X60000522, 0X128);//0X128 EQULE 50 MSEC + +//--------------------Create form------------------------------------------------- + Form form1 = new Form(); + _openFiledialog = new OpenFileDialog(); +//--------------------Set the caption bar text of the form------------------------ + form1.Text = "Dispenser Test V1.9"; + form1.TopMost = true; +//------- Define the border style of the form to a dialog box--------------------- + form1.FormBorderStyle = FormBorderStyle.FixedDialog; +//------Set the MaximizeBox to false to remove the maximize box------------------- + form1.MaximizeBox = false; +//------Set the MinimizeBox to false to remove the minimize box------------------- + form1.MinimizeBox = false; +//----Set the start position of the form to the center of the screen-------------- + form1.StartPosition = FormStartPosition.CenterScreen; + form1.AutoSize = true; + form1.AutoSizeMode = AutoSizeMode.GrowAndShrink; +//--------------create ListBox -------------------------------------- + // Create an instance of the ListBox. + ListBox listBox1 = new ListBox(); + // Set the size and location of the ListBox. + listBox1.Size = new System.Drawing.Size(200, 80); + listBox1.Location = new System.Drawing.Point(150,400); + // Add the ListBox to the form. + form1.Controls.Add(listBox1); + // Set the ListBox to display items in multiple columns. + listBox1.MultiColumn = false; + // Set the selection mode to multiple and extended. + listBox1.SelectionMode = SelectionMode.MultiExtended; + + // Shutdown the painting of the ListBox as items are added. + listBox1.BeginUpdate(); + listBox1.Items.Add("Press-Sensor 0 to 10 Bar"); + listBox1.Items.Add("Press-Sensor -1 to 10 Bar"); + listBox1.Items.Add("Temp"); + listBox1.Items.Add("Moti"); + listBox1.EndUpdate(); + + // Select one items from the ListBox. + string text="0"; + if (File.Exists("C:\\Dispenser_setup\\setup.txt")) + { + text = System.IO.File.ReadAllText(@"C:\Dispenser_setup\setup.txt") ; + } + + listBox1.SetSelected( Convert.ToInt32(text), true); +string Text_Blck; +string Text_Cyn; +string Text_Mgnt; +string Text_Ylw; +string Text_TI; + + if ( (listBox1.SelectedItem)=="Moti") + { + Text_Blck = "Blck"; + Text_Cyn = "Cyn"; + Text_Mgnt = "Mgnt"; + Text_Ylw = "Ylw"; + Text_TI = "TI"; + path = "P:\\TSKF\\BPT\\"; + } + else + { + Text_Blck = ""; + Text_Cyn = ""; + Text_Mgnt = ""; + Text_Ylw = ""; + Text_TI = ""; + path = "C:\\dispenser_setup\\Log\\"; +// path="%userprofile%\\Dropbox\\Dispenser_Tester\\Log\\"; +// path = "C:\\Dispenser_setup\\Log\\"; + } + + if ( (listBox1.SelectedItem)=="Press-Sensor -1 to 10 Bar") + { + stubManager.WriteLine("Press_Sensor_Type=1"); + Press_Sensor_Type=1; + } + else + { + stubManager.WriteLine("Press_Sensor_Type=0"); + Press_Sensor_Type=0; + } +//----------------------------------Dispenser 1 ------------------------------------------ +Label Label100 = new Label () + { + Width = 10, + Height = 20, + Text ="1" + }; + Label100.Location = new Point (5, 55); + form1.Controls.Add(Label100); +TextBox TextBox1 = new TextBox () + { + Width = 100, + Height = 10, + Text = Text_Blck, + }; +TextBox1.Location = new Point (20, 50); +TextBox1.CharacterCasing = CharacterCasing.Upper; + form1.Controls.Add(TextBox1); //dispencer 1 + + TextBox Press0 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +Press0.Location = new Point (135, 50); + form1.Controls.Add(Press0); //dispencer 1 + + TextBox PartNm0 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +PartNm0.Location = new Point (250, 50); + form1.Controls.Add(PartNm0); //dispencer 1 + + // Create and initialize a CheckBox. + CheckBox checkBox0 = new CheckBox(); + checkBox0.Location = new Point (370, 50); + form1.Controls.Add(checkBox0); +//----------------------------------Dispenser 2 ------------------------------------------ +Label Label102 = new Label () + { + Width = 10, + Height = 20, + Text ="2" + }; + Label102.Location = new Point (5, 85); + form1.Controls.Add(Label102); + + TextBox TextBox3 = new TextBox () + { + Width = 100, + Height = 10, + Text =Text_Cyn + }; +TextBox3.Location = new Point (20, 80); +TextBox3.CharacterCasing = CharacterCasing.Upper; +form1.Controls.Add(TextBox3); //dispencer 2 + + + TextBox Press1 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +Press1.Location = new Point (135, 80); + form1.Controls.Add(Press1); //dispencer 2 + + TextBox PartNm1 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +PartNm1.Location = new Point (250, 80); + form1.Controls.Add(PartNm1); //dispencer 2 + // Create and initialize a CheckBox. + CheckBox checkBox1 = new CheckBox(); + checkBox1.Location = new Point (370, 80); + form1.Controls.Add(checkBox1); + +//----------------------------------Dispenser 3 ------------------------------------------ +Label Label103 = new Label () + { + Width = 10, + Height = 20, + Text ="3" + }; + Label103.Location = new Point (5, 125); + form1.Controls.Add(Label103); + + TextBox TextBox4 = new TextBox () + { + Width = 100, + Height = 10, + Text =Text_Mgnt, + }; +TextBox4.Location = new Point (20, 120); +TextBox4.CharacterCasing = CharacterCasing.Upper; +form1.Controls.Add(TextBox4); //dispencer 3 + + TextBox Press2 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +Press2.Location = new Point (135, 120); + form1.Controls.Add(Press2); //dispencer3 + + TextBox PartNm2 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +PartNm2.Location = new Point (250, 120); + form1.Controls.Add(PartNm2); //dispencer 3 + // Create and initialize a CheckBox. + CheckBox checkBox2 = new CheckBox(); + checkBox2.Location = new Point (370, 120); + form1.Controls.Add(checkBox2); + +//----------------------------------Dispenser 4 ------------------------------------------ +Label Label104= new Label () + { + Width = 10, + Height = 20, + Text ="4" + }; + Label104.Location = new Point (5, 165); + form1.Controls.Add(Label104); + +TextBox TextBox5 = new TextBox () + { + Width = 100, + Height = 10, + Text =Text_Ylw, + }; +TextBox5.Location = new Point (20, 160); +TextBox5.CharacterCasing = CharacterCasing.Upper; + form1.Controls.Add(TextBox5); //dispencer 4 + + TextBox Press3 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +Press3.Location = new Point (135, 160); + form1.Controls.Add(Press3); //dispencer4 + + TextBox PartNm3 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +PartNm3.Location = new Point (250, 160); + form1.Controls.Add(PartNm3); //dispencer 4 + CheckBox checkBox3 = new CheckBox(); + checkBox3.Location = new Point (370, 160); + form1.Controls.Add(checkBox3); + + //----------------------------------Dispenser 5 ------------------------------------------ +Label Label101 = new Label () + { + Width = 10, + Height = 20, + Text ="5" + }; + Label101.Location = new Point (5, 205); + form1.Controls.Add(Label101); + + TextBox TextBox6 = new TextBox () + { + Width = 100, + Height = 10, + Text =Text_TI + }; +TextBox6.Location = new Point (20, 200); +TextBox6.CharacterCasing = CharacterCasing.Upper; + form1.Controls.Add(TextBox6); //dispencer 5 + + TextBox Press4 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +Press4.Location = new Point (135, 200); + form1.Controls.Add(Press4); //dispencer5 + + TextBox PartNm4 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +PartNm4.Location = new Point (250, 200); + form1.Controls.Add(PartNm4); //dispencer 5 + CheckBox checkBox4 = new CheckBox(); + checkBox4.Location = new Point (370, 200); + form1.Controls.Add(checkBox4); + + //----------------------------------Dispenser 6 ------------------------------------------ +Label Label106= new Label () + { + Width = 10, + Height = 20, + Text ="6" + }; + Label106.Location = new Point (5, 245); + form1.Controls.Add(Label106); + + TextBox TextBox7 = new TextBox () + { + Width = 100, + Height = 10, + Text ="" + }; +TextBox7.Location = new Point (20, 240); +TextBox7.CharacterCasing = CharacterCasing.Upper; + form1.Controls.Add(TextBox7); //dispencer 6 + + TextBox Press5 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +Press5.Location = new Point (135, 240); + form1.Controls.Add(Press5); //dispencer6 + + TextBox PartNm5 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +PartNm5.Location = new Point (250, 240); + form1.Controls.Add(PartNm5); //dispencer 6 + CheckBox checkBox5 = new CheckBox(); + checkBox5.Location = new Point (370, 240); + form1.Controls.Add(checkBox5); + + //----------------------------------Dispenser 7 ------------------------------------------ +Label Label107= new Label () + { + Width = 10, + Height = 20, + Text ="7" + }; + Label107.Location = new Point (5, 285); + form1.Controls.Add(Label107); + + TextBox TextBox8 = new TextBox () + { + Width = 100, + Height = 10, + Text ="" + }; +TextBox8.Location = new Point (20, 280); +TextBox8.CharacterCasing = CharacterCasing.Upper; + form1.Controls.Add(TextBox8); //dispencer 7 + + TextBox Press6 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +Press6.Location = new Point (135, 280); + form1.Controls.Add(Press6); //dispencer7 + + TextBox PartNm6 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +PartNm6.Location = new Point (250, 280); + form1.Controls.Add(PartNm6); //dispencer 6 + CheckBox checkBox6 = new CheckBox(); + checkBox6.Location = new Point (370, 280); + form1.Controls.Add(checkBox6); + +//----------------------------------Dispenser 8 ------------------------------------------ +Label Label108= new Label () + { + Width = 10, + Height = 20, + Text ="8" + }; + Label108.Location = new Point (5, 325); + form1.Controls.Add(Label108); + + TextBox TextBox9 = new TextBox () + { + Width = 100, + Height = 10, + Text ="" + }; +TextBox9.Location = new Point (20, 320); +TextBox9.CharacterCasing = CharacterCasing.Upper; + form1.Controls.Add(TextBox9); //dispencer 8 + + TextBox Press7 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +Press7.Location = new Point (135, 320); + form1.Controls.Add(Press7); //dispencer8 + + TextBox PartNm7 = new TextBox () + { + Width = 100, + Height = 10, + Text = "" + + }; +PartNm7.Location = new Point (250, 320); + form1.Controls.Add(PartNm7); //dispencer 7 + CheckBox checkBox7 = new CheckBox(); + checkBox7.Location = new Point (370, 320); + form1.Controls.Add(checkBox7); + + //-----------------------------File name ----------------------------------------- + TextBox TextBox10 = new TextBox () + { + Width = 210, + Height = 10, + Text ="" + }; +TextBox10.Location = new Point (270, 10); +TextBox10.CharacterCasing = CharacterCasing.Upper; +form1.Controls.Add(TextBox10); +//-----------------------------Dispenser Serial Number---------------------------------------- + +Label Label1 = new Label () + { + Width = 100, + Height = 40, + Text =" Dispenser S/N" + }; +Label1.Location = new Point (20, 32); + form1.Controls.Add(Label1); +//-----------------------------PCB Serial Number---------------------------------------- + +Label Label109 = new Label () + { + Width = 100, + Height = 40, + Text =" PCB S/N" + }; +Label109.Location = new Point (135, 32); + form1.Controls.Add(Label109); + //-----------------------------Dispenser Part Number---------------------------------------- + +Label Labe2109 = new Label () + { + Width = 100, + Height = 40, + Text =" Dispenser P/N" + }; +Labe2109.Location = new Point (250, 32); + form1.Controls.Add(Labe2109); + //-----------------------------Pass---------------------------------------- + +Label Labe3109 = new Label () + { + Width = 100, + Height = 40, + Text ="Pass" + }; +Labe3109.Location = new Point (360, 32); + form1.Controls.Add(Labe3109); + + +//---------------------- Seal Test -------------------------------------------- +Button button1 = new Button () + { + Width = 100, + Height = 100, + }; + + button1.Location = new Point (X_location,Y_location); + button1.Text = "Seal Test"; +form1.Controls.Add(button1); +//------------------------------------Priming -------------------------------------------- +Button button2 = new Button () + { + Width = 100, + Height = 100, + }; + button2.Location = new Point (X_location+110,Y_location); + button2.Text = "Priming"; + form1.Controls.Add(button2); +//------------------------------------Empty Process -------------------------------------------- +Button button3 = new Button () + { + Width = 100, + Height = 100, + }; + button3.Location = new Point (X_location+110,Y_location+220); +button3.Text = "Empty Process"; + form1.Controls.Add(button3); +//----------------------------------------- Load EEprom --------------------------------------- +Button button4 = new Button () + { + Width = 100, + Height = 100, + }; + button4.Location = new Point (X_location+220,Y_location); + button4.Text = "Load EEprom"; + form1.Controls.Add(button4); +//---------------------------------------Save EEprom ----------------------------------------- +Button button5 = new Button () + { + Width = 100, + Height = 100, + }; + button5.Location = new Point (X_location+220,Y_location+110); + button5.Text = "Save EEprom"; + form1.Controls.Add(button5); +//----------------------------------------Motor_Up ---------------------------------------- +Button button6 = new Button () + { + Width = 100, + Height = 100, + }; + button6.Location = new Point (X_location+330,Y_location); + button6.Text = "Up"; + form1.Controls.Add(button6); + +//--------------------------------------Motor_Down------------------------------------------ +Button button7 = new Button () + { + Width = 100, + Height = 100, + }; + button7.Location = new Point (X_location+330,Y_location+110); + button7.Text = "Down"; + form1.Controls.Add(button7); +//-------------------------------------Dynamic sealing positive pressure------------------------------------------- +Button button8 = new Button () + { + Width = 100, + Height = 100, + }; + button8.Location = new Point (X_location,Y_location+110); + button8.Text = "Dynamic sealing positive pressure"; + form1.Controls.Add(button8); +//---------------------------------- Dynamic sealing negative pressure ---------------------------------------------- +Button button9 = new Button () + { + Width = 100, + Height = 100, + }; + + button9.Location = new Point (X_location,Y_location+220); + button9.Text = "Dynamic sealing negative pressure"; + form1.Controls.Add(button9); +//-------------------------------- Flow Test------------------------------------------------ +Button button10 = new Button () + { + Width = 100, + Height = 100, + }; + button10.Location = new Point (X_location+110,Y_location+110); + button10.Text = "Flow Test"; + form1.Controls.Add(button10); +//---------------------------------------Spare ----------------------------------------- +Button button11 = new Button () + { + Width = 100, + Height = 100, + }; +button11.Location = new Point (X_location+330,Y_location+220); +button11.Text = "spare3"; + form1.Controls.Add(button11); +//-------------------------------------Valve Open------------------------------------------- +Button button12 = new Button () + { + Width = 100, + Height = 100, + }; + button12.Location = new Point (X_location+440,Y_location); + button12.Text = "Open Valve"; + form1.Controls.Add(button12); +//-------------------------------------Valve Close ------------------------------------------- +Button button13 = new Button () + { + Width = 100, + Height = 100, + }; + button13.Location = new Point (X_location+440,Y_location+110); + button13.Text = "Close Valve"; + form1.Controls.Add(button13); +//-----------------------------------Reliability Test --------------------------------------------- +Button button14 = new Button () + { + Width = 100, + Height = 100, + }; + button14.Location = new Point (X_location+220,Y_location+220); + button14.Text = "Reliability Test"; + form1.Controls.Add(button14); + //-----------------------------------Pressure build up --------------------------------------------- +Button button15 = new Button () + { + Width = 100, + Height = 100, + }; + button15.Location = new Point (X_location+440,Y_location+220); + button15.Text = "Pressure build up"; + form1.Controls.Add(button15); + //------------------------------- load file.. ------------------------------------------------- +Button button16 = new Button () + { + Width = 100, + Height = 20, + }; + button16.Location = new Point (160, 10); + button16.Text = "Load file"; + form1.Controls.Add(button16); +//------------------------------------run file -------------------------------------------- +Button button17 = new Button () + { + Width = 100, + Height = 20, + }; + button17.Location = new Point (490, 10); + button17.BackColor = System.Drawing.Color.Green; + button17.Text = "Run"; + form1.Controls.Add(button17); +//------------------------------------stop -------------------------------------------- +Button button18 = new Button () + { + Width = 100, + Height = 20, + }; + button18.Text = "Stop"; + button18.BackColor = System.Drawing.Color.Red; + button18.Location = new System.Drawing.Point(600, 10); + button18.Enabled =false; + + form1.Controls.Add(button18); +//--------------DispPress-------------------------------------------------------------------- +// void DispPress () +// { +// Press0.Text=Dispenser_press[0].ToString(); +// Press1.Text=Dispenser_press[1].ToString(); +// Press2.Text=Dispenser_press[2].ToString(); +// Press3.Text=Dispenser_press[3].ToString(); +// Press4.Text=Dispenser_press[4].ToString(); +// Press5.Text=Dispenser_press[5].ToString(); +// Press6.Text=Dispenser_press[6].ToString(); +// Press7.Text=Dispenser_press[7].ToString(); +// } + + +//---------------------- Seal Test -------------------------------------------- + button1.Click +=async (_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(SealTest_Table,"SealTest"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + } + }; +//------------------------------------Priming -------------------------------------------- + button2.Click += async(_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(Priming_Table,"Priming"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + } + }; +//------------------------------------Empty Process -------------------------------------------- + + button3.Click += async (_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(EmptyProcess_Table,"EmptyProcess"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + } + }; + +//----------------------------------------- Load EEprom --------------------------------------- + button4.Click += (_,__) => + { + disable_test(); + Load_EEPROM(); + LoadDispenserName(); + enable_test(); + }; + +//----------------------------------------- save EEprom --------------------------------------- + + button5.Click += (_,__) => + { + disable_test(); + Dispenser_name[0] = (TextBox1.Text); + Dispenser_name[1] = (TextBox3.Text); + Dispenser_name[2] = (TextBox4.Text); + Dispenser_name[3] = (TextBox5.Text); + Dispenser_name[4] = (TextBox6.Text); + Dispenser_name[5] = (TextBox7.Text); + Dispenser_name[6] = (TextBox8.Text); + Dispenser_name[7] = (TextBox9.Text); + + PCB_SN[0]=(Press0.Text); + PCB_SN[1]=(Press1.Text); + PCB_SN[2]=(Press2.Text); + PCB_SN[3]=(Press3.Text); + PCB_SN[4]=(Press4.Text); + PCB_SN[5]=(Press5.Text); + PCB_SN[6]=(Press6.Text); + PCB_SN[7]=(Press7.Text); + + Dispenser_PN[0]=(PartNm0.Text); + Dispenser_PN[1]=(PartNm1.Text); + Dispenser_PN[2]=(PartNm2.Text); + Dispenser_PN[3]=(PartNm3.Text); + Dispenser_PN[4]=(PartNm4.Text); + Dispenser_PN[5]=(PartNm5.Text); + Dispenser_PN[6]=(PartNm6.Text); + Dispenser_PN[7]=(PartNm7.Text); + + + //----------------------------------------- + if (checkBox0.Checked) + { + Empty_EEprom[0] = 80; //"P" + Dry_Run_EEprom[0]= 80; //"P" + Flow_EEprom[0]= 80; //"P" + } + else + { + Empty_EEprom[0] = 70; //"F" + Dry_Run_EEprom[0]= 70; //"F" + Flow_EEprom[0]= 70; //"F" + } +//----------------------------------------- + if (checkBox1.Checked) + { + Empty_EEprom[1] = 80; //"P" + Dry_Run_EEprom[1]= 80; //"P" + Flow_EEprom[1]= 80; //"P" + } + else + { + Empty_EEprom[1] = 70; //"F" + Dry_Run_EEprom[1]= 70; //"F" + Flow_EEprom[1]= 70; //"F" + } +//----------------------------------------- + if (checkBox2.Checked) + { + Empty_EEprom[2] = 80; //"P" + Dry_Run_EEprom[2]= 80; //"P" + Flow_EEprom[2]= 80; //"P" + } + else + { + Empty_EEprom[2] = 70; //"F" + Dry_Run_EEprom[2]= 70; //"F" + Flow_EEprom[2]= 70; //"F" + } +//----------------------------------------- + if (checkBox3.Checked) + { + Empty_EEprom[3] = 80; //"P" + Dry_Run_EEprom[3]= 80; //"P" + Flow_EEprom[3]= 80; //"P" + } + else + { + Empty_EEprom[3] = 70; //"F" + Dry_Run_EEprom[3]= 70; //"F" + Flow_EEprom[3]= 70; //"F" + } +//----------------------------------------- + if (checkBox4.Checked) + { + Empty_EEprom[4] = 80; //"P" + Dry_Run_EEprom[4]= 80; //"P" + Flow_EEprom[4]= 80; //"P" + } + else + { + Empty_EEprom[4] = 70; //"F" + Dry_Run_EEprom[4]= 70; //"F" + Flow_EEprom[4]= 70; //"F" + } +//----------------------------------------- + if (checkBox5.Checked) + { + Empty_EEprom[5] = 80; //"P" + Dry_Run_EEprom[5]= 80; //"P" + Flow_EEprom[5]= 80; //"P" + } + else + { + Empty_EEprom[5] = 70; //"F" + Dry_Run_EEprom[5]= 70; //"F" + Flow_EEprom[5]= 70; //"F" + } +//----------------------------------------- + if (checkBox6.Checked) + { + Empty_EEprom[6] = 80; //"P" + Dry_Run_EEprom[6]= 80; //"P" + Flow_EEprom[6]= 80; //"P" + } + else + { + Empty_EEprom[6] = 70; //"F" + Dry_Run_EEprom[6]= 70; //"F" + Flow_EEprom[6]= 70; //"F" + } +//----------------------------------------- + if (checkBox7.Checked) + { + Empty_EEprom[7] = 80; //"P" + Dry_Run_EEprom[7]= 80; //"P" + Flow_EEprom[7]= 80; //"P" + } + else + { + Empty_EEprom[7] = 70; //"F" + Dry_Run_EEprom[7]= 70; //"F" + Flow_EEprom[7]= 70; //"F" + } + + Save_EEPROM(); + enable_test(); + + }; + //----------------------------------------Motor_Up ---------------------------------------- + button6.Click +=async(_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(Up_Table,"MotorUp"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + + } + }; +//--------------------------------------Motor_Down Homing------------------------------------------ + button7.Click += async(_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(Down_Table,"Homing"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + + } + }; +//-------------------------------------Dynamic sealing positive pressure------------------------------------------- + + button8.Click += async(_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(DynamicPositive_Table,"Dynamic Positive"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + } + }; +//---------------------------------- Dynamic sealing negative pressure ---------------------------------------------- + button9.Click +=async (_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(DynamicNegative_Table,"Dynamic Negative"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + } + }; +//-------------------------------- Flow Test------------------------------------------------ + button10.Click += async(_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(Flow_Table,"Flow Test"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + } + }; + +//---------------------------------------Homing no need ----------------------------------------- +// button11.Click += (_,__) => +// { +// ButtonName = "Homing"; +// Dispenser_name[0] = (TextBox1.Text); +// Dispenser_name[1] = (TextBox3.Text); +// Dispenser_name[2] = (TextBox4.Text); +// Dispenser_name[3] = (TextBox5.Text); +// Dispenser_name[4] = (TextBox6.Text); +// Dispenser_name[5] = (TextBox7.Text); +// Dispenser_name[6] = (TextBox8.Text); +// Dispenser_name[7] = (TextBox9.Text); +// Table=2; +// +// DispenserSetup(); +// }; +//-------------------------------------Valve Open------------------------------------------- + + button12.Click += (_,__) => + { + ButtonName = "Open Valve"; + valveopen(stubManager); + }; + +//-------------------------------------Valve Close ------------------------------------------- + button13.Click += (_,__) => + { + ButtonName = "Close Valve"; + valveclose(stubManager); + }; + +//-----------------------------------Reliability Test --------------------------------------------- + button14.Click += async(_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(Reliability_Table,"Reliability Test"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + } + }; + //-----------------------------------Pressure build up --------------------------------------------- + button15.Click += async(_,__) => + { + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + var longRunningTask =await DispenserSetup(BuildUp_Table,"Pressure Build Up"); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + } + }; + +//------------------------------- load file.. ------------------------------------------------- + button16.Click += (_,__) => + { + try + { + Thread t = new Thread(() => { + OpenFileDialog dlg = new OpenFileDialog(); + // The following would not return the dialog if the current + // thread is not STA + dlg.Filter = "TBL|*.tbl"; + if(dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + TextBox10.Text= dlg.SafeFileName; + Tbl_File_Name=TextBox10.Text; + } + }); + t.SetApartmentState(ApartmentState.STA); + t.Start(); + } + catch (Exception ex) + { + stubManager.WriteLine("exseption"); + //ex.LogException(); + } + }; + //------------------------------------run file -------------------------------------------- + button17.Click += async(_,__) => + { + // stubManager.WriteLine(Tbl_File_Name +" -1"); + + if ((ConverFileToTBL(Tbl_File_Name)) ==0) + { + stubManager.WriteLine(Tbl_File_Name +" --ok"); + + _cancellationTokenSource = new CancellationTokenSource(); + try + { + disable_test(); + string[] FileName = Tbl_File_Name.Split('.'); + var longRunningTask =await DispenserSetup(Start_Table,FileName[0]); + } + catch (OperationCanceledException) + { + enable_test(); + // Status="Cancel"; + stubManager.WriteLine("Task was cancelled"); + } + finally + { + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("end Task "); + enable_test(); + } + } + else + { + _cancellationTokenSource = new CancellationTokenSource(); + _cancellationTokenSource.Dispose(); + stubManager.WriteLine("Error Table "); + } + + }; +//------------------------------------stop -------------------------------------------- + button18.Click += (_, __) => + { + _cancellationTokenSource.Cancel(); + stubManager.WriteLine("stop "); + + // ButtonName = "Stop"; + + + //TextBox1.Text =""; + }; + + //--------------------load dispenser name ------------------------ + void LoadDispenserName () + { + (TextBox1.Text) = Dispenser_name[0]; + (TextBox3.Text) = Dispenser_name[1]; + (TextBox4.Text) = Dispenser_name[2]; + (TextBox5.Text) = Dispenser_name[3]; + (TextBox6.Text) = Dispenser_name[4]; + (TextBox7.Text) = Dispenser_name[5]; + (TextBox8.Text) = Dispenser_name[6]; + (TextBox9.Text) = Dispenser_name[7]; + + + (Press0.Text)=PCB_SN[0]; + (Press1.Text)=PCB_SN[1]; + (Press2.Text)=PCB_SN[2]; + (Press3.Text)=PCB_SN[3]; + (Press4.Text)=PCB_SN[4]; + (Press5.Text)=PCB_SN[5]; + (Press6.Text)=PCB_SN[6]; + (Press7.Text)=PCB_SN[7]; + + (PartNm0.Text)=Dispenser_PN[0]; + (PartNm1.Text)=Dispenser_PN[1]; + (PartNm2.Text)=Dispenser_PN[2]; + (PartNm3.Text)=Dispenser_PN[3]; + (PartNm4.Text)=Dispenser_PN[4]; + (PartNm5.Text)=Dispenser_PN[5]; + (PartNm6.Text)=Dispenser_PN[6]; + (PartNm7.Text)=Dispenser_PN[7]; + + + } + + +//--------------------disabele test ------------------------ + void disable_test() + { + + if ( (listBox1.SelectedItem)=="Press-Sensor -1 to 10 Bar") + { + stubManager.WriteLine("Press_Sensor_Type=1"); + Press_Sensor_Type=1; + } + else + { + stubManager.WriteLine("Press_Sensor_Type=0"); + Press_Sensor_Type=0; + } + + button1.Enabled =false; + button2.Enabled =false; + button3.Enabled =false; + button4.Enabled =false; + button5.Enabled =false; + button6.Enabled =false; + button7.Enabled =false; + button8.Enabled =false; + button9.Enabled =false; + button10.Enabled =false; + button11.Enabled =false; + button12.Enabled =false; + button13.Enabled =false; + button14.Enabled =false; + button15.Enabled =false; + button16.Enabled =false; + button17.Enabled =false; + button18.Enabled =true; + + + Dispenser_name[0] = (TextBox1.Text); + Dispenser_name[1] = (TextBox3.Text); + Dispenser_name[2] = (TextBox4.Text); + Dispenser_name[3] = (TextBox5.Text); + Dispenser_name[4] = (TextBox6.Text); + Dispenser_name[5] = (TextBox7.Text); + Dispenser_name[6] = (TextBox8.Text); + Dispenser_name[7] = (TextBox9.Text); + + PCB_SN[0]=(Press0.Text); + PCB_SN[1]=(Press1.Text); + PCB_SN[2]=(Press2.Text); + PCB_SN[3]=(Press3.Text); + PCB_SN[4]=(Press4.Text); + PCB_SN[5]=(Press5.Text); + PCB_SN[6]=(Press6.Text); + PCB_SN[7]=(Press7.Text); + + + Dispenser_PN[0]=(PartNm0.Text); + Dispenser_PN[1]=(PartNm1.Text); + Dispenser_PN[2]=(PartNm2.Text); + Dispenser_PN[3]=(PartNm3.Text); + Dispenser_PN[4]=(PartNm4.Text); + Dispenser_PN[5]=(PartNm5.Text); + Dispenser_PN[6]=(PartNm6.Text); + Dispenser_PN[7]=(PartNm7.Text); + + + + + + } +//--------------------enable test ------------------------ + + void enable_test() + { + button1.Enabled =true; + button2.Enabled =true; + button3.Enabled =true; + button4.Enabled =true; + button5.Enabled =true; + button6.Enabled =true; + button7.Enabled =true; + button8.Enabled =true; + button9.Enabled =true; + button10.Enabled =true; + button11.Enabled =true; + button12.Enabled =true; + button13.Enabled =true; + button14.Enabled =true; + button15.Enabled =true; + button16.Enabled =true; + button17.Enabled =true; + button18.Enabled =false; + + for (Int32 i=0;i<8;i++) + { + MotorStop(i); + } + + // stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,WINDER_Motor,3); //stop motor + // stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor + + } + + + +// Display the form as a modal dialog box. + form1.ShowDialog(); + + + for (Int32 i=0;i<8;i++) + { + MotorStop(i); + stubManager.Write("Motor Stop Hard Hiz \t"); + + System.IO.File.WriteAllText(@"C:\Dispenser_setup\setup.txt", listBox1.SelectedIndex.ToString()); + + stubManager.Write(listBox1.SelectedItem); + } + + return; +} + +public int delay(Int32 ms_delay) + { + + Thread.Sleep(ms_delay); + if (_cancellationTokenSource.Token.IsCancellationRequested) + { + _cancellationTokenSource.Token.ThrowIfCancellationRequested(); + throw new TaskCanceledException(); + return 0; + } + return 0; + } diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs index 01a3fa828..5f5c970c1 100644 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs +++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Dryer_Jig.cs @@ -278,7 +278,7 @@ int Test_Load_Arm() } Units_status[5,1]="Pass"; - DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mecahnicl stopper ?", "Warning",MessageBoxButtons.YesNo); + DialogResult result2 = MessageBox.Show("Did Arm Motor arrive to mechanical stopper?. See picture on document", "Warning",MessageBoxButtons.YesNo); if(result2 == DialogResult.No) { Units_status[4,1]="Fail"; @@ -317,7 +317,7 @@ int Test_Load_Arm() } stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DrierLoadingArm_Motor, 3); - DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds?", "Warning",MessageBoxButtons.YesNo); + DialogResult result3 = MessageBox.Show("Did Arm Motor make 30 rounds? See picture on document", "Warning",MessageBoxButtons.YesNo); if(result3 == DialogResult.No) { Units_status[4,1]="Fail"; diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs index 4f26d545f..7841b09eb 100644 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs +++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs @@ -36,7 +36,7 @@ const int Winder =0 ; const int LTFU =1 ; string path; -string path1="C:\\Jig_Log\\";; +string path1="C:\\Jig_Log\\"; bool BlinkOn = false; bool timer_started = false; @@ -482,7 +482,7 @@ public void OnExecute(StubManager stubManager) try { disable_test(); - var longRunningTask = await NewDyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); +//mf var longRunningTask = await NewDyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); } catch (OperationCanceledException) { @@ -490,13 +490,13 @@ public void OnExecute(StubManager stubManager) Status="Cancel"; stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MAGNET_Driver,3); //stop magnet stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - SetBit (F2_CTRL, 3, 0);//????????????????? - SetBit (F2_CTRL, 4, 0);//???????????????? - SetBit (F2_CTRL, 5, 0);//?????????????????/ - SetBit (F2_CTRL, 6, 0);//???????????????? - SetBit (F1_gpo_01, 2, 0);//??????????????? - SetBit (F3_GPO_01_bus, 4, 0);//???????????????????? + for (Int32 i = 0; i < 12; i++) //???MF + { + + stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x40F000 + i*0x100); // turn all heaters OFF + Thread.Sleep(10); + } stubManager.WriteLine("Task was cancelled"); } @@ -603,7 +603,7 @@ public void OnExecute(StubManager stubManager) try { disable_test(); - var longRunningTask = await New_Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); + var longRunningTask = await New_Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text ); } catch (OperationCanceledException) { diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER1.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER1.cs index 7b7fd452d..c484fc39f 100644 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER1.cs +++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER1.cs @@ -361,6 +361,14 @@ PN_TexstBox.TextChanged += (_,__)=> { string temp; + + if (SN_TexstBox.Text.Length!=15) + return; + + + if (PN_TexstBox.Text.Contains("-")) + + { temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-")); disable_test(); if (SN_TexstBox.Text.Length!=15) @@ -391,7 +399,7 @@ PN_TexstBox.TextChanged += (_,__)=> // case "AM00281": // Mixer // Mixer_btm.Enabled= true; // break; - + } } @@ -400,12 +408,15 @@ PN_TexstBox.TextChanged += (_,__)=> { string temp; - temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-")); - disable_test(); - if (SN_TexstBox.Text.Length!=15) + if (SN_TexstBox.Text.Length!=15) return; - switch (temp) + if (PN_TexstBox.Text.Contains("-")) { + + temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-")); + disable_test(); + switch (temp) + { case "AM00315": //DyeHead NewDyeHead_btm.Enabled= true; break; @@ -431,8 +442,8 @@ PN_TexstBox.TextChanged += (_,__)=> // Mixer_btm.Enabled= true; // break; + } } - }; //----------------------------------------- Winder_btm.Click += async(_,__) => @@ -596,13 +607,12 @@ PN_TexstBox.TextChanged += (_,__)=> Status="Cancel"; stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MAGNET_Driver,3); //stop magnet stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor - SetBit (F2_CTRL, 3, 0);//????????????????? - SetBit (F2_CTRL, 4, 0);//???????????????? - SetBit (F2_CTRL, 5, 0);//?????????????????/ - SetBit (F2_CTRL, 6, 0);//???????????????? - SetBit (F1_gpo_01, 2, 0);//??????????????? - SetBit (F3_GPO_01_bus, 4, 0);//???????????????????? + for (Int32 i = 0; i < 12; i++) //???MF + { + stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x40F000 + i*0x100); // turn all heaters OFF + Thread.Sleep(10); + } stubManager.WriteLine("Task was cancelled"); } diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs index 2d50bab45..3f9f2a346 100644 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs +++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs @@ -332,19 +332,20 @@ int Test_DANCER_LTFU() return 9; } - else - { if (temp_left_after>temp_left_before) temp_left_before=temp_left_before+0x4000; temp_left_before=temp_left_before-temp_left_after; - if ((temp_left_before> 4000) || (temp_left_before <200)) + if ((temp_left_before> 5000) || (temp_left_before <200)) { Units_status[7,1]="Fail"; stubManager.Write("LDANCER_Left_SSI\tFail\n"); return 9; } - } + Units_status[7,1]="Pass"; + stubManager.Write("LDANCER_Left_SSI\tPass\n"); + + DialogResult result3 = MessageBox.Show("SSI Dancer_Right_led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo); if(result3 == DialogResult.No) { @@ -357,7 +358,7 @@ int Test_DANCER_LTFU() if (temp_right_after>temp_right_before) temp_right_before=temp_right_before+0x4000; temp_right_before=temp_right_before-temp_right_after; - if ((temp_right_before< 4000) && (temp_right_before >200)) + if ((temp_right_before< 5000) && (temp_right_before >200)) { Units_status[8,1]="Pass"; stubManager.Write("LDANCER_Right_SSI\tPass\n"); @@ -454,10 +455,10 @@ int Test_DANCER_LTFU() stubManager.Write("temp_right_before="+temp_right_before + "\ttemp_right_after="+temp_right_after +"\n"); - if (temp_right_after>temp_right_before) - temp_right_before=temp_right_before+0x4000; - temp_right_before=temp_right_before-temp_right_after; - if ((temp_right_before< 4000) && (temp_right_before >200)) + if (temp_right_after<temp_right_before) + temp_right_after=temp_right_after+0x4000; + temp_right_before=temp_right_after-temp_right_before; + if ((temp_right_before< 5000) && (temp_right_before >200)) { Units_status[8,1]="Pass"; stubManager.Write("LDANCER_Right_SSI\tPass\n"); diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs index 4d58caa14..22cf14f3e 100644 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs +++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_DyeHead_Jig.cs @@ -86,7 +86,7 @@ string [,] Units_status_New_DyeHead = new string[New_DyeHead_UNDER_TEST,2] { {"LS_OUT_UP","Not Test"}, //45 {"LS_OUT_DN","Not Test"}, //46 - {"LS_UPPER_DN","Not Test"}, //47 + {"LS_MAGNET_DN","Not Test"}, //47 }; @@ -127,7 +127,7 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken settext("Test heaters &pt100"); Test_new_heaters_pt100 (); settext("Test Head EEPROM"); - Test_Head_EEPROM(SN); //pass + Test_Head_EEPROM(SN); //pass settext("Test Actuator In"); Test_Actuator_in(); //pass settext("Test Actuator Out"); @@ -148,33 +148,37 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken { Int32 temp; int i=0; - - DialogResult result = MessageBox.Show("Is ACTUATOR-IN on Upper Limit Swtich?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN Dn delay(2000); - DialogResult result2 = MessageBox.Show("Is ACTUATOR-IN Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo); - if(result2 != DialogResult.Yes) - { - Units_status[43,1]="Fail"; - return 0; - } - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up - delay(2000); - DialogResult result3 = MessageBox.Show("Is ACTUATOR-IN Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo); - if(result3 != DialogResult.Yes) - { - Units_status[42,1]="Fail"; - return 0; - } - Units_status[41,1]="Pass"; - Units_status[42,1]="Pass"; - Units_status[43,1]="Pass"; - return 0; - } - else + + +// DialogResult result = MessageBox.Show("Is ACTUATOR-IN on Upper Limit Swtich?", "Warning",MessageBoxButtons.YesNo); +// if(result == DialogResult.Yes) +// { +// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down +// +// delay(2000); +// DialogResult result2 = MessageBox.Show("Is ACTUATOR-IN Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo); +// if(result2 != DialogResult.Yes) +// { +// Units_status[43,1]="Fail"; +// return 0; +// } +// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up +// delay(2000); +// DialogResult result3 = MessageBox.Show("Is ACTUATOR-IN Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo); +// if(result3 != DialogResult.Yes) +// { +// Units_status[42,1]="Fail"; +// return 0; +// } +// Units_status[41,1]="Pass"; +// Units_status[42,1]="Pass"; +// Units_status[43,1]="Pass"; +// return 0; +// } +// else stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up delay(2000); DialogResult result4 = MessageBox.Show("Is ACTUATOR-IN Move to Upper Limit Switch ?", "Warning",MessageBoxButtons.YesNo); @@ -204,35 +208,37 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken { Int32 temp; int i=0; - - DialogResult result = MessageBox.Show("Is ACTUATOR-OUT on Upper Limit swtich?", "Warning",MessageBoxButtons.YesNo); - if(result == DialogResult.Yes) - { - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); - - - delay(2000); - DialogResult result1 = MessageBox.Show("Is ACTUATOR-OUT Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo); - if(result1 != DialogResult.Yes) - { - Units_status[46,1]="Fail"; - return 0; - } - - stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up + stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down delay(2000); - DialogResult result3 = MessageBox.Show("Is ACTUATOR-OUT Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo); - if(result3 != DialogResult.Yes) - { - Units_status[45,1]="Fail"; - return 0; - } - Units_status[44,1]="Pass"; - Units_status[45,1]="Pass"; - Units_status[46,1]="Pass"; - return 0; - } - else + +// DialogResult result = MessageBox.Show("Is ACTUATOR-OUT on Upper Limit swtich?", "Warning",MessageBoxButtons.YesNo); +// if(result == DialogResult.Yes) +// { +// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); +// +// +// delay(2000); +// DialogResult result1 = MessageBox.Show("Is ACTUATOR-OUT Move to Lower Limit Switch?", "Warning",MessageBoxButtons.YesNo); +// if(result1 != DialogResult.Yes) +// { +// Units_status[46,1]="Fail"; +// return 0; +// } +// +// stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up +// delay(2000); +// DialogResult result3 = MessageBox.Show("Is ACTUATOR-OUT Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo); +// if(result3 != DialogResult.Yes) +// { +// Units_status[45,1]="Fail"; +// return 0; +// } +// Units_status[44,1]="Pass"; +// Units_status[45,1]="Pass"; +// Units_status[46,1]="Pass"; +// return 0; +// } +// else stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up delay(2000); DialogResult result4 = MessageBox.Show("Is ACTUATOR-OUT Move to Upper Limit Switch?", "Warning",MessageBoxButtons.YesNo); @@ -272,19 +278,21 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken stubManager.Write("Magnet is Open\n"); delay(1000); //---------------------- chekc Magnet is open ---------------------------- - temp=read_pio (LS_UPPER); // read LS_UPPER - if (temp != 0) - { - Units_status[47,1]="Fail"; - stubManager.Write("LS_UPPER of Magnet is close\n"); - } - DialogResult result = MessageBox.Show("Make shure, Magnet is open", "Warning",MessageBoxButtons.YesNo); + DialogResult result = MessageBox.Show("Make shure, Magnet is open and DyeHead cover on front.", "Warning",MessageBoxButtons.YesNo); if(result == DialogResult.No) { Units_status[36,1]="Fail"; stubManager.Write("Magnet is close\n"); return 0; } + temp=read_pio (LS_UPPER); // read LS_UPPER + if (temp != 0) + { + Units_status[47,1]="Fail"; + stubManager.Write("LS_UPPER of Magnet is close\n"); + } + + //---------------------- Move DyeingHead Lid Motor rear---------------------------- stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250); stubManager.Write("*** Open Lid Head ********* \n"); @@ -300,20 +308,11 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken } stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor -// if(i == 200) -// { -// Units_status[37,1]="Fail"; -// Units_status[39,1]="Fail"; -// stubManager.Write("LS_REAR Not calibrate\n"); -// return 0; -// } DialogResult result2 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); if(result2 == DialogResult.No || i==200) { Units_status[37,1]="Fail"; - // Units_status[39,1]="Fail"; stubManager.Write("LS_REAR Not calibrate\n"); - return 0; } else Units_status[37,1]="Pass"; @@ -329,24 +328,18 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken i++; } stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor -// if(i == 200) -// { -// Units_status[38,1]="Fail"; -// stubManager.Write("LS_FRONT Not calibrate\n"); -// return 0; -// } DialogResult result3 = MessageBox.Show("Limit Switch calibrate ?", "Warning",MessageBoxButtons.YesNo); if(result3 == DialogResult.No || i==200) { Units_status[38,1]="Fail"; stubManager.Write("LS_FRONT Not calibrate\n"); -// return 0; } -// else - Units_status[39,1]="Pass"; - Units_status[38,1]="Pass"; - + else + { + Units_status[39,1]="Pass"; + Units_status[38,1]="Pass"; + } //---------------------- Close Magnet ---------------------------- stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off delay(2000); @@ -355,6 +348,15 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken stubManager.Write("Magnet is Close\n"); delay(1000); //---------------------- chekc Magnet is close ---------------------------- + + DialogResult result4 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.YesNo); + if(result4 == DialogResult.No) + { + Units_status[36,1]="Fail"; + stubManager.Write("Magnet is open\n"); + return 0; + } + Units_status[36,1]="Pass"; temp=read_pio (LS_UPPER); // read LS_UPPER if (temp == 0) { @@ -362,22 +364,10 @@ public Task<decimal> NewDyeHead_test( Action<string> settext, CancellationToken stubManager.Write("LS_UPPER of Magnet is open\n"); return 0; } - DialogResult result4 = MessageBox.Show("Make shure, Magnet is close", "Warning",MessageBoxButtons.OKCancel); - if(result4 == DialogResult.Cancel) - { - Units_status[36,1]="Fail"; - stubManager.Write("Magnet is open\n"); - return 0; - } - Units_status[36,1]="Pass"; Units_status[47,1]="Pass"; - Units_status[38,1]="Pass"; - - stubManager.Write("Magnet is close\n"); + stubManager.Write("LS_UPPER of Magnet is close\n"); return 0; -} - - + } //------------------------------------ public int Test_new_heaters_pt100() { @@ -391,7 +381,7 @@ public int Test_new_heaters_pt100() for (Int32 i = 0; i < 12; i++) //12 { - Int32 tdly=10000; + Int32 tdly=20000; //---------------------- get tempurature of heaters---------------------------- temp= 12+i/2+(i%2)*8; //HZone_1=12 //HZone_2=20 @@ -469,7 +459,7 @@ public int Test_new_heaters_pt100() ftemp1 = (float)response5.TemperatureCMultBy100; ftemp1 = ftemp1 / 100; - if (((ftemp1-ftemp)<5)|| ((ftemp1-ftemp)>35)) + if (((ftemp1-ftemp)<10)|| ((ftemp1-ftemp)>45)) { Units_status[i,1]="Fail"; } diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs index 14ac034fc..076f4ce68 100644 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs +++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/New_Mixer_Jig.cs @@ -92,7 +92,7 @@ public int Test_New_Mixer_heater_pt100() float ftemp=0; float ftemp1=0; float current=0; - Int32 tdly=10000; + Int32 tdly=15000; Double current_sense; //---------------------- get tempurature of mixer---------------------------- @@ -101,6 +101,7 @@ public int Test_New_Mixer_heater_pt100() var response = stubManager.Run<StubTempSensorResponse>("StubTempSensorRequest" , 19); //get temperature from mixer ftemp = (float)response.TemperatureCMultBy100; + ftemp = ftemp / 100; if ((ftemp>100)|| (ftemp<10)) { Units_status[0,1]="Fail"; diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs index f1f3cd357..3ad16cb5e 100644 --- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs +++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Winder_Jig.cs @@ -37,7 +37,8 @@ public Task<decimal> Winder_test( Action<string> settext, CancellationToken canc stubManager.Write("Location:" +Location+ "\n"); copy_table (Winder_UNDER_TEST,Units_status_Winder); - + DialogResult result2 = MessageBox.Show("Insert Spool"); + settext("Test_Winder_motor"); Test_Winder_motor(); settext("Test_Screw_LS_Motor_Encoder"); diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs index 4188fe36b..b02a6072c 100644 --- a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs +++ b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01.cs @@ -104,10 +104,10 @@ Int32 i = 12; // to run only for specific motor public void OnExecute(StubManager stubManager) { -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); -stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); @@ -187,11 +187,11 @@ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); - if( response.RecivedData > 0x15 ) + if( response.RecivedData > 0x15 && response.RecivedData < 0x1c ) stubManager.Write("\t\tDual_Driver"); - else if ( response.RecivedData > 0x0b) + else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 ) stubManager.Write("\t\tVolage_Driver"); - else if ( response.RecivedData > 8 ) + else if ( response.RecivedData > 8 && response.RecivedData < 0x0a) stubManager.Write("\t\tCurrent_Driver"); else stubManager.Write("\t\tNo_Driver"); diff --git a/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs new file mode 100644 index 000000000..b02a6072c --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/Motor_Get_Param_Horizontal_Printing_powerstep01_rev10.cs @@ -0,0 +1,266 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +//unmark Auto logging ! + +const Int32 x_POWERSTEP01_CONFIG = 0x1A; +const Int32 x_POWERSTEP01_STATUS = 0x1B; +const Int32 x_POWERSTEP01_GATECFG1 = 0x18; +const Int32 x_POWERSTEP01_GATECFG2 = 0x19; + +const Int32 x_ABS_POS = 0x01; +const Int32 x_EL_POS = 0x02; +const Int32 x_MARK = 0x03; +const Int32 x_SPEED = 0x04; +const Int32 x_ACC = 0x05; +const Int32 x_DEC = 0x06; +const Int32 x_MAX_SPEED = 0x07; +const Int32 x_MIN_SPEED = 0x08; +const Int32 x_FS_SPD = 0x15; +const Int32 x_KVAL_HOLD = 0x09; +const Int32 x_KVAL_RUN = 0x0A; +const Int32 x_KVAL_ACC = 0x0B; +const Int32 x_KVAL_DEC = 0x0C; +const Int32 x_INT_SPD = 0x0D; +const Int32 x_ST_SLP = 0x0E; +const Int32 x_FN_SLP_ACC = 0x0F; +const Int32 x_FN_SLP_DEC = 0x10; +const Int32 x_K_THERM = 0x11; +const Int32 x_ADC_OUT = 0x12; +const Int32 x_OCD_TH = 0x13; +const Int32 x_STALL_TH = 0x14; +const Int32 x_STEP_MODE = 0x16; +const Int32 x_ALARM_EN = 0x17; +const Int32 x_CONFIG = 0x18; +const Int32 x_STATUS = 0x19; +//------------------------------- +const Int32 x_GET_PARAM = 0x20; +//------------------------------- +const Int32 Max_Motor_ID = 25; + + + +string[] Motor_ID = new string[30]; + + +Motor_ID[0] ="DH_CLEANHEAD "; +Motor_ID[1] ="DH_CLEANMECH "; +Motor_ID[2] ="DH_LID "; +Motor_ID[3] ="DRYER_DRIVING"; +Motor_ID[4] ="DRYER_LID "; +Motor_ID[5] ="DRYER_LOADARM"; +Motor_ID[6] ="DISPENCER_1 "; +Motor_ID[7] ="DISPENCER_2 "; +Motor_ID[8] ="DISPENCER_3 "; +Motor_ID[9] ="DISPENCER_4 "; +Motor_ID[10]="DISPENCER_5 "; +Motor_ID[11]="DISPENCER_6 "; +Motor_ID[12]="DISPENCER_7 "; +Motor_ID[13]="DISPENCER_8 "; +Motor_ID[14]="SCREW "; +Motor_ID[15]="WINDER "; +Motor_ID[16]="LDANCER1 "; +Motor_ID[17]="LDANCER2 "; +Motor_ID[18]="LDRIVING "; +Motor_ID[19]="LLODING "; +Motor_ID[20]="LPIVOT "; +Motor_ID[21]="RDANCER "; +Motor_ID[22]="RDRIVING "; +Motor_ID[23]="RLOADARM "; +Motor_ID[24]="RLODING "; +Motor_ID[25]="SPARE1_1 "; +Motor_ID[26]="SPARE1_2 "; +Motor_ID[27]="SPARE2_1 "; +Motor_ID[28]="SPARE2_2 "; +Motor_ID[29]="SPARE3 "; + + + + + + + + + + + + + + + + + +Int32 i = 12; // to run only for specific motor + +public void OnExecute(StubManager stubManager) +{ + +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati +//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f); + + + + + + + + + + + + for (i = 0; i < Max_Motor_ID; i++) + { + + if((i%8 ==0) ) + { + stubManager.Write("\n\n"); + stubManager.Write("MoTor\t\t\tMIN_SPEED\tMAX_SPEED\tSTEP_MODE\tACC\t\tDEC\t\tKVAL_HOLD\tKVAL_RUN\tKVAL_ACC\tKVAL_DEC\tOCD_TH\t\tSTALL_TH\tCONFIG\t\tFS_SPD\t\tADC_OUT\tDriver_Type\n"); + stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t---------\t--------\t--------\t--------\t------\t\t--------\t------\t\t------\t\t------\t\t------\n"); + } + //stubManager.Write(i); + + stubManager.Write(Motor_ID[i]); + stubManager.Write("\t\t"); + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t"); + stubManager.Write("\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + if( response.RecivedData > 0x15 && response.RecivedData < 0x1c ) + stubManager.Write("\t\tDual_Driver"); + else if ( response.RecivedData > 0x0b && response.RecivedData < 0x12 ) + stubManager.Write("\t\tVolage_Driver"); + else if ( response.RecivedData > 8 && response.RecivedData < 0x0a) + stubManager.Write("\t\tCurrent_Driver"); + else + stubManager.Write("\t\tNo_Driver"); + + + stubManager.Write("\n\n"); + + } + + stubManager.Write("MoTor\t\t\tINT_SPD\tST_SLP\t\tSLP_ACC\tSLP_DEC\tSTATUS\n"); + stubManager.Write("-----\t\t\t-------\t------\t\t-------\t--------\t-----\n"); + + for (i = 0; i < Max_Motor_ID; i++) + { + stubManager.Write(Motor_ID[i]); + +// stubManager.Write(i); + stubManager.Write("\t\t"); + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STATUS)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\n\n"); + + + + } + + + stubManager.Write("--------------- New Driver POWERSTEP01 ---------------\n\n"); + stubManager.Write("MoTor\tPS01_CONFIG\t\tPS01_STATUS\t\tPS01_GATECFG1\t\tPS01_GATECFG2\n"); + stubManager.Write("-----\t------------\t\t-----------\t\t-------------\t\t------------\n"); + + for (i = 6; i < 14; i++)//Dispensers only + //for (i = 25; i < 29; i++)//Dispensers only + { + stubManager.Write(i); + stubManager.Write("\t"); + + var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\t\t\t"); + + response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); + stubManager.WriteHex(response.RecivedData,4); + stubManager.Write("\n\n"); + } + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs b/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs new file mode 100644 index 000000000..102029cf2 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/SS Head Sensor board.cs @@ -0,0 +1,22 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ +// Request ---- +// Int32 : Amount +// Int32 : Delay + +// Response ---- +// Double : Progress +var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xb10, 0x01);//S.S Head Sensor board +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs b/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs new file mode 100644 index 000000000..88de4de01 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/WHS_Test_EEPROM.cs @@ -0,0 +1,135 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +//---------------------- +const Int32 I2C_ID = 3; //MCU_I2C3 +const Int32 TCA9548A_address = 0xE2; +const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte +int Head_Mux_Channel_ID = 0; //WHS MUX channel +//---------------------- + + +int enable_channel(int Channel_ID) +{ + uint Const_temp = 0x01; + + StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); + stubI2CWriteBytesRequest.I2CId = I2C_ID; + stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address; + + Const_temp = Const_temp << Channel_ID; + stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp); + + var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); + + return 1; +} + + +int adc_write(uint I2C_Slave_Add, uint Page) +{ + StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); + stubI2CWriteBytesRequest.I2CId = I2C_ID; + stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; + + UInt32 uInt32 = new UInt32(); + stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write + //-------------------------------------------------------------- + + stubI2CWriteBytesRequest.BytesTWrite.Add(0x12 + Page);//Data 0 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(0x34 + Page);//Data 1 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(0x56 + Page);//Data 2 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(0x78 + Page);//Data 3 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(0x90 + Page);//Data 4 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(0xAB + Page);//Data 5 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(0xCD + Page);//Data 6 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(0xEF + Page);//Data 7 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(0x01 + Page);//Data 8 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(0x02 + Page);//Data 9 to write + + var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); + + return 1; +} + +int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page) +{ + StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest(); + stubI2CWriteBytesRequest.I2CId = I2C_ID; + stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add; + + + UInt32 uInt32 = new UInt32(); + stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write + stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write + + var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest); + + return 1; +} + +int adc_read_ch(uint I2C_Slave_Add) +{ + StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest(); + stubI2CReadBytesRequest.I2CId = I2C_ID; + stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1; + stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read + + var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest); + uint temph=0; + + for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++) + { + temph=response1.ReadBytes[i]; + stubManager.WriteHex(temph,2); + } + + return 1; +} + + +public void OnExecute(StubManager stubManager) +{ + + //enable_all_channel(); + enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7 + + for (int i = 0; i<1; i++) + { + + adc_write(I2C_Slave_Add,0x10); + Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) + + adc_write(I2C_Slave_Add,0x00); + Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet ) + + stubManager.Write("\nPage 0x10 #"); + stubManager.Write(i); + stubManager.Write("\t- The Buffer is: "); + adc_set_for_read_ch(I2C_Slave_Add,0x10); + //Thread.Sleep(1); //Sleep for 10 milli. + adc_read_ch(I2C_Slave_Add); + + Thread.Sleep(10); + + stubManager.Write("\nPage 0x00 #"); + stubManager.Write(i); + stubManager.Write("\t- The Buffer is: "); + adc_set_for_read_ch(I2C_Slave_Add, 0x00); + //Thread.Sleep(1); //Sleep for 10 milli. + adc_read_ch(I2C_Slave_Add); + + Thread.Sleep(1000); + + } +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/blower_Q.cs b/Software/Stubs Collection/stubs/Scripts/blower_Q.cs index cb4682531..f6b595873 100644 --- a/Software/Stubs Collection/stubs/Scripts/blower_Q.cs +++ b/Software/Stubs Collection/stubs/Scripts/blower_Q.cs @@ -18,10 +18,11 @@ public void OnExecute(StubManager stubManager) // Response ---- // Double : Progress +//stop loop +/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E8, /*Head_Q=*/2500); // - -//fan test -/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/9); // +//enable loop +/*var response1 =*/ stubManager.Run<ProgressResponse>("ProgressRequest" ,/*fan1*/0x3E7, /*Head_Q=*/5); // //500=1F4 //250=FA diff --git a/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs new file mode 100644 index 000000000..6d52c774f --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/embeddedparametersbuild.cs @@ -0,0 +1,178 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; +using Google.Protobuf; +using Tango.PMR.EmbeddedParameters; +using System.IO; +using Tango.PMR.IO; + + +public void OnExecute(StubManager stubManager) +{ + + +ConfigurationParameters configurationParameters = new ConfigurationParameters(); + +configurationParameters.BreakSensorLimit = 10; + +//how many samples to collect in diagnostics before sending +configurationParameters.DiagnosticCollectionLimit = 3; + +//how many consecutive readout before declaring DC over/underheat alarm +configurationParameters.OverHeatCountLimit = 3; +configurationParameters.UnderHeatCountLimit = 3; + +// time of motor activity before opening the valve or after closing the valve, in milliseconds +configurationParameters.CloseValveTimeout = 22; +configurationParameters.OpenValveTimeout = 22; + +//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters) +configurationParameters.InitialDispenserPressure = 0.25; +configurationParameters.InitialDispenserTimeout = 60000; //20 seconds +configurationParameters.InitialDispenserTimeLag = 100; + +//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed +configurationParameters.DispenserBuildPressureSpeed = 952; //no more than 1000 +configurationParameters.DispenserBuildPressureLimit = 0.8; +configurationParameters.DispenserBuildPressureTimeout = 180000; +configurationParameters.DispenserBuildPressureLag = 50; + +//temperature band 1000 = 100% - thresholds for job start around target temprature - AC +configurationParameters.ACHeatersLowerOperationLimit = 995; +configurationParameters.ACHeatersUpperOperationLimit = 1005; + +//temperature band 1000 = 100% - thresholds for job start around target temprature - DC +configurationParameters.DCHeatersLowerOperationLimit = 978; +configurationParameters.DCHeatersUpperOperationLimit = 1005; + +// mid tank reading offset to add to the readout (OBSOLETE!) +configurationParameters.MidTankPressureCorrection = 0.0; + +//waste factor for intersegment pressure building +configurationParameters.DispenserPresegmentWFCF = 40; +//how much time to start the WFCF process (pressure buildup) before segment start +configurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 30000; + +//flag: start heaters according to saved process parameters upon init? +configurationParameters.StartHeatingOnInitSequence = true; + +// current test for the heaters - alarm thresholds +configurationParameters.CurrentAlarmLowLimit = 0.78; +configurationParameters.CurrentAlarmHighLimit = 1.07; + +//currently not in use +configurationParameters.IDSSegmentRefillTimeout = 5000; +configurationParameters.IDSPreSegmentBuildupTime = 5000; +//cleaning!!!!!!!!!! +configurationParameters.IDSCleaningSpeed = 800; +configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt +configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment + +configurationParameters.IDSLeftCleaningMotorSpeed = 49; +configurationParameters.IDSRightCleaningMotorSpeed = 49; + +configurationParameters.SwitchToIdleTimeinSeconds = 3600; +configurationParameters.IdleDrierTemperature = 80; +configurationParameters.IdleHeadTemperature = 80; +configurationParameters.IdleMixerTemperature = 0; +configurationParameters.PowerOffTemperatureLimit = 100; + +//general parameters, ORDER MUST BE PRESERVED!!!! +//check the dispensers hard limit alarms +/*1*/ +Double checkHardLimitAlarms = new Double(); + +checkHardLimitAlarms = 1.0; +configurationParameters.GeneralParameters.Add(checkHardLimitAlarms); + +/*2*/ +Double checkCurrentAlarms = new Double(); +checkCurrentAlarms = 1.0; +configurationParameters.GeneralParameters.Add(checkCurrentAlarms); +//check the tamper alarms + +/*3*/ +Double checkTamperAlarms = new Double(); +checkTamperAlarms = 0.0; +configurationParameters.GeneralParameters.Add(checkTamperAlarms); + +/*4*/ +Double checkMotorAlarms = new Double(); +checkMotorAlarms = 1.0; +configurationParameters.GeneralParameters.Add(checkMotorAlarms); + +/*5*/ +Double WinderBackToBaseTime = new Double(); +WinderBackToBaseTime = 820.0; +configurationParameters.GeneralParameters.Add(WinderBackToBaseTime); + +/*6*/ +Double DispenserInitialPressureSpeed = new Double(); +DispenserInitialPressureSpeed = 1050.0; +configurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed); + +/*7*/ +Double SetDiagnosticMode = new Double(); +SetDiagnosticMode = 3.0; +configurationParameters.GeneralParameters.Add(SetDiagnosticMode); + +/*8*/ +Double SetAutoFillMode = new Double(); +SetAutoFillMode = 0.0; +configurationParameters.GeneralParameters.Add(SetAutoFillMode); + +File.WriteAllBytes("C:/temp/EmbParam.cfg",configurationParameters.ToBytes()); + +byte[] fileBytes = File.ReadAllBytes("C:/temp/EmbParam.cfg"); + + +var config = ConfigurationParameters.Parser.ParseFrom(fileBytes); + + stubManager.Write( config); + Thread.Sleep(1000); +stubManager.Write("\n\n Deleting old file"); + +DeleteRequest deleteRequest = new DeleteRequest(); +deleteRequest.Path = "SYSINFO//EmbParam.cfg"; +deleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified; +DeleteResponse response5 = stubManager.Run<DeleteResponse>(deleteRequest); + + Thread.Sleep(1000); +stubManager.Write("\n\n Loading new file file"); + + FileUploadRequest fileUploadRequest = new FileUploadRequest(); +fileUploadRequest.Path = "SYSINFO//EmbParam.cfg"; +fileUploadRequest.Length = (int)fileBytes.Length; +FileUploadResponse response2 = stubManager.Run<FileUploadResponse>(fileUploadRequest); + Thread.Sleep(1000); +long chunk_size = response2.MaxChunkLength; + +FileStream fs = new FileStream("C:/temp/EmbParam.cfg",FileMode.Open); + +while (fs.Position < fs.Length) +{ + stubManager.Write("Position "+ fs.Position+ " Length "+ fs.Length +"\n\n"); + FileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest(); + fileChunkUploadRequest.UploadID = response2.UploadID; + byte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)]; + fs.Read(chunk,0,chunk.Length); + fileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk); + var response3 = stubManager.Run<FileChunkUploadResponse>(fileChunkUploadRequest); + Thread.Sleep(2000); + +} + +/* +13:46:42.38: Executing script 'embeddedparametersbuild.cs'... +{ "BreakSensorLimit": 10, "DiagnosticCollectionLimit": 1, "OverHeatCountLimit": 3, "UnderHeatCountLimit": 3, "CloseValveTimeout": 255, "OpenValveTimeout": 255, "InitialDispenserPressure": 1.5, "InitialDispenserTimeout": 60000, "InitialDispenserTimeLag": 100, "DispenserBuildPressureSpeed": 800, "DispenserBuildPressureLimit": 0.9, "DispenserBuildPressureTimeout": 80000, "DispenserBuildPressureLag": 50, "ACHeatersLowerOperationLimit": 995, "ACHeatersUpperOperationLimit": 1005, "DCHeatersLowerOperationLimit": 978, "DCHeatersUpperOperationLimit": 1005, "DispenserPresegmentWFCF": 80, "StartHeatingOnInitSequence": true, "GeneralParameters": [ 1, 1, 1, 1, 800, 1000 ], "CurrentAlarmLowLimit": 0.8, "CurrentAlarmHighLimit": 1.07, "IDSSegmentRefillTimeout": 5000, "IDSPreSegmentBuildupTime": 5000, "IDSCleaningSpeed": 50, "IDSCleaningStopBeforeSegmentTime": 3000, "IDSCleaningStartSprayPreSegmentTime": 1000, "IDSLeftCleaningMotorSpeed": 30, "IDSRightCleaningMotorSpeed": 23, "SwitchToIdleTimeinSeconds": 3600, "IdleDrierTemperature": 80, "IdleHeadTemperature": 80, "PowerOffTemperatureLimit": 50, "IDSPreSegmentWFCFTimeBeforeSegment": 1500 } */ + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/motormov.cs b/Software/Stubs Collection/stubs/Scripts/motormov.cs new file mode 100644 index 000000000..94862a76a --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/motormov.cs @@ -0,0 +1,23 @@ +using System; +using System.Text; +using System.IO; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + +StubMotorMovRequest stubMotorMovRequest = new StubMotorMovRequest(); +stubMotorMovRequest.MotorID = 21; +stubMotorMovRequest.Direction = false; +stubMotorMovRequest.Position = 1; +} + diff --git a/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs b/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs new file mode 100644 index 000000000..0f3ca238e --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/read write main eeprom fixed.cs @@ -0,0 +1,45 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + int WinderAddress =29; + int pullerAddress = 28; + StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest(); + StubMainCardEEpromWriteRequest stubMainCardEEpromWriteRequest = new StubMainCardEEpromWriteRequest(); + + stubMainCardEEpromReadRequest.Address = WinderAddress; + stubMainCardEEpromReadRequest.Data = 0; + + //var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); + + stubMainCardEEpromWriteRequest.Address = WinderAddress; + stubMainCardEEpromWriteRequest.Data = 0; + + var response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest); + + var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); + + stubMainCardEEpromReadRequest.Address = pullerAddress; + stubMainCardEEpromReadRequest.Data = 0; + +// var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); + + stubMainCardEEpromWriteRequest.Address = pullerAddress; + stubMainCardEEpromWriteRequest.Data = 0; + + response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest); + + response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs b/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs new file mode 100644 index 000000000..d418d5e0e --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/read write main eeprom.cs @@ -0,0 +1,45 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + int WinderAddress =29; + int pullerAddress = 28; + StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest(); + StubMainCardEEpromWriteRequest stubMainCardEEpromWriteRequest = new StubMainCardEEpromWriteRequest(); + + stubMainCardEEpromReadRequest.Address = WinderAddress; + stubMainCardEEpromReadRequest.Data = 0; + +// var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); + + stubMainCardEEpromWriteRequest.Address = WinderAddress; + stubMainCardEEpromWriteRequest.Data = 0; + + var response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest); + + var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); + + stubMainCardEEpromReadRequest.Address = pullerAddress; + stubMainCardEEpromReadRequest.Data = 0; + +// var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); + + stubMainCardEEpromWriteRequest.Address = pullerAddress; + stubMainCardEEpromWriteRequest.Data = 0; + + var response1 = stubManager.Run<StubMainCardEEpromWriteResponse>(stubMainCardEEpromWriteRequest); + + var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/waste level.cs b/Software/Stubs Collection/stubs/Scripts/waste level.cs new file mode 100644 index 000000000..a72f2a512 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/waste level.cs @@ -0,0 +1,71 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +//private const string FILE_PATH = "D:\\Waste.txt"; + +int i = 0; +bool valve_openclose = false; +//string temp; + +public void OnExecute(StubManager stubManager) +{ + + string File_Name2 = "D:\\Waste.txt" ; + + Thread.Sleep(1000); + + stubManager.WriteToFile(File_Name2,DateTime.Now +" " ); + + //Open Valve + stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201); + + Thread.Sleep(500); + + //Close Valve + var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200); + + Thread.Sleep(2000); + + stubManager.AppendToFile(File_Name2," " ); + stubManager.AppendToFile(File_Name2," waste [mili-volts] " ); + stubManager.AppendToFile(File_Name2," " ); + + for(i=0;i<5;i++) + { + + if(valve_openclose == true) + { + //Open Valve + stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201); + + Thread.Sleep(500); + + //Close Valve + stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200); + + Thread.Sleep(2000); + } + + //get waste level in mV + stubManager.Write("waste [mili volts]: "); + + var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01); + + stubManager.WriteLine(response.Progress); + + stubManager.AppendToFile(File_Name2,"" + (i+1) + ". " + response.Progress/*.ToString("F4")*/); + + Thread.Sleep(2000); + } + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/waste_level2.cs b/Software/Stubs Collection/stubs/Scripts/waste_level2.cs new file mode 100644 index 000000000..b70eb5023 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/waste_level2.cs @@ -0,0 +1,85 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +//mark the line in the embedded software: waste_seq_step1();// include 1Sec delay <- to open !!!! + +int i = 0,j=0,k=0; +bool valve_openclose = true; +double[] temp = {0,0,0,0,0,0,0,0}; +double sum = 0,avg = 0; + +public void OnExecute(StubManager stubManager) +{ + + string File_Name2 = "D:\\Waste.txt" ; + + Thread.Sleep(1000); + + stubManager.WriteToFile(File_Name2,DateTime.Now +" " ); + + //Open Valve + stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201); + + Thread.Sleep(500); + + //Close Valve + var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200); + + Thread.Sleep(2000); + + stubManager.AppendToFile(File_Name2," " ); + stubManager.AppendToFile(File_Name2," waste [mili-volts] " ); + stubManager.AppendToFile(File_Name2," " ); + + for(i=0;i<33;i++) + { + for(j=0;j<8;j++) + { + if(valve_openclose == true) + { + //Open Valve + stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0201); + + Thread.Sleep(500); + + //Close Valve + stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EB, 0x0200); + + Thread.Sleep(2000); + } + + //get waste level in mV + stubManager.Write("waste [mili volts]: "); + + var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3EC, 0x01); + + temp[j] = response.Progress; + + stubManager.WriteLine(response.Progress); + + //stubManager.AppendToFile(File_Name2,"" + (i+1) + ". " + response.Progress/*.ToString("F4")*/); + + Thread.Sleep(1000); + } + sum = 0; + for(k=0;k<8;k++) + sum = sum + temp[k]; + avg = sum/8; + stubManager.AppendToFile(File_Name2,"" + (i+1) + ". " + avg); + + //Thread.Sleep(2000); + + + } + + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs new file mode 100644 index 000000000..b5c7af2b1 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary 2.cs @@ -0,0 +1,31 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + +StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); +stubWhsEEpromRequest.BurnRequest = false; // false - read, true - write + +StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); +stubWhsEEpromData.Header = 1; +stubWhsEEpromData.TableLength = 2; +stubWhsEEpromData.Tableversion = 3; +stubWhsEEpromData.Orifice1Flow = 1067 * 8.7433; //mv * 8.7433 convert from mv to ml (1067 * 8.7433 = 9,329.1011) +stubWhsEEpromData.CheckSum = 5; + +stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; + +var response = stubManager.Run<StubWhsEEpromResponse>(stubWhsEEpromRequest); + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs new file mode 100644 index 000000000..65dcd499e --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/whs eeprom temporary.cs @@ -0,0 +1,42 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + +StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); +stubWhsEEpromRequest.BurnRequest = true; + +StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); +stubWhsEEpromData.Header = 0; +stubWhsEEpromData.TableLength = 0; +stubWhsEEpromData.Tableversion = 0; +stubWhsEEpromData.Orifice1Flow = 10.5; +stubWhsEEpromData.CheckSum = 0; + +//stubWhsEEpromRequest.WhsEEprom = whsEEprom; + + for (int i = 0; i < 10; i++) + { + var response = stubManager.Run<CalculateResponse>("calculate", 1, i); + + if (response.Sum == 10) + { + stubManager.WriteLine("OK!"); + } + else + { + stubManager.WriteLine(response.Sum); + } + } +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs b/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs new file mode 100644 index 000000000..f9e3cbd22 --- /dev/null +++ b/Software/Stubs Collection/stubs/Scripts/whs fans stop.cs @@ -0,0 +1,28 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + +ProgressRequest progressRequest = new ProgressRequest(); +progressRequest.Amount = 0xfAc0; +progressRequest.Delay = 0; + +int i; + +for (i = 0; i<6;i++) + { + progressRequest.Amount = 0xfAc0+i; + var response = stubManager.Run<ProgressResponse>(progressRequest); + } +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuild.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs index 80509b697..6d2b6298e 100644 --- a/Software/Stubs Collection/stubs/embeddedparametersbuild.cs +++ b/Software/Stubs Collection/stubs/embeddedparametersbuild.cs @@ -76,8 +76,13 @@ configurationParameters.IDSCleaningSpeed = 800; configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment -configurationParameters.IDSLeftCleaningMotorSpeed = 48; -configurationParameters.IDSRightCleaningMotorSpeed = 48; +int Tup=3,Tdelay1=5,Tdelay2=20; +/* Tup = LeftRockerSpeed/100; + Tdelay1 = LeftRockerSpeed%100; + Tdelay2 = RightRockerSpeed; +*/ +configurationParameters.IDSLeftCleaningMotorSpeed = Tup*100+Tdelay1; +configurationParameters.IDSRightCleaningMotorSpeed = Tdelay2; configurationParameters.SwitchToIdleTimeinSeconds = 3600; configurationParameters.IdleDrierTemperature = 80; @@ -101,7 +106,7 @@ configurationParameters.GeneralParameters.Add(checkCurrentAlarms); /*3*/ Double checkTamperAlarms = new Double(); -checkTamperAlarms = 1.0; +checkTamperAlarms = 0.0; configurationParameters.GeneralParameters.Add(checkTamperAlarms); /*4*/ diff --git a/Software/Stubs Collection/stubs/read main card eeprom.cs b/Software/Stubs Collection/stubs/read main card eeprom.cs new file mode 100644 index 000000000..3ba77a86b --- /dev/null +++ b/Software/Stubs Collection/stubs/read main card eeprom.cs @@ -0,0 +1,25 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + + for (int i = 0; i < 30; i++) + { + StubMainCardEEpromReadRequest stubMainCardEEpromReadRequest = new StubMainCardEEpromReadRequest(); + stubMainCardEEpromReadRequest.Address = i; + stubMainCardEEpromReadRequest.Data = 0; + + var response = stubManager.Run<StubMainCardEEpromReadResponse>(stubMainCardEEpromReadRequest); + } +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/stop whs blower control.cs b/Software/Stubs Collection/stubs/stop whs blower control.cs new file mode 100644 index 000000000..b2bfbe23e --- /dev/null +++ b/Software/Stubs Collection/stubs/stop whs blower control.cs @@ -0,0 +1,23 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + +ProgressRequest progressRequest = new ProgressRequest(); +progressRequest.Amount = 0x3e8; +progressRequest.Delay = 100; + + var response = stubManager.Run<ProgressResponse>(progressRequest); + +}
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf b/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf new file mode 100644 index 000000000..ae2a5fcbc --- /dev/null +++ b/Software/Stubs Collection/stubs/technician view files/teach board 2.tpf @@ -0,0 +1,3099 @@ +<?xml version="1.0"?> +<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <Items /> + <Tabs> + <MachineTechViewProjectTab> + <Name>Temperatures</Name> + <Items> + <TechItem xsi:type="DigitalOutItem"> + <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID> + <Left>415</Left> + <Top>692.74336283185824</Top> + <Width>160</Width> + <Height>102.34070796460173</Height> + <Angle>0</Angle> + <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> + <Left>928</Left> + <Top>593.77433628318579</Top> + <Width>207</Width> + <Height>184.4159292035398</Height> + <Angle>0</Angle> + <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerAirHeater</HeaterType> + <SetPoint>180</SetPoint> + <CurrentValue>158.38</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>180</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> + <Left>828</Left> + <Top>682.88053097345</Top> + <Width>130</Width> + <Height>100.31415929203541</Height> + <Angle>0</Angle> + <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerMainHeater</HeaterType> + <SetPoint>100</SetPoint> + <CurrentValue>168.01</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>100</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> + <Left>717</Left> + <Top>684.46902654867324</Top> + <Width>127</Width> + <Height>101.3274336283186</Height> + <Angle>0</Angle> + <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerSecondaryHeater</HeaterType> + <SetPoint>100</SetPoint> + <CurrentValue>170.76</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>100</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> + <Left>931</Left> + <Top>83.08407079646031</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone3</HeaterType> + <SetPoint>120</SetPoint> + <CurrentValue>81.48</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>120</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> + <Left>1106</Left> + <Top>88.1504424778762</Top> + <Width>200</Width> + <Height>187.45575221238937</Height> + <Angle>0</Angle> + <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone2</HeaterType> + <SetPoint>100</SetPoint> + <CurrentValue>69.44</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>100</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> + <Left>1311</Left> + <Top>89.163716814159329</Top> + <Width>157</Width> + <Height>194.54867256637175</Height> + <Angle>0</Angle> + <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone1</HeaterType> + <SetPoint>80</SetPoint> + <CurrentValue>65.46</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>80</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> + <Left>1140</Left> + <Top>588.70796460177</Top> + <Width>173</Width> + <Height>183.40265486725662</Height> + <Angle>0</Angle> + <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>MixerHeater</HeaterType> + <SetPoint>80</SetPoint> + <CurrentValue>75.83</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>80</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID> + <Left>751</Left> + <Top>80.420353982302458</Top> + <Width>169</Width> + <Height>197.27876106194645</Height> + <Angle>0</Angle> + <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone4</HeaterType> + <SetPoint>120</SetPoint> + <CurrentValue>90.85</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>120</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> + <Left>547</Left> + <Top>85.482300884952679</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone5</HeaterType> + <SetPoint>135</SetPoint> + <CurrentValue>94.97</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>135</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID> + <Left>353</Left> + <Top>86.69911504424698</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone6</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>100.64999999999999</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID> + <Left>265</Left> + <Top>683.95575221238948</Top> + <Width>131</Width> + <Height>109.43362831858394</Height> + <Angle>0</Angle> + <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID> + <Left>1027.9999999999973</Left> + <Top>291.07079646017547</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>D</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID> + <Left>907.99999999999909</Left> + <Top>295.35840707964616</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>F</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID> + <Left>785.00000000000159</Left> + <Top>288.5000000000004</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>I</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID> + <Left>624.99999999999966</Left> + <Top>285.86725663716874</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>L</Text> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID> + <Left>569</Left> + <Top>688.00884955752213</Top> + <Width>155</Width> + <Height>96.261061946902714</Height> + <Angle>0</Angle> + <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorRecorderItem"> + <ID>43793f93-da64-4409-b583-bca498f641e6</ID> + <Left>1308</Left> + <Top>656.59734513274338</Top> + <Width>203</Width> + <Height>107.40707964601774</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <SelectedMonitorsGuids /> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID> + <Left>1292</Left> + <Top>343.56637168141606</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone7</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>102.00999999999999</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID> + <Left>1190.0000000000025</Left> + <Top>294.69026548672929</Top> + <Width>39</Width> + <Height>38.504424778760836</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>C</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID> + <Left>1369</Left> + <Top>295.87168141592934</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>A</Text> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID> + <Left>1107</Left> + <Top>342.55309734513293</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone8</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>98.399999999999991</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID> + <Left>924</Left> + <Top>343.56637168141606</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone9</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>99.46</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID> + <Left>359</Left> + <Top>342.55309734513304</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone12</HeaterType> + <SetPoint>145</SetPoint> + <CurrentValue>80.37</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>145</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID> + <Left>550</Left> + <Top>343.56637168141611</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone11</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>93.11999999999999</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID> + <Left>738</Left> + <Top>344.57964601769908</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone10</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>98.38</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="ProcessParametersItem"> + <ID>120a9bea-5b5a-4ba4-92f5-40135f49a344</ID> + <Left>6</Left> + <Top>535.07522123893818</Top> + <Width>338</Width> + <Height>137.80530973451323</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <ProcessParameters> + <ID>0</ID> + <Guid>674d92c5-e6f8-4a62-bc62-b8e2fe0882a0</Guid> + <LastUpdated>2020-01-14T07:44:15.1425366Z</LastUpdated> + <Name>Process parameters 2</Name> + <DyeingSpeed>0</DyeingSpeed> + <MinInkUptake>0</MinInkUptake> + <MaxInkUptake>0</MaxInkUptake> + <FeederTension>0</FeederTension> + <PullerTension>0</PullerTension> + <WinderTension>0</WinderTension> + <MixerTemp>0</MixerTemp> + <HeadZone1Temp>0</HeadZone1Temp> + <HeadZone2Temp>0</HeadZone2Temp> + <HeadZone3Temp>0</HeadZone3Temp> + <HeadZone4Temp>0</HeadZone4Temp> + <HeadZone5Temp>0</HeadZone5Temp> + <HeadZone6Temp>0</HeadZone6Temp> + <DryerAirFlow>7</DryerAirFlow> + <DryerZone1Temp>0</DryerZone1Temp> + <DryerZone2Temp>0</DryerZone2Temp> + <DryerZone3Temp>0</DryerZone3Temp> + <DryerBufferLength>0</DryerBufferLength> + <HeadAirFlow>7</HeadAirFlow> + <TableIndex>0</TableIndex> + <HeadZone7Temp>0</HeadZone7Temp> + <HeadZone8Temp>0</HeadZone8Temp> + <HeadZone9Temp>0</HeadZone9Temp> + <HeadZone10Temp>0</HeadZone10Temp> + <HeadZone11Temp>0</HeadZone11Temp> + <HeadZone12Temp>0</HeadZone12Temp> + <RBlowerFlow>0</RBlowerFlow> + <RBlowerTemp>0</RBlowerTemp> + <LBlowerFlow>0</LBlowerFlow> + <LBlowerTemp>0</LBlowerTemp> + <PressureBuildUp>0</PressureBuildUp> + </ProcessParameters> + <ParametersIndices> + <ParameterIndex> + <Name>Name</Name> + <Index>0</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dyeing Speed</Name> + <Index>1</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Min Ink Uptake</Name> + <Index>2</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Max Ink Uptake</Name> + <Index>3</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Feeder Tension</Name> + <Index>4</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Puller Tension</Name> + <Index>5</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Winder Tension</Name> + <Index>6</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Mixer Temp</Name> + <Index>7</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 1 Temp</Name> + <Index>8</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 2 Temp</Name> + <Index>9</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 3 Temp</Name> + <Index>10</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 4 Temp</Name> + <Index>11</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 5 Temp</Name> + <Index>12</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 6 Temp</Name> + <Index>13</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Air Flow</Name> + <Index>14</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 1 Temp</Name> + <Index>15</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 2 Temp</Name> + <Index>16</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 3 Temp</Name> + <Index>17</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Buffer Length</Name> + <Index>18</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Air Flow</Name> + <Index>19</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Process Parameters Tables Group Guid</Name> + <Index>20</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Table Index</Name> + <Index>21</Index> + </ParameterIndex> + </ParametersIndices> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID> + <Left>1458.875</Left> + <Top>91.7821782178217</Top> + <Width>200</Width> + <Height>187.45575221238937</Height> + <Angle>0</Angle> + <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater1</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>283.75</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID> + <Left>1457.8333333333333</Left> + <Top>344.58910891089096</Top> + <Width>200</Width> + <Height>187.45575221238937</Height> + <Angle>0</Angle> + <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater2</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>283.75</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>0214c2bd-98e2-4435-b55f-ec165b0782dd</ID> + <Left>532</Left> + <Top>587.69469026548677</Top> + <Width>163</Width> + <Height>77.008849557522126</Height> + <Angle>0</Angle> + <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>387e9a45-e608-47b8-9f3c-5572d0544e41</ID> + <Left>708</Left> + <Top>584.65486725663732</Top> + <Width>168</Width> + <Height>84.101769911504334</Height> + <Angle>0</Angle> + <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="BlowerItem"> + <ID>18f62f2f-dbc0-4a3e-8af6-efdffc9562a5</ID> + <Left>12</Left> + <Top>699.86283185840716</Top> + <Width>234</Width> + <Height>96.2610619469026</Height> + <Angle>0</Angle> + <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>cb7b89a1-cdb4-408e-acc8-40e8dcb8d6ac</ID> + <Left>7</Left> + <Top>5.995575221238937</Top> + <Width>142</Width> + <Height>84.101769911504391</Height> + <Angle>0</Angle> + <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>6be6ca7d-3ca6-4206-9c67-415174b71ace</ID> + <Left>168</Left> + <Top>7.3893805309738809</Top> + <Width>146</Width> + <Height>83.088495575221259</Height> + <Angle>0</Angle> + <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>2dca972d-3c41-4b07-a047-b63a23470a7e</ID> + <Left>347</Left> + <Top>574.92035398230325</Top> + <Width>160</Width> + <Height>102.34070796460173</Height> + <Angle>0</Angle> + <ItemGuid>75f69efe-1c7e-4015-a6eb-2686d4f67a67</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ProcessParametersItem"> + <ID>38e5d1ac-40a5-4c5f-822c-51813cb15b7b</ID> + <Left>31</Left> + <Top>144.3584070796461</Top> + <Width>310</Width> + <Height>315.12831858407088</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <ProcessParameters> + <ID>0</ID> + <Guid>ce709f03-59be-410d-a928-e942c0c46ce3</Guid> + <LastUpdated>2020-02-09T12:45:24.1272815Z</LastUpdated> + <Name>Process parameters 6</Name> + <DyeingSpeed>50</DyeingSpeed> + <MinInkUptake>0</MinInkUptake> + <MaxInkUptake>0</MaxInkUptake> + <FeederTension>0</FeederTension> + <PullerTension>5000</PullerTension> + <WinderTension>5000</WinderTension> + <MixerTemp>80</MixerTemp> + <HeadZone1Temp>80</HeadZone1Temp> + <HeadZone2Temp>90</HeadZone2Temp> + <HeadZone3Temp>110</HeadZone3Temp> + <HeadZone4Temp>120</HeadZone4Temp> + <HeadZone5Temp>130</HeadZone5Temp> + <HeadZone6Temp>135</HeadZone6Temp> + <DryerAirFlow>7</DryerAirFlow> + <DryerZone1Temp>190</DryerZone1Temp> + <DryerZone2Temp>0</DryerZone2Temp> + <DryerZone3Temp>0</DryerZone3Temp> + <DryerBufferLength>0</DryerBufferLength> + <HeadAirFlow>7</HeadAirFlow> + <TableIndex>0</TableIndex> + <HeadZone7Temp>135</HeadZone7Temp> + <HeadZone8Temp>135</HeadZone8Temp> + <HeadZone9Temp>135</HeadZone9Temp> + <HeadZone10Temp>135</HeadZone10Temp> + <HeadZone11Temp>140</HeadZone11Temp> + <HeadZone12Temp>140</HeadZone12Temp> + <RBlowerFlow>0</RBlowerFlow> + <RBlowerTemp>0</RBlowerTemp> + <LBlowerFlow>0</LBlowerFlow> + <LBlowerTemp>0</LBlowerTemp> + <PressureBuildUp>0</PressureBuildUp> + </ProcessParameters> + <ParametersIndices> + <ParameterIndex> + <Name>Process Parameters Tables Group Guid</Name> + <Index>0</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Name</Name> + <Index>1</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Table Index</Name> + <Index>2</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dyeing Speed</Name> + <Index>3</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Min Ink Uptake</Name> + <Index>4</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Max Ink Uptake</Name> + <Index>5</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Feeder Tension</Name> + <Index>6</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Puller Tension</Name> + <Index>7</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Winder Tension</Name> + <Index>8</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Mixer Temp</Name> + <Index>9</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 1 Temp</Name> + <Index>10</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 2 Temp</Name> + <Index>11</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 3 Temp</Name> + <Index>12</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 4 Temp</Name> + <Index>13</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 5 Temp</Name> + <Index>14</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 6 Temp</Name> + <Index>15</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 7 Temp</Name> + <Index>16</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 8 Temp</Name> + <Index>17</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 9 Temp</Name> + <Index>18</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 10 Temp</Name> + <Index>19</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 11 Temp</Name> + <Index>20</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 12 Temp</Name> + <Index>21</Index> + </ParameterIndex> + <ParameterIndex> + <Name>St Sp Zone 1 Temp</Name> + <Index>22</Index> + </ParameterIndex> + <ParameterIndex> + <Name>St Sp Zone 2 Temp</Name> + <Index>23</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 1 Temp</Name> + <Index>24</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 2 Temp</Name> + <Index>25</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 3 Temp</Name> + <Index>26</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Air Flow</Name> + <Index>27</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Air Flow</Name> + <Index>28</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Buffer Length</Name> + <Index>29</Index> + </ParameterIndex> + </ParametersIndices> + </TechItem> + <TechItem xsi:type="ProcessParametersItem"> + <ID>d2e09fbf-2ac8-4c32-a4f5-45e50e305098</ID> + <Left>1016</Left> + <Top>821.96460176991263</Top> + <Width>361</Width> + <Height>233.95575221238948</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <ProcessParameters> + <ID>0</ID> + <Guid>9b265a7c-cc48-4c5a-abed-dfa8c8e3099f</Guid> + <LastUpdated>2020-02-09T13:11:03.3185652Z</LastUpdated> + <Name>Process parameters 2</Name> + <DyeingSpeed>0</DyeingSpeed> + <MinInkUptake>0</MinInkUptake> + <MaxInkUptake>0</MaxInkUptake> + <FeederTension>0</FeederTension> + <PullerTension>0</PullerTension> + <WinderTension>0</WinderTension> + <MixerTemp>0</MixerTemp> + <HeadZone1Temp>0</HeadZone1Temp> + <HeadZone2Temp>0</HeadZone2Temp> + <HeadZone3Temp>0</HeadZone3Temp> + <HeadZone4Temp>0</HeadZone4Temp> + <HeadZone5Temp>0</HeadZone5Temp> + <HeadZone6Temp>0</HeadZone6Temp> + <DryerAirFlow>0</DryerAirFlow> + <DryerZone1Temp>100</DryerZone1Temp> + <DryerZone2Temp>0</DryerZone2Temp> + <DryerZone3Temp>0</DryerZone3Temp> + <DryerBufferLength>0</DryerBufferLength> + <HeadAirFlow>0</HeadAirFlow> + <TableIndex>0</TableIndex> + <HeadZone7Temp>0</HeadZone7Temp> + <HeadZone8Temp>0</HeadZone8Temp> + <HeadZone9Temp>0</HeadZone9Temp> + <HeadZone10Temp>0</HeadZone10Temp> + <HeadZone11Temp>0</HeadZone11Temp> + <HeadZone12Temp>0</HeadZone12Temp> + <RBlowerFlow>0</RBlowerFlow> + <RBlowerTemp>0</RBlowerTemp> + <LBlowerFlow>0</LBlowerFlow> + <LBlowerTemp>0</LBlowerTemp> + <PressureBuildUp>0</PressureBuildUp> + </ProcessParameters> + <ParametersIndices> + <ParameterIndex> + <Name>Name</Name> + <Index>0</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dyeing Speed</Name> + <Index>1</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Min Ink Uptake</Name> + <Index>2</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Max Ink Uptake</Name> + <Index>3</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Feeder Tension</Name> + <Index>4</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Puller Tension</Name> + <Index>5</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Winder Tension</Name> + <Index>6</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Mixer Temp</Name> + <Index>7</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 1 Temp</Name> + <Index>8</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 2 Temp</Name> + <Index>9</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 3 Temp</Name> + <Index>10</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 4 Temp</Name> + <Index>11</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 5 Temp</Name> + <Index>12</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 6 Temp</Name> + <Index>13</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Air Flow</Name> + <Index>14</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 1 Temp</Name> + <Index>15</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 2 Temp</Name> + <Index>16</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 3 Temp</Name> + <Index>17</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Buffer Length</Name> + <Index>18</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Air Flow</Name> + <Index>19</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Process Parameters Tables Group Guid</Name> + <Index>20</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Table Index</Name> + <Index>21</Index> + </ParameterIndex> + </ParametersIndices> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>11f4748e-ed30-48d6-a08a-afeaa0277e2e</ID> + <Left>330</Left> + <Top>12.154867256637203</Top> + <Width>205</Width> + <Height>90.181415929203524</Height> + <Angle>0</Angle> + <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>dcf78507-ea09-4529-b635-ec1eeed31141</ID> + <Left>145</Left> + <Top>842.58849557522137</Top> + <Width>357</Width> + <Height>215.82743362831855</Height> + <Angle>0</Angle> + <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>1275</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>85d4727d-4be2-4854-8584-5fcb0a1bb19f</ID> + <Left>545</Left> + <Top>12.154867256637203</Top> + <Width>164</Width> + <Height>70.929203539822993</Height> + <Angle>0</Angle> + <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>09b1e471-50a5-41e4-9dea-d16518fb3b59</ID> + <Left>754</Left> + <Top>12.154867256637203</Top> + <Width>178</Width> + <Height>70.929203539822993</Height> + <Angle>0</Angle> + <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Thread</Name> + <Items> + <TechItem xsi:type="MonitorItem"> + <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID> + <Left>1530</Left> + <Top>193.19911504424795</Top> + <Width>169</Width> + <Height>181.37610619469029</Height> + <Angle>0</Angle> + <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>68eef943-2151-4df5-be61-044c3865606e</ID> + <Left>1172</Left> + <Top>145.78318584070678</Top> + <Width>175</Width> + <Height>167.827433628319</Height> + <Angle>0</Angle> + <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID> + <Left>988</Left> + <Top>143.32300884955998</Top> + <Width>190</Width> + <Height>167.09734513274049</Height> + <Angle>0</Angle> + <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID> + <Left>817</Left> + <Top>142.42035398230098</Top> + <Width>169</Width> + <Height>168.31858407079625</Height> + <Angle>0</Angle> + <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID> + <Left>922</Left> + <Top>516.43362831858417</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1460</Duration> + <Min>0</Min> + <Max>16384</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID> + <Left>465</Left> + <Top>515.420353982301</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1516</Duration> + <Min>0</Min> + <Max>16384</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID> + <Left>15</Left> + <Top>518.46017699115032</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1398</Duration> + <Min>0</Min> + <Max>16384</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID> + <Left>12</Left> + <Top>13.849557522123973</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1273</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID> + <Left>860</Left> + <Top>-24.18584070796669</Top> + <Width>345</Width> + <Height>169.21681415929209</Height> + <Angle>0</Angle> + <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>514</Duration> + <Min>0</Min> + <Max>100000</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID> + <Left>19</Left> + <Top>324.14159292035305</Top> + <Width>429</Width> + <Height>193.26548672566258</Height> + <Angle>0</Angle> + <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>4</DecimalPlaces> + <Duration>1398</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID> + <Left>474</Left> + <Top>320.03097345132551</Top> + <Width>429</Width> + <Height>193.26548672566258</Height> + <Angle>0</Angle> + <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>4</DecimalPlaces> + <Duration>1398</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID> + <Left>928</Left> + <Top>321.64601769912122</Top> + <Width>429</Width> + <Height>193.26548672566258</Height> + <Angle>0</Angle> + <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>4</DecimalPlaces> + <Duration>1398</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="MonitorRecorderItem"> + <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID> + <Left>1303</Left> + <Top>34.380530973454768</Top> + <Width>176</Width> + <Height>83.05309734512457</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <SelectedMonitorsGuids> + <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string> + <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> + <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> + <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> + <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> + <string>9ADF7823-B293-4275-9999-F62474D246AA</string> + <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string> + <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> + </SelectedMonitorsGuids> + </TechItem> + <TechItem xsi:type="ThreadMotionItem"> + <ID>be5b2c37-4481-4293-b957-bf65d8516fee</ID> + <Left>464</Left> + <Top>21.274336283185846</Top> + <Width>315</Width> + <Height>177.3230088495576</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <Speed>20</Speed> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>aace77b8-02ca-4c88-abc1-590fc2592b99</ID> + <Left>1355</Left> + <Top>146.70796460176933</Top> + <Width>175</Width> + <Height>167.827433628319</Height> + <Angle>0</Angle> + <ItemGuid>89B7B89D-8050-4188-B568-35B1910CFB6F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Dispensers</Name> + <Items> + <TechItem xsi:type="DispenserItem"> + <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> + <Left>1322.1428571428571</Left> + <Top>214.15929203538531</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>800</Speed> + <DisplayName>Dispenser 1</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> + <Left>1149</Left> + <Top>218.48230088495342</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> + <ColorNumber>-16724737</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 2</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> + <Left>959</Left> + <Top>210.32743362830422</Top> + <Width>156</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> + <ColorNumber>-65325</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 3</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> + <Left>775</Left> + <Top>206.42920353980952</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> + <ColorNumber>-524544</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 4</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> + <Left>585</Left> + <Top>208.47345132741418</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> + <ColorNumber>-2108246</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 5</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> + <Left>372</Left> + <Top>216.75221238937439</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> + <ColorNumber>-263685</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 6</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> + <Left>217</Left> + <Top>211.63716814158107</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> + <ColorNumber>-723724</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 7</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> + <Left>45</Left> + <Top>216.04867256635521</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> + <ColorNumber>-724238</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 8</DisplayName> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> + <Left>1305</Left> + <Top>31.606194690259713</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-15856114</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> + <Left>1127</Left> + <Top>32.535398230081626</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-15293470</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> + <Left>955</Left> + <Top>32.61946902653176</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> + <ColorNumber>-1570857</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> + <Left>774</Left> + <Top>31.960176991142362</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> + <ColorNumber>-1379575</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>3980e685-73b3-4af1-9593-9235be147322</ID> + <Left>596</Left> + <Top>32.889380530964274</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> + <ColorNumber>-7763381</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> + <Left>424</Left> + <Top>32.973451327414409</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> + <Left>252</Left> + <Top>31.703539823006281</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> + <ColorNumber>-8391822</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> + <Left>80</Left> + <Top>31.787610619456416</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> + <ColorNumber>-2186185</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID> + <Left>28.22352941176473</Left> + <Top>682.03174474303751</Top> + <Width>247</Width> + <Height>122.24778761061873</Height> + <Angle>0</Angle> + <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID> + <Left>235.16470588235291</Left> + <Top>699.99460095802579</Top> + <Width>200</Width> + <Height>94.15929203539747</Height> + <Angle>0</Angle> + <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ControllerItem"> + <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID> + <Left>140</Left> + <Top>867.73893805310092</Top> + <Width>160</Width> + <Height>85.49115044247776</Height> + <Angle>0</Angle> + <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <OptimalRangeMinimum>0</OptimalRangeMinimum> + <OptimalRangeMaximum>70</OptimalRangeMaximum> + <UpdateInterval>10</UpdateInterval> + <IsSetToDefault>true</IsSetToDefault> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID> + <Left>507</Left> + <Top>792.77433628318749</Top> + <Width>219</Width> + <Height>125.75221238938025</Height> + <Angle>0</Angle> + <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid> + <ColorNumber>-16777216</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID> + <Left>1303</Left> + <Top>475.87168141593065</Top> + <Width>160</Width> + <Height>124.6504424778754</Height> + <Angle>0</Angle> + <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> + <ColorNumber>-15856114</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MultiGraphItem"> + <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID> + <Left>370</Left> + <Top>781.46902654866153</Top> + <Width>710</Width> + <Height>401.24778761063465</Height> + <Angle>0</Angle> + <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid> + <ColorNumber>0</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>1956</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID> + <Left>1128</Left> + <Top>482.80530973451141</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid> + <ColorNumber>-15293470</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID> + <Left>968</Left> + <Top>481.35398230088504</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid> + <ColorNumber>-1570857</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID> + <Left>766</Left> + <Top>476.07964601769811</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid> + <ColorNumber>-1379575</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID> + <Left>586</Left> + <Top>474.38938053097161</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid> + <ColorNumber>-7763381</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID> + <Left>391</Left> + <Top>474.87168141592781</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID> + <Left>226</Left> + <Top>471.66814159292005</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid> + <ColorNumber>-8391822</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID> + <Left>69</Left> + <Top>473.97787610619389</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> + <Left>1130</Left> + <Top>624.9557522123913</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> + <Left>969</Left> + <Top>625.95575221239</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> + <Left>775</Left> + <Top>623.66814159292062</Top> + <Width>144</Width> + <Height>82.535398230087083</Height> + <Angle>0</Angle> + <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> + <Left>588</Left> + <Top>625.06637168141322</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> + <Left>1310</Left> + <Top>628.69469026548632</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> + <Left>20.870588235294122</Left> + <Top>784.26605504587133</Top> + <Width>327</Width> + <Height>108.53097345133028</Height> + <Angle>0</Angle> + <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID> + <Left>1065</Left> + <Top>788.41592920352355</Top> + <Width>370</Width> + <Height>362.10619469026585</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>1426</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID> + <Left>628</Left> + <Top>765.4469026548752</Top> + <Width>394</Width> + <Height>372.88495575221242</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1282</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> + <Left>1069</Left> + <Top>698.04867256637226</Top> + <Width>382</Width> + <Height>136.79203539823016</Height> + <Angle>0</Angle> + <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> + <Left>231</Left> + <Top>624.06637168142413</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> + <ColorNumber>-8391822</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> + <Left>77</Left> + <Top>624.46460176991513</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> + <ColorNumber>-2186185</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Thread insertion</Name> + <Items> + <TechItem xsi:type="MotorItem"> + <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> + <Left>25</Left> + <Top>22.761061946902203</Top> + <Width>247</Width> + <Height>172.25663716814159</Height> + <Angle>0</Angle> + <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> + <Left>355</Left> + <Top>20.592920353981697</Top> + <Width>260</Width> + <Height>153.00442477876106</Height> + <Angle>0</Angle> + <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>350</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> + <Left>694</Left> + <Top>19.367256637167998</Top> + <Width>217</Width> + <Height>155.26106194690203</Height> + <Angle>0</Angle> + <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>350</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> + <Left>364</Left> + <Top>222.16814159291846</Top> + <Width>240</Width> + <Height>172.30973451327589</Height> + <Angle>0</Angle> + <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> + <Left>29</Left> + <Top>241.34955752210982</Top> + <Width>263</Width> + <Height>174.296460176989</Height> + <Angle>0</Angle> + <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>400</Speed> + </TechItem> + <TechItem xsi:type="ThreadMotionItem"> + <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID> + <Left>1168</Left> + <Top>47.305309734517039</Top> + <Width>304</Width> + <Height>167.26548672566202</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <Speed>40</Speed> + </TechItem> + <TechItem xsi:type="BreakSensorItem"> + <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID> + <Left>1258</Left> + <Top>277.55752212389069</Top> + <Width>240</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> + <Left>695</Left> + <Top>223.44247787610908</Top> + <Width>228</Width> + <Height>175.0353982300901</Height> + <Angle>0</Angle> + <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>20</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> + <Left>81</Left> + <Top>542.88495575220634</Top> + <Width>220</Width> + <Height>168.473451327436</Height> + <Angle>0</Angle> + <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>1000</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> + <Left>376</Left> + <Top>553.11061946903</Top> + <Width>240</Width> + <Height>159.84070796460173</Height> + <Angle>0</Angle> + <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>20</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> + <Left>1014</Left> + <Top>290.60619469026437</Top> + <Width>240</Width> + <Height>172.30973451327589</Height> + <Angle>0</Angle> + <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> + <Left>548</Left> + <Top>418.71652683599893</Top> + <Width>269</Width> + <Height>127.67256637168134</Height> + <Angle>0</Angle> + <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> + <Left>803</Left> + <Top>569.80530973451619</Top> + <Width>227</Width> + <Height>145.08849557522183</Height> + <Angle>0</Angle> + <ItemGuid>b71ad55d-d296-4371-a6d2-9d3c637c0380</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>300</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> + <Left>1107</Left> + <Top>573.87168141592883</Top> + <Width>227</Width> + <Height>145.08849557522183</Height> + <Angle>0</Angle> + <ItemGuid>4d097acc-df45-46af-bb7e-3d177ab27a9b</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>20</Speed> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID> + <Left>264</Left> + <Top>417.77433628317885</Top> + <Width>240</Width> + <Height>116.10176991150968</Height> + <Angle>0</Angle> + <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Head graphs</Name> + <Items> + <TechItem xsi:type="SingleGraphItem"> + <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID> + <Left>3</Left> + <Top>5.8097345132742362</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID> + <Left>371</Left> + <Top>21.075221238938013</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID> + <Left>517</Left> + <Top>11.517699115044195</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone7</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>81.63</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>7e0942e7-a87a-402a-b580-5091ed6b29ee</ID> + <Left>8</Left> + <Top>276.6194690265491</Top> + <Width>357</Width> + <Height>143.58407079645986</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44809</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID> + <Left>374</Left> + <Top>280.73893805309746</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID> + <Left>519</Left> + <Top>283.3407079646019</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone9</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>81.35</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID> + <Left>8.75</Left> + <Top>704.87334618417651</Top> + <Width>350</Width> + <Height>152.70353982300856</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44812</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID> + <Left>375.66666666666663</Left> + <Top>902.19714360816624</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID> + <Left>523.04166666666652</Left> + <Top>895.90015771488663</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater2</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>283.75</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID> + <Left>6</Left> + <Top>563.37610619469046</Top> + <Width>358</Width> + <Height>141.55752212389359</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44811</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID> + <Left>379</Left> + <Top>573.57522123893818</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID> + <Left>523</Left> + <Top>571.1106194690268</Top> + <Width>103</Width> + <Height>116.52654867256626</Height> + <Angle>0</Angle> + <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone11</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>83.05</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>182492d7-b240-4162-b8ec-39996eec3cc7</ID> + <Left>9</Left> + <Top>418.47787610619497</Top> + <Width>353</Width> + <Height>145.61061946902635</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44810</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID> + <Left>378</Left> + <Top>430.703539823009</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID> + <Left>519</Left> + <Top>428.23893805309746</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone10</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>82.029999999999987</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>00dda04e-1853-422f-ac47-29bdbab642d7</ID> + <Left>7</Left> + <Top>142.86725663716828</Top> + <Width>357</Width> + <Height>152.70353982300867</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44808</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID> + <Left>382</Left> + <Top>151.03982300884968</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID> + <Left>519</Left> + <Top>147.561946902655</Top> + <Width>104</Width> + <Height>109.43362831858406</Height> + <Angle>0</Angle> + <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone8</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>79.66</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID> + <Left>623</Left> + <Top>117.5353982300885</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID> + <Left>1005</Left> + <Top>12.221238938053205</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID> + <Left>1148</Left> + <Top>293.47345132743362</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone3</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>82.94</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>99af8946-4971-4913-9382-705c4e05b7ce</ID> + <Left>621</Left> + <Top>275.60619469026591</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID> + <Left>993</Left> + <Top>279.72566371681404</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID> + <Left>1146</Left> + <Top>14.823008849557596</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone1</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>65.62</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>7b7d9bea-29df-4f94-8ab6-2a6d7105bccf</ID> + <Left>627</Left> + <Top>6.07522123893807</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID> + <Left>1003</Left> + <Top>151.03982300884974</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID> + <Left>1145</Left> + <Top>153.64159292035396</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone2</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>75.59</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>64fba32f-3c03-42b3-b1ed-e2bdbe454bd6</ID> + <Left>630</Left> + <Top>535.00442477876129</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID> + <Left>1008</Left> + <Top>707.327433628319</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID> + <Left>1150</Left> + <Top>716.00884955752235</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone6</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>79.04</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID> + <Left>629</Left> + <Top>387.066371681416</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID> + <Left>1004</Left> + <Top>562.42920353982311</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID> + <Left>1149</Left> + <Top>571.1106194690268</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone5</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>79.13</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>60dff2b2-7ddc-47a9-90b1-3f45968c1790</ID> + <Left>630</Left> + <Top>692.06194690265511</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID> + <Left>1002</Left> + <Top>413.47787610619491</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID> + <Left>1148</Left> + <Top>434.31858407079636</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone4</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>84.699999999999989</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID> + <Left>5.7499999999999858</Left> + <Top>866.06435643564362</Top> + <Width>350</Width> + <Height>152.70353982300856</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID> + <Left>377.875</Left> + <Top>735.75944098834611</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID> + <Left>524.20833333333337</Left> + <Top>721.52681153071046</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone12</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>81.06</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID> + <Left>644.29166666666674</Left> + <Top>874.00000000000011</Top> + <Width>350</Width> + <Height>152.70353982300856</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID> + <Left>1010.1666666666667</Left> + <Top>895.60597564181194</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID> + <Left>1161.708333333333</Left> + <Top>885.907999649522</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater1</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>283.75</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>waste</Name> + <Items> + <TechItem xsi:type="DigitalOutItem"> + <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID> + <Left>119</Left> + <Top>68.898230088495609</Top> + <Width>339</Width> + <Height>184.4159292035398</Height> + <Angle>0</Angle> + <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID> + <Left>468</Left> + <Top>80.336283185839477</Top> + <Width>280</Width> + <Height>166.17699115044252</Height> + <Angle>0</Angle> + <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID> + <Left>873</Left> + <Top>63.831858407079665</Top> + <Width>174</Width> + <Height>133.75221238938059</Height> + <Angle>0</Angle> + <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID> + <Left>1070</Left> + <Top>70.106194690265909</Top> + <Width>221</Width> + <Height>123.61946902654864</Height> + <Angle>0</Angle> + <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID> + <Left>877</Left> + <Top>248.24778761061947</Top> + <Width>186</Width> + <Height>126.65929203539827</Height> + <Angle>0</Angle> + <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID> + <Left>897</Left> + <Top>358.69469026548683</Top> + <Width>147</Width> + <Height>69.9159292035398</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>Waste lower presence</Text> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID> + <Left>1112</Left> + <Top>253.66814159291806</Top> + <Width>186</Width> + <Height>126.65929203539827</Height> + <Angle>0</Angle> + <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID> + <Left>1143</Left> + <Top>366.78318584070507</Top> + <Width>147</Width> + <Height>69.9159292035398</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>Waste middle presence</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID> + <Left>151</Left> + <Top>271.55309734513281</Top> + <Width>200</Width> + <Height>63.836283185840671</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>pump</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID> + <Left>504</Left> + <Top>283.71238938053096</Top> + <Width>192</Width> + <Height>67.88938053097354</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>valve</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>a79322a7-fbb8-469b-a4d9-a0ffb3c17a5d</ID> + <Left>639</Left> + <Top>358.69469026548683</Top> + <Width>134</Width> + <Height>99.300884955752167</Height> + <Angle>0</Angle> + <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>979459b4-b609-487f-b6d7-55f435659658</ID> + <Left>1027</Left> + <Top>391.93362831858775</Top> + <Width>118</Width> + <Height>93.221238938053034</Height> + <Angle>0</Angle> + <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>8b11bfca-091d-4461-8713-ba2fd9c8484e</ID> + <Left>432</Left> + <Top>511.69911504424789</Top> + <Width>461</Width> + <Height>250.27876106194691</Height> + <Angle>0</Angle> + <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>419</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>8aa4b451-71d6-429c-94e4-2581e3c62a7a</ID> + <Left>956</Left> + <Top>513.80973451327361</Top> + <Width>461</Width> + <Height>250.27876106194691</Height> + <Angle>0</Angle> + <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>419</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="BlowerItem"> + <ID>1f85047c-0b3e-49c6-a80a-c2585de00a81</ID> + <Left>288</Left> + <Top>366.80088495575222</Top> + <Width>217</Width> + <Height>97.2743362831859</Height> + <Angle>0</Angle> + <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>c296a84d-7af4-4a26-9a35-0b82d378edce</ID> + <Left>41</Left> + <Top>351.6017699115045</Top> + <Width>209</Width> + <Height>120.57964601769913</Height> + <Angle>0</Angle> + <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>cde1d5a8-7238-44b8-8d4e-30a2dba70c12</ID> + <Left>1294</Left> + <Top>166.17256637168146</Top> + <Width>217</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>51ca3d43-e098-4ed7-a94d-ac0e46744aa8</ID> + <Left>-39</Left> + <Top>510.96460176990968</Top> + <Width>461</Width> + <Height>250.27876106194691</Height> + <Angle>0</Angle> + <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> + <Duration>419</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>034716b2-eb98-4a27-a32e-2a1217f0a6b1</ID> + <Left>1304.2423551681657</Left> + <Top>356.67599371577739</Top> + <Width>209</Width> + <Height>104.08978580509745</Height> + <Angle>0</Angle> + <ItemGuid>79AD6611-82A2-4B4C-AB5E-A11A33E1243D</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>disp</Name> + <Items> + <TechItem xsi:type="SingleGraphItem"> + <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID> + <Left>123</Left> + <Top>128.33628318584061</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID> + <Left>880</Left> + <Top>158.81415929204155</Top> + <Width>442</Width> + <Height>241.88495575221771</Height> + <Angle>0</Angle> + <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID> + <Left>1055</Left> + <Top>14.181415929203524</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>Y</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID> + <Left>384</Left> + <Top>23.991150442480944</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>C</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID> + <Left>121</Left> + <Top>-8.8495575221214722</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID> + <Left>839</Left> + <Top>-4.7079646017762684</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorRecorderItem"> + <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID> + <Left>1276</Left> + <Top>22.287610619469035</Top> + <Width>187</Width> + <Height>102.34070796460179</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <SelectedMonitorsGuids> + <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string> + <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string> + <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string> + <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string> + <string>19645882-6587-4A50-BD85-AF06617DC654</string> + <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> + <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> + <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string> + <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string> + <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> + <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> + <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string> + </SelectedMonitorsGuids> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID> + <Left>587</Left> + <Top>5.0619469026548813</Top> + <Width>155</Width> + <Height>131.72566371681415</Height> + <Angle>0</Angle> + <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + <DisplayName>Dispenser 1</DisplayName> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID> + <Left>131</Left> + <Top>552.94690265486338</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID> + <Left>399</Left> + <Top>455.67256637168265</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>K</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID> + <Left>145</Left> + <Top>409.52212389380446</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID> + <Left>604</Left> + <Top>561.16371681414739</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID> + <Left>832</Left> + <Top>440.91150442477635</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>M</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID> + <Left>633</Left> + <Top>434.0132743362783</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>be584f80-3250-494c-87fc-250d6deae051</ID> + <Left>1045</Left> + <Top>559.4070796459921</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID> + <Left>1056</Left> + <Top>435.43805309733875</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID> + <Left>1304</Left> + <Top>448.0884955752224</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>TI</Text> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID> + <Left>588</Left> + <Top>317.1504424778762</Top> + <Width>283</Width> + <Height>74.982300884955748</Height> + <Angle>0</Angle> + <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID> + <Left>1363</Left> + <Top>384.02654867256643</Top> + <Width>156</Width> + <Height>94.234513274336337</Height> + <Angle>0</Angle> + <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID> + <Left>767</Left> + <Top>362.74778761061958</Top> + <Width>283</Width> + <Height>74.982300884955748</Height> + <Angle>0</Angle> + <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID> + <Left>309</Left> + <Top>13.168141592920392</Top> + <Width>112</Width> + <Height>107.40707964601768</Height> + <Angle>0</Angle> + <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID> + <Left>1180</Left> + <Top>60.7920353982301</Top> + <Width>102</Width> + <Height>88.1548672566372</Height> + <Angle>0</Angle> + <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID> + <Left>1258</Left> + <Top>463.06194690265494</Top> + <Width>88</Width> + <Height>75.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID> + <Left>810</Left> + <Top>462.04867256637175</Top> + <Width>77</Width> + <Height>80.048672566371636</Height> + <Angle>0</Angle> + <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID> + <Left>336</Left> + <Top>428.61061946902663</Top> + <Width>95</Width> + <Height>96.261061946902657</Height> + <Angle>0</Angle> + <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Priming</Name> + <Items> + <TechItem xsi:type="MonitorItem"> + <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID> + <Left>808</Left> + <Top>155.02654867256638</Top> + <Width>219</Width> + <Height>200.62831858407088</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID> + <Left>832</Left> + <Top>451.91592920353986</Top> + <Width>332</Width> + <Height>326.27433628318596</Height> + <Angle>0</Angle> + <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 2</DisplayName> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID> + <Left>154</Left> + <Top>131.72123893805315</Top> + <Width>474</Width> + <Height>410.37610619469024</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> + <Duration>1942</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID> + <Left>243</Left> + <Top>595.80088495575228</Top> + <Width>497</Width> + <Height>189.48230088495575</Height> + <Angle>0</Angle> + <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID> + <Left>1291</Left> + <Top>584.65486725663732</Top> + <Width>200</Width> + <Height>171.24336283185835</Height> + <Angle>0</Angle> + <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + </Items> + </MachineTechViewProjectTab> + </Tabs> + <SelectedTabIndex>5</SelectedTabIndex> +</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf b/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf new file mode 100644 index 000000000..a6bfa792c --- /dev/null +++ b/Software/Stubs Collection/stubs/technician view files/tech board 1.tpf @@ -0,0 +1,2974 @@ +<?xml version="1.0"?> +<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <Items /> + <Tabs> + <MachineTechViewProjectTab> + <Name>Temperatures</Name> + <Items> + <TechItem xsi:type="DigitalOutItem"> + <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID> + <Left>415</Left> + <Top>692.74336283185824</Top> + <Width>160</Width> + <Height>102.34070796460173</Height> + <Angle>0</Angle> + <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID> + <Left>928</Left> + <Top>593.77433628318579</Top> + <Width>207</Width> + <Height>184.4159292035398</Height> + <Angle>0</Angle> + <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerAirHeater</HeaterType> + <SetPoint>180</SetPoint> + <CurrentValue>179.94</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>180</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> + <Left>828</Left> + <Top>682.88053097345</Top> + <Width>130</Width> + <Height>100.31415929203541</Height> + <Angle>0</Angle> + <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerMainHeater</HeaterType> + <SetPoint>41</SetPoint> + <CurrentValue>187.35</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>41</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID> + <Left>717</Left> + <Top>684.46902654867324</Top> + <Width>127</Width> + <Height>101.3274336283186</Height> + <Angle>0</Angle> + <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerSecondaryHeater</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>190.80999999999997</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID> + <Left>931</Left> + <Top>83.08407079646031</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone3</HeaterType> + <SetPoint>120</SetPoint> + <CurrentValue>120.41999999999999</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>120</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> + <Left>1106</Left> + <Top>88.1504424778762</Top> + <Width>200</Width> + <Height>187.45575221238937</Height> + <Angle>0</Angle> + <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone2</HeaterType> + <SetPoint>100</SetPoint> + <CurrentValue>100.41999999999999</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>100</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> + <Left>1311</Left> + <Top>89.163716814159329</Top> + <Width>157</Width> + <Height>194.54867256637175</Height> + <Angle>0</Angle> + <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone1</HeaterType> + <SetPoint>80</SetPoint> + <CurrentValue>80.16</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>80</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> + <Left>1140</Left> + <Top>588.70796460177</Top> + <Width>173</Width> + <Height>183.40265486725662</Height> + <Angle>0</Angle> + <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>MixerHeater</HeaterType> + <SetPoint>80</SetPoint> + <CurrentValue>79.95</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>80</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID> + <Left>751</Left> + <Top>80.420353982302458</Top> + <Width>169</Width> + <Height>197.27876106194645</Height> + <Angle>0</Angle> + <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone4</HeaterType> + <SetPoint>120</SetPoint> + <CurrentValue>120.27999999999999</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>120</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> + <Left>547</Left> + <Top>85.482300884952679</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone5</HeaterType> + <SetPoint>135</SetPoint> + <CurrentValue>135.21</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>135</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID> + <Left>353</Left> + <Top>86.69911504424698</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone6</HeaterType> + <SetPoint>135</SetPoint> + <CurrentValue>135.33</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>135</SetPoint> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID> + <Left>265</Left> + <Top>683.95575221238948</Top> + <Width>131</Width> + <Height>109.43362831858394</Height> + <Angle>0</Angle> + <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID> + <Left>1027.9999999999973</Left> + <Top>291.07079646017547</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>D</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID> + <Left>907.99999999999909</Left> + <Top>295.35840707964616</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>F</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID> + <Left>785.00000000000159</Left> + <Top>288.5000000000004</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>I</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID> + <Left>624.99999999999966</Left> + <Top>285.86725663716874</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>L</Text> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID> + <Left>569</Left> + <Top>688.00884955752213</Top> + <Width>155</Width> + <Height>96.261061946902714</Height> + <Angle>0</Angle> + <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorRecorderItem"> + <ID>43793f93-da64-4409-b583-bca498f641e6</ID> + <Left>1308</Left> + <Top>656.59734513274338</Top> + <Width>203</Width> + <Height>107.40707964601774</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <SelectedMonitorsGuids> + <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string> + <string>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</string> + <string>9FBC5460-BA59-486B-8D85-BD7D8A959F98</string> + <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> + <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string> + </SelectedMonitorsGuids> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID> + <Left>1292</Left> + <Top>343.56637168141606</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone7</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>140.37</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID> + <Left>1190.0000000000025</Left> + <Top>294.69026548672929</Top> + <Width>39</Width> + <Height>38.504424778760836</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>C</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID> + <Left>1369</Left> + <Top>295.87168141592934</Top> + <Width>44</Width> + <Height>42.557522123893705</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>A</Text> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID> + <Left>1107</Left> + <Top>342.55309734513293</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone8</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>140.28</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID> + <Left>924</Left> + <Top>343.56637168141606</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone9</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>140.16</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID> + <Left>359</Left> + <Top>342.55309734513304</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone12</HeaterType> + <SetPoint>145</SetPoint> + <CurrentValue>145.11</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>145</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID> + <Left>550</Left> + <Top>343.56637168141611</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone11</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>140.21</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID> + <Left>738</Left> + <Top>344.57964601769908</Top> + <Width>186</Width> + <Height>195.56194690265494</Height> + <Angle>0</Angle> + <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone10</HeaterType> + <SetPoint>140</SetPoint> + <CurrentValue>140.27</CurrentValue> + <IsActive>true</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>140</SetPoint> + </TechItem> + <TechItem xsi:type="ProcessParametersItem"> + <ID>21aa11c9-3d35-4902-901a-b9ed45117e09</ID> + <Left>653</Left> + <Top>860.82743362831877</Top> + <Width>382</Width> + <Height>223.93362831858394</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <ProcessParameters> + <ID>0</ID> + <Guid>811430c0-2afc-4e9b-8077-a74e1fd2f825</Guid> + <LastUpdated>2020-01-14T11:41:02.8729031Z</LastUpdated> + <Name>Process parameters 3</Name> + <DyeingSpeed>0</DyeingSpeed> + <MinInkUptake>0</MinInkUptake> + <MaxInkUptake>0</MaxInkUptake> + <FeederTension>0</FeederTension> + <PullerTension>0</PullerTension> + <WinderTension>0</WinderTension> + <MixerTemp>0</MixerTemp> + <HeadZone1Temp>0</HeadZone1Temp> + <HeadZone2Temp>100</HeadZone2Temp> + <HeadZone3Temp>0</HeadZone3Temp> + <HeadZone4Temp>0</HeadZone4Temp> + <HeadZone5Temp>0</HeadZone5Temp> + <HeadZone6Temp>0</HeadZone6Temp> + <DryerAirFlow>0</DryerAirFlow> + <DryerZone1Temp>0</DryerZone1Temp> + <DryerZone2Temp>0</DryerZone2Temp> + <DryerZone3Temp>0</DryerZone3Temp> + <DryerBufferLength>0</DryerBufferLength> + <HeadAirFlow>0</HeadAirFlow> + <TableIndex>0</TableIndex> + <HeadZone7Temp>0</HeadZone7Temp> + <HeadZone8Temp>0</HeadZone8Temp> + <HeadZone9Temp>0</HeadZone9Temp> + <HeadZone10Temp>0</HeadZone10Temp> + <HeadZone11Temp>0</HeadZone11Temp> + <HeadZone12Temp>0</HeadZone12Temp> + <RBlowerFlow>0</RBlowerFlow> + <RBlowerTemp>0</RBlowerTemp> + <LBlowerFlow>0</LBlowerFlow> + <LBlowerTemp>0</LBlowerTemp> + <PressureBuildUp>0</PressureBuildUp> + </ProcessParameters> + <ParametersIndices> + <ParameterIndex> + <Name>Name</Name> + <Index>0</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dyeing Speed</Name> + <Index>1</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Min Ink Uptake</Name> + <Index>2</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Max Ink Uptake</Name> + <Index>3</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Feeder Tension</Name> + <Index>4</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Puller Tension</Name> + <Index>5</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Winder Tension</Name> + <Index>6</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Mixer Temp</Name> + <Index>7</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 1 Temp</Name> + <Index>8</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 2 Temp</Name> + <Index>9</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 3 Temp</Name> + <Index>10</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 4 Temp</Name> + <Index>11</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 5 Temp</Name> + <Index>12</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 6 Temp</Name> + <Index>13</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Air Flow</Name> + <Index>14</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 1 Temp</Name> + <Index>15</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 2 Temp</Name> + <Index>16</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 3 Temp</Name> + <Index>17</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Buffer Length</Name> + <Index>18</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Air Flow</Name> + <Index>19</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Process Parameters Tables Group Guid</Name> + <Index>20</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Table Index</Name> + <Index>21</Index> + </ParameterIndex> + </ParametersIndices> + </TechItem> + <TechItem xsi:type="DancerItem"> + <ID>d3f502ea-76dd-48c3-b401-7f5fb7925a72</ID> + <Left>337</Left> + <Top>586.991150442477</Top> + <Width>93</Width> + <Height>82.774336283185448</Height> + <Angle>0</Angle> + <ItemGuid>3EEE3B24-55DD-49F2-9339-F83F883BB908</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID> + <Left>1458.875</Left> + <Top>91.7821782178217</Top> + <Width>200</Width> + <Height>187.45575221238937</Height> + <Angle>0</Angle> + <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater1</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>283.75</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID> + <Left>1457.8333333333333</Left> + <Top>344.58910891089096</Top> + <Width>200</Width> + <Height>187.45575221238937</Height> + <Angle>0</Angle> + <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeadCoverHeater2</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>283.75</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="ProcessParametersItem"> + <ID>379cc480-084f-4349-bb87-2c18b3c839e4</ID> + <Left>17</Left> + <Top>26.340707964601791</Top> + <Width>312</Width> + <Height>465.09292035398232</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <ProcessParameters> + <ID>0</ID> + <Guid>77e783e1-c5bb-4eac-8768-c9a28fc69c97</Guid> + <LastUpdated>2020-03-04T15:02:12.3146789Z</LastUpdated> + <Name>Process parameters 4</Name> + <DyeingSpeed>50</DyeingSpeed> + <MinInkUptake>0</MinInkUptake> + <MaxInkUptake>0</MaxInkUptake> + <FeederTension>9</FeederTension> + <PullerTension>0</PullerTension> + <WinderTension>0</WinderTension> + <MixerTemp>80</MixerTemp> + <HeadZone1Temp>80</HeadZone1Temp> + <HeadZone2Temp>80</HeadZone2Temp> + <HeadZone3Temp>90</HeadZone3Temp> + <HeadZone4Temp>100</HeadZone4Temp> + <HeadZone5Temp>110</HeadZone5Temp> + <HeadZone6Temp>120</HeadZone6Temp> + <DryerAirFlow>7</DryerAirFlow> + <DryerZone1Temp>180</DryerZone1Temp> + <DryerZone2Temp>0</DryerZone2Temp> + <DryerZone3Temp>0</DryerZone3Temp> + <DryerBufferLength>30</DryerBufferLength> + <HeadAirFlow>7</HeadAirFlow> + <TableIndex>0</TableIndex> + <HeadZone7Temp>135</HeadZone7Temp> + <HeadZone8Temp>135</HeadZone8Temp> + <HeadZone9Temp>135</HeadZone9Temp> + <HeadZone10Temp>135</HeadZone10Temp> + <HeadZone11Temp>140</HeadZone11Temp> + <HeadZone12Temp>140</HeadZone12Temp> + <RBlowerFlow>0</RBlowerFlow> + <RBlowerTemp>0</RBlowerTemp> + <LBlowerFlow>0</LBlowerFlow> + <LBlowerTemp>0</LBlowerTemp> + <PressureBuildUp>0</PressureBuildUp> + </ProcessParameters> + <ParametersIndices> + <ParameterIndex> + <Name>Process Parameters Tables Group Guid</Name> + <Index>0</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Name</Name> + <Index>1</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Table Index</Name> + <Index>2</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dyeing Speed</Name> + <Index>3</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Min Ink Uptake</Name> + <Index>4</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Max Ink Uptake</Name> + <Index>5</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Feeder Tension</Name> + <Index>6</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Puller Tension</Name> + <Index>7</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Winder Tension</Name> + <Index>8</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Mixer Temp</Name> + <Index>9</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 1 Temp</Name> + <Index>10</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 2 Temp</Name> + <Index>11</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 3 Temp</Name> + <Index>12</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 4 Temp</Name> + <Index>13</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 5 Temp</Name> + <Index>14</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 6 Temp</Name> + <Index>15</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 7 Temp</Name> + <Index>16</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 8 Temp</Name> + <Index>17</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 9 Temp</Name> + <Index>18</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 10 Temp</Name> + <Index>19</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 11 Temp</Name> + <Index>20</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 12 Temp</Name> + <Index>21</Index> + </ParameterIndex> + <ParameterIndex> + <Name>R Blower Flow</Name> + <Index>22</Index> + </ParameterIndex> + <ParameterIndex> + <Name>R Blower Temp</Name> + <Index>23</Index> + </ParameterIndex> + <ParameterIndex> + <Name>L Blower Flow</Name> + <Index>24</Index> + </ParameterIndex> + <ParameterIndex> + <Name>L Blower Temp</Name> + <Index>25</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 1 Temp</Name> + <Index>26</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 2 Temp</Name> + <Index>27</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 3 Temp</Name> + <Index>28</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Air Flow</Name> + <Index>29</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Air Flow</Name> + <Index>30</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Buffer Length</Name> + <Index>31</Index> + </ParameterIndex> + </ParametersIndices> + </TechItem> + <TechItem xsi:type="ProcessParametersItem"> + <ID>9b9fde94-ce8c-4401-8961-9d1d44ae2bcf</ID> + <Left>10</Left> + <Top>504.60619469026557</Top> + <Width>315</Width> + <Height>159.08407079646025</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <ProcessParameters> + <ID>0</ID> + <Guid>e7434743-ec18-4ae3-91a9-e25db760963d</Guid> + <LastUpdated>2020-03-04T15:03:44.3914568Z</LastUpdated> + <Name>Process parameters 5</Name> + <DyeingSpeed>0</DyeingSpeed> + <MinInkUptake>0</MinInkUptake> + <MaxInkUptake>0</MaxInkUptake> + <FeederTension>0</FeederTension> + <PullerTension>0</PullerTension> + <WinderTension>0</WinderTension> + <MixerTemp>0</MixerTemp> + <HeadZone1Temp>0</HeadZone1Temp> + <HeadZone2Temp>0</HeadZone2Temp> + <HeadZone3Temp>0</HeadZone3Temp> + <HeadZone4Temp>0</HeadZone4Temp> + <HeadZone5Temp>0</HeadZone5Temp> + <HeadZone6Temp>0</HeadZone6Temp> + <DryerAirFlow>4</DryerAirFlow> + <DryerZone1Temp>0</DryerZone1Temp> + <DryerZone2Temp>0</DryerZone2Temp> + <DryerZone3Temp>0</DryerZone3Temp> + <DryerBufferLength>0</DryerBufferLength> + <HeadAirFlow>4</HeadAirFlow> + <TableIndex>0</TableIndex> + <HeadZone7Temp>0</HeadZone7Temp> + <HeadZone8Temp>0</HeadZone8Temp> + <HeadZone9Temp>0</HeadZone9Temp> + <HeadZone10Temp>0</HeadZone10Temp> + <HeadZone11Temp>0</HeadZone11Temp> + <HeadZone12Temp>0</HeadZone12Temp> + <RBlowerFlow>0</RBlowerFlow> + <RBlowerTemp>0</RBlowerTemp> + <LBlowerFlow>0</LBlowerFlow> + <LBlowerTemp>0</LBlowerTemp> + <PressureBuildUp>0</PressureBuildUp> + </ProcessParameters> + <ParametersIndices> + <ParameterIndex> + <Name>Process Parameters Tables Group Guid</Name> + <Index>0</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Name</Name> + <Index>1</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Table Index</Name> + <Index>2</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dyeing Speed</Name> + <Index>3</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Min Ink Uptake</Name> + <Index>4</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Max Ink Uptake</Name> + <Index>5</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Feeder Tension</Name> + <Index>6</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Puller Tension</Name> + <Index>7</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Winder Tension</Name> + <Index>8</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Mixer Temp</Name> + <Index>9</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 1 Temp</Name> + <Index>10</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 2 Temp</Name> + <Index>11</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 3 Temp</Name> + <Index>12</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 4 Temp</Name> + <Index>13</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 5 Temp</Name> + <Index>14</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 6 Temp</Name> + <Index>15</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 7 Temp</Name> + <Index>16</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 8 Temp</Name> + <Index>17</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 9 Temp</Name> + <Index>18</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 10 Temp</Name> + <Index>19</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 11 Temp</Name> + <Index>20</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Zone 12 Temp</Name> + <Index>21</Index> + </ParameterIndex> + <ParameterIndex> + <Name>R Blower Flow</Name> + <Index>22</Index> + </ParameterIndex> + <ParameterIndex> + <Name>R Blower Temp</Name> + <Index>23</Index> + </ParameterIndex> + <ParameterIndex> + <Name>L Blower Flow</Name> + <Index>24</Index> + </ParameterIndex> + <ParameterIndex> + <Name>L Blower Temp</Name> + <Index>25</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 1 Temp</Name> + <Index>26</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 2 Temp</Name> + <Index>27</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Zone 3 Temp</Name> + <Index>28</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Air Flow</Name> + <Index>29</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Head Air Flow</Name> + <Index>30</Index> + </ParameterIndex> + <ParameterIndex> + <Name>Dryer Buffer Length</Name> + <Index>31</Index> + </ParameterIndex> + </ParametersIndices> + </TechItem> + <TechItem xsi:type="BlowerItem"> + <ID>a9ac7e80-c612-4b2b-b35a-669d6d8697aa</ID> + <Left>-1</Left> + <Top>686.995575221239</Top> + <Width>252</Width> + <Height>103.35398230088481</Height> + <Angle>0</Angle> + <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>82576c3f-1790-4074-97a3-65a12bd812c1</ID> + <Left>435</Left> + <Top>573.99557522124167</Top> + <Width>131</Width> + <Height>109.43362831858394</Height> + <Angle>0</Angle> + <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>8a68cdf4-136b-4db4-bc4e-b3157790be6a</ID> + <Left>580</Left> + <Top>572.7168141592922</Top> + <Width>131</Width> + <Height>109.43362831858394</Height> + <Angle>0</Angle> + <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Thread</Name> + <Items> + <TechItem xsi:type="MonitorItem"> + <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID> + <Left>1530</Left> + <Top>193.19911504424795</Top> + <Width>169</Width> + <Height>181.37610619469029</Height> + <Angle>0</Angle> + <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>68eef943-2151-4df5-be61-044c3865606e</ID> + <Left>1172</Left> + <Top>145.78318584070678</Top> + <Width>175</Width> + <Height>167.827433628319</Height> + <Angle>0</Angle> + <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID> + <Left>988</Left> + <Top>143.32300884955998</Top> + <Width>190</Width> + <Height>167.09734513274049</Height> + <Angle>0</Angle> + <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID> + <Left>817</Left> + <Top>142.42035398230098</Top> + <Width>169</Width> + <Height>168.31858407079625</Height> + <Angle>0</Angle> + <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID> + <Left>922</Left> + <Top>516.43362831858417</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1460</Duration> + <Min>0</Min> + <Max>16384</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>1</DecimalPlaces> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID> + <Left>465</Left> + <Top>515.420353982301</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1516</Duration> + <Min>0</Min> + <Max>16384</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>1</DecimalPlaces> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID> + <Left>15</Left> + <Top>518.46017699115032</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1398</Duration> + <Min>0</Min> + <Max>16384</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>1</DecimalPlaces> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID> + <Left>12</Left> + <Top>13.849557522123973</Top> + <Width>439</Width> + <Height>304.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1273</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>1</DecimalPlaces> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>3ccb1485-b0e9-4d36-a931-a1b3865edeaa</ID> + <Left>460</Left> + <Top>38.28761061946841</Top> + <Width>267</Width> + <Height>221.90707964601768</Height> + <Angle>0</Angle> + <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>952.3546144121359</Speed> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID> + <Left>860</Left> + <Top>-24.18584070796669</Top> + <Width>345</Width> + <Height>169.21681415929209</Height> + <Angle>0</Angle> + <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>514</Duration> + <Min>0</Min> + <Max>100000</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>1</DecimalPlaces> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID> + <Left>19</Left> + <Top>324.14159292035305</Top> + <Width>429</Width> + <Height>193.26548672566258</Height> + <Angle>0</Angle> + <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1398</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>4</DecimalPlaces> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID> + <Left>474</Left> + <Top>320.03097345132551</Top> + <Width>429</Width> + <Height>193.26548672566258</Height> + <Angle>0</Angle> + <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1398</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>4</DecimalPlaces> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID> + <Left>928</Left> + <Top>321.64601769912122</Top> + <Width>429</Width> + <Height>193.26548672566258</Height> + <Angle>0</Angle> + <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1398</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>4</DecimalPlaces> + </TechItem> + <TechItem xsi:type="MonitorRecorderItem"> + <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID> + <Left>1303</Left> + <Top>34.380530973454768</Top> + <Width>176</Width> + <Height>83.05309734512457</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <SelectedMonitorsGuids> + <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string> + <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> + <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> + <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> + <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> + <string>9ADF7823-B293-4275-9999-F62474D246AA</string> + <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string> + <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> + </SelectedMonitorsGuids> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Dispensers</Name> + <Items> + <TechItem xsi:type="DispenserItem"> + <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID> + <Left>1322.1428571428571</Left> + <Top>214.15929203538531</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 1</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID> + <Left>1149</Left> + <Top>218.48230088495342</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> + <ColorNumber>-16724737</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 2</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID> + <Left>959</Left> + <Top>210.32743362830422</Top> + <Width>156</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid> + <ColorNumber>-65325</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 3</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>8fead411-7198-4428-a364-e32f3035ed94</ID> + <Left>775</Left> + <Top>206.42920353980952</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid> + <ColorNumber>-524544</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 4</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID> + <Left>585</Left> + <Top>208.47345132741418</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid> + <ColorNumber>-2108246</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 5</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID> + <Left>372</Left> + <Top>216.75221238937439</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid> + <ColorNumber>-263685</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 6</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID> + <Left>217</Left> + <Top>211.63716814158107</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid> + <ColorNumber>-723724</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 7</DisplayName> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID> + <Left>45</Left> + <Top>216.04867256635521</Top> + <Width>159</Width> + <Height>215.8274336283186</Height> + <Angle>0</Angle> + <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> + <ColorNumber>-724238</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 8</DisplayName> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID> + <Left>1305</Left> + <Top>31.606194690259713</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-15856114</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID> + <Left>1127</Left> + <Top>32.535398230081626</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-15293470</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID> + <Left>955</Left> + <Top>32.61946902653176</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> + <ColorNumber>-1570857</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID> + <Left>774</Left> + <Top>31.960176991142362</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> + <ColorNumber>-1379575</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>3980e685-73b3-4af1-9593-9235be147322</ID> + <Left>596</Left> + <Top>32.889380530964274</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> + <ColorNumber>-7763381</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID> + <Left>424</Left> + <Top>32.973451327414409</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID> + <Left>252</Left> + <Top>31.703539823006281</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid> + <ColorNumber>-8391822</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID> + <Left>80</Left> + <Top>31.787610619456416</Top> + <Width>150</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid> + <ColorNumber>-2186185</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID> + <Left>28.22352941176473</Left> + <Top>682.03174474303751</Top> + <Width>247</Width> + <Height>122.24778761061873</Height> + <Angle>0</Angle> + <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID> + <Left>235.16470588235291</Left> + <Top>699.99460095802579</Top> + <Width>200</Width> + <Height>94.15929203539747</Height> + <Angle>0</Angle> + <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ControllerItem"> + <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID> + <Left>140</Left> + <Top>867.73893805310092</Top> + <Width>160</Width> + <Height>85.49115044247776</Height> + <Angle>0</Angle> + <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <OptimalRangeMinimum>0</OptimalRangeMinimum> + <OptimalRangeMaximum>70</OptimalRangeMaximum> + <IsSetToDefault>true</IsSetToDefault> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID> + <Left>507</Left> + <Top>792.77433628318749</Top> + <Width>219</Width> + <Height>125.75221238938025</Height> + <Angle>0</Angle> + <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid> + <ColorNumber>-16777216</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID> + <Left>1303</Left> + <Top>475.87168141593065</Top> + <Width>160</Width> + <Height>124.6504424778754</Height> + <Angle>0</Angle> + <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid> + <ColorNumber>-15856114</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MultiGraphItem"> + <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID> + <Left>370</Left> + <Top>781.46902654866153</Top> + <Width>710</Width> + <Height>401.24778761063465</Height> + <Angle>0</Angle> + <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid> + <ColorNumber>0</ColorNumber> + <Duration>1956</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID> + <Left>1128</Left> + <Top>482.80530973451141</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid> + <ColorNumber>-15293470</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID> + <Left>968</Left> + <Top>481.35398230088504</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid> + <ColorNumber>-1570857</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID> + <Left>766</Left> + <Top>476.07964601769811</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid> + <ColorNumber>-1379575</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID> + <Left>586</Left> + <Top>474.38938053097161</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid> + <ColorNumber>-7763381</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID> + <Left>391</Left> + <Top>474.87168141592781</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID> + <Left>226</Left> + <Top>471.66814159292005</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid> + <ColorNumber>-8391822</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID> + <Left>69</Left> + <Top>473.97787610619389</Top> + <Width>140</Width> + <Height>117.32300884955743</Height> + <Angle>0</Angle> + <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID> + <Left>1130</Left> + <Top>624.9557522123913</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID> + <Left>969</Left> + <Top>625.95575221239</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID> + <Left>775</Left> + <Top>623.66814159292062</Top> + <Width>144</Width> + <Height>82.535398230087083</Height> + <Angle>0</Angle> + <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID> + <Left>588</Left> + <Top>625.06637168141322</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID> + <Left>1310</Left> + <Top>628.69469026548632</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID> + <Left>20.870588235294122</Left> + <Top>784.26605504587133</Top> + <Width>327</Width> + <Height>108.53097345133028</Height> + <Angle>0</Angle> + <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID> + <Left>1065</Left> + <Top>788.41592920352355</Top> + <Width>370</Width> + <Height>362.10619469026585</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1426</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>3</DecimalPlaces> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID> + <Left>628</Left> + <Top>765.4469026548752</Top> + <Width>394</Width> + <Height>372.88495575221242</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1282</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>1</DecimalPlaces> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID> + <Left>1069</Left> + <Top>698.04867256637226</Top> + <Width>382</Width> + <Height>136.79203539823016</Height> + <Angle>0</Angle> + <ItemGuid>16C0F85C-0479-42F4-A67E-3E0CD3B23C2D</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID> + <Left>231</Left> + <Top>624.06637168142413</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid> + <ColorNumber>-8391822</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID> + <Left>77</Left> + <Top>624.46460176991513</Top> + <Width>144</Width> + <Height>80.495575221237516</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid> + <ColorNumber>-2186185</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Thread insertion</Name> + <Items> + <TechItem xsi:type="MotorItem"> + <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID> + <Left>25</Left> + <Top>22.761061946902203</Top> + <Width>247</Width> + <Height>172.25663716814159</Height> + <Angle>0</Angle> + <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>a821b716-cb7d-4951-84ee-e56955431099</ID> + <Left>355</Left> + <Top>20.592920353981697</Top> + <Width>260</Width> + <Height>153.00442477876106</Height> + <Angle>0</Angle> + <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID> + <Left>694</Left> + <Top>19.367256637167998</Top> + <Width>217</Width> + <Height>155.26106194690203</Height> + <Angle>0</Angle> + <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID> + <Left>364</Left> + <Top>222.16814159291846</Top> + <Width>240</Width> + <Height>172.30973451327589</Height> + <Angle>0</Angle> + <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID> + <Left>29</Left> + <Top>241.34955752210982</Top> + <Width>263</Width> + <Height>174.296460176989</Height> + <Angle>0</Angle> + <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>400</Speed> + </TechItem> + <TechItem xsi:type="ThreadMotionItem"> + <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID> + <Left>1168</Left> + <Top>47.305309734517039</Top> + <Width>304</Width> + <Height>167.26548672566202</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <Speed>50</Speed> + </TechItem> + <TechItem xsi:type="BreakSensorItem"> + <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID> + <Left>1258</Left> + <Top>277.55752212389069</Top> + <Width>240</Width> + <Height>156.04424778761069</Height> + <Angle>0</Angle> + <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID> + <Left>695</Left> + <Top>223.44247787610908</Top> + <Width>228</Width> + <Height>175.0353982300901</Height> + <Angle>0</Angle> + <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>83.833754740833143</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID> + <Left>81</Left> + <Top>542.88495575220634</Top> + <Width>220</Width> + <Height>168.473451327436</Height> + <Angle>0</Angle> + <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>1000</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID> + <Left>376</Left> + <Top>553.11061946903</Top> + <Width>240</Width> + <Height>159.84070796460173</Height> + <Angle>0</Angle> + <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>5</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID> + <Left>1037</Left> + <Top>247.03097345133062</Top> + <Width>240</Width> + <Height>172.30973451327589</Height> + <Angle>0</Angle> + <ItemGuid>92237d83-9f85-48db-aa6f-2fc5c9e0d8cd</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID> + <Left>548</Left> + <Top>418.71652683599893</Top> + <Width>269</Width> + <Height>127.67256637168134</Height> + <Angle>0</Angle> + <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID> + <Left>803</Left> + <Top>569.80530973451619</Top> + <Width>227</Width> + <Height>145.08849557522183</Height> + <Angle>0</Angle> + <ItemGuid>9c02effb-7deb-40a1-90c3-df1fb48e6431</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>30</Speed> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID> + <Left>1107</Left> + <Top>573.87168141592883</Top> + <Width>227</Width> + <Height>145.08849557522183</Height> + <Angle>0</Angle> + <ItemGuid>a359e9d0-adcc-40a5-b3d9-b9cb26eca092</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>30</Speed> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>bba24461-e18d-497a-b85d-808668d0c750</ID> + <Left>892</Left> + <Top>457.57079646017365</Top> + <Width>170</Width> + <Height>87.999999999997613</Height> + <Angle>0</Angle> + <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>9ccdbff6-031d-4364-8732-daade6b88551</ID> + <Left>1062</Left> + <Top>452.95575221238948</Top> + <Width>170</Width> + <Height>87.999999999997613</Height> + <Angle>0</Angle> + <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Head graphs</Name> + <Items> + <TechItem xsi:type="SingleGraphItem"> + <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID> + <Left>3</Left> + <Top>5.8097345132742362</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID> + <Left>371</Left> + <Top>21.075221238938013</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID> + <Left>517</Left> + <Top>11.517699115044195</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone7</HeaterType> + <SetPoint>100</SetPoint> + <CurrentValue>100.02</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>100</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>7e0942e7-a87a-402a-b580-5091ed6b29ee</ID> + <Left>8</Left> + <Top>276.6194690265491</Top> + <Width>357</Width> + <Height>143.58407079645986</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44809</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID> + <Left>374</Left> + <Top>280.73893805309746</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID> + <Left>519</Left> + <Top>283.3407079646019</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone9</HeaterType> + <SetPoint>95</SetPoint> + <CurrentValue>95.05</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>95</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID> + <Left>8.75</Left> + <Top>704.87334618417651</Top> + <Width>350</Width> + <Height>152.70353982300856</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44812</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID> + <Left>375.66666666666663</Left> + <Top>902.19714360816624</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID> + <Left>523.04166666666652</Left> + <Top>895.90015771488663</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone12</HeaterType> + <SetPoint>99</SetPoint> + <CurrentValue>99</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>99</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID> + <Left>6</Left> + <Top>563.37610619469046</Top> + <Width>358</Width> + <Height>141.55752212389359</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44811</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID> + <Left>379</Left> + <Top>573.57522123893818</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID> + <Left>523</Left> + <Top>571.1106194690268</Top> + <Width>103</Width> + <Height>116.52654867256626</Height> + <Angle>0</Angle> + <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone11</HeaterType> + <SetPoint>100</SetPoint> + <CurrentValue>100.02</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>100</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>182492d7-b240-4162-b8ec-39996eec3cc7</ID> + <Left>9</Left> + <Top>418.47787610619497</Top> + <Width>353</Width> + <Height>145.61061946902635</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44810</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID> + <Left>378</Left> + <Top>430.703539823009</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID> + <Left>519</Left> + <Top>428.23893805309746</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone10</HeaterType> + <SetPoint>100</SetPoint> + <CurrentValue>100.02</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>100</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>00dda04e-1853-422f-ac47-29bdbab642d7</ID> + <Left>7</Left> + <Top>142.86725663716828</Top> + <Width>357</Width> + <Height>152.70353982300867</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44808</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID> + <Left>382</Left> + <Top>151.03982300884968</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID> + <Left>519</Left> + <Top>147.561946902655</Top> + <Width>104</Width> + <Height>109.43362831858406</Height> + <Angle>0</Angle> + <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone8</HeaterType> + <SetPoint>100</SetPoint> + <CurrentValue>99.97</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>100</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID> + <Left>623</Left> + <Top>117.5353982300885</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID> + <Left>1005</Left> + <Top>12.221238938053205</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID> + <Left>1148</Left> + <Top>293.47345132743362</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone3</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>8.5</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>99af8946-4971-4913-9382-705c4e05b7ce</ID> + <Left>621</Left> + <Top>275.60619469026591</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID> + <Left>993</Left> + <Top>279.72566371681404</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID> + <Left>1146</Left> + <Top>14.823008849557596</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone1</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>8.5</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>7b7d9bea-29df-4f94-8ab6-2a6d7105bccf</ID> + <Left>627</Left> + <Top>6.07522123893807</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID> + <Left>1003</Left> + <Top>151.03982300884974</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID> + <Left>1145</Left> + <Top>153.64159292035396</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone2</HeaterType> + <SetPoint>30</SetPoint> + <CurrentValue>225.29</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>30</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>64fba32f-3c03-42b3-b1ed-e2bdbe454bd6</ID> + <Left>630</Left> + <Top>535.00442477876129</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID> + <Left>1008</Left> + <Top>707.327433628319</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID> + <Left>1150</Left> + <Top>716.00884955752235</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone6</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>279.81</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID> + <Left>629</Left> + <Top>387.066371681416</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID> + <Left>1004</Left> + <Top>562.42920353982311</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID> + <Left>1149</Left> + <Top>571.1106194690268</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone5</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>8.5</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>true</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>60dff2b2-7ddc-47a9-90b1-3f45968c1790</ID> + <Left>630</Left> + <Top>692.06194690265511</Top> + <Width>363</Width> + <Height>157.76991150442467</Height> + <Angle>0</Angle> + <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID> + <Left>1002</Left> + <Top>413.47787610619491</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID> + <Left>1148</Left> + <Top>434.31858407079636</Top> + <Width>103</Width> + <Height>113.4867256637167</Height> + <Angle>0</Angle> + <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>HeaterZone4</HeaterType> + <SetPoint>30</SetPoint> + <CurrentValue>170.98999999999998</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>30</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID> + <Left>5.7499999999999858</Left> + <Top>866.06435643564362</Top> + <Width>350</Width> + <Height>152.70353982300856</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID> + <Left>377.875</Left> + <Top>735.75944098834611</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID> + <Left>524.20833333333337</Left> + <Top>721.52681153071046</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerAirHeater</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>0</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID> + <Left>644.29166666666674</Left> + <Top>874.00000000000011</Top> + <Width>350</Width> + <Height>152.70353982300856</Height> + <Angle>0</Angle> + <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>2962</Duration> + <Min>0</Min> + <Max>300</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>2</DecimalPlaces> + </TechItem> + <TechItem xsi:type="PidItem"> + <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID> + <Left>1010.1666666666667</Left> + <Top>895.60597564181194</Top> + <Width>128</Width> + <Height>91.469026548670342</Height> + <Angle>0</Angle> + <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="HeaterItem"> + <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID> + <Left>1161.708333333333</Left> + <Top>885.907999649522</Top> + <Width>103</Width> + <Height>121.59292035398221</Height> + <Angle>0</Angle> + <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid> + <ColorNumber>-1</ColorNumber> + <HeaterState> + <HeaterType>DryerAirHeater</HeaterType> + <SetPoint>0</SetPoint> + <CurrentValue>0</CurrentValue> + <IsActive>false</IsActive> + <IsRampingUp>false</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> + </HeaterState> + <SetPoint>0</SetPoint> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>waste</Name> + <Items> + <TechItem xsi:type="DigitalOutItem"> + <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID> + <Left>119</Left> + <Top>68.898230088495609</Top> + <Width>339</Width> + <Height>184.4159292035398</Height> + <Angle>0</Angle> + <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID> + <Left>468</Left> + <Top>80.336283185839477</Top> + <Width>280</Width> + <Height>166.17699115044252</Height> + <Angle>0</Angle> + <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID> + <Left>873</Left> + <Top>63.831858407079665</Top> + <Width>174</Width> + <Height>133.75221238938059</Height> + <Angle>0</Angle> + <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID> + <Left>1070</Left> + <Top>70.106194690265909</Top> + <Width>221</Width> + <Height>123.61946902654864</Height> + <Angle>0</Angle> + <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID> + <Left>877</Left> + <Top>248.24778761061947</Top> + <Width>186</Width> + <Height>126.65929203539827</Height> + <Angle>0</Angle> + <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID> + <Left>897</Left> + <Top>358.69469026548683</Top> + <Width>147</Width> + <Height>69.9159292035398</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>Waste lower presence</Text> + </TechItem> + <TechItem xsi:type="DigitalInItem"> + <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID> + <Left>1112</Left> + <Top>253.66814159291806</Top> + <Width>186</Width> + <Height>126.65929203539827</Height> + <Angle>0</Angle> + <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID> + <Left>1143</Left> + <Top>366.78318584070507</Top> + <Width>147</Width> + <Height>69.9159292035398</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>Waste middle presence</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID> + <Left>151</Left> + <Top>271.55309734513281</Top> + <Width>200</Width> + <Height>63.836283185840671</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>pump</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID> + <Left>504</Left> + <Top>283.71238938053096</Top> + <Width>192</Width> + <Height>67.88938053097354</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>valve</Text> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>fbe2670f-6d9b-4361-9332-1ceb1692c91a</ID> + <Left>108</Left> + <Top>484.61946902655154</Top> + <Width>356</Width> + <Height>208.10619469026472</Height> + <Angle>0</Angle> + <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>disp</Name> + <Items> + <TechItem xsi:type="SingleGraphItem"> + <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID> + <Left>123</Left> + <Top>128.33628318584061</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>3</DecimalPlaces> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID> + <Left>880</Left> + <Top>158.81415929204155</Top> + <Width>442</Width> + <Height>241.88495575221771</Height> + <Angle>0</Angle> + <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>3</DecimalPlaces> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID> + <Left>1055</Left> + <Top>14.181415929203524</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>Y</Text> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID> + <Left>384</Left> + <Top>23.991150442480944</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>C</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID> + <Left>121</Left> + <Top>-8.8495575221214722</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID> + <Left>839</Left> + <Top>-4.7079646017762684</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorRecorderItem"> + <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID> + <Left>1276</Left> + <Top>22.287610619469035</Top> + <Width>187</Width> + <Height>102.34070796460179</Height> + <Angle>0</Angle> + <ColorNumber>-1</ColorNumber> + <SelectedMonitorsGuids> + <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string> + <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string> + <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string> + <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string> + <string>19645882-6587-4A50-BD85-AF06617DC654</string> + <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> + <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> + <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string> + <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string> + <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> + <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> + <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string> + </SelectedMonitorsGuids> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID> + <Left>587</Left> + <Top>5.0619469026548813</Top> + <Width>155</Width> + <Height>131.72566371681415</Height> + <Angle>0</Angle> + <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>500</Speed> + <DisplayName>Dispenser 1</DisplayName> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID> + <Left>131</Left> + <Top>552.94690265486338</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>3</DecimalPlaces> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID> + <Left>399</Left> + <Top>455.67256637168265</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>K</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID> + <Left>145</Left> + <Top>409.52212389380446</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID> + <Left>604</Left> + <Top>561.16371681414739</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>3</DecimalPlaces> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID> + <Left>832</Left> + <Top>440.91150442477635</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>M</Text> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID> + <Left>633</Left> + <Top>434.0132743362783</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>be584f80-3250-494c-87fc-250d6deae051</ID> + <Left>1045</Left> + <Top>559.4070796459921</Top> + <Width>390</Width> + <Height>249.67699115047321</Height> + <Angle>0</Angle> + <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>3600</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>3</DecimalPlaces> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID> + <Left>1056</Left> + <Top>435.43805309733875</Top> + <Width>169</Width> + <Height>132.73893805309734</Height> + <Angle>0</Angle> + <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>3</DecimalPoints> + </TechItem> + <TechItem xsi:type="TextItem"> + <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID> + <Left>1304</Left> + <Top>448.0884955752224</Top> + <Width>161</Width> + <Height>111.46017699115049</Height> + <Angle>0</Angle> + <ColorNumber>-14774017</ColorNumber> + <Text>TI</Text> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID> + <Left>588</Left> + <Top>317.1504424778762</Top> + <Width>283</Width> + <Height>74.982300884955748</Height> + <Angle>0</Angle> + <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID> + <Left>1363</Left> + <Top>384.02654867256643</Top> + <Width>156</Width> + <Height>94.234513274336337</Height> + <Angle>0</Angle> + <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID> + <Left>767</Left> + <Top>362.74778761061958</Top> + <Width>283</Width> + <Height>74.982300884955748</Height> + <Angle>0</Angle> + <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID> + <Left>309</Left> + <Top>13.168141592920392</Top> + <Width>112</Width> + <Height>107.40707964601768</Height> + <Angle>0</Angle> + <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID> + <Left>1180</Left> + <Top>60.7920353982301</Top> + <Width>102</Width> + <Height>88.1548672566372</Height> + <Angle>0</Angle> + <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID> + <Left>1258</Left> + <Top>463.06194690265494</Top> + <Width>88</Width> + <Height>75.995575221239</Height> + <Angle>0</Angle> + <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID> + <Left>810</Left> + <Top>462.04867256637175</Top> + <Width>77</Width> + <Height>80.048672566371636</Height> + <Angle>0</Angle> + <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + <TechItem xsi:type="MonitorItem"> + <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID> + <Left>336</Left> + <Top>428.61061946902663</Top> + <Width>95</Width> + <Height>96.261061946902657</Height> + <Angle>0</Angle> + <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>0</DecimalPoints> + </TechItem> + </Items> + </MachineTechViewProjectTab> + <MachineTechViewProjectTab> + <Name>Priming</Name> + <Items> + <TechItem xsi:type="MonitorItem"> + <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID> + <Left>808</Left> + <Top>155.02654867256638</Top> + <Width>219</Width> + <Height>200.62831858407088</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-1</ColorNumber> + <UpdateInterval>10</UpdateInterval> + <DecimalPoints>2</DecimalPoints> + </TechItem> + <TechItem xsi:type="DispenserItem"> + <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID> + <Left>832</Left> + <Top>451.91592920353986</Top> + <Width>332</Width> + <Height>326.27433628318596</Height> + <Angle>0</Angle> + <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>1200</Speed> + <DisplayName>Dispenser 2</DisplayName> + </TechItem> + <TechItem xsi:type="SingleGraphItem"> + <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID> + <Left>154</Left> + <Top>131.72123893805315</Top> + <Width>474</Width> + <Height>410.37610619469024</Height> + <Angle>0</Angle> + <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> + <ColorNumber>-14774017</ColorNumber> + <Duration>1942</Duration> + <Min>0</Min> + <Max>100</Max> + <UseAutoRange>true</UseAutoRange> + <DecimalPlaces>1</DecimalPlaces> + </TechItem> + <TechItem xsi:type="ValveItem"> + <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID> + <Left>243</Left> + <Top>595.80088495575228</Top> + <Width>497</Width> + <Height>189.48230088495575</Height> + <Angle>0</Angle> + <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + <TechItem xsi:type="DigitalOutItem"> + <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID> + <Left>1291</Left> + <Top>584.65486725663732</Top> + <Width>200</Width> + <Height>171.24336283185835</Height> + <Angle>0</Angle> + <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid> + <ColorNumber>-1</ColorNumber> + </TechItem> + </Items> + </MachineTechViewProjectTab> + </Tabs> + <SelectedTabIndex>2</SelectedTabIndex> +</MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Stubs Collection/stubs/whs control loop disable.cs b/Software/Stubs Collection/stubs/whs control loop disable.cs new file mode 100644 index 000000000..01bd67d0a --- /dev/null +++ b/Software/Stubs Collection/stubs/whs control loop disable.cs @@ -0,0 +1,26 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ +//Loading Arm Calibration - this command writes the arm position to a non-volatile memory + +int ControlLoopEnable = 0x1000; +int ControlLoopDisable = 0x0000; + +ProgressRequest progressRequest = new ProgressRequest(); +progressRequest.Amount = 0x3e8; +progressRequest.Delay = ControlLoopDisable+2700; + + var response = stubManager.Run<ProgressResponse>(progressRequest); + +}
\ No newline at end of file diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp index 7d70aa72c..8f4b55db9 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp @@ -2806,5 +2806,13 @@ size_t Tango::ColorLib::ColorConverter::GenerateGradient(uint8_t * input_buffer, //RELEASE MEMORY HERE !!! +#pragma region Free Conversion Input & Output + + gradient_conversion_input__free_unpacked(conversionInput, NULL); + + gradient_conversion_output__free_unpacked(conversionOutput, NULL); + +#pragma endregion + return size; } diff --git a/Software/Visual_Studio/Tango.ColorLib.GradientTest.CLI/Program.cs b/Software/Visual_Studio/Tango.ColorLib.GradientTest.CLI/Program.cs index 629f1c148..811f53841 100644 --- a/Software/Visual_Studio/Tango.ColorLib.GradientTest.CLI/Program.cs +++ b/Software/Visual_Studio/Tango.ColorLib.GradientTest.CLI/Program.cs @@ -20,7 +20,7 @@ namespace Tango.ColorLib.GradientTest.CLI GradientConversionInput input = new GradientConversionInput(); //CCT - input.ForwardData = ByteString.CopyFrom(File.ReadAllBytes("Path To Local File")); //TODO: Load CCT file from local drive. + input.ForwardData = ByteString.CopyFrom(File.ReadAllBytes(@"C:\Test\CMYKSylko.cct")); //TODO: Load CCT file from local drive. //RML Liquid Factors input.InputLiquids.Add(new InputLiquid() diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs index 1eff213ee..60ca14fa9 100644 --- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs +++ b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs @@ -184,7 +184,7 @@ namespace Tango.DispenserAnalyzer.UI.Analyzers } //Result = (range <= 25 && range >= 20) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed; var res = range / AverageValue * 100; - Result = res < 1.3 ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed; + Result = res <= 1.5 ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed; return max_key; } } diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs index cb1cadaaf..7b95ba36b 100644 --- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs @@ -51,7 +51,7 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.1.0.0")] +[assembly: AssemblyVersion("1.2.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: NeutralResourcesLanguage("en-AS")] diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj index 3fa2fbae4..373654985 100644 --- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj @@ -19,7 +19,7 @@ <Install>true</Install> <InstallFrom>Disk</InstallFrom> <UpdateEnabled>false</UpdateEnabled> - <UpdateMode>Foreground</UpdateMode> + <UpdateMode>Background</UpdateMode> <UpdateInterval>7</UpdateInterval> <UpdateIntervalUnits>Days</UpdateIntervalUnits> <UpdatePeriodically>false</UpdatePeriodically> @@ -29,7 +29,7 @@ <ProductName>Dispenser Analyser</ProductName> <PublisherName>Twine</PublisherName> <OpenBrowserOnPublish>false</OpenBrowserOnPublish> - <ApplicationRevision>3</ApplicationRevision> + <ApplicationRevision>4</ApplicationRevision> <ApplicationVersion>1.2.1.%2a</ApplicationVersion> <UseApplicationTrust>true</UseApplicationTrust> <CreateDesktopShortcut>true</CreateDesktopShortcut> |
