Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. macro_command main()
  2.  
  3. bool open_close // 1 - opened, 0 - closed
  4. GetData(open_close, "Local HMI", LB, 3, 1)
  5.  
  6. short counter
  7. int eventTime //LW3
  8. if eventTime + 3 <
  9. short openingButton
  10. short closingButton
  11. short stopButton
  12. GetData(closingButton, "Local HMI", LB, 0, 1)
  13. GetData(openingButton, "Local HMI", LB, 1, 1)
  14. GetData(stopButton, "Local HMI", LB, 2, 1)
  15. //declaration of states:
  16. short state // 0 - no move
  17. // 1 - opening
  18. // 2 - closing
  19. // 3 - stoped during work
  20. GetData(state, "Local HMI", LW, 10, 1)
  21. short previousState // potrzebne do stopu
  22. GetData(previousState, "Local HMI", LW, 20, 1)
  23.  
  24. bool diode
  25. bool help
  26. select case state
  27. case 0 // jestesmy w stanie nomoving
  28.  
  29. diode = 1
  30. SetData(diode, "Local HMI", LB, 20, 1)
  31. diode = 0
  32. SetData(diode, "Local HMI", LB, 10, 1)
  33. SetData(diode, "Local HMI", LB, 30, 1)
  34.  
  35. //rozpoczynamy proces otwierania bramy - czyli zmieniamy stan
  36. if open_close == 0 and openingButton == 1 then
  37. state = 1
  38. SetData(state, "Local HMI", LW, 10, 1)
  39. GetData(eventTime, "Local HMI", LW, 3, 1)
  40. else if open_close == 1 and closingButton == 1 then
  41. state = 2
  42. SetData(state, "Local HMI", LW, 10, 1)
  43. GetData(eventTime, "Local HMI", LW, 3, 1)
  44. end if
  45. break
  46.  
  47. case 1 //Proces otwierania
  48. if stopButton == 1 then //uwzglednij zatrzymanie bramy podczas pracy
  49. previousState = state //aby pozniej uwzglednic to przy puszczeniu stop
  50. SetData(previousState, "Local HMI", LW, 20, 1)
  51. state = 3
  52. SetData(state, "Local HMI", LW, 10, 1)
  53. break //przerwij aby nie wykonywac dalszych instrukcji
  54. end if
  55.  
  56.  
  57. help = 0
  58. SetData(help, "Local HMI", LB, 20, 1) // zgas diode not moving
  59. help = 1
  60. SetData(help, "Local HMI", LB, 10, 1) // zapal diode opening
  61. DELAY(3000)
  62. SetData(help, "Local HMI", LB, 20, 1) //zapal diode not moving
  63. help = 0
  64. SetData(help, "Local HMI", LB, 10, 1) // zgas diode opening
  65. help = 1
  66. SetData(help, "Local HMI", LB, 3, 1) // open/close --> opened (swieci)
  67.  
  68. state = 0
  69. SetData(state, "Local HMI", LW, 10, 1) // zgas diode not moving
  70. break
  71.  
  72. case 2 //Proces zamykania
  73. if stopButton == 1 then //uwzglednij zatrzymanie bramy podczas pracy
  74. previousState = state //aby pozniej uwzglednic to przy puszczeniu stop
  75. SetData(previousState, "Local HMI", LW, 20, 1)
  76. state = 3
  77. SetData(state, "Local HMI", LW, 10, 1)
  78. break //przerwij aby nie wykonywac dalszych instrukcji
  79. end if
  80.  
  81. help = 0
  82. SetData(help, "Local HMI", LB, 20, 1) // zgas diode not moving
  83. help = 1
  84. SetData(help, "Local HMI", LB, 30, 1) // zapal diode closing
  85. DELAY(1500)
  86. bool absence_presence = 0
  87.  
  88. if absence_presence == 1 then
  89. help = 0
  90. SetData(help, "Local HMI", LB, 30, 1) // turn off cloding diode
  91. help = 1
  92. SetData(help, "Local HMI", LB, 10, 1) // turn on opening diode
  93. DELAY(1500)
  94. SetData(help, "Local HMI", LB, 20, 1) // turn on not moving diode
  95. help = 0
  96. SetData(help, "Local HMI", LB, 10, 1) // turn off opening diode
  97.  
  98. state = 1
  99. SetData(state, "Local HMI", LW, 10, 1)
  100. break //przerwij aby nie wykonywac dalszych instrukcji
  101. else
  102. DELAY(1500)
  103. SetData(help, "Local HMI", LB, 20, 1) //zapal diode not moving
  104. help = 0
  105. SetData(help, "Local HMI", LB, 30, 1) // zgas diode closing
  106. SetData(help, "Local HMI", LB, 3, 1) // open/close --> closed (nie swieci)
  107.  
  108. state = 0
  109. SetData(state, "Local HMI", LW, 10, 1)
  110. end if
  111.  
  112. break
  113.  
  114. case 3 //brama zatrzymana podczas pracy
  115. if stopButton == 0 then
  116. state = previousState
  117. SetData(state, "Local HMI", LW, 10, 1)
  118. end if
  119. break
  120.  
  121. end select
  122. end macro_command
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement