def cond_state(): try: if not scriptSys.GENERAL['mode'] == 'CONDITIONING': #es llamado por 1 scriptSys.GENERAL['mode'] = 'CONDITIONING' scriptSys.TIME_INIT = scriptSys.TIME print "PAUSE" return if ((scriptSys.TIME) - (scriptSys.TIME_INIT)) >= (maxTimeCond - tMargin): stress_state() return #condiciones de Fallas: if scriptSys.CURRENT > (-iMargin) and scriptSys.VOLTAGE < vMargin: scriptSys.final_report("F18", 0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= maxTimeInit: slope = scriptSys.get_slope( range(scriptSys.TIME_INIT + 3, scriptSys.TIME)) if slope['VOLTAGE'] < 80: scriptSys.final_report("F19", 0) return if scriptSys.CURRENT > iMargin or scriptSys.CURRENT < (-iMargin): scriptSys.final_report("F20", 0) return print "RUN" return except Exception as e: scriptSys.error_report(e, "cond_state()")
def stress_test(): try: if scriptSys.VOLTAGE < vMargin: #si actula la proteccion cargo la Batery scriptSys.GENERAL['mode'] = 'CHARGE' scriptSys.TIME_INIT = scriptSys.TIME print "CHARGE," + vCharge1 + "," + iCharge1 return if scriptSys.GENERAL['mode'] != 'STRESS': #si es llamado por 1 scriptSys.GENERAL['mode'] = 'STRESS' scriptSys.TIME_INIT = scriptSys.TIME print "DISCHARGE," + iDischargeTest1 return #condiciones de Fallas: if scriptSys.CURRENT > (-iMargin) and scriptSys.VOLTAGE < vMargin: scriptSys.final_report("F12", 0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= maxTimeInit: slope = scriptSys.get_slope( range(scriptSys.TIME_INIT + 3, scriptSys.TIME)) if slope['VOLTAGE'] > 80 and slope['CURRENT'] > 180: scriptSys.final_report("F13", 0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= tMaxStress: scriptSys.final_report("F15", 0) return if scriptSys.VOLTAGE <= lowVoltageLimit: #si actula la proteccion cargo la Batery evaluate() return print "RUN" return except Exception as e: scriptSys.error_report(e, "stress_test()")
def discharge_state(number): try: if not scriptSys.GENERAL['mode'] == 'DISCHARGE': #si es llamado por 1 scriptSys.GENERAL['mode'] = 'DISCHARGE' scriptSys.TIME_INIT = scriptSys.TIME if number == 1: print "DISCHARGE," + iDischarge1 if number == 2: print "DISCHARGE," + iDischarge2 if number == 3: print "DISCHARGE," + iDischarge3 return if scriptSys.VOLTAGE < (umbralVoltTarget - umbralVolt) \ and (scriptSys.TIME - scriptSys.TIME_INIT) >= minTimeDischarge: cond_state() return #condiciones de Fallas: if scriptSys.CURRENT > (-iMargin) and scriptSys.VOLTAGE < vMargin: scriptSys.final_report("F12", 0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= maxTimeInit: slope = scriptSys.get_slope( range(scriptSys.TIME_INIT + 3, scriptSys.TIME)) if slope['VOLTAGE'] > 80 and slope['CURRENT'] > 180: scriptSys.final_report("F13", 0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= maxTimeDischarge: scriptSys.final_report("F15", 0) return print "RUN" return except Exception as e: scriptSys.error_report(e, "discharge_state()")
def charge_state(number) : try: if not scriptSys.GENERAL['mode'] == 'CHARGE' : #si es llamado por 1 vez scriptSys.GENERAL['mode'] = 'CHARGE' scriptSys.TIME_INIT = scriptSys.TIME print "CHARGE,"+ vCharge1 +","+ iCharge1 return if scriptSys.CURRENT < iMargin and \ scriptSys.VOLTAGE > (int(1000*float(vCharge2))-100) : scriptSys.final_report("F03",0) return if (scriptSys.TIME - scriptSys.TIME_INIT) <= maxTimeInit: print "CHARGE,"+ vCharge2 +","+ iCharge2 return if scriptSys.CURRENT < (umbralCurrentTarget) and \ (scriptSys.TIME - scriptSys.TIME_INIT) >= minTimeCharge: cond_state() return #condiciones de Fallas: if scriptSys.CURRENT < iMargin : scriptSys.final_report("F02",0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= maxTimeInit: slope = scriptSys.get_slope(range(scriptSys.TIME_INIT + 3,scriptSys.TIME)) if scriptSys.GENERAL['vstate'] == "vBAJA" and not slope['VOLTAGE'] > -80 \ and scriptSys.CURRENT > (int(1000*float(iCharge2))-200): scriptSys.final_report("F04",0) return if scriptSys.GENERAL['vstate'] == "vMEDIA" and not slope['VOLTAGE'] > -80\ and scriptSys.CURRENT > (int(1000*float(iCharge2))-200): scriptSys.final_report("F05",0) return if scriptSys.GENERAL['vstate'] == "vALTA" and not slope['CURRENT'] < 80\ and scriptSys.VOLTAGE > (int(1000*float(vCharge2))-200): scriptSys.final_report("F06",0) return if slope['VOLTAGE'] > 0 and slope['CURRENT'] < 80 : scriptSys.final_report("F07",0) return if slope['VOLTAGE'] < 100 : scriptSys.final_report("F08",0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= maxTimeChargeLow and \ scriptSys.GENERAL['vstate'] == "vBAJA" : scriptSys.final_report("F09",0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= maxTimeChargeMed and \ scriptSys.GENERAL['vstate'] == "vMEDIA" : scriptSys.final_report("F10",0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= maxTimeChargeHig and \ scriptSys.GENERAL['vstate'] == "vALTA" : scriptSys.final_report("F11",0) return print "RUN" return except Exception as e: scriptSys.error_report(e,"charge_state()")
def stress_test(): try: if scriptSys.GENERAL['mode'] != 'STRESS': #si es llamado por 1 scriptSys.GENERAL['mode'] = 'STRESS' scriptSys.TIME_INIT = scriptSys.TIME scriptSys.AUX['testnr'] = str(int(scriptSys.AUX['testnr']) + 1) scriptSys.AUX['strike'] = 0 scriptSys.AUX['strikeh'] = 0 print "PAUSE" return #condiciones de Fallas: if scriptSys.VOLTAGE < lowVoltageLimit: #si actula la proteccion cargo la Batery scriptSys.AUX['Dropdown voltage T=' + str(scriptSys.TIME)] = scriptSys.VOLTAGE # scriptSys.send_msg('Dropdown voltage T='+ str(scriptSys.TIME)) scriptSys.final_report("SoHfail", 0) return # if scriptSys.VOLTAGE < vMargin : #si actula la proteccion cargo la Batery # scriptSys.GENERAL['mode'] = 'CHARGE' # scriptSys.TIME_INIT = scriptSys.TIME # print "CHARGE,"+ vCharge1 +","+ iCharge1 # return if scriptSys.CURRENT > (-iMargin) and scriptSys.VOLTAGE < vMargin: scriptSys.AUX['F12'] = scriptSys.CURRENT scriptSys.final_report("F12", 0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= maxTimeInit: slope1 = scriptSys.get_slope( range(scriptSys.TIME_INIT + 3, scriptSys.TIME)) if slope1['VOLTAGE'] > 80 and slope1['CURRENT'] > 180: scriptSys.AUX['F13 T=' + str(scriptSys.TIME)] = slope1 # scriptSys.send_msg('F13 T='+ str(scriptSys.TIME)) scriptSys.final_report("F13", 0) return if (scriptSys.TIME - scriptSys.TIME_INIT) >= tMaxStress: scriptSys.AUX['F12'] = (scriptSys.TIME - scriptSys.TIME_INIT) scriptSys.final_report("F15", 0) return ###################################### actual_time = (scriptSys.TIME - scriptSys.TIME_INIT) scriptSys.AUX['actual_time'] = actual_time if actual_time >= (tTestC3 - tMargin) and actual_time < (tTestC3 + tMargin): msj = evaluate() return if actual_time >= (tTestB3 - tMargin) and actual_time < (tTestB3 + tMargin): print "PAUSE" return if actual_time >= (tTestA3 - tMargin) and actual_time < (tTestA3 + tMargin): print "DISCHARGE," + iDischargeTest2 return print "RUN" return except Exception as e: scriptSys.error_report(e, "stress_test()")