peopleCoverHoleValveTest.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793
  1. .import "modbus.js" as ModbusJs
  2. var running = false
  3. var runningBackup = false
  4. var openPressureTimeMax = 10
  5. var sealPressureTimemax = 5
  6. var openPressureMin = 21
  7. var openPressureMax = 35
  8. var threshold_Setzero = 1.0
  9. var delaycount_Setzero = 5
  10. var readPressureInterval = 5 // ms
  11. //var maxPressureStableTime = 20
  12. var releasePressureTimeOut = 180
  13. //盲测开启压力
  14. var estimate_Pressure = 0
  15. var exit = false
  16. function playStart_Voice(controlSerial){
  17. ModbusJs.voiceplayer_Play(controlSerial, ModbusJs.mhstart_voice)
  18. }
  19. function playStop_Voice(controlSerial){
  20. ModbusJs.voiceplayer_Play(controlSerial, ModbusJs.teststop_voice)
  21. }
  22. function testStop(controlSerial,pressureDisplaySigFun,spy,log){
  23. spy.wait(500)
  24. //关闭人孔盖进气阀门
  25. ModbusJs.manHoleCover_IntakeCtrl(controlSerial,false)
  26. console.log("关闭人孔盖进气阀门")
  27. // //关闭低压中速进气阀门
  28. // ModbusJs.lpms_IntakeCtrl(controlSerial,false)
  29. // console.log("关闭低压中速进气阀门")
  30. // //打开人孔盖测试口
  31. // ModbusJs.manHoleCover_TestIO(controlSerial,true)
  32. // console.log("打开人孔盖测试口")
  33. // //打开低压高速泄气阀门
  34. // ModbusJs.lphs_ReleaseCtrl(controlSerial,true)
  35. // console.log("打开低压高速泄气阀门")
  36. //打开人孔盖泄气阀门
  37. ModbusJs.manHoleCover_ReleaseIO1(controlSerial,true)
  38. console.log("打开人孔盖泄气阀门1")
  39. var timeout=0
  40. var end_count = 0
  41. do{
  42. //重新开始时 停止测试
  43. if(runningBackup === false && running === true){
  44. console.log("停止测试")
  45. //ModbusJs.closeAllValve(controlSerial)
  46. break
  47. }
  48. if(exit === true)
  49. break
  50. //延时
  51. spy.wait(900)
  52. var obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  53. if(obj.ret === false){
  54. log.show("压力传感器通讯错误")
  55. break
  56. }
  57. // signal 压力显示函数
  58. pressureDisplaySigFun(obj.pressureNumber)
  59. if(obj.pressureNumber < 12.0){
  60. //关闭人孔盖测试口, 微弱压力由气缸上升释放
  61. ModbusJs.manholecylinderCtrl(controlSerial,false)
  62. console.log("人孔盖气缸升")
  63. }
  64. timeout++
  65. if(obj.pressureNumber < threshold_Setzero ){
  66. end_count++
  67. }
  68. }while(end_count < delaycount_Setzero && timeout < releasePressureTimeOut)
  69. ModbusJs.closeAllValve(controlSerial)
  70. console.log("关闭 关闭所有阀门")
  71. }
  72. //正压开启压力和密封试验
  73. /* currentIndex 当前第几次试验
  74. * controlSerial 控制串口对象
  75. * sensorSerial 压力传感器串口对象
  76. * pressureDisplaySigFun 压力显示信号函数(回调函数)
  77. * resultSigFun 结果显示信号函数(回调函数)
  78. * spy 仅用于延时的对象
  79. * log 异常显示对象
  80. * openPressureModel 测试整定压力记录压力的数据模型
  81. * sealPressureModel 测试密封压力记录压力的数据模型
  82. * blindTestpressureSigFun
  83. */
  84. function valveStartBlindTest(currentIndex,processWindow,controlSerial,sensorSerial,
  85. pressureDisplaySigFun,resultSigFun,blindTestpressureSigFun,spy,log)
  86. {
  87. runningBackup = running
  88. var ret = true
  89. //var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
  90. var openPressureNumber
  91. var sealPressureNumber
  92. console.log("安全阀测试开始")
  93. //step 1
  94. // 关闭所有气路电磁阀
  95. ModbusJs.relay1CloseAll(controlSerial)
  96. console.log("关闭所有气路电磁阀")
  97. spy.wait(500)
  98. //人孔盖气缸下压
  99. ModbusJs.manholecylinderCtrl(controlSerial, true)
  100. //盲测压力
  101. //打开人孔盖进气阀门
  102. ModbusJs.manHoleCover_IntakeCtrl(controlSerial,true)
  103. console.log("打开人孔盖进气阀门")
  104. processWindow.show("开始盲测压力")
  105. estimate_Pressure = 0
  106. var prevTime = Date.now()
  107. var keepCnt = 0
  108. var delta = 0
  109. var preDelta = 0
  110. var obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  111. if(obj.ret === false){
  112. log.show("人孔压力传感器通讯错误")
  113. return false
  114. }
  115. var pre_pressure = obj.pressureNumber
  116. var pre_pressure2 = obj.pressureNumber2
  117. ret = true
  118. do{
  119. //延时
  120. spy.wait(readPressureInterval)
  121. if(running === false){
  122. console.log("人孔盖盲测压力--停止测试")
  123. ModbusJs.relay1CloseAll(controlSerial)
  124. console.log("关闭所有气路阀门")
  125. return false
  126. }
  127. var curTime = Date.now()
  128. var deltaTime = curTime - prevTime
  129. if(deltaTime >= 980){
  130. obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  131. if(obj.ret === false){
  132. log.show("高压传感器通讯错误")
  133. ModbusJs.relay1CloseAll(controlSerial)
  134. console.log("关闭所有气路阀门")
  135. return false
  136. }
  137. delta = obj.pressureNumber2 - pre_pressure2
  138. if((obj.pressureNumber2 - pre_pressure2) < 0.3){
  139. keepCnt++
  140. if(keepCnt ==1){
  141. estimate_Pressure = obj.pressureNumber
  142. //setPressure = estimate_Pressure
  143. }
  144. }else{
  145. keepCnt=0
  146. }
  147. if(keepCnt >= 5){
  148. //console.log("keepCnt > StablePressureCount")
  149. break;
  150. }
  151. prevTime = curTime
  152. pre_pressure = obj.pressureNumber
  153. pre_pressure2 = obj.pressureNumber2
  154. pressureDisplaySigFun(obj.pressureNumber)
  155. // add pressure table
  156. // var table={}
  157. // table.pressure=obj.pressureNumber
  158. // //开启压力模型赋值
  159. // openPressureModel.append(table)
  160. }
  161. }while(1)
  162. //关闭人孔盖进气阀门
  163. ModbusJs.manHoleCover_IntakeCtrl(controlSerial,false)
  164. console.log("关闭人孔盖进气阀门")
  165. blindTestpressureSigFun(estimate_Pressure)
  166. testStop(controlSerial,pressureDisplaySigFun,spy,log)
  167. return true
  168. }
  169. //正压开启压力和密封试验
  170. /* openPressureModel 测试开启压力过程表模型
  171. * sealPressureModel 测试密封压力过程表模型
  172. * pressureDisplaySigFun 压力显示信号函数
  173. * resultSigFun 结果显示信号函数
  174. */
  175. //密封压力测试
  176. function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial,
  177. openPressureModel,sealPressureModel,
  178. pressureDisplaySigFun,resultSigFun,spy,log){
  179. runningBackup = running
  180. var ret = true
  181. var openPressureNumber
  182. var sealPressureNumber
  183. //var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
  184. console.log("人孔盖测试工装自动检测开始")
  185. //setp 1
  186. // 关闭所有气路电磁阀
  187. ModbusJs.relay1CloseAll(controlSerial)
  188. console.log("关闭所有气路电磁阀")
  189. spy.wait(500)
  190. //人孔盖气缸下压
  191. ModbusJs.manholecylinderCtrl(controlSerial, true)
  192. //setp 2
  193. //查看压力传感器值 等待压力降到最低值
  194. processWindow.show("等待压力降到小于1.0kPa 以下")
  195. // //打开人孔盖测试口
  196. // ModbusJs.manHoleCover_TestIO(controlSerial,true)
  197. // console.log("打开人孔盖测试口")
  198. // //打开低压高速泄气阀门
  199. // ModbusJs.lphs_ReleaseCtrl(controlSerial,true)
  200. // console.log("打开低压高速泄气阀门")
  201. //打开人孔盖泄气阀门
  202. ModbusJs.manHoleCover_ReleaseIO1(controlSerial,true)
  203. console.log("打开人孔盖泄气阀门1")
  204. tabView.currentIndex = currentIndex
  205. var timeout = 0
  206. var end_count = 0
  207. do{
  208. if(running === false){
  209. console.log("停止测试")
  210. ret = false
  211. break
  212. }
  213. //延时
  214. spy.wait(900)
  215. var obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  216. if(obj.ret === false){
  217. log.show("压力传感器通讯错误")
  218. ret = false
  219. break
  220. }
  221. // signal 压力显示函数
  222. pressureDisplaySigFun(obj.pressureNumber)
  223. //延时
  224. timeout++
  225. if(obj.pressureNumber < threshold_Setzero){
  226. end_count++
  227. }
  228. //spy.wait(900)
  229. }while(end_count < 3 && timeout < releasePressureTimeOut)
  230. if(timeout === releasePressureTimeOut){
  231. log.show("泄压超时")
  232. ModbusJs.closeAllValve(controlSerial)
  233. console.log("关闭所有阀门")
  234. return false
  235. }
  236. console.log("压力降压到 %d kPa 以下", threshold_Setzero)
  237. // //关闭低压高速泄气阀门
  238. // ModbusJs.lphs_ReleaseCtrl(controlSerial,false)
  239. // console.log("关闭低压高速泄气阀门")
  240. //关闭人孔盖泄气阀门
  241. ModbusJs.manHoleCover_ReleaseIO1(controlSerial,false)
  242. console.log("关闭人孔盖泄气阀门1")
  243. if(ret === false){
  244. return false
  245. }
  246. //setp 3
  247. //打开进气阀门
  248. tabView.currentIndex = currentIndex
  249. var pre_pressure = obj.pressureNumber
  250. var pre_pressure2 = obj.pressureNumber2
  251. var preDelta = 0
  252. var delta = 0
  253. var releaseCnt = 0
  254. var prevTime = Date.now()
  255. // var switch_pressure = 0.8*openPressureMin
  256. // var middlespeed_open = true
  257. // //打开低压中速进气阀门
  258. // ModbusJs.lpms_IntakeCtrl(controlSerial,true)
  259. // console.log("打开低压中速进气阀门")
  260. // //打开低压低速进气阀门
  261. // ModbusJs.lpls_IntakeCtrl(controlSerial,true)
  262. // console.log("打开低压高速进气阀门")
  263. ModbusJs.manHoleCover_IntakeCtrl(controlSerial,true)
  264. console.log("打开人孔盖进气阀门")
  265. ModbusJs.manHoleCover_lsIntakeCtrl(controlSerial,true)
  266. console.log("打开人孔盖低速进气阀门")
  267. var open_intake = true
  268. var switch_pressure = estimate_Pressure - 10
  269. processWindow.show("开启压力试验开始")
  270. var result={}
  271. do{
  272. //延时
  273. spy.wait(readPressureInterval)
  274. if(running === false){
  275. console.log("停止测试")
  276. ret = false
  277. break;
  278. }
  279. var curTime = Date.now()
  280. var deltaTime = curTime - prevTime
  281. if(deltaTime > 980){
  282. prevTime = curTime
  283. obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  284. if(obj.ret === false){
  285. log.show("压力传感器通讯错误")
  286. ret = false
  287. break;
  288. }
  289. // if((obj.pressureNumber > openPressureMax*1.2) ){
  290. // log.show("当前压力超出紧急泄放装置开启上限, 貌似泄放功能丧失")
  291. // ret = false
  292. // break;
  293. // }
  294. if((obj.pressureNumber >= switch_pressure) && (open_intake === true)){
  295. var rev = ModbusJs.manHoleCover_IntakeCtrl(controlSerial,false)
  296. if(rev === true){
  297. open_intake = false
  298. console.log("关闭人孔盖进气阀门")
  299. }
  300. }
  301. delta = obj.pressureNumber2 - pre_pressure2
  302. //if((delta < 0.4) && ((delta < (preDelta-0.03)) || (delta <= 0.2))){
  303. if(delta<0.08){
  304. releaseCnt++
  305. if(releaseCnt === 1){
  306. openPressureNumber = obj.pressureNumber
  307. }
  308. }else{
  309. releaseCnt=0
  310. }
  311. // console.log("current pressure:"+obj.pressureNumber2+", delta:"+delta+", preDelta: "+preDelta)
  312. // console.log("releaseCnt:"+ releaseCnt +" ")
  313. preDelta = delta
  314. pre_pressure = obj.pressureNumber
  315. pre_pressure2 = obj.pressureNumber2
  316. if(releaseCnt >= openPressureTimeMax){
  317. break;
  318. }
  319. pressureDisplaySigFun(obj.pressureNumber)
  320. //sealCnt++
  321. // add pressure table
  322. var table={}
  323. table.pressure=obj.pressureNumber
  324. //密封模型赋值
  325. openPressureModel.append(table)
  326. //processWindow.text("21kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
  327. }
  328. }while(1)
  329. // //关闭低压中速进气阀门
  330. // ModbusJs.lpms_IntakeCtrl(controlSerial,true)
  331. // console.log("关闭低压中速进气阀门")
  332. // //关闭低压低速进气阀门
  333. // ModbusJs.lpls_IntakeCtrl(controlSerial,true)
  334. // console.log("关闭低压高速进气阀门")
  335. //关闭人孔盖进气阀门
  336. ModbusJs.manHoleCover_lsIntakeCtrl(controlSerial,false)
  337. console.log("关闭人孔盖进气阀门")
  338. if(ret === false){
  339. openPressureNumber = obj.pressureNumber
  340. }
  341. result.openPressureNumber = openPressureNumber
  342. result.sealPressureNumber = ""
  343. result.sealPressureNumber2 = ""
  344. resultSigFun(result)
  345. console.log("泄放压力:",openPressureNumber)
  346. // if(obj.pressureNumber < openPressureMin){
  347. // processWindow.show("压力低于开启下限")
  348. // return false
  349. // }
  350. /*
  351. //setp 4 开始密封实验
  352. // 压力开始下降
  353. var keepCnt = 0
  354. tabView.currentIndex = currentIndex+3
  355. processWindow.show("密封压力试验开始")
  356. console.log("密封压力试验开始")
  357. do{
  358. //延时
  359. spy.wait(readPressureInterval)
  360. if(running === false){
  361. console.log("停止测试")
  362. ret = false
  363. break
  364. }
  365. curTime = Date.now()
  366. deltaTime = curTime - prevTime
  367. if(deltaTime > 980){
  368. prevTime = curTime
  369. obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  370. if(obj.ret === false){
  371. log.show("压力传感器通讯错误")
  372. ret = false
  373. break
  374. }
  375. pressureDisplaySigFun(obj.pressureNumber)
  376. keepCnt++
  377. // add pressure table
  378. var table2={}
  379. table2.pressure=obj.pressureNumber
  380. //密封模型赋值
  381. sealPressureModel.append(table2)
  382. processWindow.text("密封压力试验时间"+(sealPressureTimemax-keepCnt)+"s")
  383. }
  384. //延时
  385. spy.wait(readPressureInterval)
  386. }while(keepCnt < sealPressureTimemax)
  387. console.log("密封压力结束")
  388. if(ret === false){
  389. return false
  390. }
  391. result.sealPressureNumber = obj.pressureNumber
  392. result.sealPressureNumber2 = ""
  393. resultSigFun(result)
  394. console.log("密封压力:",obj.pressureNumber)
  395. //setp 4.1 开始密封实验
  396. console.log("泄放压力到 16.8kPa")
  397. if(obj.pressureNumber > 16){
  398. processWindow.text("泄放压力到 16.8kPa 以下")
  399. ModbusJs.manHoleCover_ReleaseIO1(controlSerial,true)
  400. console.log("打开人孔盖泄气阀门")
  401. prevTime = Date.now()
  402. var prevTime2 = prevTime
  403. do{
  404. //延时
  405. spy.wait(readPressureInterval)
  406. if(running === false){
  407. console.log("停止测试")
  408. return false
  409. }
  410. //压力数据通知
  411. curTime = Date.now()
  412. deltaTime = curTime - prevTime
  413. if(deltaTime >= 20){
  414. prevTime = curTime
  415. obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  416. if(obj.ret === false){
  417. log.show("低压传感器通讯错误")
  418. return false
  419. }
  420. if(obj.pressureNumber <= 15){
  421. break;
  422. }
  423. }
  424. curTime = Date.now()
  425. deltaTime = curTime - prevTime2
  426. if(deltaTime >= 980){
  427. prevTime2 = curTime
  428. pressureDisplaySigFun(obj.pressureNumber)
  429. }
  430. }while(1)
  431. ModbusJs.manHoleCover_ReleaseIO1(controlSerial,false)
  432. console.log("关闭人孔盖泄气阀门")
  433. processWindow.text("等待压力稳定")
  434. pre_pressure = obj.pressureNumber2
  435. releaseCnt = 0
  436. do{
  437. //延时
  438. spy.wait(980)
  439. if(running === false){
  440. console.log("停止测试")
  441. return false
  442. }
  443. obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  444. if(obj.ret === false){
  445. log.show("低压传感器通讯错误")
  446. return false
  447. }
  448. pressureDisplaySigFun(obj.pressureNumber)
  449. releaseCnt++
  450. pre_pressure = obj.pressureNumber2
  451. }while(releaseCnt<15)
  452. }else{
  453. result.sealPressureNumber2 = obj.pressureNumber
  454. resultSigFun(result)
  455. return false
  456. }
  457. if(obj.pressureNumber < 16.8){
  458. processWindow.text("加压到 16.8kPa ")
  459. ModbusJs.manHoleCover_lsIntakeCtrl(controlSerial,true)
  460. console.log("打开人孔盖低速进气阀门")
  461. prevTime = Date.now()
  462. prevTime2 = prevTime
  463. do{
  464. //延时
  465. spy.wait(readPressureInterval)
  466. if(running === false){
  467. console.log("停止测试")
  468. return false
  469. }
  470. //压力数据通知
  471. curTime = Date.now()
  472. deltaTime = curTime - prevTime
  473. if(deltaTime >= 5){
  474. prevTime = curTime
  475. obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  476. if(obj.ret === false){
  477. log.show("低压传感器通讯错误")
  478. return false
  479. }
  480. if(obj.pressureNumber2 >= 16.6){
  481. break;
  482. }
  483. }
  484. curTime = Date.now()
  485. deltaTime = curTime - prevTime2
  486. if(deltaTime >= 980){
  487. prevTime = curTime
  488. pressureDisplaySigFun(obj.pressureNumber)
  489. }
  490. }while(1)
  491. ModbusJs.manHoleCover_lsIntakeCtrl(controlSerial,false)
  492. console.log("关闭人孔盖低速进气阀门")
  493. }
  494. //setp 4.2 开始密封实验
  495. // 压力开始下降
  496. //tabView.currentIndex = currentIndex+3
  497. processWindow.show("密封压力试验开始")
  498. console.log("密封压力试验开始")
  499. keepCnt=0
  500. // table2={}
  501. // table2.pressure=obj.pressureNumber
  502. // //密封模型赋值
  503. // sealPressureModel.append(table2)
  504. do{
  505. //延时
  506. spy.wait(readPressureInterval)
  507. if(running === false){
  508. console.log("停止测试")
  509. ret = false
  510. break
  511. }
  512. curTime = Date.now()
  513. deltaTime = curTime - prevTime
  514. if(deltaTime > 980){
  515. prevTime = curTime
  516. obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  517. if(obj.ret === false){
  518. log.show("压力传感器通讯错误")
  519. ret = false
  520. break
  521. }
  522. pressureDisplaySigFun(obj.pressureNumber)
  523. keepCnt++
  524. // add pressure table
  525. table2={}
  526. table2.pressure=obj.pressureNumber
  527. //密封模型赋值
  528. sealPressureModel.append(table2)
  529. processWindow.text("第2次密封压力试验时间"+(sealPressureTimemax-keepCnt)+"s")
  530. }
  531. //延时
  532. spy.wait(readPressureInterval)
  533. }while(keepCnt < sealPressureTimemax)
  534. console.log("密封压力结束")
  535. if(ret === false){
  536. return false
  537. }
  538. //result.sealPressureNumber = obj.pressureNumber
  539. result.sealPressureNumber2 = obj.pressureNumber
  540. resultSigFun(result)
  541. console.log("密封压力:",obj.pressureNumber)
  542. */
  543. //setp 5
  544. //泄压
  545. //打开人孔盖泄气阀门
  546. ModbusJs.manHoleCover_ReleaseIO1(controlSerial,true)
  547. console.log("打开人孔盖泄气阀门1")
  548. console.log("等待压力 0kPa")
  549. processWindow.show("试验结束,泄压中")
  550. timeout = 0
  551. end_count = 0
  552. do{
  553. if(running === false){
  554. console.log("停止测试")
  555. return false
  556. }
  557. obj = ModbusJs.mhPressureSensorReadReq(sensorSerial)
  558. if(obj.ret === false){
  559. log.show("压力传感器通讯错误")
  560. //airIn_close()
  561. return false
  562. }
  563. // signal 压力显示函数
  564. pressureDisplaySigFun(obj.pressureNumber)
  565. if(obj.pressureNumber < 12.0){
  566. //微弱压力由气缸上升释放
  567. ModbusJs.manholecylinderCtrl(controlSerial, false)
  568. console.log("人孔盖气缸升")
  569. }
  570. //延时
  571. spy.wait(900)
  572. timeout++
  573. if(obj.pressureNumber < threshold_Setzero){
  574. end_count++
  575. }
  576. }while(end_count < delaycount_Setzero && timeout < releasePressureTimeOut )
  577. if(timeout === releasePressureTimeOut)
  578. log.show("泄压时间3分钟超时")
  579. //setp 6
  580. console.log("压力 0kPa")
  581. ModbusJs.closeAllValve(controlSerial)
  582. console.log("关闭所有阀门")
  583. return true
  584. }