-
Notifications
You must be signed in to change notification settings - Fork 0
/
S7.insert.xml
443 lines (382 loc) · 16.4 KB
/
S7.insert.xml
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
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
<?xml version="1.0" encoding="ISO-8859-1"?>
<menu name="S7">
<!-- S7.insert.xml V1.0, by Thorsten Willert
thorsten.willert [ at ] gmx.de
http://thorsten-willert.de
-->
<menu name="Bitverknüpfung">
<item name="U (UND)">U |</item>
<item name="UN (UND-NICHT)">UN |</item>
<item name="O (ODER)">O |</item>
<item name="ON (ODER-NICHT)">ON |</item>
<item name="X (EXCLUSIV-ODER)">X |</item>
<item name="XN (EXCLUSIV-ODER-NICHT)">XN |</item>
<item name="S (Setzen)">S |</item>
<item name="R (Rücksetzen)">R |</item>
<menu name="mit Anzeigebits">
<item name="U (UND)" type="xinsert_script">{%Operand "Operand" "==0" ">0" ">0" "<>0" "<=0" ">=0" "UO" "OS" "BIE" "OV"}U {$=Operand}\n</item>
<item name="UN (UND-NICHT)" type="xinsert_script">{%Operand "Operand" "==0" ">0" ">0" "<>0" "<=0" ">=0" "UO" "OS" "BIE" "OV"}UN {$=Operand}\n</item>
<item name="O (ODER)" type="xinsert_script">{%Operand "Operand" "==0" ">0" ">0" "<>0" "<=0" ">=0" "UO" "OS" "BIE" "OV"}O {$=Operand}\n</item>
<item name="ON (ODER-NICHT)" type="xinsert_script">{%Operand "Operand" "==0" ">0" ">0" "<>0" "<=0" ">=0" "UO" "OS" "BIE" "OV"}ON {$=Operand}\n</item>
<item name="X (EXCLUSIV-ODER)" type="xinsert_script">{%Operand "Operand" "==0" ">0" ">0" "<>0" "<=0" ">=0" "UO" "OS" "BIE" "OV"}X {$=Operand}\n</item>
<item name="XN (EXCLUSIV-ODER-NICHT)" type="xinsert_script">{%Operand "Operand" "==0" ">0" ">0" "<>0" "<=0" ">=0" "UO" "OS" "BIE" "OV"}XN {$=Operand}\n</item>
</menu>
<menu name="Flanken Operationen">
<item name="FP (Steigende Flanke)">FP |</item>
<item name="FN (Fallende Flanke)">FN |</item>
</menu>
<menu name="VKE Operationen">
<item name="CLR (Setzt VKE auf 0)">CLR\n</item>
<item name="SET (Setzt VKE auf 1)">SET\n</item>
<item name="NOT (Negiert das VKE)">NOT\n</item>
<item name="SAVE (Rettet das VKE in das BIE)">SAVE\n</item>
</menu>
</menu>
<menu name="Vergleicher">
<menu name="I (16 Bit Integer)">
<item name="==I (Akku2-L=Akku1-L)">==I\n</item>
<item name="<>I (Akku2-L<>Akku1-L)"><>I\n</item>
<item name="<I (Akku2-L<Akku1-L)"><I\n</item>
<item name="<=I (Akku2-L<=Akku1-L)"><=I\n</item>
<item name=">I (Akku2-L>Akku1-L)">>I\n</item>
<item name=">=I (Akku2-L=Akku1-L)">>=I\n</item>
</menu>
<menu name="D (32 Bit Integer)">
<item name="==D (Akku2-L=Akku1-L)">==D\n</item>
<item name="<>D (Akku2-L<>Akku1-L)"><>D\n</item>
<item name="<D (Akku2-L<Akku1-L)"><D\n</item>
<item name="<=D (Akku2-L<=Akku1-L)"><=D\n</item>
<item name=">D (Akku2-L>Akku1-L)">>D\n</item>
<item name=">=D (Akku2-L=Akku1-L)">>=D\n</item>
</menu>
<menu name="R (32 Bit)">
<item name="==R (Akku2-L=Akku1-L)">==R\n</item>
<item name="<>R (Akku2-L<>Akku1-L)"><>R\n</item>
<item name="<R (Akku2-L<Akku1-L)"><R\n</item>
<item name="<=R (Akku2-L<=Akku1-L)"><=R\n</item>
<item name=">R (Akku2-L>Akku1-L)">>R\n</item>
<item name=">=R (Akku2-L=Akku1-L)">>=R\n</item>
</menu>
</menu>
<menu name="Umwandler">
<item name="BTI (BCD To Integer)">BTI\n</item>
<item name="BTD (BCD To Doubleinteger)">BTD\n</item>
<item name="DTR (Doubleinteger To Real)">DTR\n</item>
<item name="ITD (Integer To Doubleinteger)">ITD\n</item>
<item name="ITB (Integer To BCD +-999)">ITB\n</item>
<item name="DTB (Doubleinteger to BCD +- 9999999)">DTB\n</item>
<item name="RND (Real nach 32-Bit-Integer)">RND\n</item>
<item name="RND- (Real nach 32-Bit-Integer, gerundet)">RND-\n</item>
<item name="RND+ (Real nach 32-Bit-Integer, gerundet)">RND+\n</item>
<item name="TRUNC (Real nach 32-Bit-Integer, ohne Nachkomma)">TRUNC\n</item>
</menu>
<menu name="Zähler">
<item name="ZV (Zähle vorwärts)">ZV |</item>
<item name="RV (Zähle rückwärts)">ZR |</item>
<item name="FR (Freigabe)">FR |</item>
<item name="S (Setzen)">FR |</item>
<item name="R (RĂźcksetzen)">R |</item>
</menu>
<menu name="DBs">
<item name="AUF (Aufschlagen eines (Instanz-)Datenbausteins)">AUF |</item>
<item name="TDB (Tausche Datenbausteine)">TDB\n</item>
<item name="L DBNO (Lade Nummer des DBs)">L DBNO\n</item>
<item name="L DINO (Lade Nummer des Instanz-DBs)">L DINO\n</item>
<item name="L DBLG (Lade Länge des DBs)">L DBLG\n</item>
<item name="L DILG (Lade Länge des Instanz-DBs)">L DILG\n</item>
</menu>
<menu name="Sprünge">
<item name="SPA (Springe absolut)">SPA |</item>
<item name="SPB (Springe bedingt bei VKE=1)">SPB |</item>
<item name="SPBN (Springe bedingt bei VKE=0)">SPBN |</item>
<item name="SPBB (Springe bedingt bei VKE=1, VKE nach BIE)">SPBB |</item>
<item name="SPBNB (Springe bedingt bei VKE=0, VKE nach BIE)">SPBNB |</item>
<item name="SPBI (Springe bedingt bei BIE=1)">SPBI |</item>
<item name="SPBIN (Springe bedingt bei BIE=0)">SPBIN |</item>
<item name="SPBB (Springe bedingt bei VKE=1, VKE nach BIE)">SPBB |</item>
<item name="SPO (Springe bedingt bei OV=1 speichernd)">SPO |</item>
<item name="SPS (Springe bedingt bei OS=1 speichernd)">SPS |</item>
<item name="SPU (Springe bei A1=1 und A0=1)">SPU |</item>
<item name="SPZ (Springe bei Ergebnis=0, A1=0 und A0=0)">SPZ |</item>
<item name="SPP (Springe bei Ergebnis>0, A1=1 und A0=0)">SPP |</item>
<item name="SPM (Springe bei Ergebnis<0, A1=0 und A0=1)">SPM |</item>
<item name="SPN (Springe bei Ergebnis<>0, A1=1 u. A0=0 o. A1=0 u. A0=1)">SPN |</item>
<item name="SPMZ (Springe bei Ergebnis<=0, A1=0 u. A0=1 o. A1=0 u. A0=0)">SPMZ |</item>
<item name="SPPZ (Springe bei Ergebnis>=0, A1=1 u. A0=0 o. A1=0 u. A0=0)">SPPZ |</item>
<item name="SPL (Sprungverteiler)">SPL |</item>
<item name="LOOP (Dekrementiere Akku1-L und springe bei Akku1-L<>0)">LOOP |</item>
</menu>
<menu name="Arithmetische Operationen">
<menu name="Festpunktarithmetik (16 Bit)">
<item name="+I (Akku1-L=Akku1-L+Akku2-L)">+I\n</item>
<item name="-I (Akku1-L=Akku2-L-Akku1-L)">-I\n</item>
<item name="*I (Akku1=Akku2-L*Akku1-L)">*I\n</item>
<item name="/I (Akku1-L=Akku2-L/Akku1-L ; Akku2-H=Rest)">/I\n</item>
</menu>
<menu name="Festpunktarithmetik (32 Bit)">
<item name="+D (Akku1=Akku2+Akku1)">+D\n</item>
<item name="-D (Akku1=Akku2-Akku1)">-D\n</item>
<item name="*D (Akku1=Akku2*Akku1)">*D\n</item>
<item name="/D (Akku1=Akku2/Akku1)">/D\n</item>
<item name="MOD (Akku1=Rest von Akku2/Akku1)">MOD\n</item>
</menu>
<menu name="Gleitpunktarithmetik (32 Bit)">
<item name="+R (Akku1=Akku2+Akku1)">+R\n</item>
<item name="-R (Akku1=Akku2-Akku1)">-R\n</item>
<item name="*R (Akku1=Akku2*Akku1)">*R\n</item>
<item name="/R (Akku1=Akku2/Akku1)">/R\n</item>
<item name="NEGR (Negiere Akku1)">NEGR\n</item>
<item name="ABS (Betrag von Akku1)">ABS\n</item>
<item name="SQRT (Quadratwurzel von Akku1)">SQRT\n</item>
<item name="SQR (Quadriere Akku1)">SQR\n</item>
<item name="LN (Nat. Logarithmus von Akku1)">LN\n</item>
<item name="EXP (Exponentialwert Akku1)">EXP\n</item>
<item name="SIN (Sinus)">SIN\n</item>
<item name="ASIN (Arcussinus)">ASIN\n</item>
<item name="COS (Cosinus)">COS\n</item>
<item name="ACOS (Arcuscosinus)">ACOS\n</item>
<item name="TAN (Tangens)">TAN\n</item>
<item name="ATAN (Arcustangens)">ATAN\n</item>
</menu>
<menu name="Adressregister">
<item name="+AR1">+AR1</item>
<item name="+AR2">+AR2</item>
</menu>
<menu name="Komplementbildung">
<item name="INVI (1er-Komplement Akku1-L)">INVI\n</item>
<item name="INVD (1er-Komplement Akku1)">INVD\n</item>
<item name="NEGI (2er-Komplement Akku1-L)">NEGI\n</item>
<item name="NEGD (2er-Komplement Akku1)">NEGD\n</item>
</menu>
</menu>
<menu name="Laden/Transferieren">
<item name="L (Lade)">L |</item>
<item name="LC (Lade BCD-Codiert)">LC |</item>
<item name="T (Transfer)">T |</item>
<menu name="Adressregister">
<item name="LAR1 (Lade Adressregister 1)">LAR1\n</item>
<item name="LAR2 (Lade Adressregister 2)">LAR2\n</item>
<item name="TAR (Tausche Adressregister 1 und 2)">TAR\n</item>
<item name="TAR1 (Lade Adressregister 1 in Akku)">TAR1\n</item>
<item name="TAR2 (Lade Adressregister 2 in Akku)">TAR2\n</item>
</menu>
<menu name="Statuswort">
<item name="L STW (Lade Statuswort Akku 1)">L STW\n</item>
<item name="T STW (Transferiere Akku 1 in Statuswort)">T STW\n</item>
</menu>
<menu name="Datenbaustein">
<item name="L DBNO (Lade Nummer des DBs)">L DBNO\n</item>
<item name="L DINO (Lade Nummer des Instanz-DBs)">L DINO\n</item>
<item name="L DBLG (Lade Länge des DBs)">L DBLG\n</item>
<item name="L DILG (Lade Länge des Instanz-DBs)">L DILG\n</item>
</menu>
</menu>
<menu name="Programmsteuerung">
<item name="CALL (Unbedingter Aufruf mit ParameterĂźbergabe)">CALL |</item>
<item name="CALL FC (FC Aufruf)">CALL FC | (\n)</item>
<item name="CALL FB (FB Aufruf)">CALL FB | (\n)</item>
<item name="CALL FB (FB Aufruf + Instanz-DB)">CALL FC |, DB (\n)</item>
<item name="UC (Unbedingter Aufruf ohne ParameterĂźbergabe)">UC |</item>
<item name="CC (Bedingter Aufruf ohne ParameterĂźbergabe)">CC |</item>
<item name="AUF (Aufschlagen eines (Instanz-)Datenbausteins)">AUF |</item>
<item name="BE (Beende Baustein)">BE\n</item>
<item name="BEA (Beende Baustein absolut)">BEA\n</item>
<item name="BED (Beende Baustein bedingt)">BEB\n</item>
<item name="TDB (Tausche Datenbausteine)">TDB\n</item>
<menu name="MCR">
<item name="MCR( (Ăffnen einer MCR-Zone)">MCR(\n</item>
<item name=")MCR (SchlieĂen einer MCR-Zone)">)MCR\n</item>
<item name="MCRA (Aktiviere MCR)">)MCRA\n</item>
<item name="MCRD (Deaktiviere MCR)">)MCRD\n</item>
</menu>
</menu>
<menu name="Schiebeoperationen">
<item name="SLW (Schiebe Akku1-L n. links)">SLW |</item>
<item name="SLD (Schiebe Akku1 n. links)">SLD |</item>
<item name="SRW (Schiebe Akku1-L n. rechts)">SRW |</item>
<item name="SRD (Schiebe Akku1 n. rechts)">SRD |</item>
<item name="SSI (Schiebe Akku1-L n. rechts)">SSI |</item>
<item name="SSD (Schiebe Akku1 n. rechts)">SSD |</item>
</menu>
<menu name="Rotieroperationen">
<item name="RLD (Rotiere Akku1 n. links)">RLD |</item>
<item name="RRD (Rotiere Akku1 n. rechts)">RRD |</item>
<item name="RLDA (Rotiere Akku1-L n. links Ăźber A1)">RLDA</item>
<item name="RRDA (Rotiere Akku1-L n. rechts Ăźber A1)">RRDA</item>
</menu>
<menu name="Zeiten">
<item name="SI (Impuls)">SI |</item>
<item name="SV (Verlängerter Impuls)">SV |</item>
<item name="SE (EinschaltverzĂśgerter Impuls)">SE |</item>
<item name="SS (Speichernde EinschaltverzĂśgerung)">SI |</item>
<item name="SA (AusschaltverzĂśgerung)">SA |</item>
<item name="FR (Freigabe)">FR |</item>
<item name="R (RĂźcksetzen)">R |</item>
</menu>
<menu name="Wortverknüpfungen">
<item name="UW (UND Wort)">U |</item>
<item name="OW (ODER Wort)">UN |</item>
<item name="XOW (EXCLUSIV-ODER Wort)">O |</item>
<item name="UD (UND Doppelwort)">ON |</item>
<item name="OD (ODER Doppelwort)">X |</item>
<item name="XOD (EXCLUSIV-ODER Doppelwort)">XN |</item>
</menu>
<menu name="Akkumulator-Operationen">
<item name="TAW (Umkehr der Reihenfolge der Bytes in Akku1-L)">TAW\n</item>
<item name="TAD (Umkehr der Reihenfolge der Bytes in Akku1)">TAD\n</item>
<item name="TAK (Tauscht Akku1 und 2)">TAK\n</item>
<item name="PUSH (Akku1 nach Akku2)">PUSH\n</item>
<item name="POP (Akku2 nach Akku1)">POP\n</item>
<item name="INC 0...255 (Incrementiere Akku1-LL)">INC |</item>
<item name="DEC 0...255 (Decrementiere Akku1-LL)">DEC |</item>
</menu>
<menu name="Operanden">
<menu name="Byte">
<item name="EB (Eingangsbyte)">EB |</item>
<item name="PEB (Perepherie Eingangsbyte)">PEB |</item>
<item name="AB (Ausgangsbyte)">AB |</item>
<item name="PAB (Perepherie Ausgangsbyte)">PAB |</item>
<item name="MB (Merkerbyte)">MB |</item>
<item name="LB (Lokaldatenbyte)">LB |</item>
<item name="DBB (Datenbyte)">DBB |</item>
<item name="DIB (Instanz-Datenbyte)">DIB |</item>
<item name="g[AR1,m] (registerind. bereichsintern)">g[AR1,|]</item>
<item name="g[AR2,m] (registerind. bereichsintern)">g[AR2,|]</item>
<item name="B[AR1,m] (bereichsübergreifend)">B[AR1,|]</item>
<item name="B[AR2,m] (bereichsübergreifend)">B[AR2,|]</item>
</menu>
<menu name="Wort">
<item name="EW (Eingangswort)">EW |</item>
<item name="PEW (Perepherie Eingangswort)">PEW |</item>
<item name="AW (Ausgangswort)">AW |</item>
<item name="PAW (Perepherie Ausgangsbyte)">PAW |</item>
<item name="MW (Merkerwort)">MW |</item>
<item name="LW (Lokaldatenwort)">LW |</item>
<item name="DBW (Datenwort)">DBW |</item>
<item name="DIW (Instanz-Datenwort)">DIW |</item>
<item name="h[AR1,m] (registerind. bereichsintern)">h[AR1,|]</item>
<item name="h[AR2,m] (registerind. bereichsintern)">h[AR2,|]</item>
<item name="W[AR1,m] (bereichsübergreifend)">W[AR1,|]</item>
<item name="W[AR2,m] (bereichsübergreifend)">W[AR2,|]</item>
</menu>
<menu name="Doppelwort">
<item name="ED (Eingangsdoppelwort)">ED |</item>
<item name="PED (Perepherie Eingangsdoppelwort)">PED |</item>
<item name="AD (Ausgangsdoppelwort)">AD |</item>
<item name="PAD (Perepherie Ausgangsdoppelwort)">PAD |</item>
<item name="MD (Merkerdoppelwort)">MD |</item>
<item name="LD (Lokaldatendoppelwort)">LD |</item>
<item name="DBD (Datendoppelwort)">DBD |</item>
<item name="DID (Instanz-Datendoppelwort)">DID |</item>
<item name="i[AR1,m] (registerind. bereichsintern)">i[AR1,|]</item>
<item name="i[AR2,m] (registerind. bereichsintern)">i[AR2,|]</item>
<item name="D[AR1,m] (bereichsübergreifend)">D[AR1,|]</item>
<item name="D[AR2,m] (bereichsübergreifend)">D[AR2,|]</item>
</menu>
<menu name="Konstanten">
<item name="2# (16/32-Bit-Binär)">2#|</item>
<item name="B#8# (8-Bit-Hexadezimal)">B#8#|</item>
<item name="W#16# (16-Bit-Hexadezimal)">W#16#|</item>
<item name="DW#16# (32-Bit-Hexadezimal)">DW#16#|</item>
<item name="D# (IEC-Datum)">D#|</item>
<item name="S5T# (S7-Zeit)">S5T#|</item>
<item name="TOD# (32-Bit-IEC-Tageszeit)">TOD#|</item>
<item name="C# (16-Bit-Zählerkonstante)">C#|</item>
<item name="P# (Bitpointer)">P#|</item>
<item name="L# (32-Bit-Ganzzahk)">L#|</item>
</menu>
<item name="AR1 (Adressregister 1)">AR1</item>
<item name="AR2 (Adressregister 2)">AR2</item>
</menu>
<menu name="Programmstruktur">
<item name="Netzwerk" type="xinsert_script">{%title "TITLE:"}NETWORK\nTITLE\t= {$=title}\n</item>
<menu name="Bausteine">
<item name="OB" type="xinsert_script">{%titel "TITLE:"}ORGANIZATION_BLOCK OB
TITLE = {$=titel}
KNOW_HOW_PROTECTED
AUTHOR :
FAMILY :
NAME :
VERSION :
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR_IN_OUT
END_VAR
VAR
END_VAR
VAR_TEMP
END_VAR
BEGIN
NETWORK
TITLE =
END_ORGANIZATION_BLOCK</item>
<item name="FB" type="xinsert_script">{%titel "TITLE:"}FUNCTION_BLOCK FB
TITLE = {$=titel}
KNOW_HOW_PROTECTED
AUTHOR :
FAMILY :
NAME :
VERSION :
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR_IN_OUT
END_VAR
VAR
END_VAR
VAR_TEMP
END_VAR
BEGIN
NETWORK
TITLE =
END_FUNCTION_BLOCK</item>
<item name="FC" type="xinsert_script">{%titel "TITLE:"}FUNCTION FC 0 : VOID
TITLE = {$=titel}
KNOW_HOW_PROTECTED
AUTHOR :
FAMILY :
NAME :
VERSION :
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR_IN_OUT
END_VAR
VAR
END_VAR
VAR_TEMP
END_VAR
BEGIN
NETWORK
TITLE =
END_FUNCTION</item>
<item name="DB" type="xinsert_script">{%titel "TITLE:"}DATA_BLOCK DB
TITLE = {$=titel}
KNOW_HOW_PROTECTED
AUTHOR :
FAMILY :
NAME :
VERSION :
UNLINKED
READ_ONLY
BEGIN
END_DATA_BLOCK</item>
</menu>
<menu name="Variablendeklaration">
<item name="Eingangsparameter">VAR_INPUT\n\t\nEND_VAR</item>
<item name="Ausgangsparameter">VAR_OUTPUT\n\t\nEND_VAR</item>
<item name="Durchgangsparameter">VAR_IN_OUT\n\t\nEND_VAR</item>
<item name="Statische Variablen">VAR\n\t\nEND_VAR</item>
<item name="Temporäre Variablen">VAR_TEMP\n\t\nEND_VAR</item>
<item name="UDT">TYPE UDT |
STRUCT
END_STRUCT;
END_TYPE</item>
<item name="STRUCT">STRUCT\n\t\nEND_STRUCT;\n</item>
</menu>
</menu>
</menu>