Selaa lähdekoodia

调整参数,修复部分缺陷

guoqiang 10 kuukautta sitten
vanhempi
commit
537d6915d0

+ 62 - 0
app/log.txt

@@ -10,3 +10,65 @@ DateTime:2024-07-29 17:42:50 周一 Message:qrc:/BreatheValve.qml:824:29: QML Co
 DateTime:2024-07-29 17:42:50 周一 Message:BreathValve Carplattext:京
 DateTime:2024-07-29 17:42:50 周一 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
 DateTime:2024-07-29 17:42:50 周一 Message:BreathValve Carplattext:浙
+DateTime:2024-08-03 16:31:11 周六 Message:"OpenCOM3 Error"
+DateTime:2024-08-03 16:31:12 周六 Message:打开传感器串口COM3失败
+DateTime:2024-08-03 16:31:12 周六 Message:"OpenCOM4 Error"
+DateTime:2024-08-03 16:31:12 周六 Message:打开控制串口COM4失败
+DateTime:2024-08-03 16:31:12 周六 Message:32
+DateTime:2024-08-03 16:31:12 周六 Message:10
+DateTime:2024-08-03 16:31:12 周六 Message:openPressureTimeMax: 10
+DateTime:2024-08-03 16:31:12 周六 Message:qrc:/BreatheValve.qml:872:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-08-03 16:31:12 周六 Message:qrc:/BreatheValve.qml:851:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-08-03 16:31:12 周六 Message:openPressureTimeMax: 15
+DateTime:2024-08-03 16:31:12 周六 Message:BreathValve Carplattext:京
+DateTime:2024-08-03 16:31:12 周六 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-08-03 16:31:12 周六 Message:BreathValve Carplattext:浙
+DateTime:2024-08-03 16:31:15 周六 Message:QObject::~QObject: Timers cannot be stopped from another thread
+DateTime:2024-08-03 16:31:15 周六 Message:QObject::~QObject: Timers cannot be stopped from another thread
+DateTime:2024-08-03 16:31:20 周六 Message:"OpenCOM3 Error"
+DateTime:2024-08-03 16:31:20 周六 Message:打开传感器串口COM3失败
+DateTime:2024-08-03 16:31:20 周六 Message:"OpenCOM4 Error"
+DateTime:2024-08-03 16:31:20 周六 Message:打开控制串口COM4失败
+DateTime:2024-08-03 16:31:20 周六 Message:32
+DateTime:2024-08-03 16:31:20 周六 Message:10
+DateTime:2024-08-03 16:31:20 周六 Message:openPressureTimeMax: 10
+DateTime:2024-08-03 16:31:20 周六 Message:qrc:/BreatheValve.qml:872:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-08-03 16:31:20 周六 Message:qrc:/BreatheValve.qml:851:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-08-03 16:31:20 周六 Message:openPressureTimeMax: 15
+DateTime:2024-08-03 16:31:20 周六 Message:BreathValve Carplattext:京
+DateTime:2024-08-03 16:31:20 周六 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-08-03 16:31:20 周六 Message:BreathValve Carplattext:浙
+DateTime:2024-09-03 17:37:21 周二 Message:"OpenCOM3 Error"
+DateTime:2024-09-03 17:37:21 周二 Message:打开传感器串口COM3失败
+DateTime:2024-09-03 17:37:21 周二 Message:"OpenCOM4 Error"
+DateTime:2024-09-03 17:37:21 周二 Message:打开控制串口COM4失败
+DateTime:2024-09-03 17:37:21 周二 Message:32
+DateTime:2024-09-03 17:37:21 周二 Message:10
+DateTime:2024-09-03 17:37:21 周二 Message:openPressureTimeMax: 10
+DateTime:2024-09-03 17:37:21 周二 Message:qrc:/BreatheValve.qml:872:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-09-03 17:37:21 周二 Message:qrc:/BreatheValve.qml:851:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-09-03 17:37:21 周二 Message:openPressureTimeMax: 15
+DateTime:2024-09-03 17:37:21 周二 Message:BreathValve Carplattext:京
+DateTime:2024-09-03 17:37:21 周二 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-09-03 17:37:21 周二 Message:BreathValve Carplattext:浙
+DateTime:2024-09-03 17:37:26 周二 Message:密封计时: 15
+DateTime:2024-09-03 17:37:26 周二 Message:sealPressureTimemax: 15
+DateTime:2024-09-03 17:37:26 周二 Message:21
+DateTime:2024-09-03 17:37:26 周二 Message:开启计时: 63
+DateTime:2024-09-03 17:37:26 周二 Message:openPressureTimeMax: 63
+DateTime:2024-09-03 17:37:26 周二 Message:VacuoValve Carplattext:京
+DateTime:2024-09-03 17:37:26 周二 Message:qrc:/VacuoValve.qml:176:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-09-03 17:37:26 周二 Message:VacuoValve Carplattext:浙
+DateTime:2024-09-03 17:37:26 周二 Message:closeAllValve start
+DateTime:2024-09-03 17:37:26 周二 Message:lampState: false
+DateTime:2024-09-03 17:37:26 周二 Message:02 0F 00 00 00 10 02 00 00
+DateTime:2024-09-03 17:37:26 周二 Message:closeAllValve end
+DateTime:2024-09-03 17:37:30 周二 Message:sealPressureTimemax: 60
+DateTime:2024-09-03 17:37:30 周二 Message:openPressureTimeMax: 30
+DateTime:2024-09-03 17:37:30 周二 Message:SafeValve Carplattext:京
+DateTime:2024-09-03 17:37:30 周二 Message:qrc:/SafeValve.qml:224:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-09-03 17:37:30 周二 Message:SafeValve Carplattext:浙
+DateTime:2024-09-03 17:37:30 周二 Message:closeAllValve start
+DateTime:2024-09-03 17:37:30 周二 Message:lampState: false
+DateTime:2024-09-03 17:37:30 周二 Message:02 0F 00 00 00 10 02 00 00
+DateTime:2024-09-03 17:37:30 周二 Message:closeAllValve end

BIN
app/valve_experiment.exe


+ 41 - 34
src/BreatheValve.qml

@@ -222,15 +222,19 @@ Item{
                             }
                             spy.wait(1500) //延时 确认全关继电器
                             groupbox.currentIndex++
+
                         }while(groupbox.currentIndex <root.count && ret === true)
 
                     }
                     else if(testTypeComboBox.currentText === "颠覆性密封试验"){
                         console.log("颠覆性密封试验")
+                        var  tab =  breatheTable.capsizeTabview.getTab(0)
+                        var sealPressureModel = tab.item.modelData
+
                         if(subversiveComboBox.currentText === "90°"){
                             breatheTable.capsizeTabview.currentIndex = 0
-                            var  tab =  breatheTable.capsizeTabview.getTab(0)
-                            var sealPressureModel = tab.item.modelData
+                            tab =  breatheTable.capsizeTabview.getTab(0)
+                            sealPressureModel = tab.item.modelData
                         }
                         else if(subversiveComboBox.currentText === "180°"){
                             breatheTable.capsizeTabview.currentIndex = 1
@@ -634,14 +638,14 @@ Item{
                                             }
                                             switch(currentText){
                                             case "正压开启压力和密封试验":
-                                                BreatheTestJs.openPressureTimeMax = 15
+                                                BreatheTestJs.openPressureTimeMax = 3
                                                 BreatheTestJs.sealPressureTimemax = 15
                                                 sealPressureTimemaxInputLine.text = BreatheTestJs.sealPressureTimemax
                                                 openPressureTimeMaxInputLine.text = BreatheTestJs.openPressureTimeMax
                                                 openPressureTimeMaxInputLine.enabled = true
                                                 break
                                             case "负压开启压力和密封试验":
-                                                BreatheTestJs.openPressureTimeMax = 15
+                                                BreatheTestJs.openPressureTimeMax = 3
                                                 BreatheTestJs.sealPressureTimemax = 15
                                                 sealPressureTimemaxInputLine.text = BreatheTestJs.sealPressureTimemax
                                                 openPressureTimeMaxInputLine.text = BreatheTestJs.openPressureTimeMax
@@ -649,7 +653,7 @@ Item{
                                                 break
                                             case "颠覆性密封试验":
                                                 openPressureTimeMaxInputLine.enabled = false
-                                                BreatheTestJs.sealPressureTimemax = 30
+                                                BreatheTestJs.sealPressureTimemax = 15
                                                 sealPressureTimemaxInputLine.text = BreatheTestJs.sealPressureTimemax
                                                 openPressureTimeMaxInputLine.text = BreatheTestJs.openPressureTimeMax
                                                 break
@@ -700,37 +704,40 @@ Item{
                                     visible: paraRectagle.addHeight === 0?false:true
                                     spacing: 10
 
-
-                                    InputLine{
-                                        id:openPressureLine
-                                        paraName: "开启压力(kPa):"
-                                        paraLength: 145
-                                        text: BreatheTestJs.capsizeOpenPresure
-                                        validator:RegExpValidator {
-                                            regExp: /[0-9.]*/
-                                        }
-                                        inputMethodHints: Qt.ImhDigitsOnly
-                                        onTextChanged: {
-                                            BreatheTestJs.capsizeOpenPresure =  Number(text)
-                                            console.log(BreatheTestJs.capsizeOpenPresure)
-                                            inputPressureLine.text = BreatheTestJs.capsizeOpenPresure+22
-                                        }
-                                    }
-                                    InputLine{
-                                        id:inputPressureLine
-                                        paraName: "进气压力(kPa):"
-                                        paraLength: 68
-                                        text: BreatheTestJs.capsizeSetPressure
-                                        validator:RegExpValidator {
-                                            regExp: /[0-9.]*/
-                                        }
-                                        inputMethodHints: Qt.ImhDigitsOnly
-                                        onTextChanged: {
-                                            BreatheTestJs.capsizeSetPressure =  Number(text)
-                                            console.log(BreatheTestJs.capsizeSetPressure)
-                                        }
+                                    Text{
+                                        width: 425
                                     }
 
+                                    // InputLine{
+                                    //     id:openPressureLine
+                                    //     paraName: "开启压力(kPa):"
+                                    //     paraLength: 145
+                                    //     text: BreatheTestJs.capsizeOpenPresure
+                                    //     validator:RegExpValidator {
+                                    //         regExp: /[0-9.]*/
+                                    //     }
+                                    //     inputMethodHints: Qt.ImhDigitsOnly
+                                    //     onTextChanged: {
+                                    //         BreatheTestJs.capsizeOpenPresure =  Number(text)
+                                    //         console.log(BreatheTestJs.capsizeOpenPresure)
+                                    //         inputPressureLine.text = BreatheTestJs.capsizeOpenPresure+22
+                                    //     }
+                                    // }
+                                    // InputLine{
+                                    //     id:inputPressureLine
+                                    //     paraName: "进气压力(kPa):"
+                                    //     paraLength: 68
+                                    //     text: BreatheTestJs.capsizeSetPressure
+                                    //     validator:RegExpValidator {
+                                    //         regExp: /[0-9.]*/
+                                    //     }
+                                    //     inputMethodHints: Qt.ImhDigitsOnly
+                                    //     onTextChanged: {
+                                    //         BreatheTestJs.capsizeSetPressure =  Number(text)
+                                    //         console.log(BreatheTestJs.capsizeSetPressure)
+                                    //     }
+                                    // }
+
                                     UserComboBox{
                                         id:subversiveComboBox
                                         anchors.verticalCenter: parent.verticalCenter

+ 6 - 6
src/ChooseValve.qml

@@ -44,12 +44,12 @@ MenuBar {
                     choose(text)
                 }
             }
-            MenuItem {
-                text: "标定模式"
-                onTriggered: {
-                    choose(text)
-                }
-            }
+            // MenuItem {
+            //     text: "标定模式"
+            //     onTriggered: {
+            //         choose(text)
+            //     }
+            // }
         }
 
         Menu{

+ 69 - 19
src/PeopleCoverHoleValve.qml

@@ -134,7 +134,7 @@ Item {
             Timer{
                 id:delayTimer
                 repeat: false
-                interval: 5000
+                interval: 3000
                 onTriggered: {
                     if(delayType === 0){
                         PeopleCoverHoleValveTestJs.airCylinderHoldUp()
@@ -142,6 +142,9 @@ Item {
                         PeopleCoverHoleValveTestJs.airCylinderHoldDown()
                     }
 
+                    upButton.enabled = true
+                    downButton.enabled = true
+
                     delayCnt = 0
                 }
             }
@@ -355,7 +358,7 @@ Item {
                                     InputLine{
                                         id:typeInputLine
                                         paraName: "型号:"
-                                        paraLength: 180
+                                        paraLength: 130
                                         validator:RegExpValidator {
                                             regExp: /[0-9a-zA-Z.-]*/
                                         }
@@ -367,7 +370,7 @@ Item {
                                     InputLine{
                                         id:serialNumberInputLine
                                         paraName: "编号:"
-                                        paraLength: 180
+                                        paraLength: 130
                                         validator:RegExpValidator {
                                             regExp: /[0-9a-zA-Z.-]*/
                                         }
@@ -376,6 +379,30 @@ Item {
                                         }
                                     }
 
+                                    InputLine{
+                                        id:openPressureTimeMaxInputLine
+                                        paraName: "开启计时:"
+                                        paraLength: 40
+                                        text: PeopleCoverHoleValveTestJs.openPressureTimeMax
+                                        validator:RegExpValidator {
+                                            regExp: /[0-9]*/
+                                        }
+                                        inputMethodHints: Qt.ImhDigitsOnly
+                                        onTextChanged: {
+                                            PeopleCoverHoleValveTestJs.openPressureTimeMax =  Number(text)
+                                            console.log("openPressureTimeMax:",PeopleCoverHoleValveTestJs.openPressureTimeMax)
+                                            if(Number(text) >180){
+                                                text = 180
+                                            }
+                                        }
+//                                        onTextFocusChanged: {
+//                                            if(Number(text) >180){
+//                                                text = 180
+//                                            }
+//                                        }
+                                    }
+
+
                                 }
                                 Row{
                                     spacing: 15
@@ -390,7 +417,7 @@ Item {
                                     CarPlate{
                                         id:carplateInputLine
                                         paraName: "车牌:"
-                                        paraLength: 180-55
+                                        paraLength: 70
                                         onPlattextChanged: {
                                             root.carplate = plattext
                                             console.log("PeopleCoverHoleValve Carplattext:" + plattext)
@@ -413,7 +440,7 @@ Item {
 
                                     UserComboBox{
                                         id:countComboBox
-                                        width: 120
+                                        width: 80
                                         height:25
                                         bgColor:"#D2D5D9"
                                         model: ["试验1次","试验2次", "试验3次"]
@@ -426,6 +453,25 @@ Item {
                                         }
                                     }
 
+                                    InputLine{
+                                        id:sealPressureTimeMaxInputLine
+                                        paraName: "密封计时:"
+                                        paraLength: 40
+                                        text: PeopleCoverHoleValveTestJs.sealPressureTimemax
+                                        validator:RegExpValidator {
+                                            regExp: /[0-9]*/
+                                        }
+                                        inputMethodHints: Qt.ImhDigitsOnly
+                                        onTextChanged: {
+                                            PeopleCoverHoleValveTestJs.sealPressureTimemax =  Number(text)
+                                            console.log("sealPressureTimemax:",PeopleCoverHoleValveTestJs.sealPressureTimemax)
+                                            if(Number(text) >180){
+                                                text = 180
+                                            }
+                                        }
+
+                                    }
+
 
                                 }
 
@@ -443,6 +489,8 @@ Item {
                                                 delayType = 0
                                                 delayCnt = 5
                                                 delayTimer.start()
+                                                upButton.enabled = false
+                                                downButton.enabled = false
                                             }else{
 
                                             }
@@ -463,6 +511,8 @@ Item {
                                                 delayType = 1
                                                 delayCnt = 5
                                                 delayTimer.start()
+                                                upButton.enabled = false
+                                                downButton.enabled = false
                                             }else{
 
                                             }
@@ -503,21 +553,21 @@ Item {
                                     }
 
 
-                                    InputLine{
-                                        id:max_testtime
-                                        paraName: "压力平稳时间(秒):"
-                                        paraLength: 40
-                                        text: PeopleCoverHoleValveTestJs.maxPressureStableTime
-                                        validator:RegExpValidator {
-                                            regExp: /[0-9]*/
-                                        }
-                                        inputMethodHints: Qt.ImhDigitsOnly
-                                        onTextChanged: {
-                                            PeopleCoverHoleValveTestJs.maxPressureStableTime = Number(text)
-                                            console.log("maxPressureStableTime:",PeopleCoverHoleValveTestJs.maxPressureStableTime)
+                                    // InputLine{
+                                    //     id:max_testtime
+                                    //     paraName: "压力平稳时间(秒):"
+                                    //     paraLength: 40
+                                    //     text: PeopleCoverHoleValveTestJs.maxPressureStableTime
+                                    //     validator:RegExpValidator {
+                                    //         regExp: /[0-9]*/
+                                    //     }
+                                    //     inputMethodHints: Qt.ImhDigitsOnly
+                                    //     onTextChanged: {
+                                    //         PeopleCoverHoleValveTestJs.maxPressureStableTime = Number(text)
+                                    //         console.log("maxPressureStableTime:",PeopleCoverHoleValveTestJs.maxPressureStableTime)
 
-                                        }
-                                     }
+                                    //     }
+                                    //  }
 
 
                                     // Button{

+ 21 - 15
src/SafeValve.qml

@@ -94,23 +94,29 @@ Item {
             //这里需要优化
             function pressureDisplayInput(number){
                 pressureCnt++
+                if(number+10 > curveDisplay.axisyMax ){
+                    curveDisplay.axisyMax = number +10
+                }
+
                 if(pressureCnt <= 61){
                     dataArray.push(number)
                     curveDisplay.spline.append(pressureCnt-1,number)
                 }
                 else{
                     dataArray.push(number)
-                    dataArray.shift()
+                    //dataArray.shift()
                     curveDisplay.spline.clear()
-                    for(var i=0; i<61; i++){
+                    curveDisplay.axisxMax = pressureCnt+1
+                    for(var i=0; i<pressureCnt; i++){
                         curveDisplay.spline.append(i,dataArray[i])
                     }
                 }
                 gauge.value = number
             }
 
+            //液压抓操作定时器
             Timer{
-                id:releaseTimer
+                id:hydraulicGrabTimer
                 property bool upflag:false
                 repeat: false
                 interval: 100
@@ -136,7 +142,7 @@ Item {
                         ModbusJs.hydraulicUpIoCtrl(controlSerial,false)
                     }
                     spy.wait(500)
-                    testStop()
+                    test_exit()
                     downButton.enabled = true
                     upButton.enabled = true
                     choosevalve.menuEnable = true
@@ -160,7 +166,7 @@ Item {
                     var ret = ModbusJs.checkModebusDevice(controlSerial,sensorSerial,log)
                     if(ret === false){
                         log.show("自检错误")
-                        testStop()
+                        test_exit()
                         choosevalve.menuEnable = true
                         return
                     }
@@ -197,7 +203,7 @@ Item {
 
                     }while(groupbox.currentIndex <root.count && ret === true)
 
-                    testStop()
+                    test_exit()
                     //选择阀门 开启
                     choosevalve.menuEnable = true
                 }
@@ -205,15 +211,15 @@ Item {
 
 
             Timer{
-                id:stopTimer
+                id:exitTimer
                 repeat: false
                 interval: 500
                 onTriggered: {
                     // ModbusJs.closeAllValve(controlSerial)
-                    testStop()
+                    test_exit()
                 }
             }
-            function testStop(){
+            function test_exit(){
                 SaveValveTestJs.exit = true
                 processWindow.exit()
                 reuslt.visible = true
@@ -310,7 +316,7 @@ Item {
             function exit(){
                 animationExit.running = true
                 startStopButton.running = false
-                stopTimer.start()
+                exitTimer.start()
             }
 
             //加载任务动画效果
@@ -528,8 +534,8 @@ Item {
                                         onClicked: {
                                             downButton.enabled = false
                                             upButton.enabled = false
-                                            releaseTimer.upflag = true
-                                            releaseTimer.start()
+                                            hydraulicGrabTimer.upflag = true
+                                            hydraulicGrabTimer.start()
 
                                         }
                                     }
@@ -541,8 +547,8 @@ Item {
                                         onClicked: {
                                             downButton.enabled = false
                                             upButton.enabled = false
-                                            releaseTimer.upflag = false
-                                            releaseTimer.start()
+                                            hydraulicGrabTimer.upflag = false
+                                            hydraulicGrabTimer.start()
                                         }
                                     }
                                 }
@@ -585,7 +591,7 @@ Item {
                         height: 300
                         axisxMax:60
                         axisxMin:0
-                        axisyMax:500
+                        axisyMax:120
                         axisyMin:0
                         name:"高压曲线 单位kPa"
                     }

+ 14 - 11
src/VacuoValve.qml

@@ -158,15 +158,20 @@ Item {
 
             function pressureDisplayInput(number){
                 pressureCnt++
+                if(number+5 > curveDisplay.axisyMax ){
+                    curveDisplay.axisyMax = number +5
+                }
+
                 if(pressureCnt <= 61){
                     dataArray.push(number)
                     curveDisplay.spline.append(pressureCnt-1,number)
                 }
                 else{
                     dataArray.push(number)
-                    dataArray.shift()
+                    //dataArray.shift()
                     curveDisplay.spline.clear()
-                    for(var i=0; i<61; i++){
+                    curveDisplay.axisxMax = pressureCnt+1
+                    for(var i=0; i<pressureCnt; i++){
                         curveDisplay.spline.append(i,dataArray[i])
                     }
                 }
@@ -405,21 +410,19 @@ Item {
                                     }
                                     InputLine{
                                         id:outsidePressureInputLine
-                                        paraName: "设计外压(kPa):"
-                                        paraLength: 77
-                                        text: -VacuoValveTestJs.outsidePressure
+                                        paraName: "整定压力(负 kPa):"
+                                        paraLength: 60
+                                        text: -VacuoValveTestJs.setPressure
                                         validator:RegExpValidator {
                                             regExp: /[0-9]*/
                                         }
                                         inputMethodHints: Qt.ImhDigitsOnly
                                         onTextChanged: {
-                                            console.log(Number(text))
-                                            VacuoValveTestJs.outsidePressure = -Number(text)
+                                            console.log("整定压力:"+-Number(text))
+                                            VacuoValveTestJs.setPressure = -Number(text)
                                             //VacuoValveTestJs.sealPressureTimemax  = Number(text)*3
-                                            VacuoValveTestJs.openPressureTimeMax  = Number(text)*3
-                                            openPressureTimeMaxInputLine.text = VacuoValveTestJs.openPressureTimeMax
-                                            //sealPressureTimemaxInputLine.text = VacuoValveTestJs.sealPressureTimemax
-                                            //console.log("VacuoValveTestJs.outsidePressure:",VacuoValveTestJs.outsidePressure)
+                                            //VacuoValveTestJs.openPressureTimeMax  = Number(text)*3
+                                            //openPressureTimeMaxInputLine.text = VacuoValveTestJs.openPressureTimeMax
                                         }
                                     }
                                     InputLine{

+ 302 - 265
src/breatheTest.js

@@ -3,26 +3,27 @@
 
 var running = false
 var runningBackup = false
-var openPressureTimeMax = 10
+var openPressureTimeMax = 3
 var sealPressureTimemax = 15
 var exit = false
 
+var Pressure_open = 12
 var capsizeOpenPresure = 10
 var capsizeSetPressure = 32
 
-var pthreshold_Setzero = 0.2
-var nthreshold_Setzero = -0.2
+var pthreshold_Setzero = 0.5
+var nthreshold_Setzero = -0.5
 var delaycount_Setzero = 3
 
-var readPressureInterval = 200 // ms
-var maxPressureStableTime = 20
+var readPressureInterval = 10 // ms
+//var maxPressureStableTime = 15
 var releasePressureTimeOut = 180
 
 
 function positiveTestStop(controlSerial,pressureDisplaySigFun,spy,log){
 
-    ModbusJs.pressureSensorCtrl(controlSerial,"压")
-    console.log("打开压传感器阀门")
+    ModbusJs.pressureSensorCtrl(controlSerial,"压")
+    console.log("打开压传感器阀门")
     //关闭正压罐进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
     console.log("关闭正压罐进气阀门")
@@ -43,9 +44,9 @@ function positiveTestStop(controlSerial,pressureDisplaySigFun,spy,log){
             return
 
 
-        var obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+        var obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
-            log.show("压传感器通讯错误")
+            log.show("压传感器通讯错误")
             return false
         }
         // signal 压力显示函数
@@ -55,9 +56,6 @@ function positiveTestStop(controlSerial,pressureDisplaySigFun,spy,log){
         timeout++
         if(obj.pressureNumber <= pthreshold_Setzero){
             end_count++;
-            //console.log("111: pressure:"+ obj.pressureNumber +", pthreshold_setzero:"+pthreshold_Setzero)
-        }else{
-            //console.log("222: pressure:"+ obj.pressureNumber +", pthreshold_setzero:"+pthreshold_Setzero)
         }
 
     }while(end_count < delaycount_Setzero && timeout < 180)
@@ -113,7 +111,6 @@ function negativeTestStop(controlSerial,pressureDisplaySigFun,spy,log){
 }
 
 
-
 //正压开启压力和密封试验
 /*  openPressureModel       测试开启压力过程表模型
  *  sealPressureModel       测试密封压力过程表模型
@@ -122,14 +119,13 @@ function negativeTestStop(controlSerial,pressureDisplaySigFun,spy,log){
  */
 function positiveTestStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial,openPressureModel,sealPressureModel,pressureDisplaySigFun,resultSigFun,spy,log){
 
-    var setPressure = 12
     //自检
     runningBackup = running
     var openPressureNumber
     var sealPressureNumber
 
     var ret = true
-    var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
+    //var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
 
 
     //setp 1
@@ -137,25 +133,24 @@ function positiveTestStart(currentIndex,tabView,processWindow,controlSerial,sens
     ModbusJs.turnOffAllTestIO(controlSerial)
     console.log("关闭所有测试口")
 
-
-    ModbusJs.pressureSensorCtrl(controlSerial,"低压")
-    console.log("打开低压传感器阀门")
-    //关闭正压罐进气阀门
-    ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
-    console.log("关闭正压罐进气阀门")
-
-
     //setp 2
     //查看低压传感器值 等待正压罐头压力降到最低值
     processWindow.show("等待压力降到0")
+
     //打开正压罐头泄气阀门
     ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
     console.log("打开正压罐头泄气阀门")
 
+    ModbusJs.pressureSensorCtrl(controlSerial,"低压")
+    console.log("打开低压传感器阀门")
+
 
     var timeout = 0
     var end_count = 0
     do{
+        //延时
+        spy.wait(950)
+
         if(running === false){
             console.log("停止测试")
             return false
@@ -167,8 +162,7 @@ function positiveTestStart(currentIndex,tabView,processWindow,controlSerial,sens
         }
         // signal 压力显示函数
         pressureDisplaySigFun(obj.pressureNumber)
-        //延时
-        spy.wait(900)
+
         timeout++
         if(obj.pressureNumber <= pthreshold_Setzero){
             end_count++;
@@ -187,18 +181,17 @@ function positiveTestStart(currentIndex,tabView,processWindow,controlSerial,sens
     ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
     console.log("关闭正压罐头泄气阀门")
 
+
+
     //setp 3
     /*********测试开启压力*************/
-    //ModbusJs.pressureSensorCtrl(controlSerial,"低压")
-    //console.log("打开低压传感器阀门")
-
     //打开正压呼吸阀测试口阀门
     ModbusJs.pbreathValveTestIo(controlSerial,true)
     console.log("打开正压呼吸阀测试口阀门")
 
     //打开进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,true)
-    console.log("打开进气阀门")
+    console.log("打开正压罐进气阀门")
 
     //var vobj = ModbusJs.testFixedPressure(controlSerial,setPressure)
     //ModbusJs.proportionalControlWrite(controlSerial,vobj.voltage)
@@ -208,77 +201,77 @@ function positiveTestStart(currentIndex,tabView,processWindow,controlSerial,sens
     //ModbusJs.bigTuningValveControl(controlSerial,true)
     //console.log("打开 粗调开关")
 
-    processWindow.show("开启压力测试")
-    console.log("开启压力测试开始")
-
+    processWindow.show("正压开启压力测试")
+    console.log("正压开启压力测试开始")
 
-    var pre_pressure = 0
+    tabView.currentIndex = currentIndex
     var delta = 0
     var keepCnt = 0
 
-    //打开进气阀门
-    ModbusJs.positivePressureTankInputCtrl(controlSerial,true)
-    console.log("打开进气阀门")
-    tabView.currentIndex = currentIndex
-
-
-    var prevTime  = Date.now()
-
     obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
     if(obj.ret === false){
         log.show("低压传感器通讯错误")
         return false
     }
 
-    pre_pressure = obj.pressureNumber
-    spy.wait(readPressureInterval)
+    var pre_pressure = obj.pressureNumber2
+    var prevTime  = Date.now()
+    var preDelta = 0
+    var min = 6
+    var max = 20
+
+    spy.wait(500)
 
     ret = true
-    StablePressureCount = openPressureTimeMax*1000/readPressureInterval
+    //StablePressureCount = openPressureTimeMax*1000/readPressureInterval
 
     do{
+        //延时
+        spy.wait(readPressureInterval)
+
         if(running === false){
-            console.log("停止测试")
-            return false
-        }
-        //obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
-        obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("低压传感器通讯错误")
+            console.log("呼吸阀正压开启压力--停止测试")
             return false
         }
 
-        //开启压力超出范围了
-        if(obj.pressureNumber > setPressure){
-            //ret = false
-            log.show("当前压力大于 12kPa, 未开启")
-            break
-        }
+        var curTime  = Date.now()
+        var deltaTime = curTime - prevTime
+        if(deltaTime >= 980){
+            prevTime = curTime
 
-        delta = obj.pressureNumber - pre_pressure
-        pre_pressure = obj.pressureNumber
+            obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("低压传感器通讯错误")
+                return false
+            }
 
-        //if(delta < 0){
-        //    console.log("delta = %f", delta)
-        //    break
-        //    //keepCnt++
-        //}else
-        if(delta < 0.01){
-            keepCnt++
-        }else{
-            keepCnt=0
-        }
+            //开启压力超出范围了
+            if(obj.pressureNumber > max){
+                ret = false
+                log.show("当前压力大于 20kPa, 未开启")
+                break
+            }
 
-        if(keepCnt > StablePressureCount){
-            //console.log("keepCnt > StablePressureCount")
-            break;
-        }
+            delta = obj.pressureNumber2 - pre_pressure
+            pre_pressure = obj.pressureNumber2
 
 
-        var curTime  = Date.now()
-        var deltaTime = curTime - prevTime
-        if(deltaTime > 1000){
-            prevTime = curTime
+             if((delta < (preDelta-0.03)) || (delta <= 0.12)){
+                keepCnt++
+            }else{
+                keepCnt=0
+            }
+
+             //console.log("current pressure:"+obj.pressureNumber2+", delta:"+delta+", preDelta: "+preDelta)
+             //console.log("keepCnt:"+ keepCnt +" ")
+
+            if(keepCnt > openPressureTimeMax){
+                //console.log("keepCnt > StablePressureCount")
+                break;
+            }
+
+            preDelta = delta
+
             pressureDisplaySigFun(obj.pressureNumber)
             // add  pressure table
             var table={}
@@ -289,26 +282,27 @@ function positiveTestStart(currentIndex,tabView,processWindow,controlSerial,sens
             //processWindow.text("开启压力试验时间"+(openPressureTimeMax-openCnt)+"s")
         }
 
-        //延时
-        spy.wait(readPressureInterval)
-
     }while(1)//(obj.pressureNumber <=max && openCnt < openPressureTimeMax)
 
     //通知数据
     pressureDisplaySigFun(obj.pressureNumber)
     // add  pressure table
-     table={}
+    table={}
     table.pressure=obj.pressureNumber
-    //开启压力模型赋值
     openPressureModel.append(table)
 
+    if(ret === true){
+        Pressure_open = obj.pressureNumber
+    }
+
     openPressureNumber = obj.pressureNumber
     var result={}
     result.openPressureNumber = obj.pressureNumber
     result.sealPressureNumber = ""
     resultSigFun(result)
-    console.log("开启压力:",obj.pressureNumber)
-    console.log("开启压力测试结束")
+
+    console.log("呼吸阀正压开启压力:",obj.pressureNumber)
+    console.log("呼吸阀正压开启压力测试结束")
 
     //setp 4
     /*********测试密封压力*************/
@@ -317,66 +311,66 @@ function positiveTestStart(currentIndex,tabView,processWindow,controlSerial,sens
     //关闭正压罐进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
     console.log("关闭正压罐进气阀门")
-    //保持600s
-    //var holdTimeCnt=0
-    keepCnt = 0
+
+
     tabView.currentIndex = currentIndex+3
+
+    obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
+    if(obj.ret === false){
+        log.show("低压传感器通讯错误")
+        return false
+    }
+
+    pre_pressure = obj.pressureNumber
     prevTime = Date.now()
-    StablePressureCount = openPressureTimeMax*1000/readPressureInterval
+    keepCnt = 0
+    ret = true
+    //StablePressureCount = sealPressureTimemax*1000/readPressureInterval
 
     do{
+        //延时
+        spy.wait(readPressureInterval)
+
         if(running === false){
             console.log("停止测试")
             return false
         }
 
-        obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("低压传感器通讯错误")
-            return false
-        }
+        //压力数据通知
+        curTime  = Date.now()
+        deltaTime = curTime - prevTime
+        if(deltaTime >= 980){
+            prevTime = curTime
 
-        delta = pre_pressure - obj.pressureNumber
-        pre_pressure = obj.pressureNumber
+            obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("低压传感器通讯错误")
+                return false
+            }
 
+            // delta = pre_pressure - obj.pressureNumber2
+            // pre_pressure = obj.pressureNumber2
 
-        if(obj.pressureNumber < 0.6){
-            log.show("当前压力小于 0.6kPa, 疑似漏气")
-            //ret = false
-            break
-        }
 
+            // if(obj.pressureNumber < min){
+            //     log.show("当前压力小于 6kPa, 疑似漏气")
+            //     //ret = false
+            //     break
+            // }
 
-        if(delta <= 0.01){
             keepCnt++
-        }else{
-            keepCnt=0
-        }
-
-        if(keepCnt > StablePressureCount){
-            break;
-        }
 
-        //压力数据通知
-        curTime  = Date.now()
-        deltaTime = curTime - prevTime
-        if(deltaTime > 1000){
-            prevTime = curTime
             pressureDisplaySigFun(obj.pressureNumber)
             // add  pressure table
             table={}
             table.pressure=obj.pressureNumber
             sealPressureModel.append(table)
-            //processWindow.text("密封压力试验时间"+(sealPressureTimemax-holdTimeCnt)+"s")
+            processWindow.text("密封压力试验时间"+(sealPressureTimemax-keepCnt)+"s")
             //processWindow.text("21kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
 
         }
 
-        //延时
-        spy.wait(readPressureInterval)
-
-
-    }while(1)//(holdTimeCnt < sealPressureTimemax ) //传感器值是否能一直稳定住??????
+    }while(keepCnt < sealPressureTimemax)//传感器值是否能一直稳定住??????
 
     pressureDisplaySigFun(obj.pressureNumber)
     // add  pressure table
@@ -424,6 +418,7 @@ function positiveTestStart(currentIndex,tabView,processWindow,controlSerial,sens
     }while(end_count < delaycount_Setzero && timeout < 180)
 
     //关闭正压罐头泄气阀门
+    ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
 
     //setp 6
     console.log("压力 0kPa")
@@ -453,7 +448,7 @@ function negativeTestStart(currentIndex,tabView,processWindow,controlSerial,sens
     var sealPressureNumber
 
     var ret = true
-    var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
+    //var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
 
 
     //setp 1
@@ -462,23 +457,24 @@ function negativeTestStart(currentIndex,tabView,processWindow,controlSerial,sens
     console.log("关闭 负压泵")
     ModbusJs.turnOffAllTestIO(controlSerial)
     console.log("关闭所有测试口")
-    //打开负压呼吸阀测试口阀门
-    ModbusJs.nbreathValveTestIo(controlSerial,true)
-    console.log("打开负压呼吸阀测试口阀门")
 
-    ModbusJs.pressureSensorCtrl(controlSerial,"负压")
-    console.log("打开负压传感器阀门")
 
+    //setp 2
+    processWindow.show("等待压力到0kPa")
     //关闭负压罐进气阀门
     ModbusJs.negativePressureTankInputCtrl(controlSerial,false)
     console.log("关闭负压罐进气阀门 微调")
 
-    //setp 2
-    processWindow.show("等待压力到0kPa")
+    ModbusJs.nbreathValveTestIo(controlSerial,true)
+    console.log("打开负压呼吸阀测试口阀门")
+
     //打开负压罐头泄气阀门
     ModbusJs.negativePressureTankOutputCtrl(controlSerial,true)
     console.log("打开负压罐头泄气阀门")
 
+    ModbusJs.pressureSensorCtrl(controlSerial,"负压")
+    console.log("打开负压传感器阀门")
+
     //查看负压传感器值 等待负压压罐头压力至0kPa
     var timeout = 0
     var end_count=0
@@ -519,25 +515,23 @@ function negativeTestStart(currentIndex,tabView,processWindow,controlSerial,sens
     /*********测试开启压力*************/
     ModbusJs.negativePumpPowerCtrl(controlSerial,true)
     console.log("打开 负压泵")
-    processWindow.show("开启压力试验开始")
+    processWindow.show("呼吸阀负压开启压力试验开始")
     console.log("开启压力测试开始")
     //打开负压呼吸阀测试口阀门 全称微调 不需要打开 逻辑有改变
-//    ModbusJs.nbreathValveTestIo(controlSerial,true)
-//    console.log("打开负压呼吸阀测试口阀门")
-    //关闭负压罐泄气阀门
-    //ModbusJs.negativePressureTankOutputCtrl(controlSerial,false)
-    //console.log("关闭负压罐泄气阀门")
-    //关闭 负压罐进气阀门
+    ModbusJs.nbreathValveTestIo(controlSerial,true)
+    console.log("打开负压呼吸阀测试口阀门")
 
     //打开进气阀门
     ModbusJs.negativePressureTankInputCtrl(controlSerial,true)
     console.log("打开负压罐抽气阀门 微调")
+
+
     tabView.currentIndex = currentIndex
 
-    var pre_pressure = 0
     var delta = 0
     var keepCnt = 0
     var prevTime  = Date.now()
+    var preDelta = 0
 
     obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
     if(obj.ret === false){
@@ -545,54 +539,64 @@ function negativeTestStart(currentIndex,tabView,processWindow,controlSerial,sens
         return false
     }
 
-    pre_pressure = obj.pressureNumber
-    spy.wait(readPressureInterval)
+    var pre_pressure = obj.pressureNumber2
 
     //ret = true
-    StablePressureCount = openPressureTimeMax*1000/readPressureInterval
+    //StablePressureCount = openPressureTimeMax*1000/readPressureInterval
 
-    var min = -4
-    var max = -2
+    var min = -10
+    //var max = -2*0.8
+
+    spy.wait(500)
 
     do{
+        //延时
+        spy.wait(readPressureInterval)
+
         if(running === false){
             console.log("停止测试")
             return false
         }
 
-        //obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
-        obj =ModbusJs.lowPressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("负压传感器通讯错误")
-            return false
-        }
 
-        delta = pre_pressure - obj.pressureNumber
-        pre_pressure = obj.pressureNumber
+        //压力数据通知
+        var curTime  = Date.now()
+        var deltaTime = curTime - prevTime
+        if(deltaTime > 980){
+            prevTime = curTime
 
+            //obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
+            obj =ModbusJs.lowPressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("负压传感器通讯错误")
+                return false
+            }
 
-        if(obj.pressureNumber < min){
-            log.show("当前压力低于 -4.0 kPa, 未开启")
-            //ret = false
-            break
-        }
+            delta = pre_pressure - obj.pressureNumber2
+            pre_pressure = obj.pressureNumber2
 
 
-        if(delta <= 0.01){
-            keepCnt++
-        }else{
-            keepCnt=0
-        }
+            if(obj.pressureNumber < min){
+                log.show("当前压力低于 -10 kPa, 未开启")
+                //ret = false
+                break
+            }
 
-        if(keepCnt > StablePressureCount){
-            break;
-        }
+            if((delta < (preDelta-0.03)) || (delta <= 0.12)){
+                keepCnt++
+            }else{
+                keepCnt=0
+            }
+
+            //console.log("current pressure:"+obj.pressureNumber2+", delta:"+delta+", preDelta: "+preDelta)
+            //console.log("keepCnt:"+ keepCnt +" ")
+
+            if(keepCnt > openPressureTimeMax){
+                break;
+            }
+
+            preDelta = delta
 
-        //压力数据通知
-        var curTime  = Date.now()
-        var deltaTime = curTime - prevTime
-        if(deltaTime > 1000){
-            prevTime = curTime
             pressureDisplaySigFun(obj.pressureNumber)
             // add  pressure table
             var table={}
@@ -603,10 +607,6 @@ function negativeTestStart(currentIndex,tabView,processWindow,controlSerial,sens
 
         }
 
-        //延时
-        spy.wait(readPressureInterval)
-
-
     }while(1)//(obj.pressureNumber >= min && openCnt < openPressureTimeMax)
 
 
@@ -621,21 +621,19 @@ function negativeTestStart(currentIndex,tabView,processWindow,controlSerial,sens
     result.openPressureNumber = openPressureNumber
     result.sealPressureNumber = ""
     resultSigFun(result)
-    console.log("开启压力:",openPressureNumber)
-
+    console.log("呼吸阀负压开启压力:",openPressureNumber)
 
-    console.log("密封压力开始")
-    processWindow.show("密封压力试验开始")
     //关闭负压罐进气阀门
     ModbusJs.negativePressureTankInputCtrl(controlSerial,false)
     console.log("关闭负压罐进气阀门 微调")
     ModbusJs.negativePumpPowerCtrl(controlSerial,false)
     console.log("关闭 负压泵")
-
     console.log("开启压力测试结束")
 
 
     //setp 4
+    console.log("密封压力开始")
+    processWindow.show("呼吸阀负压密封压力试验开始")
     /*********测试密封压力*************/
     var holdTimeCnt=0
     tabView.currentIndex =currentIndex+3
@@ -646,45 +644,28 @@ function negativeTestStart(currentIndex,tabView,processWindow,controlSerial,sens
             console.log("停止测试")
             return false
         }
-        obj =ModbusJs.lowPressureSensorReadReq(sensorSerial)
-        //obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("低压传感器通讯错误")
-            return false
-        }
-
-        delta = obj.pressureNumber - pre_pressure
-        pre_pressure = obj.pressureNumber
-
-
-        if(obj.pressureNumber > max){
-            log.show("当前压力高于 -2.0 kPa, 疑似漏气")
-            //ret = false
-            break
-        }
-
-
-        if(delta <= 0.01){
-            keepCnt++
-        }else{
-            keepCnt=0
-        }
-
-        if(keepCnt > StablePressureCount){
-            break;
-        }
 
         //压力数据通知
         curTime  = Date.now()
         deltaTime = curTime - prevTime
-        if(deltaTime > 1000){
+        if(deltaTime > 980){
             prevTime = curTime
+
+            obj =ModbusJs.lowPressureSensorReadReq(sensorSerial)
+            //obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("低压传感器通讯错误")
+                return false
+            }
+
+            keepCnt++
+
             pressureDisplaySigFun(obj.pressureNumber)
             // add  pressure table
             table={}
             table.pressure=obj.pressureNumber
             sealPressureModel.append(table)
-            //processWindow.text("密封压力试验时间"+(sealPressureTimemax-holdTimeCnt)+"s")
+            processWindow.text("密封压力试验时间"+(sealPressureTimemax-keepCnt)+"s")
             //processWindow.text("21kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
 
         }
@@ -693,7 +674,7 @@ function negativeTestStart(currentIndex,tabView,processWindow,controlSerial,sens
         spy.wait(readPressureInterval)
 
 
-    }while(1)
+    }while(keepCnt < sealPressureTimemax)
 
     pressureDisplaySigFun(obj.pressureNumber)
     // add  pressure table
@@ -711,14 +692,9 @@ function negativeTestStart(currentIndex,tabView,processWindow,controlSerial,sens
 
 
     //setp 5
-    //关闭负压罐进气阀门
-    ModbusJs.negativePressureTankInputCtrl(controlSerial,false)
-    console.log("关闭负压罐进气阀门 微调")
     //打开负压罐头泄气阀门
     ModbusJs.negativePressureTankOutputCtrl(controlSerial,true)
     console.log("打开负压罐头泄气阀门")
-    ModbusJs.negativePumpPowerCtrl(controlSerial,false)
-    console.log("关闭 负压泵")
     console.log("等待压力 0kPa")
     //查看负压传感器值 等待负压罐到0kPa
     processWindow.show("试验结束,泄气中")
@@ -765,17 +741,20 @@ function capsizeTestStart(processWindow,controlSerial,sensorSerial,
     // 关闭所有测试口
     ModbusJs.turnOffAllTestIO(controlSerial)
     console.log("关闭所有测试口")
-    ModbusJs.pressureSensorCtrl(controlSerial,"高压")
-    console.log("打开高压传感器阀门")
+
+    //setp 2
+    ModbusJs.pressureSensorCtrl(controlSerial,"低压")
+    console.log("打开低压传感器阀门")
     //关闭正压罐进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
     console.log("关闭正压罐进气阀门")
-    //setp 2
+
     //查看高压传感器值 等待正压罐头压力降到最低值
     processWindow.show("等待压力降到0")
     //打开正压罐头泄气阀门
     ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
     console.log("打开正压罐头泄气阀门")
+
     var timeout = 0
     var end_count=0
     do{
@@ -783,15 +762,15 @@ function capsizeTestStart(processWindow,controlSerial,sensorSerial,
             console.log("停止测试")
             return false
         }
-        var obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+        var obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
-            log.show("压传感器通讯错误")
+            log.show("压传感器通讯错误")
             return false
         }
         // signal 压力显示函数
         pressureDisplaySigFun(obj.pressureNumber)
         //延时
-        spy.wait(900)
+        spy.wait(950)
         timeout++
         if(obj.pressureNumber <= pthreshold_Setzero){
             end_count++;
@@ -805,114 +784,172 @@ function capsizeTestStart(processWindow,controlSerial,sensorSerial,
         return false
     }
 
-    //setp 3
-    /*********调整压力*************/
-    processWindow.show("进气压力"+capsizeSetPressure+"kPa")
-    ModbusJs.pressureSensorCtrl(controlSerial,"低压")
-    console.log("打开低压传感器阀门")
-    obj = ModbusJs.testFixedPressure(controlSerial,capsizeSetPressure+2)
-    ModbusJs.proportionalControlWrite(controlSerial,obj.voltage)
-    console.log("比例调压阀压力值:",obj.voltage)
     //关闭正压罐头泄气阀门
     ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
     console.log("关闭正压罐头泄气阀门")
+
+    //setp 3
+    /*********调整压力*************/
+    processWindow.show("进气压力"+Pressure_open+"kPa")
+
+    //ModbusJs.pressureSensorCtrl(controlSerial,"低压")
+    //console.log("打开低压传感器阀门")
+    //obj = ModbusJs.testFixedPressure(controlSerial,capsizeSetPressure+2)
+    //ModbusJs.proportionalControlWrite(controlSerial,obj.voltage)
+    //console.log("比例调压阀压力值:",obj.voltage)
+
     //打开进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,true)
     console.log("打开进气阀门")
-    var cnt = 0
+
+    //ModbusJs.bigTuningValveControl(controlSerial,true)
+    //console.log("开启 粗调开关")
+
+    obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
+    if(obj.ret === false){
+        log.show("低压传感器通讯错误")
+        return false
+    }
+
+    var pre_pressure = 0
     var prevTime  = Date.now()
-    var bigAcive = true
-    var max = 50
-    ModbusJs.bigTuningValveControl(controlSerial,true)
-    console.log("开启 粗调开关")
+
+    var max = Pressure_open
+    var cnt = 0
+
     do{
+        //延时
+        spy.wait(readPressureInterval)
+
         if(running === false){
-            console.log("停止测试")
+            console.log("呼吸阀颠覆实验--停止测试")
             return false
         }
+
         obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
             log.show("低压传感器通讯错误")
             return false
         }
 
+        //开启压力超出范围了
+        if(Number(obj.pressureNumber) > Number(Pressure_open)){
+        //if(obj.pressureNumber >= Pressure_open){
 
+            console.log("当前压力:"+obj.pressureNumber+"kPa")
+            console.log("Pressure_open 压力:"+Pressure_open+"kPa")
+            break
+        }
 
-        spy.wait(10)
         var curTime  = Date.now()
         var deltaTime = curTime - prevTime
-        if(deltaTime > 900){
+        if(deltaTime > 1000){
+            cnt++
             prevTime = curTime
             pressureDisplaySigFun(obj.pressureNumber)
-            cnt++
         }
 
-        //粗调压力值
-        var bigLevel = capsizeSetPressure-1
-        if(obj.pressureNumber > bigLevel && bigAcive === true){
-            bigAcive = false
-            ModbusJs.bigTuningValveControl(controlSerial,false)
-            ModbusJs.bigTuningValveControl(controlSerial,false)
-            console.log("关闭 粗调开关")
-            break;
-        }
+    }while(cnt < 180)
 
-//        pressureDisplaySigFun(obj.pressureNumber)
-//        spy.wait(900)
-//        cnt++
-//        console.log("obj.pressureNumber:",obj.pressureNumber)
-    }while(obj.pressureNumber <= max && cnt < 180 )
     if(cnt === 180){
         log.show("进气时间超时")
         return false
     }
 
-    //setp 3
-    /*********密封试验开始*************/
-    processWindow.show("密封压力试验开始")
-    console.log("密封压力试验开始")
     //关闭进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
     console.log("关闭进气阀门")
+    //ModbusJs.bigTuningValveControl(controlSerial,false)
+    //console.log("开启 粗调开关")
+
+
+    //setp 4
+    /*********密封试验开始*************/
+    processWindow.show("密封压力试验开始")
+    console.log("密封压力试验开始")
+
     //打开正压呼吸阀测试口阀门
     ModbusJs.pbreathValveTestIo(controlSerial,true)
     console.log("打开正压呼吸阀测试口阀门")
 
+    obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
+    if(obj.ret === false){
+        log.show("低压传感器通讯错误")
+        return false
+    }
+
+    pre_pressure = obj.pressureNumber
+    prevTime = Date.now()
+    var delta = 0
+    var keepCnt = 0
+    //var StablePressureCount = sealPressureTimemax*1000/readPressureInterval
     cnt = 0
     do{
+        //延时
+        spy.wait(readPressureInterval)
+
         if(running === false){
             console.log("停止测试")
             return false
         }
+
         obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
             log.show("低压传感器通讯错误")
             return false
         }
-        pressureDisplaySigFun(obj.pressureNumber)
-        // add  pressure table
-        var table={}
-        table.pressure=obj.pressureNumber
-        //密封模型赋值
-        sealPressureModel.append(table)
-        spy.wait(900)
-        cnt++
-        processWindow.text("密封压力试验时间"+(sealPressureTimemax-cnt)+"s")
-    }while( cnt < sealPressureTimemax )
+
+        //压力数据通知
+        curTime  = Date.now()
+        deltaTime = curTime - prevTime
+        if(deltaTime > 1000){
+            cnt++
+            prevTime = curTime
+
+            obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("低压传感器通讯错误")
+                return false
+            }
+
+            pressureDisplaySigFun(obj.pressureNumber)
+            // add  pressure table
+            var table={}
+            table.pressure=obj.pressureNumber
+            sealPressureModel.append(table)
+
+            processWindow.text("密封压力试验时间"+(sealPressureTimemax-cnt)+"s")
+
+        }
+
+    }while(cnt < sealPressureTimemax )//传感器值是否能一直稳定住??????
+
+    pressureDisplaySigFun(obj.pressureNumber)
+    // add  pressure table
+    table={}
+    table.pressure=obj.pressureNumber
+    sealPressureModel.append(table)
+
     var result={}
     result.sealPressureNumber = obj.pressureNumber
     resultSigFun(result)
+    console.log("密封压力:",obj.pressureNumber)
+    console.log("密封压力结束")
+
+
+
+
 
     //setp 5
     processWindow.show("试验结束,泄气中")
-    ModbusJs.pressureSensorCtrl(controlSerial,"低压")
-    console.log("打开低压传感器阀门")
+    //ModbusJs.pressureSensorCtrl(controlSerial,"低压")
+    //console.log("打开低压传感器阀门")
     //打开正压罐头泄气阀门
     ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
     console.log("打开正压罐头泄气阀门")
     //关闭进气阀门
-    ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
-    console.log("关闭进气阀门")
+    //ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
+    //console.log("关闭进气阀门")
     console.log("等待压力 0kPa")
     //查看高压传感器值 等待正压罐头压力降到最低值
     timeout =0

+ 19 - 18
src/main.qml

@@ -31,7 +31,7 @@ ApplicationWindow {
                 vacuoValve.exit()
                 peopleCoverHoleValve.exit()
                 tankValve.exit()
-                calibrationMode.exit()
+                //calibrationMode.exit()
                 sealSelfTest.exit()
                 safeValve.show()
                 ModbusJs.closeAllValve(controlSerial)
@@ -41,7 +41,7 @@ ApplicationWindow {
                 vacuoValve.exit()
                 peopleCoverHoleValve.exit()
                 tankValve.exit()
-                calibrationMode.exit()
+                //calibrationMode.exit()
                 sealSelfTest.exit()
                 breatheValve.show()
                 ModbusJs.closeAllValve(controlSerial)
@@ -51,7 +51,7 @@ ApplicationWindow {
                 breatheValve.exit()
                 peopleCoverHoleValve.exit()
                 tankValve.exit()
-                calibrationMode.exit()
+                //calibrationMode.exit()
                 vacuoValve.show()
                 sealSelfTest.exit()
                 ModbusJs.closeAllValve(controlSerial)
@@ -61,7 +61,7 @@ ApplicationWindow {
                 breatheValve.exit()
                 vacuoValve.exit()
                 tankValve.exit()
-                calibrationMode.exit()
+                //calibrationMode.exit()
                 sealSelfTest.exit()
                 peopleCoverHoleValve.show()
                 ModbusJs.closeAllValve(controlSerial)
@@ -71,7 +71,7 @@ ApplicationWindow {
                 breatheValve.exit()
                 vacuoValve.exit()
                 peopleCoverHoleValve.exit()
-                calibrationMode.exit()
+                //calibrationMode.exit()
                 sealSelfTest.exit()
                 tankValve.show()
                 ModbusJs.closeAllValve(controlSerial)
@@ -81,20 +81,21 @@ ApplicationWindow {
                 breatheValve.exit()
                 vacuoValve.exit()
                 peopleCoverHoleValve.exit()
-                calibrationMode.exit()
+                //calibrationMode.exit()
                 tankValve.exit()
                 sealSelfTest.show()
                 ModbusJs.closeAllValve(controlSerial)
             }
 
-            else if(text === "标定模式"){
-                safeValve.exit()
-                breatheValve.exit()
-                vacuoValve.exit()
-                peopleCoverHoleValve.exit()
-                tankValve.exit()
-                calibrationMode.show()
-            }
+            // else if(text === "标定模式"){
+            //     safeValve.exit()
+            //     breatheValve.exit()
+            //     vacuoValve.exit()
+            //     peopleCoverHoleValve.exit()
+            //     tankValve.exit()
+            //     calibrationMode.show()
+            // }
+
 
         }
     }
@@ -125,10 +126,10 @@ ApplicationWindow {
     }
 
 
-    Calibration{
-        anchors.fill: parent
-        id:calibrationMode
-    }
+    // Calibration{
+    //     anchors.fill: parent
+    //     id:calibrationMode
+    // }
     Component.onCompleted: {
         breatheValve.show()
     }

+ 12 - 4
src/modbus.js

@@ -500,6 +500,7 @@ function highPressureSensorReadReq(serial){
     var data = serial.serialWriteReponse(command)
 
     var pressureNumber = 0
+    var pressureNumber2 = 0
     var ret = false
     if(data.length === 0)
         data = serial.serialWriteReponse(command)
@@ -517,12 +518,13 @@ function highPressureSensorReadReq(serial){
             view.setUint8(0, data[5])
             var number = view.getFloat32(0)
             pressureNumber = number.toFixed(1)
+            pressureNumber2 = number.toFixed(2)
             ret =  true;
         }
     }
 
 
-    return{ ret:ret,pressureNumber:pressureNumber}
+    return{ ret:ret,pressureNumber:pressureNumber,pressureNumber2:pressureNumber2}
 }
 
 //高压传感器 标零
@@ -552,6 +554,7 @@ function lowPressureSensorReadReq(serial){
     var command = lowPressureSensorAddress+" "+"04 00 00 00 02"
     var data = serial.serialWriteReponse(command)
     var pressureNumber = 0
+    var pressureNumber2 = 0
     var ret = false
 
     if(data.length === 0)
@@ -569,12 +572,13 @@ function lowPressureSensorReadReq(serial){
             view.setUint8(0, data[5])
             var number = view.getFloat32(0)
             pressureNumber = number.toFixed(1)
+            pressureNumber2 = number.toFixed(2)
             ret =  true;
         }
     }
 
 
-    return{ ret:ret,pressureNumber:pressureNumber}
+    return{ ret:ret,pressureNumber:pressureNumber,pressureNumber2:pressureNumber2}
 }
 
 //低压传感器 标零
@@ -604,6 +608,7 @@ function negativePressureSensorReadReq(serial){
     var data = serial.serialWriteReponse(command)
 
     var pressureNumber = 0
+    var pressureNumber2 = 0
     var ret = false
 
     if(data.length === 0)
@@ -621,11 +626,12 @@ function negativePressureSensorReadReq(serial){
             view.setUint8(0, data[5])
             var number = view.getFloat32(0)
             pressureNumber = number.toFixed(1)
+            pressureNumber2 = number.toFixed(2)
             ret =  true;
         }
     }
 
-    return{ ret:ret,pressureNumber:pressureNumber}
+    return{ ret:ret,pressureNumber:pressureNumber,pressureNumber2:pressureNumber2}
 }
 
 //负压传感器 标零
@@ -1036,6 +1042,7 @@ function mh_PressureSensorReadReq(serial){
     var data = serial.serialWriteReponse(command)
 
     var pressureNumber = 0
+    var pressureNumber2 = 0
     var ret = false
     if(data.length === 0)
         data = serial.serialWriteReponse(command)
@@ -1053,12 +1060,13 @@ function mh_PressureSensorReadReq(serial){
             view.setUint8(0, data[5])
             var number = view.getFloat32(0)
             pressureNumber = number.toFixed(1)
+            pressureNumber2 = number.toFixed(2)
             ret =  true;
         }
     }
 
 
-    return{ ret:ret,pressureNumber:pressureNumber}
+    return{ ret:ret,pressureNumber:pressureNumber,pressureNumber2:pressureNumber2}
 }
 
 //压力传感器 标零

+ 72 - 82
src/peopleCoverHoleValveTest.js

@@ -2,14 +2,15 @@
 
 var running = false
 var runningBackup = false
-var releasePressureTimeMax = 30
-var sealPressureTimemax = 60
+var openPressureTimeMax = 3
+var sealPressureTimemax = 30
 
 var openPressureMin = 21
 var openPressureMax = 35
+var threshold_Setzero = 0.5
 
-var readPressureInterval = 500 // ms
-var maxPressureStableTime = 20
+var readPressureInterval = 10 // ms
+//var maxPressureStableTime = 20
 var releasePressureTimeOut = 180
 
 var exit = false
@@ -109,7 +110,7 @@ function releasePressure(controlSerial,pressureDisplaySigFun,spy,log){
 
         timeout++
 
-    }while(obj.pressureNumber > 0.2  && timeout < releasePressureTimeOut)
+    }while(obj.pressureNumber > threshold_Setzero  && timeout < releasePressureTimeOut)
 
     airOut_close()
     ModbusJs.closeAllValve(controlSerial)
@@ -133,7 +134,7 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
 
     runningBackup = running
     var ret = true
-    var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
+    //var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
 
     console.log("人孔盖测试工装自动检测开始")
 
@@ -150,7 +151,7 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
 
     //setp 2
     //查看压力传感器值 等待压力降到最低值
-    processWindow.show("等待压力降到小于0.5")
+    processWindow.show("等待压力降到小于0.5kPa 以下")
     //打开泄气阀门
     airOut_open()
     console.log("打开泄气阀门")
@@ -175,8 +176,8 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
         pressureDisplaySigFun(obj.pressureNumber)
         //延时
         //spy.wait(900)
-    }while(obj.pressureNumber > 0.5 )
-    console.log("压力降压到 %d kPa 以下", 0.5)
+    }while(obj.pressureNumber > threshold_Setzero)
+    console.log("压力降压到 %d kPa 以下", threshold_Setzero)
     //关闭泄气阀门
     airOut_close()
     console.log("关闭泄气阀门")
@@ -190,13 +191,12 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
 
     tabView.currentIndex = currentIndex
 
-    var pre_pressure = obj.pressureNumber
+    var pre_pressure = obj.pressureNumber2
+    var preDelta = 0
     var delta = 0
     var releaseCnt = 0
-    var overMaxCont = 0
-    var underMinCont = 0
     var prevTime  = Date.now()
-    spy.wait(920)
+    spy.wait(200)
 
     var result={}
     airIn_open()
@@ -204,6 +204,9 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
     processWindow.show("泄放实验,等待压力平衡")
 
     do{
+        //延时
+        spy.wait(readPressureInterval)
+
         if(running === false){
             console.log("停止测试")
             airIn_close()
@@ -211,39 +214,44 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
             break;
         }
 
-        obj = ModbusJs.mh_PressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("压力传感器通讯错误")
-            //airIn_close()
-            ret = false
-            break;
-        }
+        var curTime  = Date.now()
+        var deltaTime = curTime - prevTime
+        if(deltaTime > 980){
+            prevTime = curTime
 
-        if((obj.pressureNumber > openPressureMax+2) ){
-            log.show("当前压力超出紧急泄放装置开启上限, 貌似泄放功能丧失")
-            //airIn_close()
-            ret = false
-            break;
-        }
+            obj = ModbusJs.mh_PressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("压力传感器通讯错误")
+                //airIn_close()
+                ret = false
+                break;
+            }
 
-        delta = obj.pressureNumber - pre_pressure
-        pre_pressure = obj.pressureNumber
+            if((obj.pressureNumber > openPressureMax*1.2) ){
+                log.show("当前压力超出紧急泄放装置开启上限, 貌似泄放功能丧失")
+                //airIn_close()
+                ret = false
+                break;
+            }
 
-        if(delta <= 0.02){
-            releaseCnt++
-        }else{
-            if(releaseCnt > 0)
-                releaseCnt--
-        }
+            delta = obj.pressureNumber2 - pre_pressure
+            pre_pressure = obj.pressureNumber2
 
-        if(releaseCnt > StablePressureCount){
-            break;
-        }
+            if((delta < (preDelta-0.03)) || (delta <= 0.2)){
+                releaseCnt++
+            }else{
+              releaseCnt=0
+            }
+
+            console.log("current pressure:"+obj.pressureNumber2+", delta:"+delta+", preDelta: "+preDelta)
+            console.log("releaseCnt:"+ releaseCnt +" ")
+
+            preDelta = delta
+
+            if(releaseCnt > openPressureTimeMax){
+                break;
+            }
 
-        var curTime  = Date.now()
-        var deltaTime = curTime - prevTime
-        if(deltaTime > 900){
-            prevTime = curTime
             pressureDisplaySigFun(obj.pressureNumber)
             //sealCnt++
             // add  pressure table
@@ -255,11 +263,6 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
 
         }
 
-        //延时
-        spy.wait(readPressureInterval)
-
-
-
     }while(1)
 
     airIn_close()
@@ -274,10 +277,10 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
     resultSigFun(result)
     console.log("泄放压力:",obj.pressureNumber)
 
-    if(obj.pressureNumber < openPressureMin){
-        processWindow.show("压力低于开启下限")
-        return false
-    }
+    // if(obj.pressureNumber < openPressureMin){
+    //     processWindow.show("压力低于开启下限")
+    //     return false
+    // }
 
 
 
@@ -287,51 +290,38 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
     tabView.currentIndex = currentIndex+3
     processWindow.show("密封实验,等待压力稳定")
     do{
+        //延时
+        spy.wait(readPressureInterval)
+
         if(running === false){
             console.log("停止测试")
             ret = false
             break
         }
 
-        obj = ModbusJs.mh_PressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("压力传感器通讯错误")
-            ret = false
-            break
-        }
 
-        delta = pre_pressure - obj.pressureNumber
-        pre_pressure = obj.pressureNumber
+        curTime  = Date.now()
+        deltaTime = curTime - prevTime
+        if(deltaTime > 980){
+            prevTime = curTime
 
-        if(obj.pressureNumber < openPressureMin){
-            log.show("当前压力小于泄放压力下限, 疑似漏气")
-            //ret = false
-            break
-        }
 
-        if(delta <= 0.02){
-            keepCnt++
-        }else{
-            if(keepCnt > 0)
-                keepCnt--
-        }
+            obj = ModbusJs.mh_PressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("压力传感器通讯错误")
+                ret = false
+                break
+            }
 
-        if(keepCnt > StablePressureCount){
-            break;
-        }
 
-        curTime  = Date.now()
-        deltaTime = curTime - prevTime
-        if(deltaTime > 900){
-            prevTime = curTime
             pressureDisplaySigFun(obj.pressureNumber)
-            //sealCnt++
+            keepCnt++
             // add  pressure table
             var table2={}
             table2.pressure=obj.pressureNumber
             //密封模型赋值
             sealPressureModel.append(table2)
-            //processWindow.text("21kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
+            processWindow.text("密封压力试验时间"+(sealPressureTimemax-keepCnt)+"s")
 
         }
 
@@ -339,7 +329,7 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
         spy.wait(readPressureInterval)
 
 
-    }while(1)
+    }while(keepCnt < sealPressureTimemax)
 
     console.log("密封压力结束")
 
@@ -377,7 +367,7 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
         //延时
         spy.wait(900)
         timeout++
-    }while(obj.pressureNumber > 0.2 && timeout < releasePressureTimeOut )
+    }while(obj.pressureNumber > threshold_Setzero && timeout < releasePressureTimeOut )
     if(timeout === 180)
         log.show("泄压时间3分钟超时")
 
@@ -428,7 +418,7 @@ function testReleasePressureStart333(currentIndex,tabView,processWindow,controlS
         pressureDisplaySigFun(obj.pressureNumber)
         //延时
         spy.wait(900)
-    }while(obj.pressureNumber > 0.1 )
+    }while(obj.pressureNumber > threshold_Setzero )
     console.log("压力降压到 0 kPa")
     ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
     console.log("关闭正压罐头泄气阀门")
@@ -551,7 +541,7 @@ function testReleasePressureStart333(currentIndex,tabView,processWindow,controlS
         pressureDisplaySigFun(obj.pressureNumber)
         //延时
         spy.wait(900)
-    }while(obj.pressureNumber > 0.1 )
+    }while(obj.pressureNumber > threshold_Setzero )
 
     //setp 6
     console.log("压力 0kPa")

+ 426 - 162
src/safeValveTest.js

@@ -4,17 +4,21 @@
 var running = false
 var runningBackup = false
 //开启压力测试计时时间
-var openPressureTimeMax = 30
+var openPressureTimeMax = 3
 //密封压力测试计时时间
-var sealPressureTimemax = 60
+var sealPressureTimemax = 30
 //安全阀默认整定压力
 var setPressure = 100
 //次参数不用
 var exit = false
 
-var pthreshold_Setzero = 0.2
-var nthreshold_Setzero = -0.2
-var delaycount_Setzero = 5
+
+var pthreshold_Setzero = 0.5
+var delaycount_Setzero = 3
+
+var delayInterval = 10 // ms
+//var maxPressureStableTime = 20
+var releasePressureTimeOut = 180
 
 
 //罐体压力检查 用于液压升降时 压力检查
@@ -30,6 +34,7 @@ function valvePressureCheckStop(controlSerial,processWindow,pressureDisplaySigFu
     //关闭正压罐进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
     console.log("关闭正压罐进气阀门")
+
     //查看高压传感器值 等待正压罐头压力降到最低值
     do{
 
@@ -136,20 +141,41 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
 {
 
     runningBackup = running
+    var ret = true
+    //var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
+
     var openPressureNumber
     var sealPressureNumber
 
+    console.log("安全阀测试开始")
+
+    //step 1
     // 关闭所有测试口
     ModbusJs.turnOffAllTestIO(controlSerial)
     console.log("关闭所有测试口")
+
+    //step 2
+    //压力清零
     ModbusJs.pressureSensorCtrl(controlSerial,"高压")
     console.log("打开高压传感器阀门")
     //关闭正压罐进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
     console.log("关闭正压罐进气阀门")
+
+    //打开正压罐头泄气阀门
+    ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
+    console.log("打开正压罐头泄气阀门")
+
     //查看高压传感器值 等待压力罐压力为0
-    var checkPressure = true
+    processWindow.show("等待压力降到0")
+    //var checkPressure = true
+    var timeout = 0
+    var end_count = 0
+
     do{
+        //延时
+        spy.wait(900)
+
         if(running === false){
             console.log("停止测试")
             return false
@@ -160,231 +186,469 @@ function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSeria
             return false
         }
 
-        if(checkPressure === true){
-            checkPressure = false
-            processWindow.show("等待压力降到0")
-            //打开正压罐头泄气阀门
-            ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
-            console.log("打开正压罐头泄气阀门")
-        }
         // signal 压力显示函数
         pressureDisplaySigFun(obj.pressureNumber)
-        //延时
-        spy.wait(900)
-    }while(obj.pressureNumber > pthreshold_Setzero )
+
+        timeout++
+        if(obj.pressureNumber <= pthreshold_Setzero){
+            end_count++;
+        }
+
+    }while(end_count < delaycount_Setzero && timeout < releasePressureTimeOut)
     console.log("压力降压到 0 kPa")
 
-    obj = ModbusJs.testFixedPressure(controlSerial,setPressure+30)
-    if(obj.ret === true){
-        ModbusJs.proportionalControlWrite(controlSerial,obj.voltage)
-        console.log("比例调压阀压力值:",obj.voltage)
+    if(timeout === releasePressureTimeOut){
+        log.show("泄压超时")
+        ModbusJs.closeAllValve(controlSerial)
+        console.log("关闭所有阀门")
+        return false
     }
 
-    // ModbusJs.proportionalControlWrite(controlSerial,427)  //139.8 kPa
-    console.log("打开调节阀")
-
-    /*********测试整定压力*************/
-    //    //打开正压安全阀测试口阀门
-    //    ModbusJs.safeValveTestIo(controlSerial,true)
-    //    console.log("打开安全阀测试口阀门")
     //关闭正压罐头泄气阀门
     ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
     console.log("关闭正压罐头泄气阀门")
+
+
+    //step 3 整定压力测试
+
+    /*********测试整定压力*************/
+    //打开安全阀测试口阀门
+    ModbusJs.safeValveTestIo(controlSerial,true)
+    console.log("打开安全阀测试口阀门")
+
     //打开进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,true)
-    console.log("打开进气阀门")
-    tabView.currentIndex = currentIndex  ////切换当前tab页面
+    console.log("打开正压罐进气阀门")
 
-    var min = 0
-    var max = setPressure*2 //高压最大范围
-    if(max > 450)
-        max = 450
-    //    console.log("setPressure:",setPressure)
-    //    console.log("min:",min)
-    //    console.log("max:",max)
-
-    var prevTime  = Date.now()
-    var openCnt = 0
-    var bigAcive = true
     ModbusJs.bigTuningValveControl(controlSerial,true)
     console.log("打开 粗调开关")
-    /********粗调压力*************/
-    processWindow.show("调整压力中")
-    var bitCnt = 0
+
+    processWindow.show("整定压力测试")
+    console.log("整定压力测试开始")
+
+    //切换当前tab页面
+    tabView.currentIndex = currentIndex
+    var delta = 0
+    var keepCnt = 0
+
+    obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+    if(obj.ret === false){
+        log.show("高压传感器通讯错误")
+        return false
+    }
+
+    var pre_pressure = obj.pressureNumber2
+    var prevTime  = Date.now()
+    var preDelta = 0
+    var min = 0.6*setPressure
+    var max = 1.2*setPressure
+    //var setPressure = 100
+
+    ret = true
+    //StablePressureCount = openPressureTimeMax*1000/readPressureInterval
+
     do{
+        //延时
+        spy.wait(delayInterval)
+
         if(running === false){
-            console.log("停止测试")
-            return false
-        }
-        obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("高压传感器通讯错误")
+            console.log("安全阀整定压力--停止测试")
             return false
         }
 
-        spy.wait(10)
+
         var curTime  = Date.now()
         var deltaTime = curTime - prevTime
-        if(deltaTime > 900){
-            prevTime = curTime
-            pressureDisplaySigFun(obj.pressureNumber)
-            bitCnt++
-            //            console.log("obj.pressureNumber:",obj.pressureNumber)
-            //            console.log("bitCnt:",bitCnt)
-        }
+        if(deltaTime >= 980){
 
-        //粗调压力值
-        //控制逻辑改动 先这样修改
-        var bigLevel = setPressure+20
-        if(obj.pressureNumber > bigLevel && bigAcive === true){
-            bigAcive = false
-            ModbusJs.bigTuningValveControl(controlSerial,false)
-            ModbusJs.bigTuningValveControl(controlSerial,false)
-            console.log("关闭 粗调开关")
-            //打开正压安全阀测试口阀门
-            ModbusJs.safeValveTestIo(controlSerial,true)
-            console.log("打开安全阀测试口阀门")
-            break
-        }
+            obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("高压传感器通讯错误")
+                return false
+            }
 
+            //开启压力超出范围了
+            if(obj.pressureNumber > max){
+                log.show("安全阀无法开启")
+                break
+            }
 
-    }while(obj.pressureNumber < max && bitCnt < 120)
-    if(bitCnt === 120){
-        processWindow.show("调整压力失败")
-        return false
-    }
+            delta = obj.pressureNumber2 - pre_pressure
+            pre_pressure = obj.pressureNumber2
 
 
-    processWindow.show("整定试验开始")
-    do{
-        if(running === false){
-            console.log("停止测试")
-            return false
-        }
-        obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("高压传感器通讯错误")
-            return false
-        }
 
-        pressureDisplaySigFun(obj.pressureNumber)
-        // add  pressure table
-        var table={}
-        table.pressure=obj.pressureNumber
-        //开启压力模型赋值
-        openPressureModel.append(table)
-        spy.wait(900)
-        openCnt++
-        processWindow.text("整定压力试验时间"+(openPressureTimeMax-openCnt)+"s")
-    }while(obj.pressureNumber <=max  && openCnt < openPressureTimeMax)
-
-
-    if(obj.pressureNumber >=min &&  obj.pressureNumber <= max && openCnt ===openPressureTimeMax){
-        openPressureNumber = obj.pressureNumber.toString()
-        var result={}
-        result.openPressureNumber = openPressureNumber
-        result.sealPressureNumber = ""
-        resultSigFun(result)
-        console.log("整定压力:",openPressureNumber)
-    }
-    else{
-        if(obj.pressureNumber < min){
-            openPressureNumber=obj.pressureNumber+"<"+min+"kPa"
-        }
-        else if(obj.pressureNumber > max){
-            openPressureNumber=obj.pressureNumber+">"+max+"kPa"
+            if((delta < (preDelta-0.03)) || (delta <= 0.2)){
+                keepCnt++
+            }else{
+                keepCnt=0
+            }
+
+            //console.log("current pressure:"+obj.pressureNumber2+", delta:"+delta+", preDelta: "+preDelta)
+            //console.log("keepCnt:"+ keepCnt +" ")
+
+            if(keepCnt >= openPressureTimeMax){
+                //console.log("keepCnt > StablePressureCount")
+                break;
+            }
+
+            preDelta = delta
+            prevTime = curTime
+
+            pressureDisplaySigFun(obj.pressureNumber)
+            // add  pressure table
+            var table={}
+            table.pressure=obj.pressureNumber
+            //开启压力模型赋值
+            openPressureModel.append(table)
         }
-        result={}
-        result.openPressureNumber = openPressureNumber
-        result.sealPressureNumber = ""
-        resultSigFun(result)
-
-        //关闭正压罐进气阀门
-        ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
-        console.log("关闭正压罐进气阀门")
-        console.log("整定压力:",openPressureNumber)
-        console.log("整定压力测试结束")
-        return false
-    }
-    console.log("整定压力测试结束")
 
+    }while(1)
+
+    //通知数据
+    pressureDisplaySigFun(obj.pressureNumber)
+    // add  pressure table
+    table={}
+    table.pressure=obj.pressureNumber
+    openPressureModel.append(table)
+
+    openPressureNumber = obj.pressureNumber
+    var result={}
+    result.openPressureNumber = obj.pressureNumber
+    result.sealPressureNumber = ""
+    resultSigFun(result)
+
+    console.log("安全阀整定压力:",obj.pressureNumber)
+    console.log("安全阀整定压力测试结束")
+
+
+
+
+
+    // obj = ModbusJs.testFixedPressure(controlSerial,setPressure+30)
+    // if(obj.ret === true){
+    //     ModbusJs.proportionalControlWrite(controlSerial,obj.voltage)
+    //     console.log("比例调压阀压力值:",obj.voltage)
+    // }
+
+    // // ModbusJs.proportionalControlWrite(controlSerial,427)  //139.8 kPa
+    // 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
+    // //    console.log("setPressure:",setPressure)
+    // //    console.log("min:",min)
+    // //    console.log("max:",max)
+
+    // var prevTime  = Date.now()
+    // var openCnt = 0
+    // var bigAcive = true
+    // ModbusJs.bigTuningValveControl(controlSerial,true)
+    // console.log("打开 粗调开关")
+    // /********粗调压力*************/
+    // processWindow.show("调整压力中")
+    // var bitCnt = 0
+    // do{
+    //     if(running === false){
+    //         console.log("停止测试")
+    //         return false
+    //     }
+    //     obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+    //     if(obj.ret === false){
+    //         log.show("高压传感器通讯错误")
+    //         return false
+    //     }
+
+    //     spy.wait(10)
+    //     var curTime  = Date.now()
+    //     var deltaTime = curTime - prevTime
+    //     if(deltaTime > 900){
+    //         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){
+    //         bigAcive = false
+    //         ModbusJs.bigTuningValveControl(controlSerial,false)
+    //         ModbusJs.bigTuningValveControl(controlSerial,false)
+    //         console.log("关闭 粗调开关")
+    //         //打开正压安全阀测试口阀门
+    //         ModbusJs.safeValveTestIo(controlSerial,true)
+    //         console.log("打开安全阀测试口阀门")
+    //         break
+    //     }
+
+
+    // }while(obj.pressureNumber < max && bitCnt < 120)
+    // if(bitCnt === 120){
+    //     processWindow.show("调整压力失败")
+    //     return false
+    // }
+
+
+    // processWindow.show("整定试验开始")
+    // do{
+    //     if(running === false){
+    //         console.log("停止测试")
+    //         return false
+    //     }
+    //     obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+    //     if(obj.ret === false){
+    //         log.show("高压传感器通讯错误")
+    //         return false
+    //     }
+
+    //     pressureDisplaySigFun(obj.pressureNumber)
+    //     // add  pressure table
+    //     var table={}
+    //     table.pressure=obj.pressureNumber
+    //     //开启压力模型赋值
+    //     openPressureModel.append(table)
+    //     spy.wait(900)
+    //     openCnt++
+    //     processWindow.text("整定压力试验时间"+(openPressureTimeMax-openCnt)+"s")
+    // }while(obj.pressureNumber <=max  && openCnt < openPressureTimeMax)
+
+
+    // if(obj.pressureNumber >=min &&  obj.pressureNumber <= max && openCnt ===openPressureTimeMax){
+    //     openPressureNumber = obj.pressureNumber.toString()
+    //     var result={}
+    //     result.openPressureNumber = openPressureNumber
+    //     result.sealPressureNumber = ""
+    //     resultSigFun(result)
+    //     console.log("整定压力:",openPressureNumber)
+    // }
+    // else{
+    //     if(obj.pressureNumber < min){
+    //         openPressureNumber=obj.pressureNumber+"<"+min+"kPa"
+    //     }
+    //     else if(obj.pressureNumber > max){
+    //         openPressureNumber=obj.pressureNumber+">"+max+"kPa"
+    //     }
+    //     result={}
+    //     result.openPressureNumber = openPressureNumber
+    //     result.sealPressureNumber = ""
+    //     resultSigFun(result)
+
+    //     //关闭正压罐进气阀门
+    //     ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
+    //     console.log("关闭正压罐进气阀门")
+    //     console.log("整定压力:",openPressureNumber)
+    //     console.log("整定压力测试结束")
+    //     return false
+    // }
+    // console.log("整定压力测试结束")
+
+
+
+    //step 4
     /*********测试密封压力*************/
     console.log("密封压力开始")
     processWindow.show("密封压力试验开始")
     //关闭正压罐进气阀门
     ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
     console.log("关闭正压罐进气阀门")
-    var holdTimeCnt=0
-    tabView.currentIndex = currentIndex+3 //切换当前tab页面
+    ModbusJs.bigTuningValveControl(controlSerial,false)
+    console.log("关掉 粗调开关")
+
+
+    tabView.currentIndex = currentIndex+3
+
+    obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+    if(obj.ret === false){
+        log.show("高压传感器通讯错误")
+        return false
+    }
+
+    pre_pressure = obj.pressureNumber
+    prevTime = Date.now()
+    keepCnt = 0
+    preDelta = 0
+    //StablePressureCount = sealPressureTimemax*1000/readPressureInterval
 
     do{
+        //延时
+        spy.wait(delayInterval)
+
         if(running === false){
             console.log("停止测试")
             return false
         }
-        obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("高压传感器通讯错误")
-            return false
+
+        //压力数据通知
+        curTime  = Date.now()
+        deltaTime = curTime - prevTime
+        if(deltaTime >=980){
+
+            prevTime = curTime
+            obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("高压传感器通讯错误")
+                return false
+            }
+
+            keepCnt++
+            pressureDisplaySigFun(obj.pressureNumber)
+            // add  pressure table
+            table={}
+            table.pressure=obj.pressureNumber
+            sealPressureModel.append(table)
+            processWindow.text("密封压力试验时间"+(sealPressureTimemax-keepCnt)+"s")
+            //processWindow.text("21kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
+
         }
-        //密封压力模型赋值
-        table={}
-        table.pressure=obj.pressureNumber
-        sealPressureModel.append(table)
-        //压力实时显示
-        pressureDisplaySigFun(obj.pressureNumber)
-        spy.wait(900)
-        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()
-    //    }
 
+    }while(keepCnt < sealPressureTimemax)
+
+    pressureDisplaySigFun(obj.pressureNumber)
+    // add  pressure table
+    table={}
+    table.pressure=obj.pressureNumber
+    sealPressureModel.append(table)
+
+    sealPressureNumber = obj.pressureNumber//.toString()
     result={}
     result.openPressureNumber = openPressureNumber
     result.sealPressureNumber = sealPressureNumber
     resultSigFun(result)
+    console.log("密封压力:",obj.pressureNumber)
     console.log("密封压力结束")
 
+
+
+    // /*********测试密封压力*************/
+    // console.log("密封压力开始")
+    // processWindow.show("密封压力试验开始")
+    // //关闭正压罐进气阀门
+    // ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
+    // console.log("关闭正压罐进气阀门")
+
+    // var holdTimeCnt=0
+    // tabView.currentIndex = currentIndex+3 //切换当前tab页面
+
+    // do{
+    //     if(running === false){
+    //         console.log("停止测试")
+    //         return false
+    //     }
+    //     obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+    //     if(obj.ret === false){
+    //         log.show("高压传感器通讯错误")
+    //         return false
+    //     }
+    //     //密封压力模型赋值
+    //     table={}
+    //     table.pressure=obj.pressureNumber
+    //     sealPressureModel.append(table)
+    //     //压力实时显示
+    //     pressureDisplaySigFun(obj.pressureNumber)
+    //     spy.wait(900)
+    //     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()
+    // //    }
+
+    // result={}
+    // result.openPressureNumber = openPressureNumber
+    // result.sealPressureNumber = sealPressureNumber
+    // resultSigFun(result)
+    // console.log("密封压力结束")
+
+    //setp 5
     //打开正压罐头泄气阀门
     ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
     console.log("打开正压罐头泄气阀门")
     console.log("等待压力 0kPa")
     //查看低压传感器值 等待正压罐头压力降到最低值
     processWindow.show("试验结束,泄气中")
+    timeout = 0
+    end_count = 0
     do{
         if(running === false){
             console.log("停止测试")
-            return
+            return false
         }
+
         obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
-            log.show("高压传感器通讯错误")
+            log.show("压传感器通讯错误")
             return false
         }
         // signal 压力显示函数
         pressureDisplaySigFun(obj.pressureNumber)
         //延时
-        spy.wait(900)
-    }while(obj.pressureNumber > pthreshold_Setzero )
+        spy.wait(950)
+        timeout++
+        if(obj.pressureNumber <= pthreshold_Setzero){
+            end_count++;
+        }
+    }while(end_count < delaycount_Setzero && timeout < 180)
+
     //关闭正压罐头泄气阀门
+    ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
 
-    console.log("压力 0kPa")
+    // //打开正压罐头泄气阀门
+    // ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
+    // console.log("打开正压罐头泄气阀门")
+    // console.log("等待压力 0kPa")
+    // //查看低压传感器值 等待正压罐头压力降到最低值
+    // processWindow.show("试验结束,泄气中")
+    // 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(obj.pressureNumber > pthreshold_Setzero )
+    // //关闭正压罐头泄气阀门
+
+    // console.log("压力 0kPa")
+
+    //step 6
     //ModbusJs.closeAllValve(controlSerial)
-    ModbusJs.closeSingalValve(controlSerial)
+    ModbusJs.closeAllValve(controlSerial)
     console.log("关闭所有阀门")
 
     return true

+ 2 - 2
src/serialport.cpp

@@ -308,8 +308,8 @@ void SerialPort::receiveWrite(QString sendStr)
    // qDebug() << QThread::currentThreadId() << "SerialPort";
    // QList<int> data;
 
-    //qDebug()<<m_serial->portName()<<":";
-    //qDebug()<<sendStr;
+    // qDebug()<<m_serial->portName()<<":";
+    // qDebug()<<sendStr;
 
     mData.clear();
     QByteArray responseData;

+ 184 - 110
src/vacuoValveTest.js

@@ -4,17 +4,21 @@
 var running = false
 var runningBackup = false
 //开启压力计时时间
-var openPressureTimeMax = 20
+var openPressureTimeMax = 5
 //密封压力计时时间
 var sealPressureTimemax = 15
-//设计外压
-var outsidePressure  = -21
+//整定压力
+var setPressure  = -21
 //此参数不用
 var exit = false
 
-var pthreshold_Setzero = 0.2
-var nthreshold_Setzero = -0.2
-var delaycount_Setzero = 6
+var pthreshold_Setzero = 0.5
+var nthreshold_Setzero = -0.5
+var delaycount_Setzero = 3
+
+var readPressureInterval = 10 // ms
+var maxPressureStableTime = 20
+var releasePressureTimeOut = 180
 
 //试验异常中止退出 泄压操作
 /*  controlSerial           控制串口对象
@@ -85,16 +89,21 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
 
 {
     runningBackup = running
+
+    var ret = true
+    //var StablePressureCount = openPressureTimeMax*1000/readPressureInterval
+
     var openPressureNumber
     var sealPressureNumber
-    //setp 1
+
+    console.log("真空阀测试开始")
+
+    //step 1
     // 关闭所有测试口
     ModbusJs.turnOffAllTestIO(controlSerial)
     console.log("关闭所有测试口")
 
-    //打开真空阀阀测试口阀门  从一开始就打开 逻辑修改
-    ModbusJs.vacuoValveTestIO(controlSerial,true)
-    console.log("打开真空测试口阀门")
+    //step 2
     ModbusJs.pressureSensorCtrl(controlSerial,"负压")
     console.log("打开负压传感器阀门")
     //关闭负压罐进气阀门
@@ -105,11 +114,14 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
     ModbusJs.negativePressureTankOutputCtrl(controlSerial,true)
     console.log("打开负压罐头泄气阀门")
 
-    //setp 2
     //查看负压传感器值 等待负压压罐头压力到0kPa
-    var checkPressure = true
+    var timeout = 0
     var end_count = 0
+
     do{
+        //延时
+        spy.wait(900)
+
         if(running === false){
             console.log("停止测试")
             return false
@@ -120,106 +132,136 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
             return false
         }
 
-        //signal 压力显示函数
+        // signal 压力显示函数
         pressureDisplaySigFun(obj.pressureNumber)
-        //延时
-        spy.wait(900)
-        if(obj.pressureNumber > nthreshold_Setzero){
-            end_count++
+
+        timeout++
+        if(Math.abs(obj.pressureNumber) <= pthreshold_Setzero){
+            end_count++;
         }
-    }while(end_count < delaycount_Setzero)
-    console.log("压力到 0 kPa")
+
+    }while(end_count < delaycount_Setzero && timeout < releasePressureTimeOut)
+    console.log("压力降压到 0 kPa")
+
+    if(timeout === releasePressureTimeOut){
+        log.show("释放压力超时")
+        ModbusJs.closeAllValve(controlSerial)
+        console.log("关闭所有阀门")
+        return false
+    }
+
+    //关闭负压罐泄气阀门
+    ModbusJs.negativePressureTankOutputCtrl(controlSerial,false)
+    console.log("关闭负压罐泄气阀门")
+
 
     //setp 3
     /*********测试开启压力*************/
     ModbusJs.negativePumpPowerCtrl(controlSerial,true)
     console.log("打开 负压泵")
-    processWindow.show("开启压力试验开始")
-    console.log("开启压力测试开始")
+
     //打开真空阀阀测试口阀门
     ModbusJs.vacuoValveTestIO(controlSerial,true)
     console.log("打开真空测试口阀门")
-    //关闭负压罐泄气阀门
-    ModbusJs.negativePressureTankOutputCtrl(controlSerial,false)
-    console.log("关闭负压罐泄气阀门")
+
     //打开负压罐进气阀门
     ModbusJs.negativePressureTankInputCtrl(controlSerial,true)
     console.log("打开负压罐进气阀门 粗调")
     tabView.currentIndex = currentIndex
-    var openCnt = 0
-    //var min = outsidePressure
-    var min = -50
-    //var max = -21
-    var max = 10
 
-    if(min >= max){
+    processWindow.show("开启压力试验开始")
+    console.log("开启压力测试开始")
+
+    var delta = 0
+    var keepCnt = 0
+
+    obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
+    if(obj.ret === false){
+        log.show("负压传感器通讯错误")
         return false
     }
-    var preValue=0
+
+    var pre_pressure = obj.pressureNumber2
+    var prevTime  = Date.now()
+    var preDelta = 0
+    var min = 1.6*setPressure
+    var max = 0.6*setPressure
+    //var setPressure = 100
+
+    ret = true
+    //StablePressureCount = openPressureTimeMax*1000/readPressureInterval
+    spy.wait(500)
+
     do{
+        //延时
+        spy.wait(readPressureInterval)
+
         if(running === false){
-            console.log("停止测试")
-            return false
-        }
-        obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("负压传感器通讯错误")
+            console.log("真空阀整定压力--停止测试")
             return false
         }
 
-        if(obj.pressureNumber < -5 ){
-            //两次一样 则认为 气压已经达到一定平衡
-            if(obj.pressureNumber  === preValue){
-                ModbusJs.negativePressureTankInputCtrl(controlSerial,false)
-                console.log("关闭负压罐进气阀门 微调" )
+        var curTime  = Date.now()
+        var deltaTime = curTime - prevTime
+        if(deltaTime > 1000){
+            prevTime = curTime
+
+            obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("负压传感器通讯错误")
+                return false
             }
-        }
 
-        preValue = obj.pressureNumber
 
-        pressureDisplaySigFun(obj.pressureNumber)
-        // add  pressure table
-        var table={}
-        table.pressure=obj.pressureNumber
-        //开启压力模型赋值
-        openPressureModel.append(table)
-        spy.wait(900)
-        openCnt++
-        //console.log("openCnt:",openCnt)
-        processWindow.text("开启压力试验时间"+(openPressureTimeMax-openCnt)+"s")
-    }while(obj.pressureNumber >= min && openCnt < openPressureTimeMax)
-
-
-    //得到开启压力
-    if(obj.pressureNumber >=min &&  obj.pressureNumber <= max && openCnt ===openPressureTimeMax){
-        openPressureNumber = obj.pressureNumber.toString()
-        var result={}
-        result.openPressureNumber = openPressureNumber
-        result.sealPressureNumber = ""
-        resultSigFun(result)
-        console.log("开启压力:",openPressureNumber)
-    }
-    else{
-        if(obj.pressureNumber < min){
-            openPressureNumber=obj.pressureNumber+"<"+min+"kPa"
-        }
-        else if(obj.pressureNumber > max){
-            openPressureNumber=obj.pressureNumber+">"+max+"kPa"
+            //开启压力超出范围了
+            if(obj.pressureNumber < min){
+                //ret = false
+
+                log.show("真空阀无法开启")
+                break
+            }
+
+            delta = pre_pressure - obj.pressureNumber2
+            pre_pressure = obj.pressureNumber2
+
+            if((delta < (preDelta-0.03)) || (delta <= 0.12)){
+                keepCnt++
+            }else{
+                keepCnt=0
+            }
+
+            if(keepCnt >= openPressureTimeMax){
+                //console.log("keepCnt > StablePressureCount")
+                break;
+            }
+
+            preDelta = delta
+            pressureDisplaySigFun(obj.pressureNumber)
+            // add  pressure table
+            var table={}
+            table.pressure=obj.pressureNumber
+            //开启压力模型赋值
+            openPressureModel.append(table)
         }
 
-        result={}
-        result.openPressureNumber = openPressureNumber
-        result.sealPressureNumber = ""
-        resultSigFun(result)
+    }while(1)
+
+    //通知数据
+    pressureDisplaySigFun(obj.pressureNumber)
+    // add  pressure table
+    table={}
+    table.pressure=obj.pressureNumber
+    openPressureModel.append(table)
+
+    openPressureNumber = obj.pressureNumber
+    var result={}
+    result.openPressureNumber = obj.pressureNumber
+    result.sealPressureNumber = ""
+    resultSigFun(result)
+
+    console.log("真空阀整定压力:",obj.pressureNumber)
+    console.log("真空阀整定压力测试结束")
 
-        //关闭负压罐进气阀门
-        ModbusJs.negativePressureTankInputCtrl(controlSerial,false)
-        console.log("关闭负压罐进气阀门")
-        console.log("开启压力:",openPressureNumber)
-        console.log("开启压力测试结束")
-        return false
-    }
-    console.log("开启压力测试结束")
 
 
     //setp 4
@@ -233,54 +275,81 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
     ModbusJs.negativePumpPowerCtrl(controlSerial,false)
     console.log("关闭 负压泵")
 
-    var holdTimeCnt=0
-    tabView.currentIndex =currentIndex+3
+    tabView.currentIndex = currentIndex+3
+
+    obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
+    if(obj.ret === false){
+        log.show("负压传感器通讯错误")
+        return false
+    }
+
+    pre_pressure = obj.pressureNumber
+    prevTime = Date.now()
+    keepCnt = 0
+    //StablePressureCount = sealPressureTimemax*1000/readPressureInterval
+
     do{
+        //延时
+        spy.wait(readPressureInterval)
+
         if(running === false){
             console.log("停止测试")
             return false
         }
-        obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
-        if(obj.ret === false){
-            log.show("负压传感器通讯错误")
-            return false
+
+        //压力数据通知
+        curTime  = Date.now()
+        deltaTime = curTime - prevTime
+        if(deltaTime > 1000){
+
+            prevTime = curTime
+            obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
+            if(obj.ret === false){
+                log.show("负压传感器通讯错误")
+                return false
+            }
+
+            pressureDisplaySigFun(obj.pressureNumber)
+            // add  pressure table
+            table={}
+            table.pressure=obj.pressureNumber
+            sealPressureModel.append(table)
+
+            keepCnt++
+
+            processWindow.text("密封压力试验时间"+(sealPressureTimemax-keepCnt)+"s")
         }
-        //密封压力模型赋值
-        table={}
-        table.pressure=obj.pressureNumber
-        sealPressureModel.append(table)
-        //压力实时显示
-        pressureDisplaySigFun(obj.pressureNumber)
-        spy.wait(900)
-        holdTimeCnt++
-        processWindow.text("密封压力试验时间"+(sealPressureTimemax-holdTimeCnt)+"s")
-    }while(holdTimeCnt < sealPressureTimemax )
 
-    sealPressureNumber = obj.pressureNumber.toString()
+    }while(keepCnt < sealPressureTimemax)
+
+    pressureDisplaySigFun(obj.pressureNumber)
+    // add  pressure table
+    table={}
+    table.pressure=obj.pressureNumber
+    sealPressureModel.append(table)
+
+    sealPressureNumber = obj.pressureNumber//.toString()
     result={}
     result.openPressureNumber = openPressureNumber
     result.sealPressureNumber = sealPressureNumber
     resultSigFun(result)
+    console.log("密封压力:",obj.pressureNumber)
     console.log("密封压力结束")
-    //关闭 负压泵
-    ModbusJs.negativePumpPowerCtrl(controlSerial,false)
-    console.log("关闭 负压泵")
 
     //setp 5
-    //关闭负压罐进气阀门
-    ModbusJs.negativePressureTankInputCtrl(controlSerial,false)
-    console.log("关闭负压罐进气阀门")
     //打开负压罐头泄气阀门
     ModbusJs.negativePressureTankOutputCtrl(controlSerial,true)
     console.log("打开负压罐头泄气阀门")
     console.log("等待压力 0kPa")
     //查看负压传感器值 等待负压罐到0kPa
     processWindow.show("试验结束,泄气中")
+
     end_count = 0
+    timeout = 0
     do{
         if(running === false){
             console.log("停止测试")
-            return
+            return false
         }
         obj = ModbusJs.negativePressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
@@ -290,12 +359,17 @@ function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial
         // signal 压力显示函数
         pressureDisplaySigFun(obj.pressureNumber)
         //延时
-        spy.wait(900)
+        spy.wait(950)
+        timeout++
         if(obj.pressureNumber > nthreshold_Setzero){
             end_count++
         }
-    }while(end_count < delaycount_Setzero )
+    }while(end_count < delaycount_Setzero && timeout < 180 )
+
     //关闭负压罐头泄气阀门
+    ModbusJs.negativePressureTankOutputCtrl(controlSerial,false)
+    console.log("关闭负压罐头泄气阀门")
+
 
     //setp 6
     console.log("压力 0kPa")

+ 20 - 16
src/valve_experiment.pro.user

@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 12.0.0, 2024-08-02T21:24:11. -->
+<!-- Written by QtCreator 14.0.0, 2024-09-19T09:52:43. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
-  <value type="QByteArray">{696f416c-364e-44fe-b1a5-f34ece895f51}</value>
+  <value type="QByteArray">{3059dadb-270f-4ac2-b838-f860801ad936}</value>
  </data>
  <data>
   <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -30,7 +30,7 @@
    </valuemap>
    <value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
    <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
-   <value type="bool" key="EditorConfiguration.ConstrainTooltips">true</value>
+   <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
    <value type="int" key="EditorConfiguration.IndentSize">4</value>
    <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
    <value type="int" key="EditorConfiguration.MarginColumn">80</value>
@@ -41,14 +41,14 @@
    <value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
    <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
    <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
-   <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
+   <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
    <value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
    <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
    <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
    <value type="int" key="EditorConfiguration.TabSize">8</value>
    <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
    <value type="bool" key="EditorConfiguration.UseIndenter">false</value>
-   <value type="int" key="EditorConfiguration.Utf8BomBehavior">0</value>
+   <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
    <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
    <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
    <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
@@ -69,15 +69,17 @@
     <value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
     <value type="bool" key="AutoTest.Framework.QtTest">true</value>
    </valuemap>
+   <value type="bool" key="AutoTest.ApplyFilter">false</value>
    <valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
+   <valuelist type="QVariantList" key="AutoTest.PathFilters"/>
    <value type="int" key="AutoTest.RunAfterBuild">0</value>
    <value type="bool" key="AutoTest.UseGlobal">true</value>
    <valuemap type="QVariantMap" key="ClangTools">
     <value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
     <value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
     <value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
-    <value type="int" key="ClangTools.ParallelJobs">4</value>
-    <value type="bool" key="ClangTools.PreferConfigFile">false</value>
+    <value type="int" key="ClangTools.ParallelJobs">10</value>
+    <value type="bool" key="ClangTools.PreferConfigFile">true</value>
     <valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
     <valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
     <valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
@@ -97,8 +99,8 @@
    <value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
    <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
     <value type="int" key="EnableQmlDebugging">0</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">..\build\</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">../build</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:\Code\IntegratedTestBench\build</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/Code/IntegratedTestBench/build</value>
     <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
      <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
       <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -136,8 +138,8 @@
     <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
    </valuemap>
    <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">..\build\</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">../build</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:\Code\IntegratedTestBench\build</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/Code/IntegratedTestBench/build</value>
     <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
      <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
       <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -177,8 +179,8 @@
    </valuemap>
    <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
     <value type="int" key="EnableQmlDebugging">0</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:\项目\特检院-智能化检测系统\app\build-valve_experiment-Desktop_Qt_5_15_2_MinGW_32_bit-Profile</value>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/项目/特检院-智能化检测系统/app/build-valve_experiment-Desktop_Qt_5_15_2_MinGW_32_bit-Profile</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:\Code\IntegratedTestBench\src\build\Desktop_Qt_5_15_2_MinGW_32_bit-Profile</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/Code/IntegratedTestBench/src/build/Desktop_Qt_5_15_2_MinGW_32_bit-Profile</value>
     <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
      <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
       <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -234,19 +236,21 @@
    <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
     <value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
     <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
+    <value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
     <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
     <valuelist type="QVariantList" key="CustomOutputParsers"/>
     <value type="int" key="PE.EnvironmentAspect.Base">2</value>
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
     <value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
+    <value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/Code/QTapps/IntegratedTestBench/src/valve_experiment.pro</value>
-    <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">D:/Code/QTapps/IntegratedTestBench/src/valve_experiment.pro</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/Code/IntegratedTestBench/src/valve_experiment.pro</value>
+    <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">D:/Code/IntegratedTestBench/src/valve_experiment.pro</value>
     <value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
     <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
     <value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
     <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
-    <value type="QString" key="RunConfiguration.WorkingDirectory.default">D:/Code/QTapps/IntegratedTestBench/build</value>
+    <value type="QString" key="RunConfiguration.WorkingDirectory.default">D:/Code/IntegratedTestBench/build</value>
    </valuemap>
    <value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
   </valuemap>