safeValveTest.js 28 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019
  1. .import "modbus.js" as ModbusJs
  2. //试验运行标志
  3. var running = false
  4. var runningBackup = false
  5. //开启压力测试计时时间
  6. var openPressureTimeMax = 10
  7. //密封压力测试计时时间
  8. var sealPressureTimemax = 5
  9. //安全阀默认整定压力
  10. var setPressure = 0
  11. //盲测开启压力
  12. var estimate_Pressure = 0
  13. var setPressure_real = 100
  14. //次参数不用
  15. var exit = false
  16. var pthreshold_Setzero = 0.5
  17. var delaycount_Setzero = 5
  18. var delayInterval = 5 // ms
  19. //var maxPressureStableTime = 20
  20. var releasePressureTimeOut = 180
  21. function playStart_Voice(controlSerial){
  22. ModbusJs.voiceplayer_Play(controlSerial, ModbusJs.safevalvestart_voice)
  23. }
  24. function playStop_Voice(controlSerial){
  25. ModbusJs.voiceplayer_Play(controlSerial, ModbusJs.teststop_voice)
  26. }
  27. function gripPressDown(controlSerial, processWindow, spy){
  28. var ret = false
  29. var time_count = 0
  30. do{
  31. if(ret === false){
  32. ret = ModbusJs.electriccylinderDownCtrl(controlSerial,true)
  33. time_count = 0
  34. }
  35. spy.wait(1000)
  36. time_count++
  37. }while(time_count <= 10)
  38. if(ret === true){
  39. ModbusJs.electriccylinderDownCtrl(controlSerial,false)
  40. }
  41. return ret
  42. }
  43. function gripRiseUp(controlSerial, processWindow, spy){
  44. var ret = false
  45. var time_count = 0
  46. do{
  47. // if(running === false){
  48. // console.log("停止测试")
  49. // break;
  50. // }
  51. if(ret === false){
  52. ret = ModbusJs.electriccylinderUpCtrl(controlSerial,true)
  53. time_count = 0
  54. }
  55. spy.wait(1000)
  56. time_count++
  57. }while(time_count <= 10)
  58. if(ret === true){
  59. ModbusJs.electriccylinderUpCtrl(controlSerial,false)
  60. }
  61. return ret
  62. }
  63. //罐体压力检查 用于液压升降时 压力检查
  64. function valvePressureCheckStop(controlSerial,processWindow,pressureDisplaySigFun,spy,log)
  65. {
  66. spy.wait(300)
  67. //关闭高压高速进气阀门
  68. ModbusJs.hphs_IntakeCtrl(controlSerial,false)
  69. console.log("关闭高压高速进气阀门")
  70. //关闭高压中速进气阀门
  71. ModbusJs.hpms_IntakeCtrl(controlSerial,false)
  72. console.log("关闭高压中速进气阀门")
  73. //关闭高压低速进气阀门
  74. ModbusJs.hpls_IntakeCtrl(controlSerial,false)
  75. console.log("关闭高压低速进气阀门")
  76. //打开安全阀测试口
  77. ModbusJs.safeValve_TestIO(controlSerial,true)
  78. console.log("打开安全阀测试口")
  79. //打开高压高速泄气阀门
  80. ModbusJs.hphs_ReleaseCtrl(controlSerial,true)
  81. console.log("打开高压高速泄气阀门")
  82. var timeout = 0
  83. //查看高压传感器值 等待正压罐头压力降到最低值
  84. do{
  85. if(runningBackup === false && running === true){
  86. console.log("停止检查")
  87. ModbusJs.relay1CloseAll(controlSerial)
  88. return false
  89. }
  90. var obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  91. if(obj.ret === false){
  92. log.show("高传感器通讯错误")
  93. return false
  94. }
  95. // signal 压力显示函数
  96. pressureDisplaySigFun(obj.pressureNumber)
  97. if(obj.pressureNumber > pthreshold_Setzero){
  98. //延时
  99. spy.wait(900)
  100. timeout++
  101. }
  102. }while(obj.pressureNumber > pthreshold_Setzero && timeout < 10)
  103. // ModbusJs.closeAllValve(controlSerial)
  104. //关闭安全阀测试口
  105. ModbusJs.safeValve_TestIO(controlSerial,false)
  106. console.log("关闭安全阀测试口")
  107. //关闭高压高速泄气阀门
  108. ModbusJs.hphs_ReleaseCtrl(controlSerial,false)
  109. console.log("关闭高压高速泄气阀门")
  110. if(timeout === 10){
  111. return false
  112. }else{
  113. return true
  114. }
  115. }
  116. //试验异常中止退出 泄压操作
  117. /* controlSerial 控制串口对象
  118. * pressureDisplaySigFun 压力显示信号函数(回调函数)
  119. * resultSigFun 结果显示信号函数(回调函数)
  120. * spy 仅用于延时的对象
  121. * log 异常显示对象
  122. */
  123. function valveStop(controlSerial,pressureDisplaySigFun,spy,log){
  124. spy.wait(300)
  125. //关闭高压高速进气阀门
  126. ModbusJs.hphs_IntakeCtrl(controlSerial,false)
  127. console.log("关闭高压高速进气阀门")
  128. //关闭高压中速进气阀门
  129. ModbusJs.hpms_IntakeCtrl(controlSerial,false)
  130. console.log("关闭高压中速进气阀门")
  131. //关闭高压低速进气阀门
  132. ModbusJs.hpls_IntakeCtrl(controlSerial,false)
  133. console.log("关闭高压低速进气阀门")
  134. //打开安全阀测试口
  135. ModbusJs.safeValve_TestIO(controlSerial,true)
  136. console.log("打开安全阀测试口")
  137. //打开高压高速泄气阀门
  138. ModbusJs.hphs_ReleaseCtrl(controlSerial,true)
  139. console.log("打开高压高速泄气阀门")
  140. var timeout = 0
  141. var end_count = 0
  142. //查看高压传感器值 等待正压罐头压力降到最低值
  143. do{
  144. if(runningBackup === false && running === true){
  145. console.log("停止测试")
  146. ModbusJs.relay1CloseAll(controlSerial)
  147. return
  148. }
  149. if(exit === true)
  150. return
  151. var obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  152. if(obj.ret === false){
  153. log.show("高传感器通讯错误")
  154. return false
  155. }
  156. // signal 压力显示函数
  157. pressureDisplaySigFun(obj.pressureNumber)
  158. //延时
  159. spy.wait(900)
  160. timeout++
  161. if(obj.pressureNumber < pthreshold_Setzero ){
  162. end_count++
  163. }
  164. }while(end_count < delaycount_Setzero && timeout < releasePressureTimeOut )
  165. ModbusJs.relay1CloseAll(controlSerial)
  166. console.log("关闭 关闭所有阀门")
  167. }
  168. //正压开启压力和密封试验
  169. /* currentIndex 当前第几次试验
  170. * controlSerial 控制串口对象
  171. * sensorSerial 压力传感器串口对象
  172. * pressureDisplaySigFun 压力显示信号函数(回调函数)
  173. * resultSigFun 结果显示信号函数(回调函数)
  174. * spy 仅用于延时的对象
  175. * log 异常显示对象
  176. * openPressureModel 测试整定压力记录压力的数据模型
  177. * sealPressureModel 测试密封压力记录压力的数据模型
  178. * blindTestpressureSigFun
  179. */
  180. function valveStartBlindTest(currentIndex,processWindow,controlSerial,sensorSerial,
  181. pressureDisplaySigFun,resultSigFun,blindTestpressureSigFun,spy,log)
  182. {
  183. runningBackup = running
  184. var ret = true
  185. //var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
  186. var openPressureNumber
  187. var sealPressureNumber
  188. console.log("安全阀测试开始")
  189. //step 1
  190. // 关闭所有气路电磁阀
  191. ModbusJs.relay1CloseAll(controlSerial)
  192. console.log("关闭所有气路电磁阀")
  193. spy.wait(500)
  194. //盲测压力
  195. //打开安全阀测试口
  196. ModbusJs.safeValve_TestIO(controlSerial,true)
  197. console.log("打开安全阀测试口")
  198. processWindow.show("开始盲测压力")
  199. estimate_Pressure = 0
  200. var prevTime = Date.now()
  201. var keepCnt = 0
  202. var delta = 0
  203. var preDelta = 0
  204. ModbusJs.hphs_IntakeCtrl(controlSerial,true)
  205. console.log("打开高压高速进气阀门")
  206. //打开高压中速进气阀门
  207. ModbusJs.hpms_IntakeCtrl(controlSerial,true)
  208. console.log("打开高压中速进气阀门")
  209. var obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  210. if(obj.ret === false){
  211. log.show("高压传感器通讯错误")
  212. return false
  213. }
  214. var pre_pressure = obj.pressureNumber
  215. var pre_pressure2 = obj.pressureNumber2
  216. ret = true
  217. do{
  218. //延时
  219. spy.wait(delayInterval)
  220. if(running === false){
  221. console.log("安全阀整定压力--停止测试")
  222. ModbusJs.relay1CloseAll(controlSerial)
  223. console.log("关闭所有气路阀门")
  224. return false
  225. }
  226. var curTime = Date.now()
  227. var deltaTime = curTime - prevTime
  228. if(deltaTime >= 980){
  229. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  230. if(obj.ret === false){
  231. log.show("高压传感器通讯错误")
  232. ModbusJs.relay1CloseAll(controlSerial)
  233. console.log("关闭所有气路阀门")
  234. return false
  235. }
  236. delta = obj.pressureNumber2 - pre_pressure2
  237. if((obj.pressureNumber2 - pre_pressure2) < 0.5){
  238. keepCnt++
  239. if(keepCnt ==1){
  240. estimate_Pressure = obj.pressureNumber
  241. setPressure = estimate_Pressure
  242. }
  243. }else{
  244. keepCnt=0
  245. }
  246. if(keepCnt >= 6){
  247. //console.log("keepCnt > StablePressureCount")
  248. break;
  249. }
  250. prevTime = curTime
  251. pre_pressure = obj.pressureNumber
  252. pre_pressure2 = obj.pressureNumber2
  253. pressureDisplaySigFun(obj.pressureNumber)
  254. // add pressure table
  255. // var table={}
  256. // table.pressure=obj.pressureNumber
  257. // //开启压力模型赋值
  258. // openPressureModel.append(table)
  259. }
  260. }while(1)
  261. ModbusJs.hphs_IntakeCtrl(controlSerial,false)
  262. console.log("关闭高压高速进气阀门")
  263. //关闭高压中速进气阀门
  264. ModbusJs.hpms_IntakeCtrl(controlSerial,false)
  265. console.log("关闭高压中速进气阀门")
  266. blindTestpressureSigFun(estimate_Pressure)
  267. }
  268. //正压开启压力和密封试验
  269. /* currentIndex 当前第几次试验
  270. * controlSerial 控制串口对象
  271. * sensorSerial 压力传感器串口对象
  272. * pressureDisplaySigFun 压力显示信号函数(回调函数)
  273. * resultSigFun 结果显示信号函数(回调函数)
  274. * spy 仅用于延时的对象
  275. * log 异常显示对象
  276. * openPressureModel 测试整定压力记录压力的数据模型
  277. * sealPressureModel 测试密封压力记录压力的数据模型
  278. */
  279. function valveStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial,
  280. openPressureModel,sealPressureModel,
  281. pressureDisplaySigFun,resultSigFun,spy,log)
  282. {
  283. runningBackup = running
  284. var ret = true
  285. //var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
  286. var openPressureNumber
  287. var sealPressureNumber
  288. console.log("安全阀测试开始")
  289. //step 1
  290. // 关闭所有气路电磁阀
  291. ModbusJs.relay1CloseAll(controlSerial)
  292. console.log("关闭所有气路电磁阀")
  293. spy.wait(500)
  294. //盲测压力
  295. // //打开安全阀测试口
  296. // ModbusJs.safeValve_TestIO(controlSerial,true)
  297. // console.log("打开安全阀测试口")
  298. // processWindow.show("开始盲测压力")
  299. var prevTime = Date.now()
  300. var keepCnt = 0
  301. var delta = 0
  302. var preDelta = 0
  303. /*
  304. ModbusJs.hphs_IntakeCtrl(controlSerial,true)
  305. console.log("打开高压高速进气阀门")
  306. //打开高压中速进气阀门
  307. ModbusJs.hpms_IntakeCtrl(controlSerial,true)
  308. console.log("打开高压中速进气阀门")
  309. var obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  310. if(obj.ret === false){
  311. log.show("高压传感器通讯错误")
  312. return false
  313. }
  314. var pre_pressure = obj.pressureNumber
  315. var pre_pressure2 = obj.pressureNumber2
  316. ret = true
  317. do{
  318. //延时
  319. spy.wait(delayInterval)
  320. if(running === false){
  321. console.log("安全阀整定压力--停止测试")
  322. ModbusJs.relay1CloseAll(controlSerial)
  323. console.log("关闭所有气路阀门")
  324. return false
  325. }
  326. var curTime = Date.now()
  327. var deltaTime = curTime - prevTime
  328. if(deltaTime >= 980){
  329. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  330. if(obj.ret === false){
  331. log.show("高压传感器通讯错误")
  332. ModbusJs.relay1CloseAll(controlSerial)
  333. console.log("关闭所有气路阀门")
  334. return false
  335. }
  336. delta = obj.pressureNumber2 - pre_pressure2
  337. if((obj.pressureNumber2 - pre_pressure2) < 0.5){
  338. keepCnt++
  339. if(keepCnt ==1){
  340. estimate_Pressure = obj.pressureNumber
  341. setPressure = estimate_Pressure
  342. }
  343. }else{
  344. keepCnt=0
  345. }
  346. if(keepCnt >= 6){
  347. //console.log("keepCnt > StablePressureCount")
  348. break;
  349. }
  350. prevTime = curTime
  351. pre_pressure = obj.pressureNumber
  352. pre_pressure2 = obj.pressureNumber2
  353. pressureDisplaySigFun(obj.pressureNumber)
  354. // add pressure table
  355. // var table={}
  356. // table.pressure=obj.pressureNumber
  357. // //开启压力模型赋值
  358. // openPressureModel.append(table)
  359. }
  360. }while(1)
  361. ModbusJs.hphs_IntakeCtrl(controlSerial,false)
  362. console.log("关闭高压高速进气阀门")
  363. //关闭高压中速进气阀门
  364. ModbusJs.hpms_IntakeCtrl(controlSerial,false)
  365. console.log("关闭高压中速进气阀门")
  366. */
  367. //step 2
  368. //压力清零
  369. //打开安全阀测试口
  370. ModbusJs.safeValve_TestIO(controlSerial,true)
  371. console.log("打开安全阀测试口")
  372. //打开高压高速泄气阀门
  373. ModbusJs.hphs_ReleaseCtrl(controlSerial,true)
  374. console.log("打开高压高速泄气阀门")
  375. //查看高压传感器值 等待压力罐压力为0
  376. processWindow.show("等待压力降到0")
  377. var timeout = 0
  378. var end_count = 0
  379. do{
  380. //延时
  381. spy.wait(900)
  382. if(running === false){
  383. console.log("停止测试")
  384. return false
  385. }
  386. var obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  387. if(obj.ret === false){
  388. log.show("高压传感器通讯错误")
  389. return false
  390. }
  391. // signal 压力显示函数
  392. pressureDisplaySigFun(obj.pressureNumber)
  393. timeout++
  394. if(obj.pressureNumber <= pthreshold_Setzero){
  395. end_count++;
  396. }
  397. }while(end_count < 2 && timeout < releasePressureTimeOut)
  398. console.log("压力降压到 0 kPa")
  399. if(timeout === releasePressureTimeOut){
  400. log.show("泄压超时")
  401. ModbusJs.relay1CloseAll(controlSerial)
  402. console.log("关闭所有气路阀门")
  403. return false
  404. }
  405. //关闭高压高速泄气阀门
  406. ModbusJs.hphs_ReleaseCtrl(controlSerial,false)
  407. console.log("关闭高压高速泄气阀门")
  408. //step 3 整定压力测试
  409. /*********测试整定压力*************/
  410. // //打开高压高速进气阀门
  411. // ModbusJs.hphs_IntakeCtrl(controlSerial,true)
  412. // console.log("打开高压高速进气阀门")
  413. // //打开高压中速进气阀门
  414. // ModbusJs.hpms_IntakeCtrl(controlSerial,true)
  415. // console.log("打开高压中速进气阀门")
  416. //打开高压低速进气阀门
  417. ModbusJs.hpls_IntakeCtrl(controlSerial,true)
  418. console.log("打开高压低速进气阀门")
  419. processWindow.show("整定压力测试")
  420. console.log("整定压力测试开始")
  421. //切换当前tab页面
  422. tabView.currentIndex = currentIndex
  423. delta = 0
  424. keepCnt = 0
  425. prevTime = Date.now()
  426. preDelta = 0
  427. var min = 0.8*estimate_Pressure
  428. var max = 1.2*estimate_Pressure
  429. //var setPressure = 100
  430. var highspeed_open = false
  431. var middlespeed_open = false
  432. var switch_pressure = estimate_Pressure-35
  433. var last_pressure = 0.1*estimate_Pressure
  434. if(estimate_Pressure >= 100){
  435. //打开高压高速进气阀门
  436. ModbusJs.hphs_IntakeCtrl(controlSerial,true)
  437. console.log("打开高压高速进气阀门")
  438. highspeed_open = true
  439. //打开高压中速进气阀门
  440. ModbusJs.hpms_IntakeCtrl(controlSerial,true)
  441. console.log("打开高压中速进气阀门")
  442. middlespeed_open = true
  443. }else if(estimate_Pressure >= 40){
  444. //打开高压中速进气阀门
  445. ModbusJs.hpms_IntakeCtrl(controlSerial,true)
  446. console.log("打开高压中速进气阀门")
  447. middlespeed_open = true
  448. min = 0.5*estimate_Pressure
  449. max = 1.5*estimate_Pressure
  450. }else{
  451. min = 0.2*estimate_Pressure
  452. max = 2*estimate_Pressure
  453. }
  454. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  455. if(obj.ret === false){
  456. log.show("高压传感器通讯错误")
  457. ModbusJs.relay1CloseAll(controlSerial)
  458. console.log("关闭所有气路阀门")
  459. return false
  460. }
  461. var pre_pressure = obj.pressureNumber
  462. var pre_pressure2 = obj.pressureNumber2
  463. ret = true
  464. do{
  465. //延时
  466. spy.wait(delayInterval)
  467. if(running === false){
  468. console.log("安全阀整定压力--停止测试")
  469. ModbusJs.relay1CloseAll(controlSerial)
  470. console.log("关闭所有气路阀门")
  471. return false
  472. }
  473. var curTime = Date.now()
  474. var deltaTime = curTime - prevTime
  475. if(deltaTime >= 980){
  476. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  477. if(obj.ret === false){
  478. log.show("高压传感器通讯错误")
  479. ModbusJs.relay1CloseAll(controlSerial)
  480. console.log("关闭所有气路阀门")
  481. return false
  482. }
  483. // //开启压力超出范围了
  484. // if(obj.pressureNumber > max){
  485. // log.show("安全阀无法开启")
  486. // ret = false
  487. // ModbusJs.relay1CloseAll(controlSerial)
  488. // console.log("关闭所有气路阀门")
  489. // return false
  490. // }
  491. if(obj.pressureNumber > switch_pressure){
  492. // if(last_pressure > 30){
  493. // if(highspeed_open === true){
  494. // //关闭高压高速进气阀门
  495. // ModbusJs.hphs_IntakeCtrl(controlSerial,false)
  496. // console.log("关闭高压高速进气阀门")
  497. // highspeed_open = false
  498. // }
  499. // }else {
  500. if(highspeed_open === true){
  501. //关闭高压高速进气阀门
  502. ModbusJs.hphs_IntakeCtrl(controlSerial,false)
  503. console.log("关闭高压高速进气阀门")
  504. highspeed_open = false
  505. }else{
  506. if(middlespeed_open === true){
  507. //关闭高压中速进气阀门
  508. ModbusJs.hpms_IntakeCtrl(controlSerial,false)
  509. console.log("关闭高压中速进气阀门")
  510. middlespeed_open = false
  511. }
  512. }
  513. //}
  514. }
  515. delta = obj.pressureNumber2 - pre_pressure2
  516. if((delta < 1.0) && ((delta < (preDelta-0.03)) || (delta <= 0.2))){
  517. keepCnt++
  518. if(keepCnt === 1){
  519. openPressureNumber = obj.pressureNumber
  520. }
  521. }else{
  522. keepCnt=0
  523. }
  524. // console.log("current pressure:"+obj.pressureNumber2+", delta:"+delta+", preDelta: "+preDelta)
  525. // console.log("keepCnt:"+ keepCnt +" ")
  526. if(keepCnt >= openPressureTimeMax){
  527. //console.log("keepCnt > StablePressureCount")
  528. break;
  529. }
  530. preDelta = delta
  531. prevTime = curTime
  532. pre_pressure = obj.pressureNumber
  533. pre_pressure2 = obj.pressureNumber2
  534. pressureDisplaySigFun(obj.pressureNumber)
  535. // add pressure table
  536. var table={}
  537. table.pressure=obj.pressureNumber
  538. //开启压力模型赋值
  539. openPressureModel.append(table)
  540. }
  541. }while(1)
  542. //通知数据
  543. pressureDisplaySigFun(obj.pressureNumber)
  544. // add pressure table
  545. table={}
  546. table.pressure=obj.pressureNumber
  547. openPressureModel.append(table)
  548. if(ret === false){
  549. openPressureNumber = obj.pressureNumber
  550. }
  551. setPressure_real = openPressureNumber
  552. //openPressureNumber = obj.pressureNumber
  553. var result={}
  554. result.openPressureNumber = openPressureNumber
  555. result.sealPressureNumber = ""
  556. resultSigFun(result)
  557. console.log("安全阀整定压力:",openPressureNumber)
  558. console.log("安全阀整定压力测试结束")
  559. //关闭高压高速进气阀门
  560. ModbusJs.hphs_IntakeCtrl(controlSerial,false)
  561. console.log("关闭高压高速进气阀门")
  562. //关闭高压中速进气阀门
  563. ModbusJs.hpms_IntakeCtrl(controlSerial,false)
  564. console.log("关闭高压中速进气阀门")
  565. //关闭高压低速进气阀门
  566. ModbusJs.hpls_IntakeCtrl(controlSerial,false)
  567. console.log("关闭高压低速进气阀门")
  568. // if(setPressure_real < 30){
  569. // console.log("整定压力过小")
  570. // log.show("整定压力过小")
  571. // return false
  572. // }
  573. /*
  574. //step 3.1 泄压到60%*setPressure_real
  575. console.log("泄压到60%*setPressure_real")
  576. var addPressure_target = 0
  577. if(setPressure_real > 300.0){
  578. addPressure_target = 0.9*setPressure_real
  579. }else{
  580. addPressure_target = setPressure_real-30
  581. }
  582. //处理为负值情况
  583. if(addPressure_target < 10){
  584. addPressure_target = 10
  585. }
  586. processWindow.show("泄放压力到:"+(addPressure_target-5)+"kPa")
  587. //打开高压低速泄气阀门
  588. ModbusJs.hpls_ReleaseCtrl(controlSerial,true)
  589. console.log("打开高压低速泄气阀门")
  590. prevTime = Date.now()
  591. var prevTime2 = prevTime
  592. do{
  593. //延时
  594. spy.wait(delayInterval)
  595. if(running === false){
  596. console.log("停止测试")
  597. return false
  598. }
  599. //压力数据通知
  600. curTime = Date.now()
  601. deltaTime = curTime - prevTime
  602. if(deltaTime >=20){
  603. prevTime = curTime
  604. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  605. if(obj.ret === false){
  606. log.show("高压传感器通讯错误")
  607. return false
  608. }
  609. // add pressure table
  610. // table={}
  611. // table.pressure=obj.pressureNumber
  612. // sealPressureModel.append(table)
  613. if(obj.pressureNumber2 <= (addPressure_target- 5)){
  614. break
  615. }
  616. }
  617. curTime = Date.now()
  618. deltaTime = curTime - prevTime2
  619. if(deltaTime >= 980){
  620. prevTime2 = curTime
  621. pressureDisplaySigFun(obj.pressureNumber)
  622. }
  623. }while(1)
  624. //关闭高压低速泄气阀门
  625. ModbusJs.hpls_ReleaseCtrl(controlSerial,false)
  626. console.log("关闭高压低速泄气阀门")
  627. processWindow.text("等待压力稳定")
  628. var stableCnt = 0
  629. do{
  630. //延时
  631. spy.wait(980)
  632. if(running === false){
  633. console.log("停止测试")
  634. return false
  635. }
  636. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  637. if(obj.ret === false){
  638. log.show("高压传感器通讯错误")
  639. return false
  640. }
  641. pressureDisplaySigFun(obj.pressureNumber)
  642. stableCnt++
  643. }while(stableCnt<5)
  644. //step 3.2 加压到90%*setPressure_real
  645. processWindow.show("加压到:"+(addPressure_target)+"kPa")
  646. //打开高压低速进气阀门
  647. ModbusJs.hpls_IntakeCtrl(controlSerial,true)
  648. console.log("打开高压低速进气阀门")
  649. prevTime = Date.now()
  650. prevTime2 = prevTime
  651. do{
  652. //延时
  653. spy.wait(delayInterval)
  654. if(running === false){
  655. console.log("停止测试")
  656. //关闭高压低速进气阀门
  657. ModbusJs.hpls_IntakeCtrl(controlSerial,false)
  658. console.log("关闭高压低速进气阀门")
  659. return false
  660. }
  661. //压力数据通知
  662. curTime = Date.now()
  663. deltaTime = curTime - prevTime
  664. if(deltaTime >=5){
  665. prevTime = curTime
  666. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  667. if(obj.ret === false){
  668. log.show("高压传感器通讯错误")
  669. return false
  670. }
  671. // add pressure table
  672. // table={}
  673. // table.pressure=obj.pressureNumber
  674. // sealPressureModel.append(table)
  675. if(obj.pressureNumber2 >= (addPressure_target-0.8)){
  676. break
  677. }
  678. }
  679. curTime = Date.now()
  680. deltaTime = curTime - prevTime2
  681. if(deltaTime >= 980){
  682. prevTime2 = curTime
  683. pressureDisplaySigFun(obj.pressureNumber)
  684. }
  685. }while(1)
  686. //关闭高压低速进气阀门
  687. ModbusJs.hpls_IntakeCtrl(controlSerial,false)
  688. console.log("关闭高压低速进气阀门")
  689. //step 4
  690. //*********测试密封压力************
  691. console.log("密封压力开始")
  692. processWindow.show("密封压力试验开始")
  693. tabView.currentIndex = currentIndex+3
  694. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  695. if(obj.ret === false){
  696. log.show("高压传感器通讯错误")
  697. return false
  698. }
  699. pre_pressure = obj.pressureNumber
  700. prevTime = Date.now()
  701. keepCnt = 0
  702. preDelta = 0
  703. //StablePressureCount = sealPressureTimemax*1000/readPressureInterval
  704. do{
  705. //延时
  706. spy.wait(delayInterval)
  707. if(running === false){
  708. console.log("停止测试")
  709. return false
  710. }
  711. //压力数据通知
  712. curTime = Date.now()
  713. deltaTime = curTime - prevTime
  714. if(deltaTime >=980){
  715. prevTime = curTime
  716. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  717. if(obj.ret === false){
  718. log.show("高压传感器通讯错误")
  719. return false
  720. }
  721. keepCnt++
  722. pressureDisplaySigFun(obj.pressureNumber)
  723. // add pressure table
  724. table={}
  725. table.pressure=obj.pressureNumber
  726. sealPressureModel.append(table)
  727. processWindow.text("密封压力试验时间"+(sealPressureTimemax-keepCnt)+"s")
  728. //processWindow.text("21kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
  729. }
  730. }while(keepCnt < sealPressureTimemax)
  731. pressureDisplaySigFun(obj.pressureNumber)
  732. // add pressure table
  733. table={}
  734. table.pressure=obj.pressureNumber
  735. sealPressureModel.append(table)
  736. sealPressureNumber = obj.pressureNumber//.toString()
  737. result={}
  738. result.openPressureNumber = openPressureNumber
  739. result.sealPressureNumber = sealPressureNumber
  740. resultSigFun(result)
  741. console.log("密封压力:",obj.pressureNumber)
  742. console.log("密封压力结束")
  743. */
  744. //setp 5
  745. //打开正压罐头泄气阀门
  746. //打开高压高速泄气阀门
  747. ModbusJs.hphs_ReleaseCtrl(controlSerial,true)
  748. console.log("打开高压高速泄气阀门")
  749. console.log("等待压力 0kPa")
  750. //查看低压传感器值 等待正压罐头压力降到最低值
  751. processWindow.show("试验结束,泄压中")
  752. timeout = 0
  753. end_count = 0
  754. do{
  755. if(running === false){
  756. console.log("停止测试")
  757. return false
  758. }
  759. obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
  760. if(obj.ret === false){
  761. log.show("低压传感器通讯错误")
  762. return false
  763. }
  764. // signal 压力显示函数
  765. pressureDisplaySigFun(obj.pressureNumber)
  766. //延时
  767. spy.wait(950)
  768. timeout++
  769. if(obj.pressureNumber <= pthreshold_Setzero){
  770. end_count++;
  771. }
  772. }while(end_count < delaycount_Setzero && timeout < 180)
  773. //step 6
  774. //ModbusJs.closeAllValve(controlSerial)
  775. //ModbusJs.closeAllValve(controlSerial)
  776. //console.log("关闭所有阀门")
  777. // 关闭所有气路电磁阀
  778. ModbusJs.relay1CloseAll(controlSerial)
  779. console.log("关闭所有气路电磁阀")
  780. return true
  781. }