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] ="DISPENSER_1 "; Motor_ID[7] ="DISPENSER_2 "; Motor_ID[8] ="DISPENSER_3 "; Motor_ID[9] ="DISPENSER_4 "; Motor_ID[10]="DISPENSER_5 "; Motor_ID[11]="DISPENSER_6 "; Motor_ID[12]="DISPENSER_7 "; Motor_ID[13]="DISPENSER_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]="RLOADING "; 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("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); stubManager.Run("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f); stubManager.Run("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); stubManager.Run("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("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("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("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_CONFIG)<<16, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); if( response.RecivedData > 0x15 ) stubManager.Write("\t\tDual_Driver"); else if ( response.RecivedData > 0x0b) stubManager.Write("\t\tVolage_Driver"); else if ( response.RecivedData > 8 ) 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("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t"); response = stubManager.Run("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("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\t\t\t"); response = stubManager.Run("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0); stubManager.WriteHex(response.RecivedData,4); stubManager.Write("\n\n"); } }