summaryrefslogtreecommitdiffstats
path: root/tests/udt.awl
blob: 1aa12ee018b7b0a697391bb118fc0b4ee2448acf (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
TYPE UDT 1
VERSION : 0.1
STRUCT
	VAR1_INT	: INT		:= 11;
	VAR2_DINT	: DINT		:= L#22;
	VAR3_DWORD	: DWORD;
	VAR4_REAL	: REAL;
	VAR5_BOOL	: BOOL		:= TRUE;
	VAR6_BOOL	: BOOL;
	VAR7_INT	: INT		:= 42;
	VAR8_UDT2	: UDT 2;
END_STRUCT;
END_TYPE


TYPE UDT 2
VERSION : 0.1
STRUCT
	VAR0_INT	: INT		:= 101;
	VAR1_BOOL	: BOOL;
	VAR2_BOOL	: BOOL		:= TRUE;
	VAR3_DINT	: DINT		:= L#102;
END_STRUCT;
END_TYPE


DATA_BLOCK DB 1
STRUCT
	DBVAR_UDT1	: UDT 1;
	DBVAR2		: INT;
END_STRUCT;
BEGIN
	DBVAR2		:= 99;
END_DATA_BLOCK


FUNCTION FC 1 : VOID
VAR_INPUT
	FCINVAR_UDT1	: UDT 1;
	FCINVAR_INT	: INT;
END_VAR
BEGIN
	L		#FCINVAR_INT
	__ASSERT==	__ACCU 1,	123
	NOP		0
END_FUNCTION


FUNCTION_BLOCK FB 1
VAR_INPUT
	FBINVAR_UDT1	: UDT 1;
END_VAR
BEGIN
	NOP		0
END_FUNCTION_BLOCK


DATA_BLOCK DB 2
	FB 1
BEGIN
END_DATA_BLOCK


ORGANIZATION_BLOCK OB 1
BEGIN
	// Check DB 1 initial values
	AUF		DB 1
	L		DBW 0	// DBVAR_UDT1.VAR1_INT
	__ASSERT==	__ACCU 1,	11
	L		DBD 2	// DBVAR_UDT1.VAR2_DINT
	__ASSERT==	__ACCU 1,	22
	L		DBD 6	// DBVAR_UDT1.VAR3_DWORD
	__ASSERT==	__ACCU 1,	0
	L		DBD 10	// DBVAR_UDT1.VAR4_REAL
	__ASSERT==	__ACCU 1,	0.0
	L		DBB 14	// DBVAR_UDT1.VAR5/6_BOOL
	__ASSERT==	__ACCU 1,	1
	L		DBB 15	// Reserved space after VAR6_BOOL
	__ASSERT==	__ACCU 1,	0
	L		DBW 16	// DBVAR_UDT1.VAR7_INT
	__ASSERT==	__ACCU 1,	42
	L		DBW 18	// DBVAR_UDT1.VAR8_UDT2.VAR0_INT
	__ASSERT==	__ACCU 1,	101
	L		DBB 20	// DBVAR_UDT1.VAR8_UDT2.VAR1/2_BOOL
	__ASSERT==	__ACCU 1,	2
	L		DBB 21	// Reserved space after VAR2_BOOL
	__ASSERT==	__ACCU 1,	0
	L		DBD 22	// DBVAR_UDT1.VAR8_UDT2.VAR3_DINT
	__ASSERT==	__ACCU 1,	102
	L		DBW 26	// DBVAR2
	__ASSERT==	__ACCU 1,	99


	// Check DB 2 initial values
	AUF		DB 2
	L		DBW 0	// FBINVAR_UDT1.VAR1_INT
	__ASSERT==	__ACCU 1,	11
	L		DBD 2	// FBINVAR_UDT1.VAR2_DINT
	__ASSERT==	__ACCU 1,	22


//	CALL FC 1 (
//		FCINVAR_INT	:= 123,
//	)


	CALL SFC 46 // STOP CPU
END_ORGANIZATION_BLOCK
bues.ch cgit interface