Ver código fonte

change safevalve test logic

guoqiang 1 ano atrás
pai
commit
7cc7c36a1c
4 arquivos alterados com 152 adições e 44 exclusões
  1. 12 0
      app/log.txt
  2. BIN
      app/valve_experiment.exe
  3. 139 43
      src/safeValveTest.js
  4. 1 1
      src/valve_experiment.pro.user

+ 12 - 0
app/log.txt

@@ -177,3 +177,15 @@ DateTime:2023-11-20 10:28:15 周一 Message:closeAllValve start
 DateTime:2023-11-20 10:28:15 周一 Message:lampState: false
 DateTime:2023-11-20 10:28:15 周一 Message:02 0F 00 00 00 10 02 00 00
 DateTime:2023-11-20 10:28:15 周一 Message:closeAllValve end
+DateTime:2023-11-22 14:01:08 周三 Message:"OpenCOM3 Error"
+DateTime:2023-11-22 14:01:08 周三 Message:打开传感器串口COM3失败
+DateTime:2023-11-22 14:01:08 周三 Message:"OpenCOM4 Error"
+DateTime:2023-11-22 14:01:08 周三 Message:打开控制串口COM4失败
+DateTime:2023-11-22 14:01:08 周三 Message:32
+DateTime:2023-11-22 14:01:08 周三 Message:10
+DateTime:2023-11-22 14:01:08 周三 Message:openPressureTimeMax: 30
+DateTime:2023-11-22 14:01:08 周三 Message:qrc:/BreatheValve.qml:845:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2023-11-22 14:01:08 周三 Message:qrc:/BreatheValve.qml:824:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2023-11-22 14:01:09 周三 Message:BreathValve Carplattext:京
+DateTime:2023-11-22 14:01:09 周三 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2023-11-22 14:01:09 周三 Message:BreathValve Carplattext:浙

BIN
app/valve_experiment.exe


+ 139 - 43
src/safeValveTest.js

@@ -4,7 +4,7 @@
 var running = false
 var runningBackup = false
 //开启压力测试计时时间
-var openPressureTimeMax = 30
+var openPressureTimeMax = 120
 //密封压力测试计时时间
 var sealPressureTimemax = 60
 //安全阀默认整定压力
@@ -132,6 +132,7 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
     runningBackup = running
     var openPressureNumber
     var sealPressureNumber
+    var pressure_beforeopen = 0
 
     // 关闭所有测试口
     ModbusJs.turnOffAllTestIO(controlSerial)
@@ -165,7 +166,7 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
         pressureDisplaySigFun(obj.pressureNumber)
         //延时
         spy.wait(900)
-    }while(obj.pressureNumber > 0.1 )
+    }while(Number(obj.pressureNumber) > 0.1 )
     console.log("压力降压到 0 kPa")
 
     obj = ModbusJs.testFixedPressure(controlSerial,setPressure+30)
@@ -174,25 +175,23 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
         console.log("比例调压阀压力值:",obj.voltage)
     }
 
-    // ModbusJs.proportionalControlWrite(controlSerial,427)  //139.8 kPa
-    console.log("打开调节阀")
-
     /*********测试整定压力*************/
-    //    //打开正压安全阀测试口阀门
-    //    ModbusJs.safeValveTestIo(controlSerial,true)
-    //    console.log("打开安全阀测试口阀门")
+    //打开正压安全阀测试口阀门
+    ModbusJs.safeValveTestIo(controlSerial,true)
+    console.log("打开安全阀测试口阀门")
     //关闭正压罐头泄气阀门
     ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
     console.log("关闭正压罐头泄气阀门")
     //打开进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,true)
     console.log("打开进气阀门")
+
     tabView.currentIndex = currentIndex  ////切换当前tab页面
 
     var min = 0
-    var max = setPressure*2 //高压最大范围
-    if(max > 450)
-        max = 450
+    var max = setPressure*1.5 //高压最大范围
+    //if(max > 450)
+    //    max = 450
     //    console.log("setPressure:",setPressure)
     //    console.log("min:",min)
     //    console.log("max:",max)
@@ -223,38 +222,40 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
             prevTime = curTime
             pressureDisplaySigFun(obj.pressureNumber)
             bitCnt++
-            //            console.log("obj.pressureNumber:",obj.pressureNumber)
-            //            console.log("bitCnt:",bitCnt)
+
         }
 
         //粗调压力值
         //控制逻辑改动 先这样修改
-        var bigLevel = setPressure+20
-        if(obj.pressureNumber > bigLevel && bigAcive === true){
+        var bigLevel = setPressure*0.8
+        if(Number(obj.pressureNumber) > bigLevel && bigAcive === true){
             bigAcive = false
             ModbusJs.bigTuningValveControl(controlSerial,false)
             ModbusJs.bigTuningValveControl(controlSerial,false)
             console.log("关闭 粗调开关")
             //打开正压安全阀测试口阀门
-            ModbusJs.safeValveTestIo(controlSerial,true)
-            console.log("打开安全阀测试口阀门")
+            //ModbusJs.safeValveTestIo(controlSerial,true)
+            //console.log("打开安全阀测试口阀门")
             break
         }
 
-
-    }while(obj.pressureNumber < max && bitCnt < 120)
+    }while(Number(obj.pressureNumber) < max && bitCnt < 120)
     if(bitCnt === 120){
         processWindow.show("调整压力失败")
         return false
     }
 
-
     processWindow.show("整定试验开始")
+    pressure_beforeopen=Number(obj.pressureNumber)
+
     do{
         if(running === false){
             console.log("停止测试")
             return false
         }
+
+        spy.wait(900)
+
         obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
             log.show("高压传感器通讯错误")
@@ -267,14 +268,21 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
         table.pressure=obj.pressureNumber
         //开启压力模型赋值
         openPressureModel.append(table)
-        spy.wait(900)
+        if(Number(obj.pressureNumber) >= pressure_beforeopen ){
+            pressure_beforeopen=Number(obj.pressureNumber)
+        }else{
+            break
+        }
+
         openCnt++
+
         processWindow.text("整定压力试验时间"+(openPressureTimeMax-openCnt)+"s")
-    }while(obj.pressureNumber <=max  && openCnt < openPressureTimeMax)
 
+    }while(Number(obj.pressureNumber) <=max  && openCnt < openPressureTimeMax)
 
-    if(obj.pressureNumber >=min &&  obj.pressureNumber <= max && openCnt ===openPressureTimeMax){
-        openPressureNumber = obj.pressureNumber.toString()
+
+    if(Number(obj.pressureNumber) <= max && openCnt<openPressureTimeMax){
+        openPressureNumber = pressure_beforeopen.toString()
         var result={}
         result.openPressureNumber = openPressureNumber
         result.sealPressureNumber = ""
@@ -282,12 +290,13 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
         console.log("整定压力:",openPressureNumber)
     }
     else{
-        if(obj.pressureNumber < min){
+        if(Number(obj.pressureNumber) < min){
             openPressureNumber=obj.pressureNumber+"<"+min+"kPa"
         }
-        else if(obj.pressureNumber > max){
+        else if(Number(obj.pressureNumber) > max){
             openPressureNumber=obj.pressureNumber+">"+max+"kPa"
         }
+
         result={}
         result.openPressureNumber = openPressureNumber
         result.sealPressureNumber = ""
@@ -297,10 +306,29 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
         ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
         console.log("关闭正压罐进气阀门")
         console.log("整定压力:",openPressureNumber)
-        console.log("整定压力测试结束")
+        processWindow.text("整定压力试验超时")
         return false
     }
+
     console.log("整定压力测试结束")
+    //console.log("当前压力:",obj.pressureNumber.toString())
+    //console.log("前一次压力:",pressure_beforeopen)
+    /*判断整定压力是否合格*/
+    if(setPressure <= 500 ){
+        if(Math.abs(setPressure-pressure_beforeopen) > 15){
+            console.log("整定压力不合格")
+            processWindow.show("整定压力不合格, 试验结束")
+            return false
+
+        }
+    }else{
+        if(Math.abs(setPressure-pressure_beforeopen)>setPressure*0.3)
+        {
+            console.log("整定压力不合格")
+            processWindow.show("整定压力不合格, 试验结束")
+            return false
+        }
+    }
 
     /*********测试密封压力*************/
     console.log("密封压力开始")
@@ -308,14 +336,86 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
     //关闭正压罐进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
     console.log("关闭正压罐进气阀门")
+    //先泄压到整定压力的50%
+    //打开正压罐头泄气阀门
+    ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
+    console.log("打开正压罐头泄气阀门,等待压力值达到整定压力值的 50%")
+    //查看低压传感器值 等待正压罐头压力降到最低值
+    processWindow.show("泄气中,即将开启密封测试")
+    var use_pressure = pressure_beforeopen
+    var _target=0;
+    if(use_pressure < 300){
+        _target= use_pressure-50
+    }else{
+        _target= use_pressure*0.9-20
+    }
+    do{
+        if(running === false){
+            console.log("停止测试")
+            return
+        }
+        obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+        if(obj.ret === false){
+            log.show("高压传感器通讯错误")
+            return false
+        }
+        // signal 压力显示函数
+        pressureDisplaySigFun(obj.pressureNumber)
+        //延时
+        spy.wait(450)
+    }while(Number(obj.pressureNumber) > _target)
+
+    //关闭正压罐头泄气阀门
+    ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
+
+    spy.wait(3000)
+
+    //缓慢加压开始
+    var seal_target = 0
+    if(use_pressure <= 300){
+        seal_target = use_pressure-30
+    }else{
+        seal_target = use_pressure*0.9
+    }
+
+    processWindow.text("加压到:"+(seal_target)+"kPa")
+
+    //打开正压罐头进气阀门
+    ModbusJs.positivePressureTankInputCtrl(controlSerial,true)
+
+    do{
+        if(running === false){
+            console.log("停止测试")
+            return
+        }
+        obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+        if(obj.ret === false){
+            log.show("高压传感器通讯错误")
+            return false
+        }
+        // signal 压力显示函数
+        pressureDisplaySigFun(obj.pressureNumber)
+        //延时
+        spy.wait(900)
+    }while(Number(obj.pressureNumber) <= seal_target)
+
+    //关闭正压罐进气阀门
+    ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
+    console.log("关闭正压罐进气阀门")
+
     var holdTimeCnt=0
     tabView.currentIndex = currentIndex+3 //切换当前tab页面
 
+    var pressure_afterclose = Number(obj.pressureNumber)
+    var equal_count = 0
     do{
         if(running === false){
             console.log("停止测试")
             return false
         }
+
+        spy.wait(900)
+
         obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
             log.show("高压传感器通讯错误")
@@ -327,25 +427,21 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
         sealPressureModel.append(table)
         //压力实时显示
         pressureDisplaySigFun(obj.pressureNumber)
-        spy.wait(900)
+        if(Math.abs(Number(obj.pressureNumber)-pressure_afterclose) < 0.1){
+            equal_count++
+            if(equal_count >= 10)
+                break;
+
+        }else{
+            equal_count=0
+        }
+
+        pressure_afterclose = obj.pressureNumber
         holdTimeCnt++
         processWindow.text("密封压力试验时间"+(sealPressureTimemax-holdTimeCnt)+"s")
     }while(holdTimeCnt < sealPressureTimemax )
 
-    sealPressureNumber = obj.pressureNumber.toString()
-    //    //整定压力<0.3MPa时取(整定压力-0.03)MPa,整定压力≥0.3MPa时,取整定压力*0.9倍。
-    //    if(setPressure < 300)
-    //        var level = Number(setPressure) - 30
-    //    else {
-    //        level = Number(setPressure)*0.9
-    //        level = level.toFixed(1)
-    //    }
-    //    if(obj.pressureNumber < level){
-    //        sealPressureNumber = obj.pressureNumber+"<"+level+"kPa"
-    //    }
-    //    else{
-    //        sealPressureNumber = obj.pressureNumber.toString()
-    //    }
+    sealPressureNumber = obj.pressureNumber+""
 
     result={}
     result.openPressureNumber = openPressureNumber
@@ -373,7 +469,7 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
         pressureDisplaySigFun(obj.pressureNumber)
         //延时
         spy.wait(900)
-    }while(obj.pressureNumber > 0.1 )
+    }while(Number(obj.pressureNumber) > 0.1 )
     //关闭正压罐头泄气阀门
 
     console.log("压力 0kPa")

+ 1 - 1
src/valve_experiment.pro.user

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 8.0.0, 2023-11-20T10:39:20. -->
+<!-- Written by QtCreator 8.0.0, 2023-11-23T10:53:52. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>