1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
FUNCTION FC 1 : VOID
BEGIN
L W#16#1234
T MW 0
CALL FC 2
END_FUNCTION
FUNCTION FC 2 : VOID
BEGIN
L W#16#6789
T MW 0
L 10
T LB 0
END_FUNCTION
FUNCTION FC 3 : VOID
BEGIN
L 1
T LB 0
CALL FC 2
__ASSERT== LB 0, 1
END_FUNCTION
FUNCTION FC 4 : VOID
VAR_INPUT
INPVAR : INT
END_VAR
BEGIN
L #INPVAR
__ASSERT== __ACCU 1, 9976
END_FUNCTION
FUNCTION FC 5 : VOID
VAR_INPUT
INPVAR2 : INT
END_VAR
BEGIN
CALL FC 4 (
INPVAR := #INPVAR2, // This is a parameter
)
END_FUNCTION
ORGANIZATION_BLOCK OB 1
BEGIN
CALL FC 1
__ASSERT== MW 0, W#16#6789
L 0
T MW 0
__ASSERT== MW 0, 0
UC FC 1
__ASSERT== MW 0, W#16#6789
L 0
T MW 0
__ASSERT== MW 0, 0
SET
CC FC 1
__ASSERT== MW 0, W#16#6789
L 0
T MW 0
__ASSERT== MW 0, 0
CLR
CC FC 1
__ASSERT== MW 0, 0
// Test localdata stack
L 255
T LB 0
__ASSERT== LB 0, 255
CALL FC 3
__ASSERT== LB 0, 255
CALL FC 5 (
INPVAR2 := 9976,
)
END_ORGANIZATION_BLOCK
|