sfb5.awl 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. ORGANIZATION_BLOCK OB 1
  2. BEGIN
  3. // Check instance-DB length
  4. AUF DB 1
  5. L DBLG
  6. __ASSERT== __ACCU 1, 22
  7. AUF DB 0
  8. // Check TOF
  9. CALL SFB 5, DB 1 (
  10. IN := FALSE,
  11. PT := T#0S,
  12. Q := M 0.0,
  13. ET := MD 2,
  14. )
  15. __ASSERT== __STW BIE, 1
  16. U M 0.0
  17. __ASSERT== __STW VKE, 0
  18. L MD 2
  19. __ASSERT== __ACCU 1, 0
  20. L DB1.DBB 12 // STATE
  21. __ASSERT== __ACCU 1, 0
  22. L DB1.DBD 18 // ATIME
  23. L DB1.DBD 14 // STIME
  24. __ASSERT== __ACCU 1, 0
  25. -D
  26. UD DW#16#7FFFFFFF
  27. __ASSERT== __ACCU 1, 0
  28. CALL SFB 5, DB 1 (
  29. IN := FALSE,
  30. PT := T#200MS,
  31. Q := M 0.0,
  32. ET := MD 2,
  33. )
  34. __ASSERT== __STW BIE, 1
  35. U M 0.0
  36. __ASSERT== __STW VKE, 0
  37. L MD 2
  38. __ASSERT== __ACCU 1, 0
  39. L DB1.DBB 12 // STATE
  40. __ASSERT== __ACCU 1, 0
  41. L DB1.DBD 18 // ATIME
  42. L DB1.DBD 14 // STIME
  43. __ASSERT== __ACCU 1, 0
  44. -D
  45. UD DW#16#7FFFFFFF
  46. __ASSERT== __ACCU 1, 0
  47. CALL SFB 5, DB 1 (
  48. IN := TRUE,
  49. PT := T#200MS,
  50. Q := M 0.0,
  51. ET := MD 2,
  52. )
  53. __ASSERT== __STW BIE, 1
  54. U M 0.0
  55. __ASSERT== __STW VKE, 1
  56. L MD 2
  57. __ASSERT>= __ACCU 1, 0
  58. L DB1.DBB 12 // STATE
  59. __ASSERT== __ACCU 1, 1
  60. L DB1.DBD 18 // ATIME
  61. L DB1.DBD 14 // STIME
  62. -D
  63. UD DW#16#7FFFFFFF
  64. __ASSERT== __ACCU 1, 0
  65. __SLEEP 250
  66. CALL SFB 5, DB 1 (
  67. IN := TRUE,
  68. PT := T#200MS,
  69. Q := M 0.0,
  70. ET := MD 2,
  71. )
  72. __ASSERT== __STW BIE, 1
  73. U M 0.0
  74. __ASSERT== __STW VKE, 1
  75. L MD 2
  76. __ASSERT== __ACCU 1, 0
  77. L DB1.DBB 12 // STATE
  78. __ASSERT== __ACCU 1, 1
  79. L DB1.DBD 18 // ATIME
  80. L DB1.DBD 14 // STIME
  81. -D
  82. UD DW#16#7FFFFFFF
  83. __ASSERT== __ACCU 1, 0
  84. CALL SFB 5, DB 1 (
  85. IN := FALSE,
  86. PT := T#200MS,
  87. Q := M 0.0,
  88. ET := MD 2,
  89. )
  90. __ASSERT== __STW BIE, 1
  91. U M 0.0
  92. __ASSERT== __STW VKE, 1
  93. L MD 2
  94. __ASSERT== __ACCU 1, 0
  95. L DB1.DBB 12 // STATE
  96. __ASSERT== __ACCU 1, 2
  97. L DB1.DBD 18 // ATIME
  98. L DB1.DBD 14 // STIME
  99. -D
  100. UD DW#16#7FFFFFFF
  101. __ASSERT== __ACCU 1, 0
  102. __SLEEP 50
  103. CALL SFB 5, DB 1 (
  104. IN := FALSE,
  105. PT := T#200MS,
  106. Q := M 0.0,
  107. ET := MD 2,
  108. )
  109. __ASSERT== __STW BIE, 1
  110. U M 0.0
  111. __ASSERT== __STW VKE, 1
  112. L MD 2
  113. __ASSERT>= __ACCU 1, 50
  114. __ASSERT<= __ACCU 1, 100
  115. L DB1.DBB 12 // STATE
  116. __ASSERT== __ACCU 1, 2
  117. L DB1.DBD 18 // ATIME
  118. L DB1.DBD 14 // STIME
  119. -D
  120. UD DW#16#7FFFFFFF
  121. __ASSERT>= __ACCU 1, 50
  122. __ASSERT<= __ACCU 1, 100
  123. __SLEEP 200
  124. CALL SFB 5, DB 1 (
  125. IN := FALSE,
  126. PT := T#200MS,
  127. Q := M 0.0,
  128. ET := MD 2,
  129. )
  130. __ASSERT== __STW BIE, 1
  131. U M 0.0
  132. __ASSERT== __STW VKE, 0
  133. L MD 2
  134. __ASSERT== __ACCU 1, 200
  135. L DB1.DBB 12 // STATE
  136. __ASSERT== __ACCU 1, 0
  137. L DB1.DBD 18 // ATIME
  138. L DB1.DBD 14 // STIME
  139. -D
  140. UD DW#16#7FFFFFFF
  141. __ASSERT>= __ACCU 1, 200
  142. // Test: At PT=0 the timer is not started
  143. CALL SFB 5, DB 1 (
  144. IN := TRUE,
  145. PT := T#0MS,
  146. Q := M 0.0,
  147. ET := MD 2,
  148. )
  149. __ASSERT== __STW BIE, 1
  150. U M 0.0
  151. __ASSERT== __STW VKE, 0
  152. L MD 2
  153. __ASSERT== __ACCU 1, 0
  154. L DB1.DBB 12 // STATE
  155. __ASSERT== __ACCU 1, 0
  156. L DB1.DBD 18 // ATIME
  157. L DB1.DBD 14 // STIME
  158. -D
  159. UD DW#16#7FFFFFFF
  160. __ASSERT>= __ACCU 1, 200
  161. U DB1.DBX 0.0 // IN
  162. __ASSERT== __STW VKE, 0 // IN will be forced low.
  163. CALL SFB 5, DB 1 (
  164. IN := FALSE,
  165. PT := T#0MS,
  166. Q := M 0.0,
  167. ET := MD 2,
  168. )
  169. __ASSERT== __STW BIE, 1
  170. U M 0.0
  171. __ASSERT== __STW VKE, 0
  172. L MD 2
  173. __ASSERT== __ACCU 1, 0
  174. L DB1.DBB 12 // STATE
  175. __ASSERT== __ACCU 1, 0
  176. L DB1.DBD 18 // ATIME
  177. L DB1.DBD 14 // STIME
  178. -D
  179. UD DW#16#7FFFFFFF
  180. __ASSERT>= __ACCU 1, 200
  181. U DB1.DBX 0.0 // IN
  182. __ASSERT== __STW VKE, 0
  183. // Test: Negative PT causes an error condition (BIE=0)
  184. CALL SFB 5, DB 1 (
  185. IN := TRUE,
  186. PT := T#-500MS,
  187. Q := M 0.0,
  188. ET := MD 2,
  189. )
  190. __ASSERT== __STW BIE, 0
  191. U M 0.0
  192. __ASSERT== __STW VKE, 0
  193. L MD 2
  194. __ASSERT== __ACCU 1, 0
  195. L DB1.DBB 12 // STATE
  196. __ASSERT== __ACCU 1, 0
  197. L DB1.DBD 18 // ATIME
  198. L DB1.DBD 14 // STIME
  199. -D
  200. UD DW#16#7FFFFFFF
  201. __ASSERT>= __ACCU 1, 200
  202. U DB1.DBX 0.0 // IN
  203. __ASSERT== __STW VKE, 1 // IN is not forced low.
  204. CALL SFB 5, DB 1 (
  205. IN := FALSE,
  206. PT := T#-500MS,
  207. Q := M 0.0,
  208. ET := MD 2,
  209. )
  210. __ASSERT== __STW BIE, 0
  211. U M 0.0
  212. __ASSERT== __STW VKE, 0
  213. L MD 2
  214. __ASSERT== __ACCU 1, 0
  215. L DB1.DBB 12 // STATE
  216. __ASSERT== __ACCU 1, 0
  217. L DB1.DBD 18 // ATIME
  218. L DB1.DBD 14 // STIME
  219. -D
  220. UD DW#16#7FFFFFFF
  221. __ASSERT>= __ACCU 1, 200
  222. U DB1.DBX 0.0 // IN
  223. __ASSERT== __STW VKE, 0
  224. CALL SFC 46 // STOP CPU
  225. END_ORGANIZATION_BLOCK
  226. DATA_BLOCK DB 1
  227. SFB 5
  228. BEGIN
  229. END_DATA_BLOCK