insn_SV.awl 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. ORGANIZATION_BLOCK OB 1
  2. BEGIN
  3. // Start timer and let it expire
  4. __STWRST
  5. L 0
  6. SV T 10
  7. SET
  8. R T 10
  9. U T 10
  10. __ASSERT== __STW VKE, 0
  11. SET
  12. L W#16#0010
  13. SV T 10
  14. U T 10
  15. __ASSERT== __STW VKE, 1
  16. L T 10
  17. __ASSERT>= __ACCU 1, 5
  18. __SLEEP 101
  19. U T 10
  20. __ASSERT== __STW VKE, 0
  21. L T 10
  22. __ASSERT== __ACCU 1, 0
  23. // Start timer and reset VKE before it expires
  24. __STWRST
  25. L 0
  26. SV T 10
  27. SET
  28. R T 10
  29. U T 10
  30. __ASSERT== __STW VKE, 0
  31. SET
  32. L W#16#0010
  33. SV T 10
  34. U T 10
  35. __ASSERT== __STW VKE, 1
  36. L T 10
  37. __ASSERT>= __ACCU 1, 5
  38. CLR
  39. L W#16#0010
  40. SV T 10
  41. U T 10
  42. __ASSERT== __STW VKE, 1
  43. L T 10
  44. __ASSERT>= __ACCU 1, 5
  45. __SLEEP 101
  46. U T 10
  47. __ASSERT== __STW VKE, 0
  48. L T 10
  49. __ASSERT== __ACCU 1, 0
  50. // Reset signal
  51. __STWRST
  52. L 0
  53. SV T 10
  54. SET
  55. R T 10
  56. U T 10
  57. __ASSERT== __STW VKE, 0
  58. SET
  59. L W#16#0010
  60. SV T 10
  61. U T 10
  62. __ASSERT== __STW VKE, 1
  63. L T 10
  64. __ASSERT>= __ACCU 1, 5
  65. SET
  66. R T 10
  67. U T 10
  68. __ASSERT== __STW VKE, 0
  69. L T 10
  70. __ASSERT== __ACCU 1, 0
  71. __SLEEP 101
  72. U T 10
  73. __ASSERT== __STW VKE, 0
  74. L T 10
  75. __ASSERT== __ACCU 1, 0
  76. // Test timer parameter
  77. AUF DB 1
  78. L DBW 0
  79. __ASSERT== __ACCU 1, 24
  80. CALL FB 1, DB 1 (
  81. TIMER_VAR := T 42
  82. )
  83. CALL SFC 46 // STOP CPU
  84. END_ORGANIZATION_BLOCK
  85. FUNCTION_BLOCK FB 1
  86. VAR_INPUT
  87. TIMER_VAR : TIMER;
  88. END_VAR
  89. BEGIN
  90. L DIW 0
  91. __ASSERT== __ACCU 1, 42
  92. L #TIMER_VAR
  93. __ASSERT== __ACCU 1, 0
  94. U #TIMER_VAR
  95. __ASSERT== __STW VKE, 0
  96. SV #TIMER_VAR
  97. END_FUNCTION_BLOCK
  98. DATA_BLOCK DB 1
  99. FB 1
  100. BEGIN
  101. TIMER_VAR := T 24;
  102. END_DATA_BLOCK