summaryrefslogtreecommitdiffstats
path: root/tests/DB.awl
blob: 0bc21c2ad60721afab958b8f1acf5513b103acfb (plain)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
ORGANIZATION_BLOCK OB 100
BEGIN
	// Check initial DB 1 values
	AUF		DB 1
	L		DBW 0
	__ASSERT==	__ACCU 1,	1337
	L		DBD 2
	__ASSERT==	__ACCU 1,	DW#16#DEADBEEF
	L		DBW 6
	__ASSERT==	__ACCU 1,	W#16#0102
	L		DBB 8
	__ASSERT==	__ACCU 1,	3
	L		DBB 9
	__ASSERT==	__ACCU 1,	0
	L		DBW 10
	__ASSERT==	__ACCU 1,	42

	// Check initial DB 2 values
	AUF		DB 2
	L		DBW 0
	__ASSERT==	__ACCU 1,	123
	L		DBW 2
	__ASSERT==	__ACCU 1,	456
	L		DBB 4
	__ASSERT==	__ACCU 1,	1
	L		DBB 5
	__ASSERT==	__ACCU 1,	0
	L		DBD 6
	__ASSERT==	__ACCU 1,	DW#16#77777777

	SET
	=		M 0.0
END_ORGANIZATION_BLOCK



ORGANIZATION_BLOCK OB 1
BEGIN
	// OB 100 execution sanity check
	__ASSERT==	M 0.0,		1

	// Modify the DB 1
	AUF		DB 1
	L		9876
	T		DBW 6
	L		5432
	T		DBW 10
	CLR
	=		DBX 8.0
	SET
	=		DBX 8.2

	// Check the DB 1 values
	L		DBW 0
	__ASSERT==	__ACCU 1,	1337
	L		DBD 2
	__ASSERT==	__ACCU 1,	DW#16#DEADBEEF
	L		DBW 6
	__ASSERT==	__ACCU 1,	9876
	L		DBB 8
	__ASSERT==	__ACCU 1,	6
	L		DBB 9
	__ASSERT==	__ACCU 1,	0
	L		DBW 10
	__ASSERT==	__ACCU 1,	5432


	// FB 1 call test
	CLR
	=		M 18.0
	CALL		FB 1, DB 2 (
		INPUT_VAR	:= 8877,
		OUTPUT_VAR	:= MW 16,
		INOUT_VAR	:= M 18.0
	)
	__ASSERT==	MW 16,		4433
	__ASSERT==	M 18.0,		1


	// FC 1 call test
	L		1616
	T		MW 16
	L		2020
	T		MW 20
	CALL		FC 1 (
		INPUT_WORD	:= MW 16,
		OUTPUT_BOOL0	:= M 18.0,
		OUTPUT_BOOL1	:= M 18.1,
		INOUT_INT	:= MW 20
	)
	__ASSERT==	M 18.0,		1
	__ASSERT==	M 18.1,		0
END_ORGANIZATION_BLOCK



FUNCTION FC 1: VOID
	VAR_INPUT
		INPUT_WORD	: WORD
	END_VAR
	VAR_OUTPUT
		OUTPUT_BOOL0	: BOOL
		OUTPUT_BOOL1	: BOOL
	END_VAR
	VAR_IN_OUT
		INOUT_INT	: INT
	END_VAR
	VAR_TEMP
		TEMP0		: INT
		TEMP1		: BOOL
		TEMP2		: INT
	END_VAR
BEGIN
	L		#INPUT_WORD
	__ASSERT==	__ACCU 1,	1616

	L		#INOUT_INT
	__ASSERT==	__ACCU 1,	2020

	SET
	=		#OUTPUT_BOOL0
	CLR
	=		#OUTPUT_BOOL1

	L		4343
	T		#TEMP0
	SET
	=		#TEMP1
	L		6565
	T		#TEMP2
	__ASSERT==	LW 0,	4343
	__ASSERT==	L 2.0,	1
	__ASSERT==	LW 4,	6565
END_FUNCTION



FUNCTION_BLOCK FB 1
	VAR_INPUT
		INPUT_VAR	: INT
	END_VAR
	VAR_OUTPUT
		OUTPUT_VAR	: INT
	END_VAR
	VAR_IN_OUT
		INOUT_VAR	: BOOL
	END_VAR
	VAR
		STAT_VAR	: DWORD
	END_VAR
BEGIN
	L		#INPUT_VAR
	__ASSERT==	__ACCU 1,	8877

	L		4433
	T		#OUTPUT_VAR

	U		#INOUT_VAR
	__ASSERT==	__STW VKE,	0
	SET
	=		#INOUT_VAR

	L		#STAT_VAR
	__ASSERT==	__ACCU 1,	DW#16#77777777
END_FUNCTION_BLOCK



DATA_BLOCK DB 1
TITLE = global DB
STRUCT
	VARIABLE0	: INT
	VARIABLE1	: DWORD
	VARIABLE2	: WORD
	VARIABLE3	: BOOL
	VARIABLE4	: BOOL
	VARIABLE5	: BOOL
	VARIABLE6	: INT
END_STRUCT
BEGIN
	VARIABLE0	:= 1337
	VARIABLE1	:= DW#16#DEADBEEF
	VARIABLE2	:= B#(1, 2)
	VARIABLE3	:= True
	VARIABLE4	:= True
	VARIABLE5	:= False
	VARIABLE6	:= 42
END_DATA_BLOCK



DATA_BLOCK DB 2
TITLE = instance DB for FB 1
FB 1
BEGIN
	INPUT_VAR	:= 123
	OUTPUT_VAR	:= 456
	INOUT_VAR	:= True
	STAT_VAR	:= DW#16#77777777
END_DATA_BLOCK
bues.ch cgit interface