smort

mashsparge100619

Jun 10th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.94 KB | None | 0 0
  1. [mashprep]
  2. "Status" VariableType = String
  3. "Resumepoint" VariableType = String
  4. "Resumepoint" value = "start"
  5. new value mashpumprate
  6. mashpumprate = 60
  7. new value heatrate
  8. heatrate = 100
  9. new value mashrate
  10. mashrate = 48
  11. new value stuckmashlimit
  12. stuckmashlimit = 8
  13. new value MLTSP
  14. new value striketemp2
  15. "BKL PID" target = 0
  16. "Dough in" state = false
  17. "Pauser" state = false
  18. "Mash timer" Type = CountDown
  19. stop "Boil timer"
  20. "Boil timer" Type = CountDown
  21. reset "Sparge timer"
  22. stop "Mash timer"
  23. "Strike temp" value = 0
  24. "Sparge volume" value = 0
  25. "Preboil volume" value = 0
  26. "Mash temp" value = 0
  27. "Mash temp1" value = 0
  28. "Mash temp2" value = 0
  29. "Mash temp3" value = 0
  30. "Mash temp4" value = 0
  31. "Mash temp5" value = 0
  32. "Mash time1" value = 00:00:00
  33. "Mash time2" value = 00:00:00
  34. "Mash time3" value = 00:00:00
  35. "Mash time4" value = 00:00:00
  36. "Mash time5" value = 00:00:00
  37. "Hop time0" value = 0
  38. "Hop time1" value = 0
  39. "Hop time2" value = 0
  40. "Hop time3" value = 0
  41. "Hop time4" value = 0
  42. "Hop time5" value = 0
  43. "Hop time6" value = 0
  44. "Hop time7" value = 0
  45. "Hop time8" value = 0
  46. "Hop time9" value = 0
  47. "Boil time" value = 00:00:00
  48. "Boil timer" value = 00:00:00
  49. stop "hop timer"
  50. "hop timer" value = 00:01:00
  51. "Hopstand temp" value = 0
  52. "First wort" value = false
  53. "Status" value = "Send recipe data"
  54. wait "Pauser" state == true
  55. "Pauser" state = false
  56. "Status" value = "CHecK vaLvEs"
  57. wait "Pauser" state == true
  58. "Pauser" state = false
  59. "Status" value = "MasHinGPrEp"
  60. "Boil timer" value = "Boil time" value
  61. "RIMS PID" Enabled = true
  62. "RIMS PID" target = "Strike temp" value + 5
  63. "HLT vlv" value = 0
  64. "HLT vlv return" state = on
  65. "BKL vlv" value = 0
  66. sleep 2000
  67. "MLT vlv" value = heatrate
  68. "MLT pump" value = mashpumprate
  69. "HLT pump" value = 50
  70. "Status" value = "HEaTing"
  71. sleep 7000
  72. goto heating1
  73.  
  74. [heating1]
  75. "Resumepoint" value = "heating1"
  76. mashpumprate = "MLT pump" value
  77. striketemp2 = "Strike temp" value - 1
  78. if "MLT temp" value >= striketemp2
  79. "RIMS PID" target = "Strike temp" value
  80. endif
  81. if "Pauser" state == true
  82. "Pauser" State = false
  83. goto stopmash
  84. endif
  85. if "Dough in" state == true
  86. "RIMS PID" Enabled = false
  87. "Status" value = "StoPPiNg"
  88. stop "Mash timer"
  89. "MLT vlv" value = 0
  90. sleep 5000
  91. "MLT pump" value = 0
  92. "Mash timer" value = "Mash time1" value
  93. delete striketemp2
  94. "Dough in" state = false
  95. "Status" value = "aDD gRaiN"
  96. wait "Pauser" state == true
  97. "Pauser" state = false
  98. "RIMS PID" Enabled = true
  99. "RIMS PID" target = "Mash temp" value
  100. "Status" value = "StaRTinG"
  101. print "mashing started"
  102. "MLT vlv" value = mashrate
  103. "MLT pump" value = mashpumprate
  104. sleep 5000
  105. start "Mash timer"
  106. "Status" value = "MaShiNg"
  107. goto mash1
  108. endif
  109. if "MLT volume" value < stuckmashlimit
  110. "Stuck mash" Active = true
  111. goto stopmash
  112. endif
  113. if "MLT temp" value >= "Strike temp" value
  114. "Status" value = "ready for dough in"
  115. endif
  116. sleep 1000
  117. goto heating1
  118.  
  119. [mash1]
  120. "Resumepoint" value = "mash1"
  121. mashpumprate = "MLT pump" value
  122. if "Pauser" state == true
  123. mashrate = "MLT vlv" value
  124. goto stopmash
  125. endif
  126. if "MLT volume" value < stuckmashlimit
  127. "Stuck mash" Active = true
  128. mashrate = "MLT vlv" value
  129. goto stopmash
  130. endif
  131. if "Mash timer" value <= 00:00:00:00
  132. "RIMS PID" Target = "Mash temp1" value + 2
  133. stop "Mash timer"
  134. goto heating2
  135. endif
  136. sleep 1000
  137. goto mash1
  138.  
  139. [heating2]
  140. sleep 1000
  141. "Resumepoint" value = "heating2"
  142. mashpumprate = "MLT pump" value
  143. if "Pauser" state == true
  144. mashrate = "MLT vlv" value
  145. goto stopmash
  146. endif
  147. if "MLT volume" value < stuckmashlimit
  148. "Stuck mash" Active = true
  149. mashrate = "MLT vlv" value
  150. goto stopmash
  151. endif
  152. if "MLT temp" value >= "Mash temp1" value
  153. "RIMS PID" Target = "Mash temp1" value
  154. "Mash timer" value = "Mash time2" value
  155. start "Mash timer"
  156. goto mash2
  157. endif
  158. sleep 1000
  159. goto heating2
  160.  
  161. [mash2]
  162. "Resumepoint" value = "mash2"
  163. mashpumprate = "MLT pump" value
  164. if "Pauser" state == true
  165. mashrate = "MLT vlv" value
  166. goto stopmash
  167. endif
  168. if "MLT volume" value < stuckmashlimit
  169. "Stuck mash" Active = true
  170. mashrate = "MLT vlv" value
  171. goto stopmash
  172. endif
  173. if "Mash timer" value <= 00:00:00
  174. "RIMS PID" Target = "Mash temp2" value + 2
  175. stop "Mash timer"
  176. goto heating3
  177. endif
  178. sleep 1000
  179. goto mash2
  180.  
  181. [heating3]
  182. "Resumepoint" value = "heating3"
  183. mashpumprate = "MLT pump" value
  184. if "Pauser" state == true
  185. mashrate = "MLT vlv" value
  186. goto stopmash
  187. endif
  188. if "MLT volume" value < stuckmashlimit
  189. "Stuck mash" Active = true
  190. mashrate = "MLT vlv" value
  191. goto stopmash
  192. endif
  193. if "MLT temp" value >= "Mash temp2" value
  194. "RIMS PID" Target = "Mash temp2" value
  195. "Mash timer" value = "Mash time3" value
  196. start "Mash timer"
  197. goto mash3
  198. endif
  199. sleep 1000
  200. goto heating3
  201.  
  202. [mash3]
  203. "Resumepoint" value = "mash3"
  204. mashpumprate = "MLT pump" value
  205. if "Pauser" state == true
  206. mashrate = "MLT vlv" value
  207. goto stopmash
  208. endif
  209. if "MLT volume" value < stuckmashlimit
  210. "Stuck mash" Active = true
  211. mashrate = "MLT vlv" value
  212. goto stopmash
  213. endif
  214. if "Mash timer" value <= 00:00:00
  215. "RIMS PID" Target = "Mash temp3" value + 2
  216. stop "Mash timer"
  217. goto heating4
  218. endif
  219. sleep 1000
  220. goto mash3
  221.  
  222. [heating4]
  223. "Resumepoint" value = "heating4"
  224. mashpumprate = "MLT pump" value
  225. if "Pauser" state == true
  226. mashrate = "MLT vlv" value
  227. goto stopmash
  228. endif
  229. if "MLT volume" value < stuckmashlimit
  230. "Stuck mash" Active = true
  231. mashrate = "MLT vlv" value
  232. goto stopmash
  233. endif
  234. if "MLT temp" value >= "Mash temp3" value
  235. "RIMS PID" Target = "Mash temp3" value
  236. "Mash timer" value = "Mash time4" value
  237. start "Mash timer"
  238. goto mash4
  239. endif
  240. sleep 1000
  241. goto heating4
  242.  
  243. [mash4]
  244. "Resumepoint" value = "mash4"
  245. mashpumprate = "MLT pump" value
  246. if "Pauser" state == true
  247. mashrate = "MLT vlv" value
  248. goto stopmash
  249. endif
  250. if "MLT volume" value < stuckmashlimit
  251. "Stuck mash" Active = true
  252. mashrate = "MLT vlv" value
  253. goto stopmash
  254. endif
  255. if "Mash timer" value <= 00:00:00
  256. "RIMS PID" Target = "Mash temp4" value + 2
  257. stop "Mash timer"
  258. goto heating5
  259. endif
  260. sleep 1000
  261. goto mash4
  262.  
  263. [heating5]
  264. "Resumepoint" value = "heating5"
  265. mashpumprate = "MLT pump" value
  266. if "Pauser" state == true
  267. mashrate = "MLT vlv" value
  268. goto stopmash
  269. endif
  270. if "MLT volume" value < stuckmashlimit
  271. "Stuck mash" Active = true
  272. mashrate = "MLT vlv" value
  273. goto stopmash
  274. endif
  275. if "MLT temp" value >= "Mash temp4" value
  276. "RIMS PID" Target = "Mash temp4" value
  277. "Mash timer" value = "Mash time5" value
  278. start "Mash timer"
  279. goto mash5
  280. endif
  281. sleep 1000
  282. goto heating5
  283.  
  284. [mash5]
  285. "Resumepoint" value = "mash5"
  286. mashpumprate = "MLT pump" value
  287. if "Pauser" state == true
  288. mashrate = "MLT vlv" value
  289. goto stopmash
  290. endif
  291. if "MLT volume" value < stuckmashlimit
  292. "Stuck mash" Active = true
  293. mashrate = "MLT vlv" value
  294. goto stopmash
  295. endif
  296. if "Mash timer" value <= 00:00:00
  297. stop "Mash timer"
  298. "Resumepoint" value = "spargeprep"
  299. goto spargeprep
  300. endif
  301. sleep 1000
  302. goto mash5
  303.  
  304. [stopmash]
  305. "Status" value = "StoPPiNg"
  306. stop "Mash timer"
  307. "RIMS PID" Enabled = false
  308. "MLT vlv" value = 0
  309. sleep 5000
  310. "MLT pump" value = 0
  311. "Stuck mash" Active = false
  312. "Pauser" state = false
  313. "Status" value = "PaUsED"
  314. wait "Pauser" state == true
  315. "Status" value = "StaRTinG"
  316. "Pauser" state = false
  317. "MLT vlv" value = heatrate
  318. "MLT pump" value = mashpumprate
  319. sleep 5000
  320. "RIMS PID" Enabled = true
  321. if "Resumepoint" value == "heating1"
  322. "Status" value = "HEaTing"
  323. goto heating1
  324. endif
  325. if "Resumepoint" value == "mash1"
  326. "Status" value = "MaShiNg"
  327. start "Mash timer"
  328. goto mash1
  329. endif
  330. if "Resumepoint" value == "heating2"
  331. "Status" value = "HEaTing"
  332. goto heating2
  333. endif
  334. if "Resumepoint" value == "mash2"
  335. "Status" value = "MaShiNg"
  336. start "Mash timer"
  337. goto mash2
  338. endif
  339. if "Resumepoint" value == "heating3"
  340. "Status" value = "HEaTing"
  341. goto heating3
  342. endif
  343. if "Resumepoint" value == "mash3"
  344. "Status" value = "MaShiNg"
  345. start "Mash timer"
  346. goto mash3
  347. endif
  348. if "Resumepoint" value == "heating4"
  349. "Status" value = "HEaTing"
  350. goto heating4
  351. endif
  352. if "Resumepoint" value == "mash4"
  353. "Status" value = "MaShiNg"
  354. start "Mash timer"
  355. goto mash4
  356. endif
  357. if "Resumepoint" value == "heating5"
  358. "Status" value = "HEaTing"
  359. goto heating5
  360. endif
  361. if "Resumepoint" value == "mash5"
  362. "Status" value = "MaShiNg"
  363. start "Mash timer"
  364. goto mash5
  365. endif
  366.  
  367.  
  368. [spargeprep]
  369. delete mashpumprate
  370. delete mashrate
  371. delete mashpumprate
  372. delete heatrate
  373. delete stuckmashlimit
  374. new bool boilstart
  375. new bool finished
  376. new value MLTintegrator
  377. new value MLTtoplevel
  378. new value MLTlowlevel
  379. new value lastMLTlevel
  380. new value MLTleveldiff
  381. new value averageMLTlevel
  382. new value averagecounter
  383. new value lasthltvlv
  384. new value lastbklvlv
  385. new value spargeloopcounter
  386. new value flowcounter
  387. flowcounter = -20
  388. new value flowmin
  389. flowmin = 0.9
  390. new value flowmax
  391. flowmax = 1.1
  392. new bool spargedone
  393. spargedone = false
  394. "RIMS PID" enabled = false
  395. "HLT flow" enabled = false
  396. "Pauser" state = false
  397. "HLT pump" value = 0
  398. "MLT pump" value = 0
  399. "HLT vlv" value = 0
  400. "BKL vlv" value = 0
  401. "MLT vlv" value = 0
  402. "HLT vlv return" state = off
  403. "Status" value = "SpArgEPrEp"
  404. sleep 30000
  405. "HLT pump" value = 50
  406. "MLT pump" value = 50
  407. "HLT vlv" value = 40
  408. "BKL vlv" value = 39
  409. "HLT flow" enabled = true
  410. sleep 15000
  411. MLTSP = "MLT volume" value
  412. lastMLTlevel = "MLT volume" value
  413. MLTtoplevel = MLTSP + 0.1
  414. MLTlowlevel = MLTSP - 0.1
  415. reset "Sparge timer"
  416. start "Sparge timer"
  417. "Status" value = "SpArgE"
  418. stop "hop timer"
  419. "hop timer" value = 00:03:00
  420. goto sparge
  421.  
  422. [sparge]
  423. MLTtoplevel = MLTSP + 0.1
  424. MLTlowlevel = MLTSP - 0.1
  425. if "Pauser" state == true
  426. lasthltvlv = "HLT vlv" value
  427. lastbklvlv = "BKL vlv" value
  428. "Pauser" state = false
  429. goto stopsparge
  430. endif
  431. if "BKL volume" value >= 11
  432. if boilstart == false
  433. "BKL PID" enabled = true
  434. "BKL PID" Target = 98.8
  435. print "BKL heating started"
  436. boilstart = true
  437. endif
  438. endif
  439. if "BKL volume" value >= "Preboil volume" value
  440. if "Preboil volume" value >= 10
  441. lasthltvlv = "HLT vlv" value
  442. lastbklvlv = "BKL vlv" value
  443. finished = true
  444. goto stopsparge
  445. endif
  446. endif
  447. if spargedone == false
  448. if spargeloopcounter >= 40
  449. averageMLTlevel = averagecounter / 40
  450. averagecounter = 0
  451. MLTleveldiff = averageMLTlevel - lastMLTlevel
  452. MLTintegrator = MLTleveldiff * 3
  453. "BKL vlv" value += MLTintegrator
  454. if averageMLTlevel > MLTtoplevel
  455. if MLTleveldiff > 0.02
  456. "BKL vlv" value += 0.5
  457. endif
  458. endif
  459. if averageMLTlevel < MLTlowlevel
  460. if MLTleveldiff < -0.02
  461. "BKL vlv" value -= 0.5
  462. endif
  463. endif
  464. lastMLTlevel = averageMLTlevel
  465. spargeloopcounter = 0
  466. endif
  467. if flowcounter >= 20
  468. if "HLT flow" rate <= flowmin
  469. "HLT vlv" value += 0.5
  470. endif
  471. if "HLT flow" rate >= flowmax
  472. "HLT vlv" value -= 0.5
  473. endif
  474. flowcounter = 0
  475. endif
  476. if "HLT flow" total >= "Sparge volume" value
  477. flowmin = 0
  478. flowmax = 0
  479. "HLT vlv" value = 0
  480. spargedone = true
  481. print "sparge volume reached"
  482. sleep 3000
  483. "HLT vlv return" state = on
  484. endif
  485. averagecounter += "MLT volume" value
  486. spargeloopcounter += 1
  487. flowcounter += 1
  488. endif
  489. if "First wort" value == true
  490. "Hop alarm" state = true
  491. "Status" value = "First wort hop"
  492. start "hop timer"
  493. "First wort" value = false
  494. endif
  495. if "hop timer" value <= 00:00:00
  496. "Status" value = "SpArgE"
  497. stop "hop timer"
  498. "hop timer" value = 00:01:00
  499. endif
  500. if "Hop alarm" state == true
  501. "Hop addition" Active = true
  502. else
  503. "Hop addition" Active = false
  504. endif
  505. sleep 500
  506. goto sparge
  507.  
  508. [stopsparge]
  509. "Status" value = "StoPPiNg"
  510. "HLT vlv" value = 0
  511. "BKL vlv" value = 0
  512. sleep 4000
  513. "HLT pump" value = 0
  514. "MLT pump" value = 0
  515. stop "Sparge timer"
  516. if finished == true
  517. "BKL PID" Target = 104
  518. "Status" value = "ReADy tO BoiL!"
  519. print "sparging done"
  520. "RIMS PID" Enabled = true
  521. "RIMS PID" Target = 0
  522. "HLT PID" Target = 0
  523. "The end" Active = true
  524. sleep 3000
  525. "The end" Active = false
  526. wait "BKL temp" value >= 99.4
  527. goto boilprep
  528. endif
  529. "Status" value = "PaUsED"
  530. wait "Pauser" state == true
  531. "HLT pump" value = 50
  532. "MLT pump" value = 50
  533. "HLT vlv" value = lasthltvlv
  534. "BKL vlv" value = lastbklvlv
  535. "MLT vlv" value = 0
  536. "HLT vlv return" state = off
  537. "Pauser" state = false
  538. start "Sparge timer"
  539. "Status" value = "SpArgE"
  540. goto sparge
  541.  
  542. [boilprep]
  543. delete bool boilstart
  544. delete bool finished
  545. delete value MLTintegrator
  546. delete value MLTtoplevel
  547. delete value MLTlowlevel
  548. delete value lastMLTlevel
  549. delete value MLTleveldiff
  550. delete value averageMLTlevel
  551. delete value averagecounter
  552. delete value lasthltvlv
  553. delete value lastbklvlv
  554. delete value spargeloopcounter
  555. delete value flowcounter
  556. delete value flowmin
  557. delete value flowmax
  558. delete bool spargedone
  559. "Status" value = "boiling"
  560. "Boil timer" value = "Boil time" value
  561. start "Boil timer"
  562. "Boil mode" state = true
  563. "Boilpower" value = 75
  564. stop "hop timer"
  565. "hop timer" value = 00:01:00
  566. print "boiling start"
  567. "Boiling" active = true
  568. sleep 1500
  569. "Boiling" active = false
  570. goto boil
  571.  
  572. [boil]
  573. if "Boil timer" value <= "Hop time0" value
  574. new time hoptime00
  575. hoptime00 = "Hop time0" value - 00:00:04
  576. if "Boil timer" value >= hoptime00
  577. "Hop alarm" State = true
  578. "Status" value = "hop addition"
  579. delete hoptime00
  580. start "hop timer"
  581. endif
  582. endif
  583. if "Boil timer" value <= "Hop time1" value
  584. new time hoptime00
  585. hoptime00 = "Hop time1" value - 00:00:04
  586. if "Boil timer" value >= hoptime00
  587. "Hop alarm" State = true
  588. "Status" value = "hop addition"
  589. delete hoptime00
  590. start "hop timer"
  591. endif
  592. endif
  593. if "Boil timer" value <= "Hop time2" value
  594. new time hoptime00
  595. hoptime00 = "Hop time2" value - 00:00:04
  596. if "Boil timer" value >= hoptime00
  597. "Hop alarm" State = true
  598. "Status" value = "hop addition"
  599. delete hoptime00
  600. start "hop timer"
  601. endif
  602. endif
  603. if "Boil timer" value <= "Hop time3" value
  604. new time hoptime00
  605. hoptime00 = "Hop time3" value - 00:00:04
  606. if "Boil timer" value >= hoptime00
  607. "Hop alarm" State = true
  608. "Status" value = "hop addition"
  609. delete hoptime00
  610. start "hop timer"
  611. endif
  612. endif
  613. if "Boil timer" value <= "Hop time4" value
  614. new time hoptime00
  615. hoptime00 = "Hop time4" value - 00:00:04
  616. if "Boil timer" value >= hoptime00
  617. "Hop alarm" State = true
  618. "Status" value = "hop addition"
  619. delete hoptime00
  620. start "hop timer"
  621. endif
  622. endif
  623. if "Boil timer" value <= "Hop time5" value
  624. new time hoptime00
  625. hoptime00 = "Hop time5" value - 00:00:04
  626. if "Boil timer" value >= hoptime00
  627. "Hop alarm" State = true
  628. "Status" value = "hop addition"
  629. delete hoptime00
  630. start "hop timer"
  631. endif
  632. endif
  633. if "Boil timer" value <= "Hop time6" value
  634. new time hoptime00
  635. hoptime00 = "Hop time6" value - 00:00:04
  636. if "Boil timer" value >= hoptime00
  637. "Hop alarm" State = true
  638. "Status" value = "hop addition"
  639. delete hoptime00
  640. start "hop timer"
  641. endif
  642. endif
  643. if "Boil timer" value <= "Hop time7" value
  644. new time hoptime00
  645. hoptime00 = "Hop time7" value - 00:00:04
  646. if "Boil timer" value >= hoptime00
  647. "Hop alarm" State = true
  648. "Status" value = "hop addition"
  649. delete hoptime00
  650. start "hop timer"
  651. endif
  652. endif
  653. if "Boil timer" value <= "Hop time8" value
  654. new time hoptime00
  655. hoptime00 = "Hop time8" value - 00:00:04
  656. if "Boil timer" value >= hoptime00
  657. "Hop alarm" State = true
  658. "Status" value = "hop addition"
  659. delete hoptime00
  660. start "hop timer"
  661. endif
  662. endif
  663. if "Boil timer" value <= "Hop time9" value
  664. new time hoptime00
  665. hoptime00 = "Hop time9" value - 00:00:04
  666. if "Boil timer" value >= hoptime00
  667. "Hop alarm" State = true
  668. "Status" value = "hop addition"
  669. "BKL PID" target = "Hopstand temp" value
  670. "Boil mode" state = false
  671. "Boilpower" value = 0
  672. if "Hopstand temp" value > 0
  673. "Status" value = "Hopstand"
  674. else
  675. "Status" value = "done"
  676. endif
  677. delete hoptime00
  678. start "hop timer"
  679. endif
  680. endif
  681.  
  682. if "Hop alarm" state == true
  683. "Hop addition" Active = true
  684. else
  685. "Hop addition" Active = false
  686. endif
  687. if "hop timer" value <= 00:00:00
  688. "Status" value = boiling
  689. stop "hop timer"
  690. "hop timer" value = 00:01:00
  691. endif
  692. if "BKL temp" value < 60
  693. if "Boil timer" value <= 00:00:00
  694. "BKL PID" enabled = false
  695. "Status" value = "done"
  696. endif
  697. endif
  698.  
  699. sleep 800
  700. goto boil
Advertisement
Add Comment
Please, Sign In to add comment