109
|
1 |
PROGRAM MAIN_TEST
|
|
2 |
VAR
|
|
3 |
QX1 AT %QX1 : BOOL := 1;
|
|
4 |
QX2 AT %QX2 : BOOL := 0;
|
|
5 |
QX3 AT %QX3 : BOOL;
|
|
6 |
IX1 AT %IX1 : BOOL;
|
|
7 |
IX2 AT %IX2 : BOOL;
|
|
8 |
IX3 AT %IX3 : BOOL;
|
|
9 |
END_VAR
|
|
10 |
|
|
11 |
INITIAL_STEP GO:
|
|
12 |
END_STEP
|
|
13 |
|
|
14 |
TRANSITION FROM GO TO STEP1
|
|
15 |
:= IX1 = FALSE;
|
|
16 |
END_TRANSITION
|
|
17 |
|
|
18 |
STEP STEP1:
|
|
19 |
ONSTEP1(N);
|
|
20 |
END_STEP
|
|
21 |
|
|
22 |
ACTION ONSTEP1:
|
|
23 |
QX1 := TRUE;
|
|
24 |
QX2 := TRUE;
|
|
25 |
END_ACTION
|
|
26 |
|
|
27 |
TRANSITION FROM STEP1 TO STEP2
|
|
28 |
:= IX2 = TRUE;
|
|
29 |
END_TRANSITION
|
|
30 |
|
|
31 |
STEP STEP2:
|
|
32 |
INLINE1(P);
|
|
33 |
END_STEP
|
|
34 |
|
|
35 |
ACTION INLINE1:
|
|
36 |
QX1 := QX2 XOR QX1; QX2 := NOT QX2;
|
|
37 |
END_ACTION
|
|
38 |
|
|
39 |
TRANSITION FROM STEP2 TO A1
|
|
40 |
:= QX1 = FALSE AND QX2 = FALSE;
|
|
41 |
END_TRANSITION
|
|
42 |
|
|
43 |
STEP A1:
|
|
44 |
INLINE2(N);
|
|
45 |
END_STEP
|
|
46 |
|
|
47 |
ACTION INLINE2:
|
|
48 |
IX1 := TRUE;
|
|
49 |
END_ACTION
|
|
50 |
|
|
51 |
TRANSITION FROM A1 TO STEP2
|
|
52 |
:= IX1 = TRUE;
|
|
53 |
END_TRANSITION
|
|
54 |
|
|
55 |
TRANSITION FROM STEP2 TO (D1, D2, D3)
|
|
56 |
:= QX1 = TRUE AND QX2 = TRUE;
|
|
57 |
END_TRANSITION
|
|
58 |
|
|
59 |
STEP D1:
|
|
60 |
INLINE5(N);
|
|
61 |
END_STEP
|
|
62 |
|
|
63 |
ACTION INLINE5:
|
|
64 |
QX1 := FALSE;
|
|
65 |
END_ACTION
|
|
66 |
|
|
67 |
TRANSITION FROM D1 TO E1
|
|
68 |
:= NOT ( QX1 OR QX2 OR QX3 );
|
|
69 |
END_TRANSITION
|
|
70 |
|
|
71 |
STEP E1:
|
|
72 |
INLINE8(N);
|
|
73 |
END_STEP
|
|
74 |
|
|
75 |
ACTION INLINE8:
|
|
76 |
QX1 := TRUE;
|
|
77 |
END_ACTION
|
|
78 |
|
|
79 |
TRANSITION FROM (E1, E2, E3) TO GO
|
|
80 |
:= QX1 AND QX2 AND QX3;
|
|
81 |
END_TRANSITION
|
|
82 |
|
|
83 |
STEP D2:
|
|
84 |
INLINE6(N);
|
|
85 |
END_STEP
|
|
86 |
|
|
87 |
ACTION INLINE6:
|
|
88 |
QX2 := FALSE;
|
|
89 |
END_ACTION
|
|
90 |
|
|
91 |
TRANSITION FROM D2 TO E2
|
|
92 |
:= NOT ( QX1 OR QX2 OR QX3 );
|
|
93 |
END_TRANSITION
|
|
94 |
|
|
95 |
STEP E2:
|
|
96 |
INLINE9(N);
|
|
97 |
END_STEP
|
|
98 |
|
|
99 |
ACTION INLINE9:
|
|
100 |
QX2 := TRUE;
|
|
101 |
END_ACTION
|
|
102 |
|
|
103 |
STEP D3:
|
|
104 |
INLINE7(N);
|
|
105 |
END_STEP
|
|
106 |
|
|
107 |
ACTION INLINE7:
|
|
108 |
QX2 := FALSE;
|
|
109 |
END_ACTION
|
|
110 |
|
|
111 |
TRANSITION FROM D3 TO E3
|
|
112 |
:= NOT ( QX1 OR QX2 OR QX3 );
|
|
113 |
END_TRANSITION
|
|
114 |
|
|
115 |
STEP E3:
|
|
116 |
INLINE10(N);
|
|
117 |
END_STEP
|
|
118 |
|
|
119 |
ACTION INLINE10:
|
|
120 |
QX3 := TRUE;
|
|
121 |
END_ACTION
|
|
122 |
|
|
123 |
TRANSITION FROM STEP2 TO A3
|
|
124 |
:= QX1 = TRUE AND QX2 = FALSE;
|
|
125 |
END_TRANSITION
|
|
126 |
|
|
127 |
STEP A3:
|
|
128 |
INLINE4(N);
|
|
129 |
END_STEP
|
|
130 |
|
|
131 |
ACTION INLINE4:
|
|
132 |
IX1 := TRUE;
|
|
133 |
END_ACTION
|
|
134 |
|
|
135 |
TRANSITION FROM A3 TO STEP2
|
|
136 |
:= IX1 = TRUE;
|
|
137 |
END_TRANSITION
|
|
138 |
|
|
139 |
TRANSITION FROM STEP2 TO A2
|
|
140 |
:= QX1 = FALSE AND QX2 = TRUE;
|
|
141 |
END_TRANSITION
|
|
142 |
|
|
143 |
STEP A2:
|
|
144 |
INLINE3(N);
|
|
145 |
END_STEP
|
|
146 |
|
|
147 |
ACTION INLINE3:
|
|
148 |
IX1 := FALSE;
|
|
149 |
END_ACTION
|
|
150 |
|
|
151 |
TRANSITION FROM A2 TO STEP2
|
|
152 |
:= IX1 = FALSE;
|
|
153 |
END_TRANSITION
|
|
154 |
|
|
155 |
END_PROGRAM
|
|
156 |
|
|
157 |
|
|
158 |
CONFIGURATION STD_CONF
|
|
159 |
|
|
160 |
RESOURCE STD_RESSOURCE ON BEREMIZ
|
|
161 |
TASK STD_TASK(INTERVAL := t#100ms,PRIORITY := 0);
|
|
162 |
PROGRAM MAIN_INSTANCE : MAIN_TEST;
|
|
163 |
END_RESOURCE
|
|
164 |
END_CONFIGURATION
|