symbols.awl 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. FUNCTION_BLOCK "Function Block"
  2. VAR_INPUT
  3. INVAR : S5TIME;
  4. END_VAR
  5. VAR
  6. MULTI : "Function Block 2";
  7. END_VAR
  8. BEGIN
  9. CALL #MULTI (
  10. INP := 42,
  11. )
  12. END_FUNCTION_BLOCK
  13. FUNCTION_BLOCK "Function Block 2"
  14. VAR_INPUT
  15. INP : INT;
  16. END_VAR
  17. BEGIN
  18. L #INP
  19. __ASSERT== __ACCU 1, 42
  20. END_FUNCTION_BLOCK
  21. DATA_BLOCK "Data_1"
  22. STRUCT
  23. VAR0 : INT;
  24. END_STRUCT;
  25. BEGIN
  26. VAR0 := 123;
  27. END_DATA_BLOCK
  28. DATA_BLOCK "Instance DB"
  29. "Function Block"
  30. BEGIN
  31. END_DATA_BLOCK
  32. ORGANIZATION_BLOCK OB 1
  33. BEGIN
  34. // Test symbolic M access
  35. __STWRST
  36. U "sym_M_0.0"
  37. __ASSERT== __STW VKE, 0
  38. SET
  39. = M 0.0
  40. __STWRST
  41. U "sym_M_0.0"
  42. __ASSERT== __STW VKE, 1
  43. CLR
  44. = "sym_M_0.0"
  45. __STWRST
  46. U M 0.0
  47. __ASSERT== __STW VKE, 0
  48. // Test symbolic fully qualified access
  49. L "Data_1".VAR0
  50. __ASSERT== __ACCU 1, 123
  51. // Test symbolic FB call
  52. CALL "Function Block", "Instance DB" (
  53. INVAR := 100,
  54. )
  55. // Test symbolic timer/counter access
  56. CLR
  57. SI "symbolic timer"
  58. U "symbolic timer"
  59. = M 0.0
  60. CLR
  61. ZR "symbolic counter"
  62. U "symbolic counter"
  63. = M 0.0
  64. CALL SFC 46 // STOP CPU
  65. END_ORGANIZATION_BLOCK