source: trunk/Cosy/aposs/FACT.exp@ 20046

Last change on this file since 20046 was 12614, checked in by tbretz, 13 years ago
File size: 105.9 KB
Line 
1
2
3(* @PATH := '\/Kommunikation' *)
4(* @SYMFILEFLAGS := '2048' *)
5PROGRAM Ethernet
6
7VAR
8 SockadrListen :SOCKADDRESS;
9 SockadrKomm :SOCKADDRESS;
10 SockadrKommSize :DINT;
11
12 fdsFdSet :SOCKET_FD_SET;
13 fdsTime :SOCKET_TIMEVAL;
14
15 CallCreate: DINT;
16 CallBind: DINT;
17 RC_SysSockBind: BOOL;
18 CallCloseAfterBind: DINT;
19 CallListen: DINT;
20 RC_SysSockListen: BOOL;
21 CallCloseAfterListen: DINT;
22 CallSelectForAccept: DINT;
23 RC_SysSockSelectForAccept: DINT;
24 CallCloseAfterSelectForAccept: DINT;
25 CallAccept: DINT;
26 CallSelectForReceive: DINT;
27 RC_SysSockSelectForReceive: DINT;
28 CallCloseAfterSelectForReceive: DINT;
29 RC_SysSockRecv: DINT;
30 CallCloseAfterRecv: DINT;
31 Empfangszaehler :DINT;
32 CallSelectForSend: DINT;
33 RC_SysSockSelectForSend: DINT;
34 CallCloseAfterSelectForSend: DINT;
35 RC_Send1: DINT;
36 RC_Send2: DINT;
37 Sendezaehler: DINT;
38 SendezaehlerZyklisch: DINT;
39 CallCloseAfterSend: DINT;
40END_VAR
41
42
43(* @END_DECLARATION := '0' *)
44SockKomm;
45IF ListenSock=0 THEN
46
47 CallCreate := CallCreate + 1;
48
49 ListenSock:=SysSockCreate(diAddressFamily:=SOCKET_AF_INET, diType:=SOCKET_STREAM, diProtocol:=SOCKET_IPPROTO_IP);
50
51 IF ListenSock>0 THEN
52 SockadrListen.sin_addr :=0;
53 SockadrListen.sin_family :=2;
54 SockadrListen.sin_port :=SysSockHtons(Socket_In_Port);
55
56 CallBind := CallBind + 1;
57
58 RC_SysSockBind := SysSockBind(diSocket:=ListenSock, pSockAddr:=ADR(SockadrListen), diSockAddrSize:=SIZEOF(SockadrListen));
59
60 IF NOT RC_SysSockBind THEN
61 CallCloseAfterBind := CallCloseAfterBind + 1;
62
63 SysSockClose(diSocket:=ListenSock);
64 ListenSock := 0;
65 ELSE
66 CallListen := CallListen + 1;
67
68 RC_SysSockListen := SysSockListen(diSocket:=ListenSock, diMaxConnections:=1);
69
70 IF NOT RC_SysSockListen THEN
71 CallCloseAfterListen := CallCloseAfterListen + 1;
72
73 SysSockClose(diSocket:=ListenSock);
74 ListenSock := 0;
75 END_IF
76 END_IF
77 END_IF
78END_IF
79
80(* Auf Verbi ndung warten *)
81IF ListenSock>0 AND SockKomm=0 THEN
82 CallSelectForAccept := CallSelectForAccept + 1;
83
84 fdsFdSet.fd_count :=1;
85 fdsFdSet.fd_array[0] :=ListenSock;
86 fdsTime.tv_sec :=0;
87 fdsTime.tv_usec :=0;
88
89 RC_SysSockSelectForAccept:=SysSockSelect(diWidth:=SIZEOF(fdsFdSet), fdRead:=ADR(fdsFdSet), fdWrite:=0, fdExcept:=0, ptvTimeout:=ADR(fdsTime));
90 (* ERROR *)
91 IF RC_SysSockSelectForAccept=-1 THEN
92 CallCloseAfterSelectForAccept := CallCloseAfterSelectForAccept + 1;
93
94 SysSockClose(ListenSock);
95 ListenSock:=0;
96 END_IF
97 (* SUCCESS *)
98 IF RC_SysSockSelectForAccept=1 THEN
99 CallAccept := CallAccept + 1;
100
101 SockadrKommSize := SIZEOF(SockadrKomm);
102 SockKomm:=SysSockAccept(diSocket:=ListenSock, pSockAddr:=ADR(SockadrKomm), piSockAddrSize:=ADR(SockadrKommSize));
103
104 X_PC_ForcePDO3 := TRUE;
105 Z_PC_ForcePDO3 := TRUE;
106 END_IF
107 (* TIME-OUT*)
108END_IF
109
110(* Daten empfangen *)
111IF SockKomm>0 THEN
112 fdsFdSet.fd_count :=1;
113 fdsFdSet.fd_array[0] :=SockKomm;
114 fdsTime.tv_sec :=0;
115 fdsTime.tv_usec :=0;
116
117 CallSelectForReceive := CallSelectForReceive + 1;
118
119 RC_SysSockSelectForReceive:=SysSockSelect(diWidth:=SIZEOF(fdsFdSet), fdRead:=ADR(fdsFdSet), fdWrite:=0, fdExcept:=0, ptvTimeout:=ADR(fdsTime));
120 (* ERROR *)
121 IF RC_SysSockSelectForReceive=-1 THEN
122 CallCloseAfterSelectForReceive := CallCloseAfterSelectForReceive + 1;
123
124 SysSockClose(diSocket:=SockKomm);
125 SockKomm := 0;
126 END_IF
127 (* SUCCESS *)
128 IF RC_SysSockSelectForReceive=1 THEN
129 RC_SysSockRecv:=SysSockRecv(diSocket:=SockKomm, pbyBuffer:=ADR(ByteBufferRX), diBufferSize:=11, diFlags:=0);
130 IF RC_SysSockRecv <> 11 THEN
131 CallCloseAfterRecv := CallCloseAfterRecv + 1;
132 SysSockClose(diSocket:=SockKomm);
133 SockKomm := 0;
134 ELSE
135 NeueDatenDa:=TRUE;
136 Empfangszaehler:=Empfangszaehler+1;
137 END_IF
138 END_IF
139 (* TIME-OUT: No data pending to be received *)
140END_IF
141
142IF SockKomm>0 THEN
143 fdsFdSet.fd_count :=1;
144 fdsFdSet.fd_array[0] :=SockKomm;
145 fdsTime.tv_sec :=0;
146 fdsTime.tv_usec :=0;
147
148 CallSelectForSend := CallSelectForSend + 1;
149
150 RC_SysSockSelectForSend:=SysSockSelect(diWidth:=SIZEOF(fdsFdSet), fdRead:=0, fdWrite:=ADR(fdsFdSet), fdExcept:=0, ptvTimeout:=ADR(fdsTime));
151 (* ERROR *)
152 IF RC_SysSockSelectForSend=-1 THEN
153 CallCloseAfterSelectForSend := CallCloseAfterSelectForSend + 1;
154
155 SysSockClose(diSocket:=SockKomm);
156 SockKomm := 0;
157 END_IF
158 (* SUCCESS *)
159 RC_Send1:=0;
160 RC_Send2:=0;
161 IF RC_SysSockSelectForSend=1 THEN
162 IF DatenSenden THEN
163 RC_Send1:=SysSockSend(diSocket:=SockKomm, pbyBuffer:=ADR(ByteBufferTX), diBufferSize:=11, diFlags:=0);
164 IF RC_Send1>0 THEN
165 DatenSenden:=FALSE;
166 Sendezaehler:=Sendezaehler+1;
167 END_IF
168 END_IF
169 IF ZyklischeDatenSenden THEN
170 RC_Send2:=SysSockSend(diSocket:=SockKomm, pbyBuffer:=ADR(ByteBufferTXzyklisch), diBufferSize:=11, diFlags:=0);
171 IF RC_Send2>0 THEN
172 ZyklischeDatenSenden:=FALSE;
173 SendezaehlerZyklisch:=SendezaehlerZyklisch+1;
174 END_IF
175 END_IF
176 END_IF
177 IF RC_Send1=-1 OR RC_Send2=-1 OR RC_SysSockSelectForSend=0 THEN
178 CallCloseAfterSend := CallCloseAfterSend + 1;
179 SysSockClose(diSocket:=SockKomm);
180 SockKomm := 0;
181 END_IF
182END_IF
183
184
185
186
187
188END_PROGRAM
189
190
191(* @PATH := '\/Kommunikation' *)
192(* @SYMFILEFLAGS := '2048' *)
193PROGRAM EthernetIn_old
194
195VAR
196 VerbindungBesteht :BOOL :=FALSE;
197
198 SockKomm :DINT;
199 SockadrKomm :SOCKADDRESS;
200 SockadrKommSize :DINT;
201
202 fdsFdSet :SOCKET_FD_SET;
203 fdsTime :SOCKET_TIMEVAL;
204
205 RC_SysSockSelect :DINT;
206 RC_SysSockSelect3 :DINT;
207 RC_SysSockRecv :DINT;
208 RC_SysSockClose :BOOL;
209
210 Catch :BOOL;
211
212 Empfangszaehler :DINT;
213END_VAR
214
215
216(* @END_DECLARATION := '0' *)
217(* Auf Verbi ndung warten *)
218IF ListenSock<>0 AND VerbindungBesteht=FALSE THEN
219 fdsFdSet.fd_count :=1;
220 fdsFdSet.fd_array[0] :=ListenSock;
221 fdsTime.tv_sec :=0;
222 fdsTime.tv_usec :=100;
223
224 RC_SysSockSelect:=SysSockSelect(diWidth:=SIZEOF(fdsFdSet), fdRead:=ADR(fdsFdSet), fdWrite:=0, fdExcept:=0, ptvTimeout:=ADR(fdsTime));
225 (*1=success*, 0=time-out, -1=error*)
226 IF RC_SysSockSelect=1 THEN
227 SockadrKommSize := SIZEOF(SockadrKomm);
228 SockKomm:=SysSockAccept(diSocket:=ListenSock, pSockAddr:=ADR(SockadrKomm), piSockAddrSize:=ADR(SockadrKommSize));
229 IF SockKomm >0 THEN
230 VerbindungBesteht:=TRUE;
231 END_IF
232 END_IF
233END_IF
234
235(* Daten empfangen *)
236IF VerbindungBesteht=TRUE THEN
237 fdsFdSet.fd_count :=1;
238 fdsFdSet.fd_array[0] :=SockKomm;
239 fdsTime.tv_sec :=0;
240 fdsTime.tv_usec :=100;
241
242 RC_SysSockSelect3:=SysSockSelect(diWidth:=SIZEOF(fdsFdSet), fdRead:=ADR(fdsFdSet), fdWrite:=0, fdExcept:=0, ptvTimeout:=ADR(fdsTime));
243 (* Im Falle von Error: VerbindungBesteht:=FALSE ? *)
244 IF RC_SysSockSelect3=1 THEN
245 RC_SysSockRecv:=SysSockRecv(diSocket:=SockKomm, pbyBuffer:=ADR(ByteBufferRX), diBufferSize:=11, diFlags:=0);
246 IF RC_SysSockRecv <> 11 THEN
247 Catch:=TRUE; (* ERROR wenn ungleich 11 Bytes anliegen?*)
248 END_IF
249 NeueDatenDa:=TRUE;
250
251 (*TRUE=success*)
252 RC_SysSockClose:=SysSockClose(diSocket:=SockKomm);
253 VerbindungBesteht:=FALSE;
254 Empfangszaehler:=Empfangszaehler+1;
255 END_IF
256END_IF
257END_PROGRAM
258
259
260(* @PATH := '\/Kommunikation' *)
261(* @SYMFILEFLAGS := '2048' *)
262PROGRAM EthernetOut_old
263
264VAR
265 SockadrKomm2: SOCKADDRESS;
266 SockadrKommSize2: DINT;
267
268 RC_SysSockConnect: BOOL := FALSE;
269 RC_SysSockSelect2: DINT;
270 Ret_Send1: DINT;
271 Ret_Send2: DINT;
272
273 fdsFdSet: SOCKET_FD_SET;
274 fdsTime: SOCKET_TIMEVAL;
275
276 Sendezaehler: DINT;
277 SendezaehlerZyklisch: DINT;
278
279 ulBlockMode: DINT := 1;
280
281 RC_Ioctl: DINT;
282
283 calls: INT;
284 call1: INT;
285 call2: INT;
286 call3: INT;
287 call4: INT;
288 call5: INT;
289 call6: INT;
290 call7: INT;
291 call8: INT;
292 SUCCESS: BOOL;
293 TIMEOUT: BOOL;
294 ERROR: BOOL;
295END_VAR
296
297
298(* @END_DECLARATION := '0' *)
299(* Daten Senden *)
300
301SockadrKomm2.sin_addr:=SysSockHtonl(IP_Address); (*192.168.0.3*)
302SockadrKomm2.sin_family:=2;
303SockadrKomm2.sin_port:=SysSockHtons(Socket_Out_Port);
304SockadrKommSize2 := SIZEOF(SockadrKomm2);
305
306IF SendSock=0 THEN
307 SendSock:=SysSockCreate(diAddressFamily:=SOCKET_AF_INET, diType:=SOCKET_STREAM, diProtocol:=SOCKET_IPPROTO_IP);
308 (* ------------------------- NEW NEW NEW NEW NEW ------------------------- *)
309 (* Set newly created socket to non-blocking mode to make sure SysSockConnect doesn' t block infinitly *)
310 (* Unix ioctl documentation says: On error -1 is returned, 0 ususally in case of success *)
311 RC_Ioctl:=SysSockIoctl(diSocket:=SendSock, diCommand:=SOCKET_FIONBIO, piParameter:=ADR(ulBlockMode));
312 (* ------------------------------------------------------------------------------------------ *)
313 RC_SysSockConnect := FALSE;
314END_IF
315
316(*RC_SysSockConnect := FALSE;*) (*NEW*)
317IF (*SendSock>0*) NOT RC_SysSockConnect THEN
318 RC_SysSockConnect:=SysSockConnect(diSocket:=SendSock, pSockAddr:=ADR(SockadrKomm2), diSockAddrSize:=SockadrKommSize2);
319 (* Linux says: 0 on success, -1 on error *)
320 (* It seems that in the L40 setting the socket to non-blocking makes the SysSockConnect always succeed *)
321call1 := call1 + 1;
322(* RC_SysSockConnect:=TRUE;*)
323END_IF
324
325RC_SysSockSelect2:=-1;
326IF RC_SysSockConnect THEN (* SysSockConnect==True dann nuetzt auch ein Cosy-Neustart nicht *)
327 fdsFdSet.fd_count :=1;
328 fdsFdSet.fd_array[0]:=SendSock;
329 fdsTime.tv_sec :=0;
330 fdsTime.tv_usec :=0;
331 RC_SysSockSelect2:=SysSockSelect(diWidth:=SIZEOF(fdsFdSet), fdRead:=0, fdWrite:=ADR(fdsFdSet), fdExcept:=0, ptvTimeout:=ADR(fdsTime));
332 IF RC_SysSockSelect2=1 THEN
333 SUCCESS:=TRUE;
334 END_IF
335 IF RC_SysSockSelect2=0 THEN
336 TIMEOUT:=TRUE;
337 END_IF
338 IF RC_SysSockSelect2=-1 THEN
339 ERROR:=TRUE;
340 END_IF
341
342 (*1=success*, 0=time-out, -1=error*)
343call2 := call2 + 1;
344END_IF
345
346Ret_Send1:=-1;
347Ret_Send2:=-1;
348
349IF RC_SysSockSelect2>0 THEN
350 Ret_Send1:=0;
351 Ret_Send2:=0;
352call3 := call3 + 1;
353 IF DatenSenden THEN
354 Ret_Send1:=SysSockSend(diSocket:=SendSock, pbyBuffer:=ADR(ByteBufferTX), diBufferSize:=11, diFlags:=0);
355call4 := call4 + 1;
356 END_IF
357 IF ZyklischeDatenSenden THEN
358 Ret_Send2:=SysSockSend(diSocket:=SendSock, pbyBuffer:=ADR(ByteBufferTXzyklisch), diBufferSize:=11, diFlags:=0);
359call5 := call5 + 1;
360 END_IF
361END_IF
362
363IF Ret_Send1=-1 OR Ret_Send2=-1 THEN
364
365 IF SendSock>0 THEN
366 SysSockClose(diSocket:=SendSock);
367 SendSock := 0;
368 call6 := call6 + 1;
369 END_IF
370END_IF
371
372IF Ret_Send1>0 THEN
373call7 := call7 +1 ;
374 DatenSenden:=FALSE;
375 Sendezaehler:=Sendezaehler+1;
376END_IF
377
378IF Ret_Send2>0 THEN
379call8 := call8 + 1;
380 ZyklischeDatenSenden:=FALSE;
381 SendezaehlerZyklisch:=SendezaehlerZyklisch+1;
382END_IF
383END_PROGRAM
384
385
386(* @PATH := '\/Kommunikation' *)
387(* @SYMFILEFLAGS := '2048' *)
388PROGRAM Protokoll_PDO
389
390VAR
391 TX_COB_ID :WORD; (* Enthält NODE_ID und FUNCTION_CODE *)
392 TX_NODE_ID :WORD; (* 1 = Motor drehen, 3 = Motor kippen, 4 = Encoder Kippen 1, 5 = Encoder Kippen 2, 6 = Encoder Drehen *)
393 TX_FUNCTION_CODE :WORD; (* 3=PDO1 5=PDO2 7=PDO3 *)
394
395 TX1M_LEER1 :BYTE;
396 TX1M_LEER2 :BYTE;
397 TX1M_STATUS2 :BYTE; (*EinmaligeFreigabe for GRB-mode*)
398 TX1M_STATUS :BYTE; (* 0:0 1:Pos-Betrieb, noch nicht im Ziel 2:V-Betrieb 3-5:0 6:<AH 7:0 *)
399 TX1M_POSITION :DWORD;
400 TX2M_DIAGNOSENUMMER :DINT; (* Diagnosewort vom DKC nur F... und E... *)
401 TX2M_RESERVE1 :WORD;
402 TX2M_RESERVE2 :WORD;
403 TX2M_RESERVE3 :WORD;
404 TX3M_LEER1 :BYTE;
405 TX3M_LEER2 :BYTE;
406 TX3M_STATUS :DWORD; (* 0:>=bb 1:MSS ok 2:NotAus ok 3:Überspannung OK 4:1=Manu 0=PC 5:>=AH 6:Status externe Bremse 7:0 *)
407 TX2E_POSITION :DWORD;
408 TX2E_GESCHWINDIGKEIT :WORD;
409 TX2E_BESCHLEUNIGUNG :WORD;
410
411 Zyklus :INT;
412
413 X_Err_ID_Old :DINT;
414 Z_Err_ID_Old :DINT;
415
416(* Communication *)
417 TX1M_STATUS_OldX :BYTE:=16#FF;
418 TX1M_STATUS_OldZ :BYTE:=16#FF;
419 TX3M_STATUS_OldX :DWORD:=16#FFFF;
420 TX3M_STATUS_OldZ :DWORD:=16#FFFF;
421 TX2E_POSITION_OldX :DINT:=0;
422 TX2E_POSITION_OldY :DINT:=0;
423 TX2E_GESCHWINDIGKEIT_OldX :INT:=0;
424 TX2E_GESCHWINDIGKEIT_OldY :INT:=0;
425
426END_VAR
427(* @END_DECLARATION := '0' *)
428(* In jedem Zyklus kann nur ein bestimmtes PDO gesendet werden *)
429(* Jeder Zyklus ist 10-mal pro Sekunde dran .........!!!!Oder100mal???*)
430Zyklus:=Zyklus+1;
431IF Zyklus>6 THEN
432 Zyklus:=1;
433END_IF
434
435(* Hier kann zu Testzwecken der Zyklus auf einen festen Wert gesetzt werden *)
436(* Dadurch wird erreicht, daß nur ein bestimmtes PDO gesendet wird *)
437(*Zyklus:=5;*)
438
439(* TX_NODE_ID:= 1 = Motor drehen
440 2 = NA
441 3 = Motor kippen
442 4 = Encoder Drehen Encoder Kippen 1
443 5 = Encoder Kippen 1
444 6 = Encoder Kippen 2 (negativ zu Kippen 1) *)
445
446(* Motor liefert PDO1 10mal je Sekunde ....!!!!!oder 100mal????????*)
447(* PDO2 wenn Fehler kommt, 0 wenn geht *)
448(* PDO3 wenn Änderung *)
449(* Encoder liefert PDO bei Änderung eines Bit's in der Position *)
450
451(*-------------------------------------------------------------------MOTOREN-------------------------------------------------------------------*)
452
453IF Zyklus=1 THEN
454 TX_NODE_ID:=NODE_ID_Mac_Az; (* Motor 1 drehen *)
455 TX_FUNCTION_CODE:=3; (* PDO1 *)
456
457 TX1M_POSITION:=X_pos_ist; (*X_Pos_ist; nehmen an, dass die SE schon genau genug.*)
458 TX2E_POSITION:=X_Pos_Geber2;
459
460 ZyklischeDatenSenden:=TRUE;
461END_IF
462
463IF Zyklus=2 THEN
464 TX_NODE_ID:=NODE_ID_Mac_Zd; (* Motor 3 kippen *)
465 TX_FUNCTION_CODE:=3; (* PDO1 *)
466
467 TX1M_POSITION:=Z_pos_ist; (*X_Pos_ist; nehmen an, dass die SE schon genau genug.*)
468 TX2E_POSITION:=Z_Pos_Geber2;
469
470 ZyklischeDatenSenden:=TRUE;
471END_IF
472
473IF Zyklus=3 THEN
474 TX_NODE_ID:=NODE_ID_Mac_Az; (* Motor 1 drehen *)
475 TX_FUNCTION_CODE:=5; (* PDO2 *)
476 IF (X_Err_ID_Old<>X_Err_ID) (*AND ((X_Err_ID AND 16#F000) >= 16#E000)*) THEN
477 TX2M_DIAGNOSENUMMER:=X_Err_ID;
478 ZyklischeDatenSenden:=TRUE;
479 END_IF
480(* IF ((X_Err_ID_Old AND 16#F000) >= 16#E000) AND ((X_Err_ID AND 16#F000) < 16#E000) THEN
481 TX2M_DIAGNOSENUMMER:=0;
482 ZyklischeDatenSenden:=TRUE;
483 END_IF Auch Betriebsstatus wird nun bei Aenderung immer mituebergeben...*)
484 X_Err_ID_Old:=X_Err_ID;
485END_IF
486
487IF Zyklus=4 THEN
488 TX_NODE_ID:=NODE_ID_Mac_Zd; (* Motor 3 kippen *)
489 TX_FUNCTION_CODE:=5; (* PDO2 *)
490 IF (Z_Err_ID_Old<>Z_Err_ID) (*AND ((Z_Err_ID AND 16#F000) >= 16#E000)*) THEN
491 TX2M_DIAGNOSENUMMER:=Z_Err_ID;
492 ZyklischeDatenSenden:=TRUE;
493 END_IF
494 (*IF ((Z_Err_ID_Old AND 16#F000) >= 16#E000) AND ((Z_Err_ID AND 16#F000) < 16#E000) THEN
495 TX2M_DIAGNOSENUMMER:=0;
496 ZyklischeDatenSenden:=TRUE;
497 END_IF Auch Betriebsstatus wird nun bei Aenderung immer mituebergeben...*)
498 Z_Err_ID_Old:=Z_Err_ID;
499END_IF
500
501IF Zyklus=5 THEN
502 TX_NODE_ID:=NODE_ID_Mac_Az; (* Motor 1 drehen *)
503 TX_FUNCTION_CODE:=7; (* PDO3 *)
504
505 TX1M_STATUS.1:= ((NOT X_in_Standstill OR NOT X_in_AntriebHalt) AND (NOT X_PC_VStart AND NOT X_in_Pos)) OR X_PC_AnnounceStartMovement (*OR X_PC_StartMovement*);
506 TX1M_STATUS.2:=X_PC_VStart;
507 TX1M_STATUS.6:=NOT X_ist_freigegeben;
508 TX1M_STATUS.0:=1;(*X_EinmaligeFreigabe;*)
509
510 TX3M_STATUS.0:=X_ist_betriebsbereit;
511 TX3M_STATUS.1:=1;(*WAR: Leistung_DKC_IO;*)
512 TX3M_STATUS.2:=Not_Aus_IO;
513 TX3M_STATUS.3:=UeberspannungsSchutz_OK;
514 TX3M_STATUS.4:=FB_soll_drehen_links OR FB_soll_drehen_rechts OR FB_soll_schwenk_auf OR FB_soll_schwenk_ab;(*Change to TIPPEN AN; NOT IN_PC_Betrieb;*)
515 TX3M_STATUS.5:=X_ist_freigegeben;
516 TX3M_STATUS.6:= 1; (*IN_Zusatz_Bremse_Z;*)
517 TX3M_STATUS.7:=LeistungEinAz;
518
519 TX3M_STATUS.8:=NOT UPS_ALARM;
520 TX3M_STATUS.9:=UPS_BattMode;
521 TX3M_STATUS.10:=UPS_Charging;
522
523 IF TX1M_STATUS<>TX1M_STATUS_OldX OR TX3M_STATUS<>TX3M_STATUS_OldX OR X_PC_ForcePDO3 THEN
524 ZyklischeDatenSenden:=TRUE;
525 END_IF
526 X_PC_ForcePDO3 :=FALSE;
527 TX1M_STATUS_OldX:=TX1M_STATUS;
528 TX3M_STATUS_OldX:=TX3M_STATUS;
529
530 X_PC_AnnounceStartMovement := FALSE;
531END_IF
532
533IF Zyklus=6 THEN
534 TX_NODE_ID:=NODE_ID_Mac_Zd; (* Motor 3 kippen *)
535 TX_FUNCTION_CODE:=7; (* PDO3 *)
536
537 TX1M_POSITION:=Z_Pos_ist; (*Z_Pos_ist; nehmen an, dass die SE schon genau genug.*)
538 TX1M_STATUS.1:=((NOT Z_in_Standstill OR NOT Z_in_AntriebHalt) AND (NOT Z_PC_VStart AND NOT Z_in_Pos)) OR Z_PC_AnnounceStartMovement (*OR Z_PC_StartMovement*);
539 TX1M_STATUS.2:=Z_PC_VStart;
540 TX1M_STATUS.6:=NOT Z_ist_freigegeben;
541 TX1M_STATUS.0:=1;(*Z_EinmaligeFreigabe;*)
542
543 TX3M_STATUS.0:=Z_ist_betriebsbereit;
544 TX3M_STATUS.1:=1; (*WAR: Leistung_DKC_IO;*)
545 TX3M_STATUS.2:=Not_Aus_IO;
546 TX3M_STATUS.3:=UeberspannungsSchutz_OK;
547 TX3M_STATUS.4:=FB_soll_drehen_links OR FB_soll_drehen_rechts OR FB_soll_schwenk_auf OR FB_soll_schwenk_ab;(*Change to TIPPEN AN; NOT IN_PC_Betrieb;*)
548 TX3M_STATUS.5:=Z_ist_freigegeben;
549 TX3M_STATUS.6:= 1; (*IN_Zusatz_Bremse_Z;*)
550 TX3M_STATUS.7:=LeistungEinZd;
551
552 TX3M_STATUS.8:=NOT UPS_ALARM;
553 TX3M_STATUS.9:=UPS_BattMode;
554 TX3M_STATUS.10:=UPS_Charging;
555
556 IF TX1M_STATUS<>TX1M_STATUS_OldZ OR TX3M_STATUS<>TX3M_STATUS_OldZ OR Z_PC_ForcePDO3 THEN
557 ZyklischeDatenSenden:=TRUE;
558 END_IF
559 Z_PC_ForcePDO3 :=FALSE;
560 TX1M_STATUS_OldZ:=TX1M_STATUS;
561 TX3M_STATUS_OldZ:=TX3M_STATUS;
562
563 Z_PC_AnnounceStartMovement := FALSE;
564END_IF
565
566IF Zyklus=7 THEN
567 TX_NODE_ID:=0;
568 TX_FUNCTION_CODE:=0;
569END_IF
570
571
572(*--------------------------------------------------------------------Antworttelegramm zusammensetzen-----------------------------------------------------------*)
573
574(* Einheitlicher Teil *)
575TX_COB_ID:=SHL(TX_FUNCTION_CODE,12) OR SHL(TX_NODE_ID,5);
576ByteBufferTXzyklisch[0]:=10; (* 10 Nutzbytes *)
577ByteBufferTXzyklisch[1]:=WORD_TO_BYTE(SHR(TX_COB_ID AND 16#FF00,8));
578ByteBufferTXzyklisch[2]:=WORD_TO_BYTE(TX_COB_ID AND 16#00FF);
579
580(* spezifischer Teil - Motor PDO 1 *)
581IF (TX_NODE_ID=NODE_ID_Mac_Az OR TX_NODE_ID=NODE_ID_Mac_Zd) AND TX_FUNCTION_CODE=3 THEN
582 ByteBufferTXzyklisch[3]:=DWORD_TO_BYTE(TX1M_POSITION AND 16#000000FF);
583 ByteBufferTXzyklisch[4]:=DWORD_TO_BYTE(SHR(TX1M_POSITION AND 16#0000FF00,8));
584 ByteBufferTXzyklisch[5]:=DWORD_TO_BYTE(SHR(TX1M_POSITION AND 16#00FF0000,16));
585 ByteBufferTXzyklisch[6]:=DWORD_TO_BYTE(SHR(TX1M_POSITION AND 16#FF000000,24));
586
587 ByteBufferTXzyklisch[7]:=DWORD_TO_BYTE(TX2E_POSITION AND 16#000000FF);
588 ByteBufferTXzyklisch[8]:=DWORD_TO_BYTE(SHR(TX2E_POSITION AND 16#0000FF00,8));
589 ByteBufferTXzyklisch[9]:=DWORD_TO_BYTE(SHR(TX2E_POSITION AND 16#00FF0000,16));
590 ByteBufferTXzyklisch[10]:=DWORD_TO_BYTE(SHR(TX2E_POSITION AND 16#FF000000,24));
591
592END_IF
593
594(* spezifischer Teil - Motor PDO 2 *)
595IF (TX_NODE_ID=NODE_ID_Mac_Az OR TX_NODE_ID=NODE_ID_Mac_Zd) AND TX_FUNCTION_CODE=5 THEN
596 ByteBufferTXzyklisch[3] :=16#00; (*WORD_TO_BYTE(TX2M_RESERVE2 AND 16#00FF);*)
597 ByteBufferTXzyklisch[4] :=16#00; (*WORD_TO_BYTE(SHR(TX2M_RESERVE2 AND 16#FF00,8));*)
598 ByteBufferTXzyklisch[5] :=16#00; (*WORD_TO_BYTE(TX2M_RESERVE3 AND 16#00FF);*)
599 ByteBufferTXzyklisch[6] :=16#FF; (*WORD_TO_BYTE(SHR(TX2M_RESERVE3 AND 16#FF00,8));*)
600 ByteBufferTXzyklisch[7] :=0; (*WORD_TO_BYTE(TX2M_RESERVE1 AND 16#00FF);*)
601 ByteBufferTXzyklisch[8] :=DINT_TO_BYTE(SHR(TX2M_DIAGNOSENUMMER, 16)); (*WORD_TO_BYTE(SHR(TX2M_RESERVE1 AND 16#FF00,8));*)
602 ByteBufferTXzyklisch[9] :=DINT_TO_BYTE(SHR(TX2M_DIAGNOSENUMMER, 8));
603 ByteBufferTXzyklisch[10] :=DINT_TO_BYTE( TX2M_DIAGNOSENUMMER );
604END_IF
605
606(* spezifischer Teil - Motor PDO 3 *)
607IF (TX_NODE_ID=NODE_ID_Mac_Az OR TX_NODE_ID=NODE_ID_Mac_Zd) AND TX_FUNCTION_CODE=7 THEN
608 ByteBufferTXzyklisch[3]:=DWORD_TO_BYTE(TX3M_STATUS); (*TX1M_LEER1;*)
609 ByteBufferTXzyklisch[4]:=DWORD_TO_BYTE(SHR(TX3M_STATUS,8)); (*TX1M_LEER2;*)
610 ByteBufferTXzyklisch[5]:=TX1M_STATUS2;
611 ByteBufferTXzyklisch[6]:=TX1M_STATUS;
612END_IF
613END_PROGRAM
614
615
616(* @PATH := '\/Kommunikation' *)
617(* @SYMFILEFLAGS := '2048' *)
618PROGRAM Protokoll_SDO
619
620VAR
621(* Empfangstelegramm *)
622 RX_COB_ID :WORD; (* Enthält NODE_ID und FUNCTION_CODE *)
623 RX_NODE_ID :WORD; (* war vorher: 1 = Motor drehen, 3 = Motor kippen, 4 = Encoder Kippen 1, 5 = Encoder Kippen 2, 6 = Encoder Drehen *)
624 (* Globale konstante Variablen:
625 NODE_ID_Mac_Az: BYTE:=1;
626 NODE_ID_Mac_Zd: BYTE:=3;
627 NODE_ID_SE_Az: BYTE:=16;
628 NODE_ID_SE_Zd1: BYTE:=17;
629 NODE_ID_SE_Zd2: BYTE:=18;
630 *)
631 RX_FUNCTION_CODE :WORD;
632 RX_COMMAND :BYTE;
633 RX_INDEX :WORD;
634 RX_SUBINDEX :BYTE;
635 RX_VALUE :DWORD;
636
637(* Antworttelegramm *)
638 TX_COB_ID :WORD; (* Enthält NODE_ID und FUNCTION_CODE *)
639 TX_NODE_ID :WORD; (* 1 = Motor drehen, 3 = Motor kippen, 16 = Encoder Drehen, 17 = Encoder Kippen 1, 18 = Encoder Kippen 2 *)
640 TX_FUNCTION_CODE :WORD;
641 TX_COMMAND :BYTE;
642 TX_INDEX :WORD;
643 TX_SUBINDEX :BYTE;
644 TX_VALUE :DWORD;
645
646 CompareDwordString4_IDB :CompareDwordString4;
647END_VAR
648(* @END_DECLARATION := '0' *)
649IF NeueDatenDa THEN
650 NeueDatenDa:=FALSE;
651(*
652 IF X_PC_AntriebHalt THEN
653 X_PC_StartMovement := FALSE;
654 END_IF
655 IF Z_PC_AntriebHalt THEN
656 Z_PC_StartMovement := FALSE;
657 END_IF
658 *)
659 (* Empfangenes Telegramm zerlegen *)
660 (* Angabe der Nutzbytes im ersten Byte wird ignoriert *)
661 RX_COB_ID :=256*ByteBufferRX[1] + ByteBufferRX[2];
662 RX_FUNCTION_CODE :=SHR(RX_COB_ID AND 16#F000 , 12); (* *)
663 RX_NODE_ID :=SHR(RX_COB_ID AND 16#0FE0 , 5); (* *)
664 RX_COMMAND :=ByteBufferRX[3]; (* *)
665 RX_INDEX :=256*ByteBufferRX[5] + ByteBufferRX[4]; (* *)
666 RX_SUBINDEX :=ByteBufferRX[6]; (* *)
667 RX_VALUE :=256*(256*(256*ByteBufferRX[10] + ByteBufferRX[9]) + ByteBufferRX[8]) + ByteBufferRX[7];
668
669 (* Check if the id is valid *)
670 IF RX_NODE_ID<>NODE_ID_Mac_Az
671 AND RX_NODE_ID<>NODE_ID_Mac_Zd
672 (*AND RX_NODE_ID<>NODE_ID_SE_Az
673 AND RX_NODE_ID<>NODE_ID_SE_Zd1
674 AND RX_NODE_ID<>NODE_ID_SE_Zd2*)
675 THEN RETURN;
676 END_IF
677
678(* IF ((RX_NODE_ID=NODE_ID_Mac_Az OR RX_NODE_ID=NODE_ID_Mac_Zd) AND NOT IN_PC_Betrieb) OR
679 (RX_NODE_ID=NODE_ID_Mac_Az AND (NOT X_ist_betriebsbereit OR NOT X_in_Referenz OR NOT X_ist_freigegeben)) OR
680 (RX_NODE_ID=NODE_ID_Mac_Zd AND (NOT Z_ist_betriebsbereit OR NOT Z_in_Referenz OR NOT Z_ist_freigegeben))
681 THEN RETURN;
682 END_IF*)
683(*
684 IF ((RX_NODE_ID=NODE_ID_Mac_Az AND NOT (X_IsOnline AND Y_IsOnline)) OR
685 (RX_NODE_ID=NODE_ID_Mac_Zd AND NOT Z_IsOnline))
686 THEN RETURN;
687 END_IF
688*)
689 (* Antworttelegramm mit Daten aus empfangenen Telegramm vorbesetzen *)
690 TX_NODE_ID :=RX_NODE_ID;
691 TX_FUNCTION_CODE :=RX_FUNCTION_CODE;
692 TX_COMMAND :=RX_COMMAND;
693 TX_INDEX :=RX_INDEX;
694 TX_SUBINDEX :=RX_SUBINDEX;
695 TX_VALUE :=RX_VALUE;
696
697 IF RX_FUNCTION_CODE=16#C THEN
698 TX_FUNCTION_CODE:=16#B;
699 END_IF
700
701 (* Auf ausgewählte Telegramme antworten *)
702
703(*
704(*-----------------------------------------------------------------------------------------------------------------ENCODER----------------------------------------------------------*)
705 (*IF RX_NODE_ID>=4 AND RX_NODE_ID<=6 THEN (* Encoder *) durch konstant globale Variablen ersetzt *)
706
707 IF RX_NODE_ID=NODE_ID_SE_Az
708 OR RX_NODE_ID=NODE_ID_SE_Zd1
709 OR RX_NODE_ID=NODE_ID_SE_Zd2 THEN
710 (* ---------------------------------------------------------------------PC will Antwort haben------------------------------------------------*)
711
712 IF RX_COMMAND=16#40 THEN
713 TX_COMMAND:=16#43; (* 4-Byte-Antwort *)
714 CASE RX_INDEX OF
715 (* Encder-Typ = Multiturn *)
716 16#1000: TX_VALUE:=16#00020196;
717 DatenSenden:=TRUE;
718 (* Anzahl der Striche pro Umdrehung *)
719 16#6501: TX_VALUE:=ShaftEncoderResolution;
720 DatenSenden:=TRUE;
721 (* Anzahl der Umdrehungen *)
722 16#6502: TX_VALUE:=16#00001000;
723 DatenSenden:=TRUE;
724 (* Hardwarespezifikation *)
725 16#6000,16#6500: TX_VALUE:=16#00000000;
726 DatenSenden:=TRUE;
727 (* Istposition *)
728 16#6004: TX_VALUE:=16#00000000;
729 CASE RX_NODE_ID OF
730 NODE_ID_SE_Zd1: TX_VALUE:=Z_Pos_Geber2(*+Z_Offset_Geber2*);
731 NODE_ID_SE_Az: TX_VALUE:=X_Pos_Geber2(*+X_Offset_Geber2*);
732 END_CASE;
733 DatenSenden:=TRUE;
734 END_CASE;
735 END_IF
736
737 (* ---------------------------------------------------------------------PC will Wert setzen------------------------------------------------*)
738 IF RX_COMMAND=16#23 THEN
739 TX_COMMAND:=16#60; (* Wert gesetzt *)
740 CASE RX_INDEX OF
741 (* Anzahl der Striche pro Umdrehung *)
742 16#6001: TX_VALUE:=16#00000000;
743 DatenSenden:=TRUE;
744 (* Anzahl der Umdrehungen *)
745 16#6002: TX_VALUE:=16#00000000;
746 DatenSenden:=TRUE;
747 (* Nullpunkt setzen *)
748 (*
749 16#6003: CASE RX_NODE_ID OF
750 NODE_ID_SE_Zd1: Z_Offset_Geber2:=-Z_Pos_Geber2;
751 NODE_ID_SE_Zd2: Z_Offset_Geber2:=Z_Pos_Geber2;
752 NODE_ID_SE_Az: X_Offset_Geber2:=-X_Pos_Geber2;
753 END_CASE;
754 *)
755 TX_VALUE:=16#00000000;
756 DatenSenden:=TRUE;
757 (* Selbstständig PDO's schicken *)
758 16#1802: TX_VALUE:=16#00000000;
759 DatenSenden:=TRUE;
760 (* Dummy's *)
761 16#100B: TX_VALUE:=16#00000000;
762 DatenSenden:=TRUE;
763 END_CASE;
764 END_IF
765 END_IF
766*)
767(*-----------------------------------------------------------------------------------------------MOTOREN-------------------------------------------------------------------------------------------*)
768
769(* IF RX_NODE_ID=1 OR RX_NODE_ID=3 THEN (* Motor *) durch konstant globale Variablen ersetzt *)
770 IF RX_NODE_ID=NODE_ID_Mac_Az OR RX_NODE_ID=NODE_ID_Mac_Zd THEN
771
772 (* ---------------------------------------------------------------------PC will Antwort haben------------------------------------------------*)
773 IF RX_COMMAND=16#40 THEN
774 TX_COMMAND:=16#43; (* 4-Byte-Antwort *)
775 CASE RX_INDEX OF
776 (* 0=Einmalige Freigabe erteilt, 1=Nicht *)
777 16#1000: CASE RX_NODE_ID OF
778 NODE_ID_Mac_Az: TX_VALUE:=1; (*IF X_EinmaligeFreigabe=FALSE THEN TX_VALUE:=16#00000000; ELSE TX_VALUE:=16#00000001; END_IF*)
779 NODE_ID_Mac_Zd: TX_VALUE:=1; (*IF Z_EinmaligeFreigabe=FALSE THEN TX_VALUE:=16#00000000; ELSE TX_VALUE:=16#00000001; END_IF*)
780 END_CASE
781 DatenSenden:=TRUE;
782 (* Letzter Fehler *)
783 16#1003: CASE RX_NODE_ID OF
784 NODE_ID_Mac_Az: TX_VALUE:=SHL(X_Err_ID,8) + 16#FF;
785 NODE_ID_Mac_Zd: TX_VALUE:=SHL(Z_Err_ID,8) + 16#FF;
786 END_CASE
787 DatenSenden:=TRUE;
788 (* Node-Nr 1 oder 3 zurückgeben *)
789 16#100B: TX_VALUE:=RX_NODE_ID;
790 DatenSenden:=TRUE;
791 (* Version, Subversion zurückgeben, je ein wort *)
792 16#100A: TX_VALUE:=16#00010002;
793 DatenSenden:=TRUE;
794 (* Gesetzte Geschwindigkeit für Pos-Betrieb *)
795 16#2002: CASE RX_NODE_ID OF
796 NODE_ID_Mac_Az: TX_VALUE:=X_PC_Vel;
797 NODE_ID_Mac_Zd: TX_VALUE:=Z_PC_Vel;
798 END_CASE;
799 DatenSenden:=TRUE;
800 (* Gesetzte Beschleunigung für nächsten Fahrbefehl (Nur für Pos) *)
801 16#2003: CASE RX_NODE_ID OF
802 NODE_ID_Mac_Az: TX_VALUE:=X_PC_Beschl;
803 NODE_ID_Mac_Zd: TX_VALUE:=Z_PC_Beschl;
804 END_CASE;
805 DatenSenden:=TRUE;
806 16#4000: CASE RX_NODE_ID OF
807 NODE_ID_Mac_Zd: TX_VALUE:=AnalogOut1;
808 NODE_ID_Mac_Az: TX_VALUE:=AnalogOut2;
809 END_CASE
810 DatenSenden:=TRUE;
811 16#4002: CASE RX_NODE_ID OF
812 NODE_ID_Mac_Zd: TX_VALUE:=AnalogIn1;
813 NODE_ID_Mac_Az: TX_VALUE:=AnalogIn2;
814 END_CASE
815 DatenSenden:=TRUE;
816 (* Unit of Velocity *)
817 16#6002: TX_VALUE:=VelocityResolution;
818 DatenSenden:=TRUE;
819 (* Maximum Velocity *)
820 16#6003: CASE RX_NODE_ID OF
821 NODE_ID_Mac_Az: TX_VALUE:=X_MaximumVelocity;
822 NODE_ID_Mac_Zd: TX_VALUE:=Z_MaximumVelocity;
823 END_CASE;
824 DatenSenden:=TRUE;
825 (* Aktuelle Position *)
826 16#6004: IF RX_SUBINDEX=0 THEN
827 CASE RX_NODE_ID OF
828 NODE_ID_Mac_Az: TX_VALUE:=X_Pos_ist; (*X_Pos_ist; nehmen an, SE schon genau genug*)
829 NODE_ID_Mac_Zd: TX_VALUE:=Z_Pos_ist; (*Z_Pos_ist; nehmen an, SE schon genau genug*)
830 END_CASE;
831 DatenSenden:=TRUE;
832 END_IF
833 IF RX_SUBINDEX=1 THEN
834 CASE RX_NODE_ID OF
835 NODE_ID_Mac_Az: TX_VALUE:=X_Pos_Geber2; (*X_Pos_ist; nehmen an, SE schon genau genug*)
836 NODE_ID_Mac_Zd: TX_VALUE:=Z_Pos_Geber2; (*Z_Pos_ist; nehmen an, SE schon genau genug*)
837 END_CASE;
838 DatenSenden:=TRUE;
839 END_IF
840
841 (* Anzahl der Striche pro Umdrehung *)
842 16#6501: TX_VALUE:=ShaftEncoderResolution;
843 DatenSenden:=TRUE;
844 (* Geschwindigkeitsmaximalwert (den für Testzwecke) ausgeben *)
845 (* Vor dem ersten Setzen erhält man V-Max des Motors *)
846 16#6502: CASE RX_NODE_ID OF
847 NODE_ID_Mac_Az: TX_VALUE:=X_PC_Maximalgeschwindigkeit;
848 NODE_ID_Mac_Zd: TX_VALUE:=Z_PC_Maximalgeschwindigkeit;
849 END_CASE;
850 DatenSenden:=TRUE;
851 (* Zykluszähler ausgeben *)
852 16#6508: TX_VALUE:=Zykluszaehler;
853 DatenSenden:=TRUE;
854 END_CASE;
855 END_IF
856
857 (* ---------------------------------------------------------------------PC will Wert setzen------------------------------------------------*)
858 IF RX_COMMAND=16#23 THEN
859 TX_COMMAND:=16#60; (* Wert gesetzt *)
860 CASE RX_INDEX OF
861 (* Einmalige Freigabe etwas zu machen *)
862 16#1000: CASE RX_NODE_ID OF
863 NODE_ID_Mac_Az:
864 IF RX_VALUE=1 THEN
865 X_EinmaligeFreigabe:=TRUE;
866 ELSE
867 X_EinmaligeFreigabe:=FALSE;
868 END_IF
869 NODE_ID_Mac_Zd:
870 IF RX_VALUE=1 THEN
871 Z_EinmaligeFreigabe:=TRUE;
872 ELSE
873 Z_EinmaligeFreigabe:=FALSE;
874 END_IF
875 END_CASE
876 TX_VALUE:=16#00000000;
877 DatenSenden:=TRUE;
878 16#1001: CASE RX_NODE_ID OF
879 NODE_ID_Mac_Az:
880 IF RX_VALUE=1 THEN
881 X_PC_ForcePDO3:=TRUE;
882 END_IF
883 NODE_ID_Mac_Zd:
884 IF RX_VALUE=1 THEN
885 Z_PC_ForcePDO3:=TRUE;
886 END_IF
887 END_CASE
888 TX_VALUE:=16#00000000;
889 DatenSenden:=TRUE;
890 (* Fehler löschen
891 16#1003: IF RX_SUBINDEX=0 AND RX_VALUE=0 THEN
892 TX_VALUE:=16#00000000;
893 DatenSenden:=TRUE;
894 END_IF*)
895 (* Geschwindigkeit für nächsten Fahrbefehl (Nur für Pos) *)
896 (* Wenn noch nie eine gesetzt 1% *)
897 16#2002: CASE RX_NODE_ID OF
898 NODE_ID_Mac_Az: X_PC_Vel:=RX_VALUE;
899 NODE_ID_Mac_Zd: Z_PC_Vel:=RX_VALUE;
900 END_CASE
901 TX_VALUE:=16#00000000;
902 DatenSenden:=TRUE;
903 (* Beschleunigung für nächsten Fahrbefehl (Nur für Pos) 600.000.000 ist Maximum *)
904 16#2003: CASE RX_NODE_ID OF
905 NODE_ID_Mac_Az: X_PC_Beschl:=RX_VALUE;
906 NODE_ID_Mac_Zd: Z_PC_Beschl:=RX_VALUE;
907 END_CASE
908 TX_VALUE:=16#00000000;
909 DatenSenden:=TRUE;
910 (* Wenn VALUE= 'p' 'o' 't' 's' dann Fahrbefehl abbrechen (Pos und V-Regelung) *)
911 16#3000: CompareDwordString4_IDB(D:=RX_VALUE, Str:='stop');
912 IF CompareDwordString4_IDB.Ergebnis THEN
913 CASE RX_NODE_ID OF
914 NODE_ID_Mac_Az:
915 (*X_PC_VStart:=FALSE;*)
916 X_PC_AntriebHalt:=TRUE;
917 NODE_ID_Mac_Zd:
918 (*Z_PC_VStart:=FALSE;*)
919 Z_PC_AntriebHalt:=TRUE;
920 END_CASE
921 END_IF
922 TX_VALUE:=16#00000000;
923 DatenSenden:=TRUE;
924 (* Wenn VALUE= 't' 'r' 't' 's' dann Geschwindigkeitsregelung starten mit v=0 *)
925 (* Wenn einmalige Freigabe nicht da -> Error *)
926 (* Wenn VALUE= 'p' 'o' 't' 's' dann Geschwindigkeitsregelung stoppen *)
927 16#3006: CompareDwordString4_IDB(D:=RX_VALUE, Str:='stop');
928 IF CompareDwordString4_IDB.Ergebnis THEN
929 CASE RX_NODE_ID OF
930 NODE_ID_Mac_Az:
931 X_PC_VStart:=FALSE;
932 X_PC_AntriebHalt:=TRUE;
933 (*X_PC_StartMovement:=FALSE; *)(* maybe not necessary *)
934 (*X_PC_PosZiel:=X_Pos_ist;*)
935 NODE_ID_Mac_Zd:
936 Z_PC_VStart:=FALSE;
937 Z_PC_AntriebHalt:=TRUE;
938 (*Z_PC_StartMovement:=FALSE;*) (* maybe not necessary *)
939 (*Z_PC_PosZiel:=Z_Pos_ist;*)
940 END_CASE
941 DatenSenden:=TRUE;
942 END_IF
943 CompareDwordString4_IDB(D:=RX_VALUE, Str:='strt');
944 IF CompareDwordString4_IDB.Ergebnis THEN
945 CASE RX_NODE_ID OF
946 NODE_ID_Mac_Az: (*IF X_EinmaligeFreigabe THEN*)
947 X_PC_VStart:=TRUE;
948 X_PC_IsRelative:=FALSE;
949 X_PC_AntriebHalt:=FALSE;
950 X_PC_VGeschwindigkeit:=0;
951 X_AnnounceStartMovement:=TRUE;
952 (*X_PC_StartMovement:=TRUE;*)
953 (*END_IF*)
954 NODE_ID_Mac_Zd: (*IF Z_EinmaligeFreigabe THEN*)
955 Z_PC_VStart:=TRUE;
956 Z_PC_IsRelative:=FALSE;
957 Z_PC_AntriebHalt:=FALSE;
958 Z_PC_VGeschwindigkeit:=0;
959 Z_AnnounceStartMovement:=TRUE;
960 (*Z_PC_StartMovement:=TRUE; war auskmmentiert*)
961 (*END_IF*)
962 END_CASE
963 DatenSenden:=TRUE; (* Wenn keine einmalige Freigabe bleibt dieses Bit auf FALSE -> Error-Telegramm *)
964 END_IF
965 TX_VALUE:=16#00000000;
966 (* Geschwindigkeit für Geschwindigkeitsregelung *)
967 16#3007: CASE RX_NODE_ID OF
968 NODE_ID_Mac_Az:
969 (*IF (X_PC_VGeschwindigkeit>=0 AND DWORD_TO_DINT(RX_VALUE)<0) OR (X_PC_VGeschwindigkeit<=0 AND DWORD_TO_DINT(RX_VALUE)>0) THEN*)
970 X_PC_StartMovement := NOT X_PC_StartMovement;
971 (*END_IF*)
972 X_PC_VGeschwindigkeit:=RX_VALUE;
973 NODE_ID_Mac_Zd:
974 (*IF (Z_PC_VGeschwindigkeit>=0 AND DWORD_TO_DINT(RX_VALUE)<0) OR (Z_PC_VGeschwindigkeit<=0 AND DWORD_TO_DINT(RX_VALUE)>0) THEN*)
975 Z_PC_StartMovement := NOT Z_PC_StartMovement;
976 (*END_IF*)
977 Z_PC_VGeschwindigkeit:=RX_VALUE;
978 (*Z_PC_StartMovement:=TRUE; Kommentar ersatzweise fuer den oben*)
979 END_CASE
980 TX_VALUE:=16#00000000;
981 DatenSenden:=TRUE;
982 16#4000: IF (RX_VALUE<16#8000) THEN
983 CASE RX_NODE_ID OF
984 NODE_ID_Mac_Zd: AnalogOut1 := DWORD_TO_WORD(RX_VALUE);
985 NODE_ID_Mac_Az: AnalogOut2 := DWORD_TO_WORD(RX_VALUE);
986 END_CASE
987 END_IF
988 TX_VALUE:=16#00000000;
989 DatenSenden:=TRUE;
990 (* absolute Position & Fahrbefehl starten (Nur für Pos) *)
991 (* Wenn einmalige Freigabe nicht da -> Error *)
992 16#6004: CASE RX_NODE_ID OF
993 NODE_ID_Mac_Az:
994 (*IF X_EinmaligeFreigabe THEN*)
995 X_PC_IsRelative:=FALSE;
996 X_PC_PosZiel:=RX_VALUE;
997 X_PC_AntriebHalt:=FALSE;
998 X_PC_StartMovement := NOT X_PC_StartMovement;
999 X_PC_AnnounceStartMovement := TRUE;
1000 X_AnnounceStartMovement := TRUE;
1001 TX_VALUE:=16#00000000;(*
1002 ELSE
1003 TX_VALUE:=16#00000001;
1004 END_IF*)
1005 DatenSenden:=TRUE; (* Wenn keine einmalige Freigabe bleibt dieses Bit auf FALSE -> Error-Telegramm *)
1006 NODE_ID_Mac_Zd:
1007 (*IF Z_EinmaligeFreigabe THEN*)
1008 Z_PC_IsRelative:=FALSE;
1009 Z_PC_PosZiel:=RX_VALUE;
1010 Z_PC_AntriebHalt:=FALSE;
1011 Z_PC_StartMovement := NOT Z_PC_StartMovement;
1012 Z_PC_AnnounceStartMovement := TRUE;
1013 Z_AnnounceStartMovement := TRUE;
1014 TX_VALUE:=16#00000000;(*
1015 ELSE
1016 TX_VALUE:=16#00000001;
1017 END_IF*)
1018 DatenSenden:=TRUE; (* Wenn keine einmalige Freigabe bleibt dieses Bit auf FALSE -> Error-Telegramm *)
1019 END_CASE
1020 (* relative Position & Fahrbefehl starten (Nur für Pos) *)
1021 (* Wenn einmalige Freigabe nicht da -> Error *)
1022 16#6005: CASE RX_NODE_ID OF
1023 NODE_ID_Mac_Az:
1024 (*IF X_EinmaligeFreigabe THEN*)
1025 X_PC_IsRelative:=TRUE;
1026 (*X_PC_PosZiel:=REAL_TO_DWORD(DWORD_TO_REAL(RX_VALUE)*RotationalPositionResolution/RotaryEncoderResolution/ArbitraryMACFactor);*)
1027 X_PC_PosZiel:=RX_VALUE;
1028 X_PC_AntriebHalt:=FALSE;
1029 X_PC_StartMovement := NOT X_PC_StartMovement;
1030 X_PC_AnnounceStartMovement := TRUE;
1031 X_AnnounceStartMovement := TRUE;
1032 TX_VALUE:=16#00000000;(*
1033 ELSE
1034 TX_VALUE:=16#00000001;
1035 END_IF*)
1036 DatenSenden:=TRUE; (* Wenn keine einmalige Freigabe bleibt dieses Bit auf FALSE -> Error-Telegramm *)
1037 NODE_ID_Mac_Zd:
1038 (*IF Z_EinmaligeFreigabe THEN*)
1039 Z_PC_IsRelative:=TRUE;
1040 (*Z_PC_PosZiel:=REAL_TO_DWORD(DWORD_TO_REAL(RX_VALUE)*RotationalPositionResolution/RotaryEncoderResolution/ArbitraryMACFactor);*)
1041 Z_PC_PosZiel:=RX_VALUE;
1042 Z_PC_AntriebHalt:=FALSE;
1043 Z_PC_StartMovement := NOT Z_PC_StartMovement;
1044 Z_PC_AnnounceStartMovement := TRUE;
1045 Z_AnnounceStartMovement := TRUE;
1046 TX_VALUE:=16#00000000;(*
1047 ELSE
1048 TX_VALUE:=16#00000001;
1049 END_IF*)
1050 DatenSenden:=TRUE; (* Wenn keine einmalige Freigabe bleibt dieses Bit auf FALSE -> Error-Telegramm *)
1051 END_CASE
1052 (* Maximale Geschwindigkeit begrenzen (für Beides) (Nur zu Testzwecken) *)
1053 16#6502: CASE RX_NODE_ID OF
1054 NODE_ID_Mac_Az: X_PC_Maximalgeschwindigkeit:=RX_VALUE;
1055 NODE_ID_Mac_Zd: Z_PC_Maximalgeschwindigkeit:=RX_VALUE;
1056 END_CASE
1057 TX_VALUE:=16#00000000;
1058 DatenSenden:=TRUE;
1059 END_CASE;
1060 END_IF
1061 END_IF
1062
1063
1064(*-----------------------------------------------------------------------------------------------Auf nicht erkannte Telegramme mit Error antworten------------------------------------------------*)
1065 IF (NOT DatenSenden) AND RX_FUNCTION_CODE<>16#0 THEN
1066 TX_COMMAND:=16#80; (* ERROR *)
1067 TX_VALUE:=0;
1068 DatenSenden:=TRUE;
1069 END_IF
1070
1071
1072(*-----------------------------------------------------------------------------------------------Antworttelegramm zusammensetzen--------------------------------------------------------------------*)
1073 TX_COB_ID:=SHL(TX_FUNCTION_CODE,12) OR SHL(TX_NODE_ID,5);
1074 ByteBufferTX[0]:=10; (* 10 Nutzbytes *)
1075 ByteBufferTX[1]:=WORD_TO_BYTE(SHR(TX_COB_ID AND 16#FF00,8));
1076 ByteBufferTX[2]:=WORD_TO_BYTE(TX_COB_ID AND 16#00FF);
1077 ByteBufferTX[3]:=TX_COMMAND;
1078 ByteBufferTX[4]:=WORD_TO_BYTE(TX_INDEX AND 16#00FF);
1079 ByteBufferTX[5]:=WORD_TO_BYTE(SHR(TX_INDEX AND 16#FF00,8));
1080 ByteBufferTX[6]:=TX_SUBINDEX;
1081 ByteBufferTX[7]:=DWORD_TO_BYTE(TX_VALUE AND 16#000000FF);
1082 ByteBufferTX[8]:=DWORD_TO_BYTE(SHR(TX_VALUE AND 16#0000FF00,8));
1083 ByteBufferTX[9]:=DWORD_TO_BYTE(SHR(TX_VALUE AND 16#00FF0000,16));
1084 ByteBufferTX[10]:=DWORD_TO_BYTE(SHR(TX_VALUE AND 16#FF000000,24));
1085END_IF
1086
1087
1088(*-----------------------------------------------------------------------------------------------Zusatzbedingungen-------------------------------------------------------------------------------------------*)
1089(*IF X_PC_Maximalgeschwindigkeit<X_PC_PosGeschwindigkeit THEN
1090 X_PC_PosGeschwindigkeit:=X_PC_Maximalgeschwindigkeit;
1091END_IF
1092
1093IF Z_PC_Maximalgeschwindigkeit<Z_PC_PosGeschwindigkeit THEN
1094 Z_PC_PosGeschwindigkeit:=Z_PC_Maximalgeschwindigkeit;
1095END_IF
1096
1097IF X_PC_Maximalgeschwindigkeit<X_PC_VGeschwindigkeit THEN
1098 X_PC_VGeschwindigkeit:=X_PC_Maximalgeschwindigkeit;
1099END_IF
1100
1101IF Z_PC_Maximalgeschwindigkeit<Z_PC_VGeschwindigkeit THEN
1102Z_PC_VGeschwindigkeit:=Z_PC_Maximalgeschwindigkeit;
1103END_IF
1104*)
1105
1106(*
1107IF NOT X_EinmaligeFreigabe THEN
1108 X_PC_VStart:=FALSE;
1109 X_PC_AntriebHalt:=TRUE;
1110END_IF
1111
1112IF NOT Z_EinmaligeFreigabe THEN
1113 Z_PC_VStart:=FALSE;
1114 Z_PC_AntriebHalt:=TRUE;
1115END_IF*)
1116END_PROGRAM
1117
1118
1119(* @PATH := '\/Kommunikation' *)
1120(* @SYMFILEFLAGS := '59392' *)
1121PROGRAM Start
1122
1123VAR_INPUT
1124 dwEvent :INT;
1125 dwFilter :INT;
1126 dwOwner :INT;
1127END_VAR
1128
1129VAR_OUTPUT
1130 Start :DWORD;
1131END_VAR
1132(* @END_DECLARATION := '0' *)
1133_FBD_BODY
1134_NETWORKS : 3
1135_NETWORK
1136
1137_COMMENT
1138Diverse Werte initialisieren
1139_END_COMMENT
1140_ASSIGN
1141_OPERAND
1142_EXPRESSION
1143_POSITIV
1144PC_V_max_START
1145_EXPRESSION
1146_POSITIV
1147_OUTPUTS : 2
1148_OUTPUT
1149_POSITIV
1150_NO_SET
1151X_PC_Maximalgeschwindigkeit
1152_OUTPUT
1153_POSITIV
1154_NO_SET
1155Z_PC_Maximalgeschwindigkeit
1156_NETWORK
1157
1158_COMMENT
1159
1160_END_COMMENT
1161_ASSIGN
1162_OPERAND
1163_EXPRESSION
1164_POSITIV
11650
1166_EXPRESSION
1167_POSITIV
1168_OUTPUTS : 2
1169_OUTPUT
1170_POSITIV
1171_NO_SET
1172X_PC_Vel
1173_OUTPUT
1174_POSITIV
1175_NO_SET
1176Z_PC_Vel
1177_NETWORK
1178
1179_COMMENT
1180
1181_END_COMMENT
1182_ASSIGN
1183_OPERAND
1184_EXPRESSION
1185_POSITIV
11860
1187_EXPRESSION
1188_POSITIV
1189_OUTPUTS : 2
1190_OUTPUT
1191_POSITIV
1192_NO_SET
1193X_PC_VGeschwindigkeit
1194_OUTPUT
1195_POSITIV
1196_NO_SET
1197Z_PC_VGeschwindigkeit
1198
1199END_PROGRAM
1200
1201
1202(* @PATH := '\/Kommunikation' *)
1203(* @SYMFILEFLAGS := '59392' *)
1204PROGRAM Stop
1205
1206VAR_INPUT
1207 dwEvent :INT;
1208 dwFilter :INT;
1209 dwOwner :INT;
1210END_VAR
1211
1212VAR_OUTPUT
1213 Stop :DWORD;
1214END_VAR
1215(* @END_DECLARATION := '0' *)
1216_FBD_BODY
1217_NETWORKS : 2
1218_NETWORK
1219
1220_COMMENT
1221
1222_END_COMMENT
1223_FUNCTION
1224_BOX_EXPR : 1
1225_OPERAND
1226_EXPRESSION
1227_POSITIV
1228SockKomm
1229_EXPRESSION
1230_POSITIV
1231SysSockClose
1232_NETWORK
1233
1234_COMMENT
1235
1236_END_COMMENT
1237_FUNCTION
1238_BOX_EXPR : 1
1239_OPERAND
1240_EXPRESSION
1241_POSITIV
1242ListenSock
1243_EXPRESSION
1244_POSITIV
1245SysSockClose
1246
1247END_PROGRAM
1248
1249
1250(* @PATH := '\/Unterprogramme' *)
1251(* @SYMFILEFLAGS := '2048' *)
1252FUNCTIONBLOCK CompareDwordString4
1253
1254VAR_INPUT
1255 D: DWORD;
1256 Str: STRING(4);
1257END_VAR
1258
1259VAR_OUTPUT
1260 Ergebnis: BOOL;
1261END_VAR
1262
1263VAR
1264 i: INT;
1265 B1: BYTE;
1266 B2: BYTE;
1267 ptr: POINTER TO BYTE;
1268END_VAR
1269(* @END_DECLARATION := '0' *)
1270Ergebnis:=TRUE;
1271
1272FOR i:=0 TO 3 DO
1273 ptr := ADR(D)+i;
1274 B1:= ptr^;
1275 ptr := ADR(Str)+3-i;
1276 B2 := ptr^;
1277 IF B1 <> B2 THEN
1278 Ergebnis:=FALSE;
1279 END_IF
1280END_FOR
1281END_FUNCTION_BLOCK
1282
1283
1284(* @PATH := '\/Unterprogramme' *)
1285(* @SYMFILEFLAGS := '2048' *)
1286FUNCTIONBLOCK Decode
1287
1288VAR_INPUT
1289 Hi: DWORD;
1290 Lo: DWORD;
1291END_VAR
1292
1293VAR_OUTPUT
1294 Out: DWORD;
1295END_VAR
1296(* @END_DECLARATION := '0' *)
1297_FBD_BODY
1298_NETWORKS : 1
1299_NETWORK
1300
1301_COMMENT
1302
1303_END_COMMENT
1304_ASSIGN
1305_OPERATOR
1306_BOX_EXPR : 2
1307_OPERATOR
1308_BOX_EXPR : 2
1309_OPERAND
1310_EXPRESSION
1311_POSITIV
1312Hi
1313_OPERAND
1314_EXPRESSION
1315_POSITIV
131616
1317_EXPRESSION
1318_POSITIV
1319SHL
1320_OPERAND
1321_EXPRESSION
1322_POSITIV
1323Lo
1324_EXPRESSION
1325_POSITIV
1326OR
1327_EXPRESSION
1328_POSITIV
1329_OUTPUTS : 1
1330_OUTPUT
1331_POSITIV
1332_NO_SET
1333Out
1334
1335END_FUNCTION_BLOCK
1336
1337
1338(* @PATH := '\/Unterprogramme' *)
1339(* @SYMFILEFLAGS := '2048' *)
1340FUNCTION_BLOCK Ecodrive_7W_Antr_Gef_Pos
1341
1342VAR_INPUT
1343 Freigabe: BOOL; (*Antriebstatus Uebergang Ab -> Ah*)
1344 ReleaseAntriebHalt: BOOL; (*Explicitly release Antrieb Halt*)
1345 FehlerQuittieren: BOOL; (*Stoerung quittieren*)
1346 Absolutmasssetzen: BOOL; (*Absolutmass setzen*)
1347 Was_TippenAn: BOOL; (*Betriebart Tippen ausgewaehlt*)
1348 TippenPlus: BOOL; (*Tippen vorwaerts*)
1349 TippenMinus: BOOL; (*Tippen rueckwaerts*)
1350 Start: BOOL; (*Positionierung starten*)
1351 RelativesPositionieren: BOOL;
1352 Geschwindigkeitsregelung: BOOL;
1353 SollwertPosition: DINT; (*Soll-Position*)
1354 SollwertGeschwindigkeit: DINT; (*Soll-Geschwindigkeit*)
1355 Was_PositionierBeschleunigung: DWORD; (*PositionierBeschleunigung*)
1356 Was_PC_Mode: BOOL;
1357 PEW1: WORD; (*Eingangswort 1*)
1358 PEW2: WORD; (*Eingangswort 2*)
1359 PEW3: WORD; (*Eingangswort 3*)
1360 PEW4: WORD; (*Eingangswort 4*)
1361 PEW5: WORD; (*Eingangswort 5*)
1362 PEW6: WORD; (*Eingangswort 6*)
1363 PEW7: WORD; (*Eingangswort 7*)
1364 PEW8: WORD; (*Eingangswort 8*)
1365 PEW9: WORD; (*Eingangswort 9*)
1366 PEW10: WORD;
1367 StartMovement :BOOL;
1368 TippenBeschl: DWORD;
1369 PC_Beschl: DWORD;
1370END_VAR
1371
1372VAR_OUTPUT
1373 AntriebInPhase4 :BOOL; (*Antrieb ist in Phase 4*)
1374 AntriebBetriebsbereit :BOOL; (* Antrieb betriebsbereit *)
1375 AntriebFreigegeben :BOOL; (*Antrieb hat Leistung und ist freigegeben*)
1376 AntriebInHalt: BOOL; (*Antrieb HALT*)
1377 InReferenz :BOOL; (*Antrieb ist referenziert*)
1378 InPosition :BOOL; (*Zielposition erreicht*)
1379 InStillstand :BOOL; (*IN_STANDSTILL*)
1380 FehlerStehtAn :BOOL; (*ERROR*)
1381 EndschalterPlus :BOOL; (*Soft- oder Hardwareendschalter Plus erreicht*)
1382 EndschalterMinus :BOOL; (*Soft- oder Hardwareendschalter Minus erreicht*)
1383 Diagnosewort :DINT; (*DRIVE_DIAGNOSIS*)
1384 IstwertPosition :DINT; (*Aktuelle Position, actual position*)
1385 IstwertGeschwindigkeit :DINT; (*Aktuelle Geschwindigkeit, actual velocity*)
1386 PositionFeedback2 :DINT;
1387 IsOnline :BOOL; (* Drive is online on the bus *)
1388 PAW1 :WORD; (*Ausgangswort 1*)
1389 PAW2 :WORD; (*Ausgangswort 2*)
1390 PAW3 :WORD; (*Ausgangswort 3*)
1391 PAW4 :WORD; (*Ausgangswort 4*)
1392 PAW5 :WORD; (*Ausgangswort 5*)
1393 PAW6 :WORD; (*Ausgangswort 6*)
1394 PAW7 :WORD; (*Ausgangswort 7*)
1395 PAW8 :WORD; (*Ausgangswort 8*)
1396 PAW9 :WORD; (*Ausgangswort 9*)
1397 PAW10 :WORD;
1398 PAW11 :WORD;
1399END_VAR
1400
1401VAR
1402 ek_in_eco: struct_ek_in_eco; (*Feldbusschnittstelle-Eingänge*)
1403 ek_out_eco: struct_ek_out_eco; (*Feldbusschnittstelle-Eingänge*)
1404 INTERN_FRG: BOOL;
1405(* INTERN_JOG_FORWARD: BOOL;*)
1406(* INTERN_JOG_BACKWARD: BOOL;*)
1407 INTERN_POS_START: BOOL;
1408 Negate: NEG;
1409 RStest: RS;
1410 PC_Start_pos: BOOL;
1411 Decoder: Decode;
1412 Encoder: Encode;
1413 DelayResetOfStartMovement: TON;
1414 ToggleStartMovement: BLINK;
1415 DelayInPosition: TON;
1416 PositionFeedback1: DINT;
1417 DelayStartMovementTon: TON;
1418 DelayStartMovementTof: TOF;
1419 DelayAHJog: TOF;
1420 TippenAnhaltenDetektor: F_TRIG;
1421 TippenWartenAufStillstand: RS;
1422 TippenAnhalten: BOOL;
1423 TippenAnhaltenVerzoegerung: TOF;
1424 PositionierBeschleunigung: DWORD; (*PositionierBeschleunigung*)
1425END_VAR
1426(* @END_DECLARATION := '0' *)
1427_FBD_BODY
1428_NETWORKS : 49
1429_NETWORK
1430
1431_COMMENT
1432Eingangssignale vom Profibus lesen
1433_END_COMMENT
1434_ASSIGN
1435_OPERAND
1436_EXPRESSION
1437_POSITIV
1438PEW1
1439_EXPRESSION
1440_POSITIV
1441_OUTPUTS : 1
1442_OUTPUT
1443_POSITIV
1444_NO_SET
1445ek_in_eco.statuswort
1446_NETWORK
1447
1448_COMMENT
1449
1450_END_COMMENT
1451_ASSIGN
1452_FUNCTIONBLOCK
1453Decoder
1454_BOX_EXPR : 2
1455_OPERAND
1456_EXPRESSION
1457_POSITIV
1458PEW2
1459_OPERAND
1460_EXPRESSION
1461_POSITIV
1462PEW3
1463_EXPRESSION
1464_POSITIV
1465Decode
1466_OUTPUTS : 0
1467_EXPRESSION
1468_POSITIV
1469_OUTPUTS : 1
1470_OUTPUT
1471_POSITIV
1472_NO_SET
1473ek_in_eco.pos_act
1474_NETWORK
1475
1476_COMMENT
1477
1478_END_COMMENT
1479_ASSIGN
1480_FUNCTIONBLOCK
1481Decoder
1482_BOX_EXPR : 2
1483_OPERAND
1484_EXPRESSION
1485_POSITIV
1486PEW4
1487_OPERAND
1488_EXPRESSION
1489_POSITIV
1490PEW5
1491_EXPRESSION
1492_POSITIV
1493Decode
1494_OUTPUTS : 0
1495_EXPRESSION
1496_POSITIV
1497_OUTPUTS : 1
1498_OUTPUT
1499_POSITIV
1500_NO_SET
1501ek_in_eco.vel_act
1502_NETWORK
1503
1504_COMMENT
1505
1506_END_COMMENT
1507_ASSIGN
1508_FUNCTIONBLOCK
1509Decoder
1510_BOX_EXPR : 2
1511_OPERAND
1512_EXPRESSION
1513_POSITIV
1514PEW6
1515_OPERAND
1516_EXPRESSION
1517_POSITIV
1518PEW7
1519_EXPRESSION
1520_POSITIV
1521Decode
1522_OUTPUTS : 0
1523_EXPRESSION
1524_POSITIV
1525_OUTPUTS : 1
1526_OUTPUT
1527_POSITIV
1528_NO_SET
1529ek_in_eco.diagnosis
1530_NETWORK
1531
1532_COMMENT
1533
1534_END_COMMENT
1535_ASSIGN
1536_OPERAND
1537_EXPRESSION
1538_POSITIV
1539PEW8
1540_EXPRESSION
1541_POSITIV
1542_OUTPUTS : 1
1543_OUTPUT
1544_POSITIV
1545_NO_SET
1546ek_in_eco.signalstatuswort
1547_NETWORK
1548
1549_COMMENT
1550
1551_END_COMMENT
1552_ASSIGN
1553_FUNCTIONBLOCK
1554Decoder
1555_BOX_EXPR : 2
1556_OPERAND
1557_EXPRESSION
1558_POSITIV
1559PEW9
1560_OPERAND
1561_EXPRESSION
1562_POSITIV
1563PEW10
1564_EXPRESSION
1565_POSITIV
1566Decode
1567_OUTPUTS : 0
1568_EXPRESSION
1569_POSITIV
1570_OUTPUTS : 1
1571_OUTPUT
1572_POSITIV
1573_NO_SET
1574PositionFeedback2
1575_NETWORK
1576
1577_COMMENT
1578
1579_END_COMMENT
1580_ASSIGN
1581_OPERAND
1582_EXPRESSION
1583_POSITIV
1584ek_in_eco.pos_act
1585_EXPRESSION
1586_POSITIV
1587_OUTPUTS : 1
1588_OUTPUT
1589_POSITIV
1590_NO_SET
1591PositionFeedback1
1592_NETWORK
1593
1594_COMMENT
1595DKC in Phase 4
1596_END_COMMENT
1597_ASSIGN
1598_OPERATOR
1599_BOX_EXPR : 2
1600_OPERAND
1601_EXPRESSION
1602_NEGATIV
1603ek_in_eco.o_mode_acknowledge_Bit0
1604_OPERAND
1605_EXPRESSION
1606_POSITIV
1607ek_in_eco.o_mode_acknowledge_Bit1
1608_EXPRESSION
1609_POSITIV
1610AND
1611_EXPRESSION
1612_POSITIV
1613_OUTPUTS : 1
1614_OUTPUT
1615_POSITIV
1616_NO_SET
1617AntriebInPhase4
1618_NETWORK
1619
1620_COMMENT
1621
1622_END_COMMENT
1623_ASSIGN
1624_OPERAND
1625_EXPRESSION
1626_POSITIV
1627ek_in_eco.ready_to_operate_Bit1
1628_EXPRESSION
1629_POSITIV
1630_OUTPUTS : 1
1631_OUTPUT
1632_POSITIV
1633_NO_SET
1634AntriebBetriebsbereit
1635_NETWORK
1636
1637_COMMENT
1638DKC einschalten und freigeben (Output of the first AND is "Absolutmass gesetzt", AbsolutmassSetzen=TRUE)
1639_END_COMMENT
1640_ASSIGN
1641_OPERATOR
1642_BOX_EXPR : 4
1643_OPERAND
1644_EXPRESSION
1645_POSITIV
1646Freigabe
1647_OPERAND
1648_EXPRESSION
1649_POSITIV
1650AntriebInPhase4
1651_OPERAND
1652_EXPRESSION
1653_POSITIV
1654ek_in_eco.ready_to_operate_Bit1
1655_OPERATOR
1656_BOX_EXPR : 2
1657_OPERAND
1658_EXPRESSION
1659_NEGATIV
1660Absolutmasssetzen
1661_OPERATOR
1662_BOX_EXPR : 2
1663_OPERAND
1664_EXPRESSION
1665_POSITIV
1666Absolutmasssetzen
1667_OPERAND
1668_EXPRESSION
1669_POSITIV
1670ek_in_eco.command_change_bit
1671_EXPRESSION
1672_POSITIV
1673AND
1674_EXPRESSION
1675_POSITIV
1676OR
1677_EXPRESSION
1678_POSITIV
1679AND
1680_EXPRESSION
1681_POSITIV
1682_OUTPUTS : 2
1683_OUTPUT
1684_POSITIV
1685_NO_SET
1686ek_out_eco.drive_on
1687_OUTPUT
1688_POSITIV
1689_NO_SET
1690ek_out_eco.drive_enable
1691_NETWORK
1692
1693_COMMENT
1694DKC ist freigegeben
1695_END_COMMENT
1696_ASSIGN
1697_OPERATOR
1698_BOX_EXPR : 2
1699_OPERAND
1700_EXPRESSION
1701_POSITIV
1702ek_in_eco.ready_to_operate_Bit0
1703_OPERAND
1704_EXPRESSION
1705_POSITIV
1706ek_in_eco.ready_to_operate_Bit1
1707_EXPRESSION
1708_POSITIV
1709AND
1710_EXPRESSION
1711_POSITIV
1712_OUTPUTS : 1
1713_OUTPUT
1714_POSITIV
1715_NO_SET
1716AntriebFreigegeben
1717_NETWORK
1718
1719_COMMENT
1720Interne Freigabe
1721_END_COMMENT
1722_ASSIGN
1723_OPERATOR
1724_BOX_EXPR : 3
1725_OPERAND
1726_EXPRESSION
1727_POSITIV
1728ek_out_eco.drive_on
1729_OPERAND
1730_EXPRESSION
1731_POSITIV
1732ek_out_eco.drive_enable
1733_OPERAND
1734_EXPRESSION
1735_POSITIV
1736AntriebFreigegeben
1737_EXPRESSION
1738_POSITIV
1739AND
1740_EXPRESSION
1741_POSITIV
1742_OUTPUTS : 1
1743_OUTPUT
1744_POSITIV
1745_NO_SET
1746INTERN_FRG
1747_NETWORK
1748
1749_COMMENT
1750Absolutmass setzen
1751_END_COMMENT
1752_ASSIGN
1753_OPERAND
1754_EXPRESSION
1755_POSITIV
1756Absolutmasssetzen
1757_EXPRESSION
1758_POSITIV
1759_OUTPUTS : 1
1760_OUTPUT
1761_POSITIV
1762_NO_SET
1763ek_out_eco.signalsteuerwort.0
1764_NETWORK
1765(* TRUE was PC_mode *)
1766_COMMENT
1767
1768_END_COMMENT
1769_ASSIGN
1770_OPERATOR
1771_BOX_EXPR : 2
1772_OPERAND
1773_EXPRESSION
1774_POSITIV
1775TRUE
1776_OPERAND
1777_EXPRESSION
1778_POSITIV
1779Start
1780_EXPRESSION
1781_POSITIV
1782AND
1783_EXPRESSION
1784_POSITIV
1785_OUTPUTS : 1
1786_OUTPUT
1787_POSITIV
1788_NO_SET
1789PC_Start_pos
1790_NETWORK
1791
1792_COMMENT
1793
1794_END_COMMENT
1795_ASSIGN
1796_OPERATOR
1797_BOX_EXPR : 3
1798_OPERAND
1799_EXPRESSION
1800_POSITIV
1801INTERN_FRG
1802_OPERAND
1803_EXPRESSION
1804_POSITIV
1805PC_Start_pos
1806_OPERAND
1807_EXPRESSION
1808_POSITIV
1809ek_in_eco.in_reference
1810_EXPRESSION
1811_POSITIV
1812AND
1813_EXPRESSION
1814_POSITIV
1815_OUTPUTS : 1
1816_OUTPUT
1817_POSITIV
1818_NO_SET
1819INTERN_POS_START
1820_NETWORK
1821
1822_COMMENT
1823
1824_END_COMMENT
1825_ASSIGN
1826_FUNCTIONBLOCK
1827TippenWartenAufStillstand
1828_BOX_EXPR : 2
1829_FUNCTIONBLOCK
1830TippenAnhaltenDetektor
1831_BOX_EXPR : 1
1832_OPERATOR
1833_BOX_EXPR : 2
1834_OPERAND
1835_EXPRESSION
1836_POSITIV
1837TippenPlus
1838_OPERAND
1839_EXPRESSION
1840_POSITIV
1841TippenMinus
1842_EXPRESSION
1843_POSITIV
1844OR
1845_EXPRESSION
1846_POSITIV
1847F_TRIG
1848_OUTPUTS : 0
1849_OPERATOR
1850_BOX_EXPR : 2
1851_OPERAND
1852_EXPRESSION
1853_POSITIV
1854ek_in_eco.in_standstill
1855_OPERAND
1856_EXPRESSION
1857_POSITIV
1858FALSE
1859_EXPRESSION
1860_POSITIV
1861OR
1862_EXPRESSION
1863_POSITIV
1864RS
1865_OUTPUTS : 0
1866_EXPRESSION
1867_POSITIV
1868_OUTPUTS : 1
1869_OUTPUT
1870_POSITIV
1871_NO_SET
1872TippenAnhalten
1873_NETWORK
1874
1875_COMMENT
1876
1877_END_COMMENT
1878_ASSIGN
1879_OPERATOR
1880_BOX_EXPR : 2
1881_OPERAND
1882_EXPRESSION
1883_POSITIV
1884TippenPlus
1885_OPERAND
1886_EXPRESSION
1887_POSITIV
1888TippenAnhalten
1889_EXPRESSION
1890_POSITIV
1891OR
1892_EXPRESSION
1893_POSITIV
1894_OUTPUTS : 1
1895_OUTPUT
1896_POSITIV
1897_NO_SET
1898TippenPlus
1899_NETWORK
1900
1901_COMMENT
1902
1903_END_COMMENT
1904_ASSIGN
1905_OPERATOR
1906_BOX_EXPR : 2
1907_OPERAND
1908_EXPRESSION
1909_POSITIV
1910TippenMinus
1911_OPERAND
1912_EXPRESSION
1913_POSITIV
1914TippenAnhalten
1915_EXPRESSION
1916_POSITIV
1917OR
1918_EXPRESSION
1919_POSITIV
1920_OUTPUTS : 1
1921_OUTPUT
1922_POSITIV
1923_NO_SET
1924TippenMinus
1925_NETWORK
1926
1927_COMMENT
1928Beschleunigung wird auch fuer Tipp-Betrieb gesetzt
1929_END_COMMENT
1930_ASSIGN
1931_OPERATOR
1932_BOX_EXPR : 3
1933_OPERATOR
1934_BOX_EXPR : 2
1935_OPERAND
1936_EXPRESSION
1937_POSITIV
1938TippenPlus
1939_OPERAND
1940_EXPRESSION
1941_POSITIV
1942TippenMinus
1943_EXPRESSION
1944_POSITIV
1945OR
1946_OPERAND
1947_EXPRESSION
1948_POSITIV
1949PC_Beschl
1950_OPERAND
1951_EXPRESSION
1952_POSITIV
1953TippenBeschl
1954_EXPRESSION
1955_POSITIV
1956SEL
1957_EXPRESSION
1958_POSITIV
1959_OUTPUTS : 1
1960_OUTPUT
1961_POSITIV
1962_NO_SET
1963PositionierBeschleunigung
1964_NETWORK
1965
1966_COMMENT
1967DKC-Antrieb Halt ansteuern
1968_END_COMMENT
1969_ASSIGN
1970_OPERATOR
1971_BOX_EXPR : 3
1972_FUNCTIONBLOCK
1973DelayAHJog
1974_BOX_EXPR : 2
1975_OPERATOR
1976_BOX_EXPR : 2
1977_OPERAND
1978_EXPRESSION
1979_POSITIV
1980TippenPlus
1981_OPERAND
1982_EXPRESSION
1983_POSITIV
1984TippenMinus
1985_EXPRESSION
1986_POSITIV
1987OR
1988_OPERAND
1989_EXPRESSION
1990_POSITIV
1991T#0s
1992_EXPRESSION
1993_POSITIV
1994TOF
1995_OUTPUTS : 1
1996_OUTPUT
1997_POSITIV
1998_NO_SET
1999_EMPTY
2000_OPERAND
2001_EXPRESSION
2002_POSITIV
2003INTERN_POS_START
2004_OPERAND
2005_EXPRESSION
2006_POSITIV
2007ReleaseAntriebHalt
2008_EXPRESSION
2009_NEGATIV
2010OR
2011_EXPRESSION
2012_POSITIV
2013_OUTPUTS : 1
2014_OUTPUT
2015_POSITIV
2016_NO_SET
2017AntriebInHalt
2018_NETWORK
2019
2020_COMMENT
2021
2022_END_COMMENT
2023_ASSIGN
2024_OPERAND
2025_EXPRESSION
2026_NEGATIV
2027AntriebInHalt
2028_EXPRESSION
2029_POSITIV
2030_OUTPUTS : 1
2031_OUTPUT
2032_POSITIV
2033_NO_SET
2034ek_out_eco.drive_halt
2035_NETWORK
2036
2037_COMMENT
2038
2039_END_COMMENT
2040_ASSIGN
2041_OPERAND
2042_EXPRESSION
2043_POSITIV
2044FALSE
2045_EXPRESSION
2046_POSITIV
2047_OUTPUTS : 1
2048_OUTPUT
2049_POSITIV
2050_NO_SET
2051ek_out_eco.set_operating_mode_Bit0
2052_NETWORK
2053
2054_COMMENT
2055
2056_END_COMMENT
2057_ASSIGN
2058_OPERAND
2059_EXPRESSION
2060_POSITIV
2061FALSE
2062_EXPRESSION
2063_POSITIV
2064_OUTPUTS : 1
2065_OUTPUT
2066_POSITIV
2067_NO_SET
2068ek_out_eco.set_operating_mode_Bit1
2069_NETWORK
2070
2071_COMMENT
2072Tippen
2073_END_COMMENT
2074_ASSIGN
2075_OPERAND
2076_EXPRESSION
2077_POSITIV
2078TippenPlus
2079_EXPRESSION
2080_POSITIV
2081_OUTPUTS : 1
2082_OUTPUT
2083_POSITIV
2084_NO_SET
2085ek_out_eco.jog_forward
2086_NETWORK
2087
2088_COMMENT
2089
2090_END_COMMENT
2091_ASSIGN
2092_OPERAND
2093_EXPRESSION
2094_POSITIV
2095TippenMinus
2096_EXPRESSION
2097_POSITIV
2098_OUTPUTS : 1
2099_OUTPUT
2100_POSITIV
2101_NO_SET
2102ek_out_eco.jog_backwards
2103_NETWORK
2104
2105_COMMENT
2106Fehler löschen
2107_END_COMMENT
2108_ASSIGN
2109_OPERAND
2110_EXPRESSION
2111_POSITIV
2112FehlerQuittieren
2113_EXPRESSION
2114_POSITIV
2115_OUTPUTS : 1
2116_OUTPUT
2117_POSITIV
2118_NO_SET
2119ek_out_eco.error_delete
2120_NETWORK
2121
2122_COMMENT
2123Daten übergeben
2124_END_COMMENT
2125_ASSIGN
2126_OPERAND
2127_EXPRESSION
2128_POSITIV
2129SollwertGeschwindigkeit
2130_EXPRESSION
2131_POSITIV
2132_OUTPUTS : 1
2133_OUTPUT
2134_POSITIV
2135_NO_SET
2136ek_out_eco.vel_cmd
2137_NETWORK
2138
2139_COMMENT
2140
2141_END_COMMENT
2142_ASSIGN
2143_OPERAND
2144_EXPRESSION
2145_POSITIV
2146SollwertPosition
2147_EXPRESSION
2148_POSITIV
2149_OUTPUTS : 1
2150_OUTPUT
2151_POSITIV
2152_NO_SET
2153ek_out_eco.pos_cmd
2154_NETWORK
2155
2156_COMMENT
2157
2158_END_COMMENT
2159_ASSIGN
2160_OPERATOR
2161_BOX_EXPR : 2
2162_OPERAND
2163_EXPRESSION
2164_POSITIV
2165PositionFeedback1
2166_OPERATOR
2167_BOX_EXPR : 2
2168_OPERAND
2169_EXPRESSION
2170_POSITIV
2171SollwertPosition
2172_OPERAND
2173_EXPRESSION
2174_POSITIV
2175PositionFeedback2
2176_EXPRESSION
2177_POSITIV
2178SUB
2179_EXPRESSION
2180_POSITIV
2181ADD
2182_EXPRESSION
2183_POSITIV
2184_OUTPUTS : 1
2185_OUTPUT
2186_POSITIV
2187_NO_SET
2188ek_out_eco.pos_cmd
2189_NETWORK
2190
2191_COMMENT
2192
2193_END_COMMENT
2194_ASSIGN
2195_OPERAND
2196_EXPRESSION
2197_POSITIV
2198FALSE
2199_EXPRESSION
2200_POSITIV
2201_OUTPUTS : 1
2202_OUTPUT
2203_POSITIV
2204_NO_SET
2205ek_out_eco.absolute_relative
2206_NETWORK
2207
2208_COMMENT
2209
2210_END_COMMENT
2211_ASSIGN
2212_OPERAND
2213_EXPRESSION
2214_POSITIV
2215TRUE
2216_EXPRESSION
2217_POSITIV
2218_OUTPUTS : 1
2219_OUTPUT
2220_POSITIV
2221_NO_SET
2222ek_out_eco.immediate_block_change
2223_NETWORK
2224
2225_COMMENT
2226
2227_END_COMMENT
2228_ASSIGN
2229_OPERATOR
2230_BOX_EXPR : 2
2231_FUNCTIONBLOCK
2232DelayStartMovementTon
2233_BOX_EXPR : 2
2234_FUNCTIONBLOCK
2235DelayStartMovementTof
2236_BOX_EXPR : 2
2237_OPERAND
2238_EXPRESSION
2239_POSITIV
2240StartMovement
2241_OPERAND
2242_EXPRESSION
2243_POSITIV
2244t#50ms
2245_EXPRESSION
2246_POSITIV
2247TOF
2248_OUTPUTS : 1
2249_OUTPUT
2250_POSITIV
2251_NO_SET
2252_EMPTY
2253_OPERAND
2254_EXPRESSION
2255_POSITIV
2256t#50ms
2257_EXPRESSION
2258_POSITIV
2259TON
2260_OUTPUTS : 1
2261_OUTPUT
2262_POSITIV
2263_NO_SET
2264_EMPTY
2265_OPERAND
2266_EXPRESSION
2267_POSITIV
2268TRUE
2269_EXPRESSION
2270_POSITIV
2271AND
2272_EXPRESSION
2273_POSITIV
2274_OUTPUTS : 1
2275_OUTPUT
2276_POSITIV
2277_NO_SET
2278ek_out_eco.setpoint_acceptance
2279_NETWORK
2280
2281_COMMENT
2282
2283_END_COMMENT
2284_ASSIGN
2285_OPERAND
2286_EXPRESSION
2287_POSITIV
2288StartMovement
2289_EXPRESSION
2290_POSITIV
2291_OUTPUTS : 1
2292_OUTPUT
2293_POSITIV
2294_NO_SET
2295ek_out_eco.setpoint_acceptance
2296_NETWORK
2297
2298_COMMENT
2299Istwerte anzeigen
2300_END_COMMENT
2301_ASSIGN
2302_OPERAND
2303_EXPRESSION
2304_POSITIV
2305ek_in_eco.pos_act
2306_EXPRESSION
2307_POSITIV
2308_OUTPUTS : 1
2309_OUTPUT
2310_POSITIV
2311_NO_SET
2312IstwertPosition
2313_NETWORK
2314
2315_COMMENT
2316
2317_END_COMMENT
2318_ASSIGN
2319_OPERAND
2320_EXPRESSION
2321_POSITIV
2322ek_in_eco.vel_act
2323_EXPRESSION
2324_POSITIV
2325_OUTPUTS : 1
2326_OUTPUT
2327_POSITIV
2328_NO_SET
2329IstwertGeschwindigkeit
2330_NETWORK
2331
2332_COMMENT
2333
2334_END_COMMENT
2335_ASSIGN
2336_OPERAND
2337_EXPRESSION
2338_POSITIV
2339ek_in_eco.diagnosis
2340_EXPRESSION
2341_POSITIV
2342_OUTPUTS : 1
2343_OUTPUT
2344_POSITIV
2345_NO_SET
2346Diagnosewort
2347_NETWORK
2348
2349_COMMENT
2350
2351_END_COMMENT
2352_ASSIGN
2353_OPERAND
2354_EXPRESSION
2355_POSITIV
2356ek_in_eco.drive_Error_ZKL1
2357_EXPRESSION
2358_POSITIV
2359_OUTPUTS : 1
2360_OUTPUT
2361_POSITIV
2362_NO_SET
2363FehlerStehtAn
2364_NETWORK
2365
2366_COMMENT
2367
2368_END_COMMENT
2369_ASSIGN
2370_OPERAND
2371_EXPRESSION
2372_POSITIV
2373ek_in_eco.in_reference
2374_EXPRESSION
2375_POSITIV
2376_OUTPUTS : 1
2377_OUTPUT
2378_POSITIV
2379_NO_SET
2380InReferenz
2381_NETWORK
2382
2383_COMMENT
2384
2385_END_COMMENT
2386_ASSIGN
2387_OPERAND
2388_EXPRESSION
2389_POSITIV
2390ek_in_eco.setpoint_reached
2391_EXPRESSION
2392_POSITIV
2393_OUTPUTS : 1
2394_OUTPUT
2395_POSITIV
2396_NO_SET
2397InPosition
2398_NETWORK
2399
2400_COMMENT
2401
2402_END_COMMENT
2403_ASSIGN
2404_OPERAND
2405_EXPRESSION
2406_POSITIV
2407ek_in_eco.in_standstill
2408_EXPRESSION
2409_POSITIV
2410_OUTPUTS : 1
2411_OUTPUT
2412_POSITIV
2413_NO_SET
2414InStillstand
2415_NETWORK
2416
2417_COMMENT
2418Endschalter erreicht (*ueberfluessig*)
2419_END_COMMENT
2420_ASSIGN
2421_OPERATOR
2422_BOX_EXPR : 4
2423_OPERATOR
2424_BOX_EXPR : 2
2425_OPERAND
2426_EXPRESSION
2427_POSITIV
2428Diagnosewort
2429_OPERAND
2430_EXPRESSION
2431_POSITIV
243216#E829
2433_EXPRESSION
2434_POSITIV
2435EQ
2436_OPERATOR
2437_BOX_EXPR : 2
2438_OPERAND
2439_EXPRESSION
2440_POSITIV
2441Diagnosewort
2442_OPERAND
2443_EXPRESSION
2444_POSITIV
244516#E843
2446_EXPRESSION
2447_POSITIV
2448EQ
2449_OPERATOR
2450_BOX_EXPR : 2
2451_OPERAND
2452_EXPRESSION
2453_POSITIV
2454Diagnosewort
2455_OPERAND
2456_EXPRESSION
2457_POSITIV
245816#F643
2459_EXPRESSION
2460_POSITIV
2461EQ
2462_OPERATOR
2463_BOX_EXPR : 2
2464_OPERATOR
2465_BOX_EXPR : 2
2466_OPERAND
2467_EXPRESSION
2468_POSITIV
2469Diagnosewort
2470_OPERAND
2471_EXPRESSION
2472_POSITIV
247316#E831
2474_EXPRESSION
2475_POSITIV
2476EQ
2477_OPERAND
2478_EXPRESSION
2479_POSITIV
2480TippenPlus
2481_EXPRESSION
2482_POSITIV
2483AND
2484_EXPRESSION
2485_POSITIV
2486OR
2487_EXPRESSION
2488_POSITIV
2489_OUTPUTS : 1
2490_OUTPUT
2491_POSITIV
2492_NO_SET
2493EndschalterPlus
2494_NETWORK
2495
2496_COMMENT
2497Ueberfluessig
2498_END_COMMENT
2499_ASSIGN
2500_OPERATOR
2501_BOX_EXPR : 4
2502_OPERATOR
2503_BOX_EXPR : 2
2504_OPERAND
2505_EXPRESSION
2506_POSITIV
2507Diagnosewort
2508_OPERAND
2509_EXPRESSION
2510_POSITIV
251116#E830
2512_EXPRESSION
2513_POSITIV
2514EQ
2515_OPERATOR
2516_BOX_EXPR : 2
2517_OPERAND
2518_EXPRESSION
2519_POSITIV
2520Diagnosewort
2521_OPERAND
2522_EXPRESSION
2523_POSITIV
252416#E844
2525_EXPRESSION
2526_POSITIV
2527EQ
2528_OPERATOR
2529_BOX_EXPR : 2
2530_OPERAND
2531_EXPRESSION
2532_POSITIV
2533Diagnosewort
2534_OPERAND
2535_EXPRESSION
2536_POSITIV
253716#F644
2538_EXPRESSION
2539_POSITIV
2540EQ
2541_OPERATOR
2542_BOX_EXPR : 2
2543_OPERATOR
2544_BOX_EXPR : 2
2545_OPERAND
2546_EXPRESSION
2547_POSITIV
2548Diagnosewort
2549_OPERAND
2550_EXPRESSION
2551_POSITIV
255216#E831
2553_EXPRESSION
2554_POSITIV
2555EQ
2556_OPERAND
2557_EXPRESSION
2558_POSITIV
2559TippenMinus
2560_EXPRESSION
2561_POSITIV
2562AND
2563_EXPRESSION
2564_POSITIV
2565OR
2566_EXPRESSION
2567_POSITIV
2568_OUTPUTS : 1
2569_OUTPUT
2570_POSITIV
2571_NO_SET
2572EndschalterMinus
2573_NETWORK
2574
2575_COMMENT
2576
2577_END_COMMENT
2578_ASSIGN
2579_OPERATOR
2580_BOX_EXPR : 2
2581_OPERAND
2582_EXPRESSION
2583_POSITIV
2584Diagnosewort
2585_OPERAND
2586_EXPRESSION
2587_POSITIV
25880
2589_EXPRESSION
2590_NEGATIV
2591EQ
2592_EXPRESSION
2593_POSITIV
2594_OUTPUTS : 1
2595_OUTPUT
2596_POSITIV
2597_NO_SET
2598IsOnline
2599_NETWORK
2600
2601_COMMENT
2602Ausgangssignale an Profibus schreiben
2603_END_COMMENT
2604_ASSIGN
2605_OPERAND
2606_EXPRESSION
2607_POSITIV
2608ek_out_eco.steuerwort
2609_EXPRESSION
2610_POSITIV
2611_OUTPUTS : 1
2612_OUTPUT
2613_POSITIV
2614_NO_SET
2615PAW1
2616_NETWORK
2617
2618_COMMENT
2619
2620_END_COMMENT
2621_ASSIGN
2622_FUNCTIONBLOCK
2623Encoder
2624_BOX_EXPR : 1
2625_OPERAND
2626_EXPRESSION
2627_POSITIV
2628ek_out_eco.pos_cmd
2629_EXPRESSION
2630_POSITIV
2631Encode
2632_OUTPUTS : 1
2633_OUTPUT
2634_POSITIV
2635_NO_SET
2636PAW3
2637_EXPRESSION
2638_POSITIV
2639_OUTPUTS : 1
2640_OUTPUT
2641_POSITIV
2642_NO_SET
2643PAW2
2644_NETWORK
2645
2646_COMMENT
2647
2648_END_COMMENT
2649_ASSIGN
2650_FUNCTIONBLOCK
2651Encoder
2652_BOX_EXPR : 1
2653_OPERAND
2654_EXPRESSION
2655_POSITIV
2656ek_out_eco.vel_cmd
2657_EXPRESSION
2658_POSITIV
2659Encode
2660_OUTPUTS : 1
2661_OUTPUT
2662_POSITIV
2663_NO_SET
2664PAW5
2665_EXPRESSION
2666_POSITIV
2667_OUTPUTS : 1
2668_OUTPUT
2669_POSITIV
2670_NO_SET
2671PAW4
2672_NETWORK
2673
2674_COMMENT
2675
2676_END_COMMENT
2677_ASSIGN
2678_OPERAND
2679_EXPRESSION
2680_POSITIV
2681ek_out_eco.signalsteuerwort
2682_EXPRESSION
2683_POSITIV
2684_OUTPUTS : 1
2685_OUTPUT
2686_POSITIV
2687_NO_SET
2688PAW6
2689_NETWORK
2690
2691_COMMENT
2692
2693_END_COMMENT
2694_ASSIGN
2695_FUNCTIONBLOCK
2696Encoder
2697_BOX_EXPR : 1
2698_OPERAND
2699_EXPRESSION
2700_POSITIV
2701PositionierBeschleunigung
2702_EXPRESSION
2703_POSITIV
2704Encode
2705_OUTPUTS : 1
2706_OUTPUT
2707_POSITIV
2708_NO_SET
2709PAW8
2710_EXPRESSION
2711_POSITIV
2712_OUTPUTS : 1
2713_OUTPUT
2714_POSITIV
2715_NO_SET
2716PAW7
2717_NETWORK
2718
2719_COMMENT
2720PositionierVerzoegerung
2721_END_COMMENT
2722_ASSIGN
2723_FUNCTIONBLOCK
2724Encoder
2725_BOX_EXPR : 1
2726_OPERAND
2727_EXPRESSION
2728_POSITIV
27290
2730_EXPRESSION
2731_POSITIV
2732Encode
2733_OUTPUTS : 1
2734_OUTPUT
2735_POSITIV
2736_NO_SET
2737PAW10
2738_EXPRESSION
2739_POSITIV
2740_OUTPUTS : 1
2741_OUTPUT
2742_POSITIV
2743_NO_SET
2744PAW9
2745
2746END_FUNCTION_BLOCK
2747
2748
2749(* @PATH := '\/Unterprogramme' *)
2750(* @SYMFILEFLAGS := '2048' *)
2751FUNCTIONBLOCK Encode
2752
2753VAR_INPUT
2754 In: DWORD;
2755END_VAR
2756
2757VAR_OUTPUT
2758 Hi: WORD;
2759 Lo: WORD;
2760END_VAR
2761(* @END_DECLARATION := '0' *)
2762_FBD_BODY
2763_NETWORKS : 2
2764_NETWORK
2765
2766_COMMENT
2767
2768_END_COMMENT
2769_ASSIGN
2770_OPERATOR
2771_BOX_EXPR : 1
2772_OPERATOR
2773_BOX_EXPR : 2
2774_OPERAND
2775_EXPRESSION
2776_POSITIV
2777In
2778_OPERAND
2779_EXPRESSION
2780_POSITIV
278116#FFFF
2782_EXPRESSION
2783_POSITIV
2784AND
2785_EXPRESSION
2786_POSITIV
2787DWORD_TO_WORD
2788_EXPRESSION
2789_POSITIV
2790_OUTPUTS : 1
2791_OUTPUT
2792_POSITIV
2793_NO_SET
2794Lo
2795_NETWORK
2796
2797_COMMENT
2798
2799_END_COMMENT
2800_ASSIGN
2801_OPERATOR
2802_BOX_EXPR : 1
2803_OPERATOR
2804_BOX_EXPR : 2
2805_OPERATOR
2806_BOX_EXPR : 2
2807_OPERAND
2808_EXPRESSION
2809_POSITIV
2810In
2811_OPERAND
2812_EXPRESSION
2813_POSITIV
281416
2815_EXPRESSION
2816_POSITIV
2817SHR
2818_OPERAND
2819_EXPRESSION
2820_POSITIV
282116#FFFF
2822_EXPRESSION
2823_POSITIV
2824AND
2825_EXPRESSION
2826_POSITIV
2827DWORD_TO_WORD
2828_EXPRESSION
2829_POSITIV
2830_OUTPUTS : 1
2831_OUTPUT
2832_POSITIV
2833_NO_SET
2834Hi
2835
2836END_FUNCTION_BLOCK
2837
2838
2839(* @PATH := '\/Unterprogramme' *)
2840(* @SYMFILEFLAGS := '2048' *)
2841FUNCTION_BLOCK NEG
2842
2843VAR_INPUT
2844 In: DWORD;
2845END_VAR
2846
2847VAR_OUTPUT
2848 Out : DWORD;
2849END_VAR
2850
2851VAR
2852END_VAR
2853(* @END_DECLARATION := '0' *)
2854Out:=-In;
2855END_FUNCTION_BLOCK
2856
2857
2858(* @PATH := '\/Unterprogramme' *)
2859(* @SYMFILEFLAGS := '2048' *)
2860FUNCTIONBLOCK RF_TRIG
2861
2862VAR_INPUT
2863 In: BOOL;
2864END_VAR
2865
2866VAR_OUTPUT
2867 Out: BOOL;
2868END_VAR
2869VAR
2870 RaisingEdge: R_TRIG;
2871 FallingEdge: F_TRIG;
2872END_VAR
2873(* @END_DECLARATION := '0' *)
2874_FBD_BODY
2875_NETWORKS : 1
2876_NETWORK
2877
2878_COMMENT
2879Detects an edge (change in the leven)
2880_END_COMMENT
2881_ASSIGN
2882_OPERATOR
2883_BOX_EXPR : 2
2884_FUNCTIONBLOCK
2885RaisingEdge
2886_BOX_EXPR : 1
2887_OPERAND
2888_EXPRESSION
2889_POSITIV
2890In
2891_EXPRESSION
2892_POSITIV
2893R_TRIG
2894_OUTPUTS : 0
2895_FUNCTIONBLOCK
2896FallingEdge
2897_BOX_EXPR : 1
2898_OPERAND
2899_EXPRESSION
2900_POSITIV
2901In
2902_EXPRESSION
2903_POSITIV
2904F_TRIG
2905_OUTPUTS : 0
2906_EXPRESSION
2907_POSITIV
2908OR
2909_EXPRESSION
2910_POSITIV
2911_OUTPUTS : 1
2912_OUTPUT
2913_POSITIV
2914_NO_SET
2915Out
2916
2917END_FUNCTION_BLOCK
2918
2919
2920(* @PATH := '' *)
2921(* @SYMFILEFLAGS := '2048' *)
2922 PROGRAM AchseX
2923
2924VAR
2925 Antrieb_1: Ecodrive_7W_Antr_Gef_Pos;
2926 X_AntriebHalt_Delay: TOF;
2927END_VAR
2928(* @END_DECLARATION := '0' *)
2929_FBD_BODY
2930_NETWORKS : 5
2931_NETWORK
2932
2933_COMMENT
2934alter X_Pos_soll Wert fuer X_PC_VStart: -+536000000
2935_END_COMMENT
2936_ASSIGN
2937_OPERATOR
2938_BOX_EXPR : 3
2939_OPERATOR
2940_BOX_EXPR : 2
2941_OPERAND
2942_EXPRESSION
2943_POSITIV
2944X_ist_freigegeben
2945_OPERAND
2946_EXPRESSION
2947_NEGATIV
2948x_PC_AntriebHalt
2949_EXPRESSION
2950_POSITIV
2951AND
2952_OPERAND
2953_EXPRESSION
2954_POSITIV
2955X_Pos_Geber2
2956_OPERATOR
2957_BOX_EXPR : 3
2958_OPERAND
2959_EXPRESSION
2960_POSITIV
2961X_PC_VStart
2962_OPERATOR
2963_BOX_EXPR : 3
2964_OPERAND
2965_EXPRESSION
2966_POSITIV
2967X_PC_IsRelative
2968_OPERAND
2969_EXPRESSION
2970_POSITIV
2971X_PC_PosZiel
2972_OPERATOR
2973_BOX_EXPR : 2
2974_OPERAND
2975_EXPRESSION
2976_POSITIV
2977X_PC_PosZiel
2978_OPERAND
2979_EXPRESSION
2980_POSITIV
2981X_Pos_Geber2
2982_EXPRESSION
2983_POSITIV
2984ADD
2985_EXPRESSION
2986_POSITIV
2987SEL
2988_OPERATOR
2989_BOX_EXPR : 3
2990_OPERATOR
2991_BOX_EXPR : 2
2992_OPERAND
2993_EXPRESSION
2994_POSITIV
2995X_PC_VGeschwindigkeit
2996_OPERAND
2997_EXPRESSION
2998_POSITIV
29990
3000_EXPRESSION
3001_POSITIV
3002LT
3003_OPERAND
3004_EXPRESSION
3005_POSITIV
3006900000
3007_OPERAND
3008_EXPRESSION
3009_POSITIV
3010-900000
3011_EXPRESSION
3012_POSITIV
3013SEL
3014_EXPRESSION
3015_POSITIV
3016SEL
3017_EXPRESSION
3018_POSITIV
3019SEL
3020_EXPRESSION
3021_POSITIV
3022_OUTPUTS : 1
3023_OUTPUT
3024_POSITIV
3025_NO_SET
3026X_Pos_soll
3027_NETWORK
3028
3029_COMMENT
3030In first MUL 1 was ArbitraryMACFactor
3031_END_COMMENT
3032_ASSIGN
3033_OPERATOR
3034_BOX_EXPR : 3
3035_OPERATOR
3036_BOX_EXPR : 2
3037_OPERAND
3038_EXPRESSION
3039_POSITIV
3040FB_Soll_Drehen_Links
3041_OPERAND
3042_EXPRESSION
3043_POSITIV
3044FB_Soll_Drehen_Rechts
3045_EXPRESSION
3046_POSITIV
3047OR
3048_OPERATOR
3049_BOX_EXPR : 3
3050_OPERAND
3051_EXPRESSION
3052_POSITIV
3053X_PC_VStart
3054_OPERAND
3055_EXPRESSION
3056_POSITIV
3057X_PC_Vel
3058_OPERATOR
3059_BOX_EXPR : 1
3060_OPERAND
3061_EXPRESSION
3062_POSITIV
3063X_PC_VGeschwindigkeit
3064_EXPRESSION
3065_POSITIV
3066ABS
3067_EXPRESSION
3068_POSITIV
3069SEL
3070_OPERAND
3071_EXPRESSION
3072_POSITIV
3073X_TippenVel
3074_EXPRESSION
3075_POSITIV
3076SEL
3077_EXPRESSION
3078_POSITIV
3079_OUTPUTS : 1
3080_OUTPUT
3081_POSITIV
3082_NO_SET
3083X_Vel_soll
3084_NETWORK
3085
3086_COMMENT
3087Set AntriebHalt whenever PC signal moving is reset with a delay of 3s
3088_END_COMMENT
3089_ASSIGN
3090_OPERATOR
3091_BOX_EXPR : 2
3092_FUNCTIONBLOCK
3093X_AntriebHalt_Delay
3094_BOX_EXPR : 2
3095_OPERATOR
3096_BOX_EXPR : 2
3097_OPERATOR
3098_BOX_EXPR : 2
3099_OPERATOR
3100_BOX_EXPR : 2
3101_OPERAND
3102_EXPRESSION
3103_NEGATIV
3104X_in_Standstill
3105_OPERAND
3106_EXPRESSION
3107_NEGATIV
3108X_in_AntriebHalt
3109_EXPRESSION
3110_POSITIV
3111OR
3112_OPERAND
3113_EXPRESSION
3114_NEGATIV
3115X_in_Pos
3116_EXPRESSION
3117_POSITIV
3118AND
3119_OPERAND
3120_EXPRESSION
3121_POSITIV
3122X_AnnounceStartMovement
3123_EXPRESSION
3124_POSITIV
3125OR
3126_OPERAND
3127_EXPRESSION
3128_POSITIV
3129T#3s
3130_EXPRESSION
3131_NEGATIV
3132TOF
3133_OUTPUTS : 1
3134_OUTPUT
3135_POSITIV
3136_NO_SET
3137_EMPTY
3138_OPERAND
3139_EXPRESSION
3140_POSITIV
3141X_PC_AntriebHalt
3142_EXPRESSION
3143_POSITIV
3144OR
3145_EXPRESSION
3146_POSITIV
3147_OUTPUTS : 1
3148_OUTPUT
3149_POSITIV
3150_NO_SET
3151X_PC_AntriebHalt
3152_NETWORK
3153
3154_COMMENT
3155
3156_END_COMMENT
3157_ASSIGN
3158_OPERAND
3159_EXPRESSION
3160_POSITIV
3161FALSE
3162_EXPRESSION
3163_POSITIV
3164_OUTPUTS : 1
3165_OUTPUT
3166_POSITIV
3167_NO_SET
3168X_AnnounceStartMovement
3169_NETWORK
3170
3171_COMMENT
3172Relatives Positionieren war XStart
3173_END_COMMENT
3174_FUNCTIONBLOCK
3175Antrieb_1
3176_BOX_EXPR : 27
3177_OPERAND
3178_EXPRESSION
3179_POSITIV
3180Soll_Freigabe
3181_OPERAND
3182_EXPRESSION
3183_POSITIV
3184FALSE
3185_OPERAND
3186_EXPRESSION
3187_POSITIV
3188Quitt
3189_OPERAND
3190_EXPRESSION
3191_POSITIV
3192FALSE
3193_OPERAND
3194_EXPRESSION
3195_POSITIV
3196FALSE
3197_OPERAND
3198_EXPRESSION
3199_POSITIV
3200FB_Soll_Drehen_Links
3201_OPERAND
3202_EXPRESSION
3203_POSITIV
3204FB_Soll_Drehen_Rechts
3205_OPERAND
3206_EXPRESSION
3207_NEGATIV
3208X_PC_AntriebHalt
3209_OPERAND
3210_EXPRESSION
3211_POSITIV
3212X_PC_IsRelative
3213_OPERAND
3214_EXPRESSION
3215_POSITIV
3216FALSE
3217_OPERAND
3218_EXPRESSION
3219_POSITIV
3220X_Pos_soll
3221_OPERAND
3222_EXPRESSION
3223_POSITIV
3224X_Vel_soll
3225_OPERAND
3226_EXPRESSION
3227_POSITIV
32280
3229_OPERAND
3230_EXPRESSION
3231_POSITIV
3232FALSE
3233_OPERAND
3234_EXPRESSION
3235_POSITIV
3236%IW100
3237_OPERAND
3238_EXPRESSION
3239_POSITIV
3240%IW102
3241_OPERAND
3242_EXPRESSION
3243_POSITIV
3244%IW104
3245_OPERAND
3246_EXPRESSION
3247_POSITIV
3248%IW106
3249_OPERAND
3250_EXPRESSION
3251_POSITIV
3252%IW108
3253_OPERAND
3254_EXPRESSION
3255_POSITIV
3256%IW110
3257_OPERAND
3258_EXPRESSION
3259_POSITIV
3260%IW112
3261_OPERAND
3262_EXPRESSION
3263_POSITIV
3264%IW114
3265_OPERAND
3266_EXPRESSION
3267_POSITIV
3268%IW116
3269_OPERAND
3270_EXPRESSION
3271_POSITIV
3272%IW118
3273_OPERAND
3274_EXPRESSION
3275_POSITIV
3276X_PC_StartMovement
3277_OPERAND
3278_EXPRESSION
3279_POSITIV
3280X_TippenBeschl
3281_OPERAND
3282_EXPRESSION
3283_POSITIV
3284X_PC_Beschl
3285_EXPRESSION
3286_POSITIV
3287Ecodrive_7W_Antr_Gef_Pos
3288_OUTPUTS : 25
3289_OUTPUT
3290_POSITIV
3291_NO_SET
3292X_ist_betriebsbereit
3293_OUTPUT
3294_POSITIV
3295_NO_SET
3296X_ist_freigegeben
3297_OUTPUT
3298_POSITIV
3299_NO_SET
3300X_in_AntriebHalt
3301_OUTPUT
3302_POSITIV
3303_NO_SET
3304X_in_Referenz
3305_OUTPUT
3306_POSITIV
3307_NO_SET
3308X_in_Pos
3309_OUTPUT
3310_POSITIV
3311_NO_SET
3312X_in_Standstill
3313_OUTPUT
3314_POSITIV
3315_NO_SET
3316X_Fehler
3317_OUTPUT
3318_POSITIV
3319_NO_SET
3320_EMPTY
3321_OUTPUT
3322_POSITIV
3323_NO_SET
3324_EMPTY
3325_OUTPUT
3326_POSITIV
3327_NO_SET
3328X_Err_ID
3329_OUTPUT
3330_POSITIV
3331_NO_SET
3332X_Pos_ist
3333_OUTPUT
3334_POSITIV
3335_NO_SET
3336X_Vel_ist
3337_OUTPUT
3338_POSITIV
3339_NO_SET
3340X_Pos_Geber2
3341_OUTPUT
3342_POSITIV
3343_NO_SET
3344X_IsOnline
3345_OUTPUT
3346_POSITIV
3347_NO_SET
3348%QW100
3349_OUTPUT
3350_POSITIV
3351_NO_SET
3352%QW102
3353_OUTPUT
3354_POSITIV
3355_NO_SET
3356%QW104
3357_OUTPUT
3358_POSITIV
3359_NO_SET
3360%QW106
3361_OUTPUT
3362_POSITIV
3363_NO_SET
3364%QW108
3365_OUTPUT
3366_POSITIV
3367_NO_SET
3368%QW110
3369_OUTPUT
3370_POSITIV
3371_NO_SET
3372%QW112
3373_OUTPUT
3374_POSITIV
3375_NO_SET
3376%QW114
3377_OUTPUT
3378_POSITIV
3379_NO_SET
3380%QW116
3381_OUTPUT
3382_POSITIV
3383_NO_SET
3384%QW118
3385_OUTPUT
3386_POSITIV
3387_NO_SET
3388%QW120
3389
3390END_PROGRAM
3391
3392
3393(* @PATH := '' *)
3394(* @SYMFILEFLAGS := '2048' *)
3395PROGRAM AchseZ
3396
3397VAR
3398 Antrieb_3: Ecodrive_7W_Antr_Gef_Pos;
3399 Z_AntriebHalt_Delay: TOF;
3400END_VAR
3401(* @END_DECLARATION := '0' *)
3402_FBD_BODY
3403_NETWORKS : 5
3404_NETWORK
3405
3406_COMMENT
3407alter Z_Pos_soll Wert fuer Z_PC_VStart: +-100000000
3408_END_COMMENT
3409_ASSIGN
3410_OPERATOR
3411_BOX_EXPR : 3
3412_OPERATOR
3413_BOX_EXPR : 2
3414_OPERAND
3415_EXPRESSION
3416_POSITIV
3417Z_ist_freigegeben
3418_OPERAND
3419_EXPRESSION
3420_NEGATIV
3421Z_PC_AntriebHalt
3422_EXPRESSION
3423_POSITIV
3424AND
3425_OPERAND
3426_EXPRESSION
3427_POSITIV
3428Z_Pos_Geber2
3429_OPERATOR
3430_BOX_EXPR : 3
3431_OPERAND
3432_EXPRESSION
3433_POSITIV
3434Z_PC_VStart
3435_OPERATOR
3436_BOX_EXPR : 3
3437_OPERAND
3438_EXPRESSION
3439_POSITIV
3440Z_PC_IsRelative
3441_OPERAND
3442_EXPRESSION
3443_POSITIV
3444Z_PC_PosZiel
3445_OPERATOR
3446_BOX_EXPR : 2
3447_OPERAND
3448_EXPRESSION
3449_POSITIV
3450Z_PC_PosZiel
3451_OPERAND
3452_EXPRESSION
3453_POSITIV
3454Z_Pos_Geber2
3455_EXPRESSION
3456_POSITIV
3457ADD
3458_EXPRESSION
3459_POSITIV
3460SEL
3461_OPERATOR
3462_BOX_EXPR : 3
3463_OPERATOR
3464_BOX_EXPR : 2
3465_OPERAND
3466_EXPRESSION
3467_POSITIV
3468Z_PC_VGeschwindigkeit
3469_OPERAND
3470_EXPRESSION
3471_POSITIV
34720
3473_EXPRESSION
3474_POSITIV
3475LT
3476_OPERAND
3477_EXPRESSION
3478_POSITIV
34791000000
3480_OPERAND
3481_EXPRESSION
3482_POSITIV
3483-1000000
3484_EXPRESSION
3485_POSITIV
3486SEL
3487_EXPRESSION
3488_POSITIV
3489SEL
3490_EXPRESSION
3491_POSITIV
3492SEL
3493_EXPRESSION
3494_POSITIV
3495_OUTPUTS : 1
3496_OUTPUT
3497_POSITIV
3498_NO_SET
3499Z_Pos_soll
3500_NETWORK
3501
3502_COMMENT
3503In first MUL 1 was ArbitraryMACFactor
3504_END_COMMENT
3505_ASSIGN
3506_OPERATOR
3507_BOX_EXPR : 3
3508_OPERATOR
3509_BOX_EXPR : 2
3510_OPERAND
3511_EXPRESSION
3512_POSITIV
3513FB_soll_schwenk_auf
3514_OPERAND
3515_EXPRESSION
3516_POSITIV
3517FB_soll_schwenk_ab
3518_EXPRESSION
3519_POSITIV
3520OR
3521_OPERATOR
3522_BOX_EXPR : 3
3523_OPERAND
3524_EXPRESSION
3525_POSITIV
3526Z_PC_VStart
3527_OPERAND
3528_EXPRESSION
3529_POSITIV
3530Z_PC_Vel
3531_OPERATOR
3532_BOX_EXPR : 1
3533_OPERAND
3534_EXPRESSION
3535_POSITIV
3536Z_PC_VGeschwindigkeit
3537_EXPRESSION
3538_POSITIV
3539ABS
3540_EXPRESSION
3541_POSITIV
3542SEL
3543_OPERAND
3544_EXPRESSION
3545_POSITIV
3546Z_TippenVel
3547_EXPRESSION
3548_POSITIV
3549SEL
3550_EXPRESSION
3551_POSITIV
3552_OUTPUTS : 1
3553_OUTPUT
3554_POSITIV
3555_NO_SET
3556Z_Vel_soll
3557_NETWORK
3558
3559_COMMENT
3560Set AntriebHalt whenever PC signal moving is reset with a delay of 3s
3561_END_COMMENT
3562_ASSIGN
3563_OPERATOR
3564_BOX_EXPR : 2
3565_FUNCTIONBLOCK
3566Z_AntriebHalt_Delay
3567_BOX_EXPR : 2
3568_OPERATOR
3569_BOX_EXPR : 2
3570_OPERATOR
3571_BOX_EXPR : 2
3572_OPERATOR
3573_BOX_EXPR : 2
3574_OPERAND
3575_EXPRESSION
3576_NEGATIV
3577Z_in_Standstill
3578_OPERAND
3579_EXPRESSION
3580_NEGATIV
3581Z_in_AntriebHalt
3582_EXPRESSION
3583_POSITIV
3584OR
3585_OPERAND
3586_EXPRESSION
3587_NEGATIV
3588Z_in_Pos
3589_EXPRESSION
3590_POSITIV
3591AND
3592_OPERAND
3593_EXPRESSION
3594_POSITIV
3595Z_AnnounceStartMovement
3596_EXPRESSION
3597_POSITIV
3598OR
3599_OPERAND
3600_EXPRESSION
3601_POSITIV
3602T#3s
3603_EXPRESSION
3604_NEGATIV
3605TOF
3606_OUTPUTS : 1
3607_OUTPUT
3608_POSITIV
3609_NO_SET
3610_EMPTY
3611_OPERAND
3612_EXPRESSION
3613_POSITIV
3614Z_PC_AntriebHalt
3615_EXPRESSION
3616_POSITIV
3617OR
3618_EXPRESSION
3619_POSITIV
3620_OUTPUTS : 1
3621_OUTPUT
3622_POSITIV
3623_NO_SET
3624Z_PC_AntriebHalt
3625_NETWORK
3626
3627_COMMENT
3628
3629_END_COMMENT
3630_ASSIGN
3631_OPERAND
3632_EXPRESSION
3633_POSITIV
3634FALSE
3635_EXPRESSION
3636_POSITIV
3637_OUTPUTS : 1
3638_OUTPUT
3639_POSITIV
3640_NO_SET
3641Z_AnnounceStartMovement
3642_NETWORK
3643
3644_COMMENT
3645Relatives Positionieren war XStart
3646_END_COMMENT
3647_FUNCTIONBLOCK
3648Antrieb_3
3649_BOX_EXPR : 27
3650_OPERAND
3651_EXPRESSION
3652_POSITIV
3653Soll_Freigabe
3654_OPERAND
3655_EXPRESSION
3656_POSITIV
3657FALSE
3658_OPERAND
3659_EXPRESSION
3660_POSITIV
3661Quitt
3662_OPERAND
3663_EXPRESSION
3664_POSITIV
3665FALSE
3666_OPERAND
3667_EXPRESSION
3668_POSITIV
3669FALSE
3670_OPERAND
3671_EXPRESSION
3672_POSITIV
3673FB_soll_schwenk_auf
3674_OPERAND
3675_EXPRESSION
3676_POSITIV
3677FB_soll_schwenk_ab
3678_OPERAND
3679_EXPRESSION
3680_NEGATIV
3681Z_PC_AntriebHalt
3682_OPERAND
3683_EXPRESSION
3684_POSITIV
3685Z_PC_IsRelative
3686_OPERAND
3687_EXPRESSION
3688_POSITIV
3689FALSE
3690_OPERAND
3691_EXPRESSION
3692_POSITIV
3693Z_Pos_soll
3694_OPERAND
3695_EXPRESSION
3696_POSITIV
3697Z_Vel_soll
3698_OPERAND
3699_EXPRESSION
3700_POSITIV
37010
3702_OPERAND
3703_EXPRESSION
3704_POSITIV
3705FALSE
3706_OPERAND
3707_EXPRESSION
3708_POSITIV
3709%IW180
3710_OPERAND
3711_EXPRESSION
3712_POSITIV
3713%IW182
3714_OPERAND
3715_EXPRESSION
3716_POSITIV
3717%IW184
3718_OPERAND
3719_EXPRESSION
3720_POSITIV
3721%IW186
3722_OPERAND
3723_EXPRESSION
3724_POSITIV
3725%IW188
3726_OPERAND
3727_EXPRESSION
3728_POSITIV
3729%IW190
3730_OPERAND
3731_EXPRESSION
3732_POSITIV
3733%IW192
3734_OPERAND
3735_EXPRESSION
3736_POSITIV
3737%IW194
3738_OPERAND
3739_EXPRESSION
3740_POSITIV
3741%IW196
3742_OPERAND
3743_EXPRESSION
3744_POSITIV
3745%IW198
3746_OPERAND
3747_EXPRESSION
3748_POSITIV
3749Z_PC_StartMovement
3750_OPERAND
3751_EXPRESSION
3752_POSITIV
3753Z_TippenBeschl
3754_OPERAND
3755_EXPRESSION
3756_POSITIV
3757Z_PC_Beschl
3758_EXPRESSION
3759_POSITIV
3760Ecodrive_7W_Antr_Gef_Pos
3761_OUTPUTS : 25
3762_OUTPUT
3763_POSITIV
3764_NO_SET
3765Z_ist_betriebsbereit
3766_OUTPUT
3767_POSITIV
3768_NO_SET
3769Z_ist_freigegeben
3770_OUTPUT
3771_POSITIV
3772_NO_SET
3773Z_in_AntriebHalt
3774_OUTPUT
3775_POSITIV
3776_NO_SET
3777Z_in_Referenz
3778_OUTPUT
3779_POSITIV
3780_NO_SET
3781Z_in_Pos
3782_OUTPUT
3783_POSITIV
3784_NO_SET
3785Z_in_Standstill
3786_OUTPUT
3787_POSITIV
3788_NO_SET
3789Z_Fehler
3790_OUTPUT
3791_POSITIV
3792_NO_SET
3793_EMPTY
3794_OUTPUT
3795_POSITIV
3796_NO_SET
3797_EMPTY
3798_OUTPUT
3799_POSITIV
3800_NO_SET
3801Z_Err_ID
3802_OUTPUT
3803_POSITIV
3804_NO_SET
3805Z_Pos_ist
3806_OUTPUT
3807_POSITIV
3808_NO_SET
3809Z_Vel_ist
3810_OUTPUT
3811_POSITIV
3812_NO_SET
3813Z_Pos_Geber2
3814_OUTPUT
3815_POSITIV
3816_NO_SET
3817Z_IsOnline
3818_OUTPUT
3819_POSITIV
3820_NO_SET
3821%QW180
3822_OUTPUT
3823_POSITIV
3824_NO_SET
3825%QW182
3826_OUTPUT
3827_POSITIV
3828_NO_SET
3829%QW184
3830_OUTPUT
3831_POSITIV
3832_NO_SET
3833%QW186
3834_OUTPUT
3835_POSITIV
3836_NO_SET
3837%QW188
3838_OUTPUT
3839_POSITIV
3840_NO_SET
3841%QW190
3842_OUTPUT
3843_POSITIV
3844_NO_SET
3845%QW192
3846_OUTPUT
3847_POSITIV
3848_NO_SET
3849%QW194
3850_OUTPUT
3851_POSITIV
3852_NO_SET
3853%QW196
3854_OUTPUT
3855_POSITIV
3856_NO_SET
3857%QW198
3858_OUTPUT
3859_POSITIV
3860_NO_SET
3861%QW200
3862
3863END_PROGRAM
3864
3865
3866(* @PATH := '' *)
3867(* @SYMFILEFLAGS := '2048' *)
3868PROGRAM Allgemein
3869
3870VAR
3871 Blinkgen: BLINK;
3872END_VAR
3873(* @END_DECLARATION := '0' *)
3874_FBD_BODY
3875_NETWORKS : 3
3876_NETWORK
3877
3878_COMMENT
3879Blinks an led (digital output) on the module to signal that the SPS is properly running
3880_END_COMMENT
3881_ASSIGN
3882_FUNCTIONBLOCK
3883Blinkgen
3884_BOX_EXPR : 3
3885_OPERAND
3886_EXPRESSION
3887_POSITIV
3888TRUE
3889_OPERAND
3890_EXPRESSION
3891_POSITIV
3892t#500ms
3893_OPERAND
3894_EXPRESSION
3895_POSITIV
3896t#500ms
3897_EXPRESSION
3898_POSITIV
3899BLINK
3900_OUTPUTS : 0
3901_EXPRESSION
3902_POSITIV
3903_OUTPUTS : 1
3904_OUTPUT
3905_POSITIV
3906_NO_SET
3907Visual_1Hz
3908_NETWORK
3909
3910_COMMENT
3911Counts the number of cycles executed already
3912_END_COMMENT
3913_ASSIGN
3914_OPERATOR
3915_BOX_EXPR : 2
3916_OPERAND
3917_EXPRESSION
3918_POSITIV
3919Zykluszaehler
3920_OPERAND
3921_EXPRESSION
3922_POSITIV
39231
3924_EXPRESSION
3925_POSITIV
3926ADD
3927_EXPRESSION
3928_POSITIV
3929_OUTPUTS : 1
3930_OUTPUT
3931_POSITIV
3932_NO_SET
3933Zykluszaehler
3934_NETWORK
3935
3936_COMMENT
3937Signal 24V power for remote control
3938_END_COMMENT
3939_ASSIGN
3940_OPERAND
3941_EXPRESSION
3942_POSITIV
3943TRUE
3944_EXPRESSION
3945_POSITIV
3946_OUTPUTS : 1
3947_OUTPUT
3948_POSITIV
3949_NO_SET
3950Out1
3951
3952END_PROGRAM
3953
3954
3955(* @PATH := '' *)
3956(* @SYMFILEFLAGS := '2048' *)
3957PROGRAM Betriebsarten
3958
3959VAR
3960 Time_Enable: TON;
3961 ST_24V: RS;
3962END_VAR
3963(* @END_DECLARATION := '0' *)
3964_FBD_BODY
3965_NETWORKS : 3
3966_NETWORK
3967
3968_COMMENT
3969
3970_END_COMMENT
3971_ASSIGN
3972_OPERATOR
3973_BOX_EXPR : 2
3974_OPERAND
3975_EXPRESSION
3976_POSITIV
3977LeistungEinAz
3978_OPERAND
3979_EXPRESSION
3980_POSITIV
3981LeistungEinZd
3982_EXPRESSION
3983_POSITIV
3984AND
3985_EXPRESSION
3986_POSITIV
3987_OUTPUTS : 1
3988_OUTPUT
3989_POSITIV
3990_NO_SET
3991Leistung_Ein
3992_NETWORK
3993
3994_COMMENT
3995Anzeige Stoerung
3996
3997_END_COMMENT
3998_ASSIGN
3999_OPERATOR
4000_BOX_EXPR : 4
4001_OPERAND
4002_EXPRESSION
4003_NEGATIV
4004Not_aus_IO
4005_OPERAND
4006_EXPRESSION
4007_NEGATIV
4008UeberspannungsSchutz_OK
4009_OPERAND
4010_EXPRESSION
4011_POSITIV
4012X_Fehler
4013_OPERAND
4014_EXPRESSION
4015_POSITIV
4016Z_Fehler
4017_EXPRESSION
4018_POSITIV
4019OR
4020_EXPRESSION
4021_POSITIV
4022_OUTPUTS : 1
4023_OUTPUT
4024_POSITIV
4025_NO_SET
4026Sammelstoerung
4027_NETWORK
4028
4029_COMMENT
4030Antriebsfreigabe (Einmalige Freigabe muss zurueckgesetzt werden wenn Tuer offen -- noch nicht implementiert!)
4031_END_COMMENT
4032_ASSIGN
4033_OPERATOR
4034_BOX_EXPR : 2
4035_OPERAND
4036_EXPRESSION
4037_POSITIV
4038Leistung_Ein
4039_OPERAND
4040_EXPRESSION
4041_NEGATIV
4042Sammelstoerung
4043_EXPRESSION
4044_POSITIV
4045AND
4046_EXPRESSION
4047_POSITIV
4048_OUTPUTS : 1
4049_OUTPUT
4050_POSITIV
4051_NO_SET
4052Soll_Freigabe
4053
4054END_PROGRAM
4055
4056
4057(* @PATH := '' *)
4058(* @SYMFILEFLAGS := '2048' *)
4059PROGRAM PLC_PRG
4060
4061VAR
4062END_VAR
4063(* @END_DECLARATION := '0' *)
4064_FBD_BODY
4065_NETWORKS : 7
4066_NETWORK
4067
4068_COMMENT
4069
4070_END_COMMENT
4071_FUNCTIONBLOCK
4072???
4073_BOX_EXPR : 0
4074_EXPRESSION
4075_POSITIV
4076Allgemein
4077_OUTPUTS : 0
4078_NETWORK
4079
4080_COMMENT
4081
4082_END_COMMENT
4083_FUNCTIONBLOCK
4084???
4085_BOX_EXPR : 0
4086_EXPRESSION
4087_POSITIV
4088Betriebsarten
4089_OUTPUTS : 0
4090_NETWORK
4091
4092_COMMENT
4093
4094_END_COMMENT
4095_FUNCTIONBLOCK
4096???
4097_BOX_EXPR : 0
4098_EXPRESSION
4099_POSITIV
4100AchseX
4101_OUTPUTS : 0
4102_NETWORK
4103
4104_COMMENT
4105
4106_END_COMMENT
4107_FUNCTIONBLOCK
4108???
4109_BOX_EXPR : 0
4110_EXPRESSION
4111_POSITIV
4112AchseZ
4113_OUTPUTS : 0
4114_NETWORK
4115
4116_COMMENT
4117
4118_END_COMMENT
4119_FUNCTIONBLOCK
4120???
4121_BOX_EXPR : 0
4122_EXPRESSION
4123_POSITIV
4124Ethernet
4125_OUTPUTS : 0
4126_NETWORK
4127
4128_COMMENT
4129
4130_END_COMMENT
4131_FUNCTIONBLOCK
4132???
4133_BOX_EXPR : 0
4134_EXPRESSION
4135_POSITIV
4136Protokoll_SDO
4137_OUTPUTS : 0
4138_NETWORK
4139
4140_COMMENT
4141
4142_END_COMMENT
4143_FUNCTIONBLOCK
4144???
4145_BOX_EXPR : 0
4146_EXPRESSION
4147_POSITIV
4148Protokoll_PDO
4149_OUTPUTS : 0
4150
4151END_PROGRAM
4152
4153(* @PATH := '' *)
4154TYPE struct_ek_in_eco:
4155STRUCT
4156 statuswort :WORD; (* P4078 *)
4157 (* 10: Betriebsmodus, 00: Parametriermodus *)
4158 {bitaccess o_mode_acknowledge_Bit0 0 'Betriebsmodus-Quittung_Bit0 / Operating mode-acknowledge_bit0'}
4159 {bitaccess o_mode_acknowledge_Bit1 1 'Betriebsmodus-Quittung_Bit0 / Operating mode-acknowledge_bit1'}
4160 {bitaccess in_reference 2 'Antrieb ist referenziert / In-reference' S403, Bit0}
4161 {bitaccess in_standstill 3 'Antrieb steht / In-standstill', S331, Bit0}
4162 {bitaccess setpoint_reached 4 'Sollwert erreicht / Setpoint reached'}
4163 {bitaccess command_change_bit 5 '1: wenn sich Kommandostatus geaendert hat / command change bit'}
4164 {bitaccess operating_mode_error 6 '1: Fehler im Umschaltkommando / operating mode-error'}
4165 {bitaccess status_setpoint_process 7 '1: Antrieb folgt der Sollwertvorgabe nicht / status setpoint processing'}
4166 {bitaccess a_operating_mode_Bit0 8 'Ist_Betriebsart_Bit0 / actual_operating mode_bit0'}
4167 {bitaccess a_operating_mode_Bit1 9 'Ist_Betriebsart_Bit1 / actual_operating mode_bit1'}
4168 {bitaccess setpoint_acknowledge 10 'Sollwertquittierung / Setpoint_acknowledge'}
4169 {bitaccess message_ZKL3 11 'Meldung_ZKL3 / Message_ZKL3'}
4170 {bitaccess warning_ZKL2 12 'Warnung_ZKL2 / Warning_ZKL2'}
4171 {bitaccess drive_Error_ZKL1 13 'Antriebsfehler_ZKL1 / Drive_Error_ZKL1'}
4172 (* 00: Other, 01: "bb", 10: "Ab", 11: "AF", bb=eingeschaltet, Ab=Leistung an *)
4173 {bitaccess ready_to_operate_Bit0 14 'bb Bit0 / Ready to operate_bit0'}
4174 {bitaccess ready_to_operate_Bit1 15 'Ab Bit1 / Ready to operate_bit1'}
4175 pos_act :DINT; (* Istposition / actual position *)
4176 vel_act :DINT; (* Istgeschwindigkeit / actual velocity *)
4177 diagnosis :DINT; (* Diagnose des Antriebs, drive diagnosis *)
4178 signalstatuswort :WORD; (* Signalstatuswort *)
4179END_STRUCT
4180END_TYPE
4181
4182(* @END_DECLARATION := '0' *)
4183
4184(* @PATH := '' *)
4185TYPE struct_ek_out_eco :
4186STRUCT
4187 steuerwort :WORD;
4188 {bitaccess setpoint_acceptance 0 'Sollwertuebernahme / setpoint acceptance'}
4189(* {bitaccess operating_mode_set 1 'Betriebsmodus-Vorgabe / operating mode set'}*)
4190(* {bitaccess drive_to_zero_point 2 'Nullfahren / drive to zero point'}*)
4191 {bitaccess absolute_relative 3 'Position Absolut ="0" oder Relativ = "1", position absolut = 0 or relativ = 1'}
4192 {bitaccess immediate_block_change 4 '1= sofort / 1 = immediate'}
4193 {bitaccess error_delete 5 'Fehler loeschen / clear error, 0->1 Command C5, 1->0 End C5'}
4194
4195 (* Jog fwd/bwd = 00: Positioning active (Start by toggle of bit 0), 11: Halt the axis (Positioninghalt) *)
4196 {bitaccess jog_forward 6 'Jog vorward'}
4197 {bitaccess jog_backwards 7 'Jog backward'}
4198(* {bitaccess set_operating_mode_Bit0 8 'Soll-Betriebsart Bit 0 / setpoint operating mode_bit0 '}*)
4199(* {bitaccess set_operating_mode_Bit1 9 'Soll-Betriebsart Bit 1 / setpoint operating mode_bit1 '}*)
4200
4201(* {bitaccess reserved 10 'Reserviert / reserved'}*)
4202(* {bitaccess reserved1 11 'Reserviert / reserved'}*)
4203
4204 {bitaccess IPOSYNC 12 '(nur bei zykl. Lageregelung / only in cycl. pos. control)'}
4205
4206 (* 0->1 Start drive, 1->0 Drive halt (set nominal velocity 0) *)
4207 {bitaccess drive_halt 13 'Antrieb-Halt / drive halt', P116-Bit13}
4208 (* 0/1 Drive enable/disable (AF) *)
4209 {bitaccess drive_enable 14 'Antrieb-Freigabe / drive enable', P116-Bit14}
4210 (* 0->1 Drive enable (Reglerfreigabe), 1->0 Best mögliche Stillsetzung gem. P119 *)
4211 {bitaccess drive_on 15 'Antrieb-Ein / drive on', P116-Bit15}
4212
4213
4214
4215 pos_cmd :DINT; (*Positionier-Sollwert*)
4216 vel_cmd :DINT; (*Positionier-Geschwindigkeit*)
4217(* feedrate_override :WORD; (*Feedrate-Override *)*)
4218 signalsteuerwort :WORD; (*Signalsteuerwort*)
4219 acc_cmd :DINT; (*Positionier-Beschleunigung*)
4220 dec_cmd :DINT; (*Positionier-Verzögerung*)
4221END_STRUCT
4222END_TYPE
4223
4224(* @END_DECLARATION := '0' *)
4225
4226(* @GLOBAL_VARIABLE_LIST := 'EA_Symbolik' *)
4227(* @PATH := '' *)
4228(* @SYMFILEFLAGS := '2048' *)
4229VAR_GLOBAL
4230
4231 (* Eingänge *)
4232
4233 LeistungEinAz AT%IX0.2:BOOL; (* 1= Leistung eingeschaltet *)
4234 LeistungEinZd AT%IX0.3:BOOL; (* 1= Leistung eingeschaltet *)
4235
4236 FB_soll_schwenk_auf AT%IX0.0:BOOL; (* 1= Befehl von Fernbedienung : Schwenken nach oben *)
4237 FB_soll_schwenk_ab AT%IX0.1:BOOL; (* 1= Befehl von Fernbedienung : Schwenken nach unten *)
4238 FB_soll_drehen_rechts AT%IX0.4:BOOL; (* 1= Befehl von Fernbedienung : Drehen nach rechts; war vorher auf IX1.3 *)
4239 FB_soll_drehen_links AT%IX0.5:BOOL; (* 1= Befehl von Fernbedienung : Drehen nach links; war vorher auf IX1.2 *)
4240
4241 UeberspannungsSchutz_OK AT%IX0.6:BOOL; (* 1= Überspannungsschutz Zuleitung ist OK *)
4242 Not_Aus_IO AT%IX0.7:BOOL; (* 1= Not-Aus ist IO *)
4243
4244
4245 UPS_Alarm AT%IX1.0:BOOL; (* 0= UPS ALARM *)
4246 UPS_BattMode AT%IX1.1:BOOL; (* 1= Batt. Discharging *)
4247 UPS_Charging AT%IX1.2:BOOL; (* 1= Batt. Charging *)
4248
4249(* Leistung_DKC_IO AT%IX1.3:BOOL;*) (* 1= Motorschutzschalter DKc´s sind IO *)
4250(* Schutztueren_IO AT%IX1.4:BOOL;*) (* 1= Schutztüren sind IO *)
4251
4252 Quitt AT%IX1.7:BOOL; (* 1= Störung quittieren *)
4253
4254 (*IN_FB_Betrieb AT%IX1.4:BOOL; (* 1= Fernbedienung ist Steuerquelle; siehe 7S1 *)*)
4255 (*IN_PC_Betrieb AT%IX1.5:BOOL; (* 1= PC ist Steuerquelle; siehe 7S1 *)*)
4256 (*IN_Zusatz_Bremse_Z AT%IX1.6:BOOL; (* Kontrolle der Zusatzbremse; siehe 8S3/8K3 *)*)
4257(* Res_I1_7 AT%IX1.7:BOOL; (* Reserve *)*)
4258
4259(* Ausgänge *)
4260 Out1 AT%QX0.0:BOOL; (* Reserve *)
4261 Out2 AT%QX0.1:BOOL; (* Reserve *)
4262 Out3 AT%QX0.2:BOOL; (* Reserve *)
4263 Out4 AT%QX0.3:BOOL; (* Reserve *)
4264 Out5 AT%QX0.4:BOOL; (* Reserve *)
4265 Out6 AT%QX0.5:BOOL; (* Reserve *)
4266 Out7 AT%QX0.6:BOOL; (* Reserve *)
4267 Visual_1Hz AT%QX0.7:BOOL; (* Reserve *)
4268
4269(* Analog Interface *)
4270 AnalogIn1 AT%IW2:WORD;
4271 AnalogIn2 AT%IW4:WORD;
4272 AnalogOut1 AT%QW2:WORD;
4273 AnalogOut2 AT%QW4:WORD;
4274END_VAR
4275
4276(* @OBJECT_END := 'EA_Symbolik' *)
4277(* @CONNECTIONS := EA_Symbolik
4278FILENAME : ''
4279FILETIME : 0
4280EXPORT : 0
4281NUMOFCONNECTIONS : 0
4282*)
4283
4284(* @GLOBAL_VARIABLE_LIST := 'Globale_Variablen' *)
4285(* @PATH := '' *)
4286(* @SYMFILEFLAGS := '2048' *)
4287VAR_GLOBAL CONSTANT
4288 o_mode_acknowledge_Bit0: INT := 0;
4289 o_mode_acknowledge_Bit1: INT := 1;
4290 in_reference: INT := 2;
4291 in_standstill: INT := 3;
4292 setpoint_reached: INT := 4;
4293 command_change_bit: INT := 5;
4294(* operating_mode_error: INT := 6;*)
4295(* status_setpoint_process: INT := 7;*) (* "Status Sollwert Verarbeitung", 1=Antrieb folgt sollwert nicht, 0=Antrieb folgt Sollwert, Antrieb folgt Sollwert, erst dann Fahrbefehl schicken *)
4296(* a_operating_mode_Bit0: INT := 8;*)
4297(* a_operating_mode_Bit1: INT := 9;*)
4298(* setpoint_acknowledge: INT := 10;*)
4299(* message_ZKL3: INT := 11;*)
4300(* warning_ZKL2: INT := 12;*)
4301 drive_Error_ZKL1: INT := 13;
4302 ready_to_operate_Bit0: INT := 14;
4303 ready_to_operate_Bit1: INT := 15;
4304
4305(* ===== Felbus: Steuerwort P-0-04077 ===== *)
4306
4307 setpoint_acceptance: INT := 0; (*????!!!!! WHY???*)
4308(* operating_mode_set: INT := 1;*)
4309(* drive_to_zero_point: INT := 2;*)
4310 absolute_relative: INT := 3;
4311 immediate_block_change: INT := 4;
4312 error_delete: INT := 5;
4313 jog_forward: INT := 6;
4314 jog_backwards: INT := 7;
4315 set_operating_mode_Bit0: INT := 8;
4316 set_operating_mode_Bit1: INT := 9;
4317(* reserved: INT := 10;*)
4318(* reserved1: INT := 11;*)
4319(* IPOSYNC: INT := 12;*)
4320 drive_halt: INT := 13;
4321 drive_enable: INT := 14;
4322 drive_on: INT := 15;
4323
4324 Signal_Absolutmasssetzen: INT := 96;
4325
4326(* IP Communication parameters *)
4327 Socket_In_Port: WORD := 5357; (* Port to listen at *)
4328
4329(*NODE_IDs*)
4330 NODE_ID_Mac_Az: BYTE := 1;
4331 NODE_ID_Mac_Zd: BYTE := 3;
4332 NODE_ID_SE_Az: BYTE := 16;
4333 NODE_ID_SE_Zd1: BYTE := 17;
4334 NODE_ID_SE_Zd2: BYTE := 18;
4335
4336(* Gear Ratio as set in DKC -- to be read from DKC via SDO *)
4337 (* X_Gear: UINT := 1590; *)
4338 (* Z_Gear: UINT := 1590; *)
4339
4340 (* 0,0001U/min 10.000 = 1U/min *)
4341
4342 X_TippenVel: UDINT := 6300000; (* 6300000/1590 = 630U/min ~ 0.40U/min FACT *)
4343 Z_TippenVel: UDINT := 6300000; (* 6300000/1590 = 630U/min ~ 0.40U/min FACT *)
4344
4345(* Aceleration values for both axes in remote control mode Unit: 1/1000 rad/s^2 of load axis *)
4346 X_TippenBeschl: UDINT := 50000000; (* 50 rad/s^2 (Motor) ~ 1.8deg/s^2 (Tel) FACT *)
4347 Z_TippenBeschl: UDINT := 50000000; (* 50 rad/s^2 (Motor) ~ 1.8deg/s^2 (Tel) FACT *)
4348
4349(* Output resolution of the Motor and Shaftencoder values, as the output and DKC velocity scale *)
4350 ShaftEncoderResolution: UDINT := 3600000 (*00*);
4351 X_MaximumVelocity: UDINT := 49000000; (* 4900U/min (Motor) FACT *)
4352 Z_MaximumVelocity: UDINT := 49000000; (* 4900U/min (Motor) FACT *)
4353 VelocityResolution: UDINT := 15900000; (* 1 U/min (Tel) = 1590 U/min (Motor) *)
4354
4355(* Position: 360.000.000 = 360deg = 1 revolution *)
4356(* Velocity: 100.000.000 = 1 rpm *)
4357(* Acc/Dec: 1.000 = 1 rad/s^2 *)
4358
4359(* Maximum velocity to initialize with *)
4360 PC_V_max_START: DINT := 1000000; (* Load RPM in DKC units (i.e. *DKC_Velocity_Scale) , Maximum allowed velocity set by PC, can be overwritten for test purpose, SDO 0x6502 *)
4361END_VAR
4362(* @OBJECT_END := 'Globale_Variablen' *)
4363(* @CONNECTIONS := Globale_Variablen
4364FILENAME : ''
4365FILETIME : 0
4366EXPORT : 0
4367NUMOFCONNECTIONS : 0
4368*)
4369
4370(* @GLOBAL_VARIABLE_LIST := 'Globale_Variablen_EcoDrive_X' *)
4371(* @PATH := '' *)
4372(* @SYMFILEFLAGS := '2048' *)
4373VAR_GLOBAL
4374
4375(* Daten X-Achse *)
4376 X_Pos_soll: DINT; (* Sollposition X-Achse für Positionierung *)
4377 X_Vel_soll: DINT; (* Sollvorgabe Geschwindigkeit *)
4378 X_Pos_ist: DINT; (* Istposition X-Achse *)
4379 X_Vel_ist: DINT; (* Istgeschwindigkeit X-Achse *)
4380 X_Err_ID: DINT; (* Fehler Nr. Eco-Drive *)
4381 X_Pos_Geber2: DINT;
4382
4383(*Allgemein für Drive 01 - Ecodrive*)
4384 X_Fehler: BOOL; (* 1= Regler meldet über Profibus Störung *)
4385 X_in_pos: BOOL; (* 1= Antrieb in Position *)
4386 X_ist_freigegeben: BOOL; (* 1= Antrieb Rückmeldung Freigabe *)
4387 X_in_Ref: BOOL; (* 1= Antrieb Rückmeldung in Referenz *)
4388 X_in_Standstill: BOOL; (* 1= Antrieb Rückmeldung in Stillstand *)
4389 X_ist_betriebsbereit: BOOL;
4390 X_IsOnline: BOOL; (* 1= Antrieb connected to bus *)
4391 X_in_AntriebHalt: BOOL;
4392 X_EinmaligeFreigabe: BOOL;
4393 X_in_Referenz: BOOL;
4394 X_AnnounceStartMovement: BOOL := FALSE;
4395
4396 X_PC_Vel: DINT;
4397 X_PC_Beschl: UDINT;
4398 X_PC_PosZiel: DINT;
4399 X_PC_VGeschwindigkeit: DINT;
4400 X_PC_Maximalgeschwindigkeit: DINT;
4401 X_PC_IsRelative: BOOL;
4402 X_PC_VStart: BOOL := FALSE;
4403 X_PC_AntriebHalt: BOOL := TRUE;
4404 X_PC_StartMovement: BOOL := FALSE;
4405 X_PC_AnnounceStartMovement: BOOL := FALSE;
4406 X_PC_ForcePDO3: BOOL := FALSE;
4407END_VAR
4408
4409(* @OBJECT_END := 'Globale_Variablen_EcoDrive_X' *)
4410(* @CONNECTIONS := Globale_Variablen_EcoDrive_X
4411FILENAME : ''
4412FILETIME : 0
4413EXPORT : 0
4414NUMOFCONNECTIONS : 0
4415*)
4416
4417(* @GLOBAL_VARIABLE_LIST := 'Globale_Variablen_EcoDrive_Z' *)
4418(* @PATH := '' *)
4419(* @SYMFILEFLAGS := '2048' *)
4420VAR_GLOBAL
4421
4422(* Daten X-Achse *)
4423 Z_Pos_soll: DINT; (* Sollposition X-Achse für Positionierung *)
4424 Z_Vel_soll: DINT; (* Sollvorgabe Geschwindigkeit *)
4425 Z_Pos_ist: DINT; (* Istposition X-Achse *)
4426 Z_Vel_ist: DINT; (* Istgeschwindigkeit X-Achse *)
4427 Z_Err_ID: DINT; (* Fehler Nr. ECo-Drive *)
4428 Z_Pos_Geber2: DINT;
4429
4430(*Allgemein für Drive 01 - Ecodrive*)
4431 Z_Fehler: BOOL; (* 1= Regler meldet über Profibus Störung *)
4432 Z_in_pos: BOOL; (* 1= Antrieb in Position *)
4433 Z_ist_freigegeben: BOOL; (* 1= Antrieb Rückmeldung Freigabe *)
4434 Z_in_Ref: BOOL; (* 1= Antrieb Rückmeldung in Referenz *)
4435 Z_in_Standstill: BOOL; (* 1= Antrieb Rückmeldung in Stillstand *)
4436 Z_ist_betriebsbereit: BOOL;
4437 Z_IsOnline: BOOL; (* 1= Antrieb connected to bus *)
4438 Z_EinmaligeFreigabe: BOOL;
4439 Z_in_AntriebHalt: BOOL;
4440 Z_in_Referenz: BOOL;
4441 Z_AnnounceStartMovement: BOOL := FALSE;
4442
4443 Z_PC_Vel: DINT;
4444 Z_PC_Beschl: UDINT;
4445 Z_PC_PosZiel: DINT;
4446 Z_PC_VGeschwindigkeit: DINT;
4447 Z_PC_Maximalgeschwindigkeit: DINT;
4448 Z_PC_IsRelative: BOOL;
4449 Z_PC_VStart: BOOL := FALSE;
4450 Z_PC_AntriebHalt: BOOL := TRUE;
4451 Z_PC_StartMovement: BOOL := FALSE;
4452 Z_PC_AnnounceStartMovement: BOOL := FALSE;
4453 Z_PC_ForcePDO3: BOOL := FALSE;
4454END_VAR
4455
4456(* @OBJECT_END := 'Globale_Variablen_EcoDrive_Z' *)
4457(* @CONNECTIONS := Globale_Variablen_EcoDrive_Z
4458FILENAME : ''
4459FILETIME : 0
4460EXPORT : 0
4461NUMOFCONNECTIONS : 0
4462*)
4463
4464(* @GLOBAL_VARIABLE_LIST := 'GlobaleVariablen' *)
4465(* @PATH := '' *)
4466(* @SYMFILEFLAGS := '2048' *)
4467 VAR_GLOBAL
4468
4469 Sammelstoerung: BOOL; (* 1= Sammelstoerung ist aktiv *)
4470 Leistung_Ein: BOOL;
4471
4472(* Ethernet *)
4473 ListenSock: DINT;
4474 SockKomm: DINT;
4475
4476 NeueDatenDa: BOOL;
4477 DatenSenden: BOOL;
4478 ZyklischeDatenSenden: BOOL;
4479
4480 ByteBufferRX: ARRAY[0..99] OF BYTE;
4481 ByteBufferTX: ARRAY[0..99] OF BYTE;
4482 ByteBufferTXzyklisch: ARRAY[0..99] OF BYTE;
4483
4484(* Daten *)
4485 Zykluszaehler: DINT;
4486 Betriebszustand_ok: BOOL;
4487 Soll_Freigabe: BOOL;
4488
4489(* Communication *)
4490(* TX1M_STATUS_OldX :BYTE:=16#FF;
4491 TX1M_STATUS_OldZ :BYTE:=16#FF;
4492 TX3M_STATUS_OldX :BYTE:=16#FF;
4493 TX3M_STATUS_OldZ :BYTE:=16#FF;
4494 TX2E_POSITION_OldX :DINT:=0;
4495 TX2E_POSITION_OldY :DINT:=0;
4496 TX2E_GESCHWINDIGKEIT_OldX :INT:=0;
4497 TX2E_GESCHWINDIGKEIT_OldY :INT:=0;*)
4498END_VAR
4499
4500(* Die folgenden Variablen sind netzausfallsicher gespeichert *)
4501(*
4502VAR_GLOBAL RETAIN PERSISTENT
4503 X_Offset_Geber2: DINT;
4504 Y_Offset_Geber2: DINT;
4505 Z_Offset_Geber2: DINT;
4506END_VAR*)
4507(* @OBJECT_END := 'GlobaleVariablen' *)
4508(* @CONNECTIONS := GlobaleVariablen
4509FILENAME : ''
4510FILETIME : 0
4511EXPORT : 0
4512NUMOFCONNECTIONS : 0
4513*)
4514
4515(* @GLOBAL_VARIABLE_LIST := 'Variablen_Konfiguration' *)
4516(* @PATH := '' *)
4517(* @SYMFILEFLAGS := '2048' *)
4518VAR_CONFIG
4519END_VAR
4520
4521(* @OBJECT_END := 'Variablen_Konfiguration' *)
4522(* @CONNECTIONS := Variablen_Konfiguration
4523FILENAME : ''
4524FILETIME : 0
4525EXPORT : 0
4526NUMOFCONNECTIONS : 0
4527*)
4528
4529
4530_ALARMCONFIG
4531_ALARMCONFIGNEXTTEXTID : 10002
4532_ALARMCONFIGFORMATS : 'HH$':$'mm$':$'ss','dd$'-$'MM$'-$'yyyy'
4533_ALARMCLASSLIST : 1
4534_ALARMCLASSID : 0
4535_ALARMCLASSACKTYPE : 0
4536_ALARMCLASSNAME : 'DEFAULT'
4537_ALARMCLASSDESCRIPTION : ''
4538_ALARMCLASSBGCOLORS : 16777215,16777215,16777215
4539_ALARMCLASSTEXTCOLORS : 3394560,255,16711680
4540_ALARMCLASSBITMAPS : '','',''
4541_ALARMACTIONLIST : 0
4542_ALARMGROUPLISTNAME : 'System'
4543_ALARMGROUPPATH : 'System'
4544_ALARMGROUPLIST : 0
4545_VISUALSETTINGSFLAGS : 0,0,0,0
4546_VISUALSETTINGSFLAGS : '','',''
4547_VISUALSETTINGSDYNTEXTFILECOUNT : 0
4548
4549_END_ALARMCONFIG
4550
4551
4552
4553LIBRARY
4554Iecsfc.lib 15.12.06 10:27:00
4555(* @LIBRARYSYMFILEINFO := '0' *)
4556NumOfPOUs: 1
4557SFCActionControl: 0
4558NumOfGVLs: 1
4559Globale_Variablen: 0
4560END_LIBRARY
4561
4562LIBRARY
4563oscat14.lib 10.12.09 11:49:21
4564(* @LIBRARYSYMFILEINFO := '0' *)
4565NumOfPOUs: 0
4566NumOfGVLs: 0
4567END_LIBRARY
4568
4569LIBRARY
4570RIL_CHECKRTV.LIB 12.7.05 14:51:12
4571(* @LIBRARYSYMFILEINFO := '0' *)
4572NumOfPOUs: 11
4573CheckBounds: 2048
4574CheckDivByte: 2048
4575CheckDivDWord: 2048
4576CheckDivLReal: 2048
4577CheckDivReal: 2048
4578CheckDivWord: 2048
4579CheckPointer: 2048
4580CheckPointerAligned: 2048
4581CheckRangeSigned: 2048
4582CheckRangeUnsigned: 2048
4583Version_RIL_CheckRtv_01V00: 2048
4584NumOfGVLs: 1
4585Globale_Variablen: 2048
4586END_LIBRARY
4587
4588LIBRARY
4589RIL_COMMONTYPES.LIB 26.11.07 10:48:28
4590(* @LIBRARYSYMFILEINFO := '0' *)
4591NumOfPOUs: 1
4592Version_RIL_CommonTypes_02V04: 2048
4593NumOfGVLs: 2
4594Globale_Variablen: 2048
4595SercosAttribute: 2048
4596END_LIBRARY
4597
4598LIBRARY
4599RIL_ProfibusDP.lib 27.9.06 12:58:46
4600(* @LIBRARYSYMFILEINFO := '0' *)
4601NumOfPOUs: 17
4602DP_ADDR: 51200
4603DP_ID: 51200
4604DP_RDIAG: 51200
4605DP_RDIAG_EXT: 2048
4606DP_RDREC: 51200
4607DP_SLOT: 51200
4608DP_SYCFR: 2048
4609DP_WRREC: 51200
4610fbdBaudrateGet: 51200
4611fbdBmErrorGet: 51200
4612fbdBmInfoGet: 51200
4613fbdBmStateGet: 51200
4614fbdKsdListGet: 51200
4615fbdPdTypeGet: 51200
4616fbdPrjSlaveListGet: 51200
4617fbdSlaveDiagListGet: 51200
4618Version_RIL_ProfibusDP_01V02: 2048
4619NumOfGVLs: 1
4620Globale_Variablen: 0
4621END_LIBRARY
4622
4623LIBRARY
4624RIL_PROFIBUSDP_02.LIB 4.10.06 12:04:44
4625(* @LIBRARYSYMFILEINFO := '0' *)
4626NumOfPOUs: 11
4627IL_DPBaudrateGet: 2048
4628IL_DPDeviceListGet: 2048
4629IL_DPDevInfoGet: 2048
4630IL_DPIdent: 2048
4631IL_DPPrjSlaveListGet: 2048
4632IL_DPReadDiag: 2048
4633IL_DPSlaveDiagListGet: 2048
4634IL_DPSycFr: 2048
4635IL_DPV1Read: 2048
4636IL_DPV1Write: 2048
4637Version_RIL_ProfibusDP_02_01V00: 2048
4638NumOfGVLs: 1
4639Globale_Variablen: 0
4640END_LIBRARY
4641
4642LIBRARY
4643RIL_UTILITIES.LIB 31.3.05 11:30:44
4644(* @LIBRARYSYMFILEINFO := '0' *)
4645NumOfPOUs: 34
4646IL_AsciiToByte: 2048
4647IL_BoolToByte: 2048
4648IL_BoolToDWord: 2048
4649IL_BoolToWord: 2048
4650IL_ByteToAscii: 2048
4651IL_ByteToBool: 2048
4652IL_ByteToDWord: 2048
4653IL_ConcatByte: 2048
4654IL_ConcatWord: 2048
4655IL_Date: 2048
4656IL_DateAndTime: 2048
4657IL_DWordToBool: 2048
4658IL_DWordToByte: 2048
4659IL_ExtSysTimeDate: 2048
4660IL_HighByte: 2048
4661IL_HighResTimeDiff: 2048
4662IL_HighResTimeTick: 2048
4663IL_HighWord: 2048
4664IL_LowByte: 2048
4665IL_LowWord: 2048
4666IL_RealToString: 2048
4667IL_SercosAttribute: 2048
4668IL_SercosElementsToParaNo: 2048
4669IL_SercosStringToParaNo: 2048
4670IL_SwapDWord: 2048
4671IL_SwapWord: 2048
4672IL_SysTime64: 2048
4673IL_SysTime64ToSysTimeDate: 2048
4674IL_SysTimeDate: 2048
4675IL_SysTimeDateToSysTime64: 2048
4676IL_TimeOfDay: 2048
4677IL_Toggle: 2048
4678IL_WordToBool: 2048
4679Version_RIL_Utilities_01V02: 2048
4680NumOfGVLs: 1
4681Globale_Variablen: 2048
4682END_LIBRARY
4683
4684LIBRARY
4685Standard.LIB 15.12.06 10:27:00
4686(* @LIBRARYSYMFILEINFO := '0' *)
4687NumOfPOUs: 21
4688CONCAT: 0
4689CTD: 0
4690CTU: 0
4691CTUD: 0
4692DELETE: 0
4693F_TRIG: 0
4694FIND: 0
4695INSERT: 0
4696LEFT: 0
4697LEN: 0
4698MID: 0
4699R_TRIG: 0
4700REPLACE: 0
4701RIGHT: 0
4702RS: 0
4703RTC: 0
4704SEMA: 0
4705SR: 0
4706TOF: 0
4707TON: 0
4708TP: 0
4709NumOfGVLs: 0
4710END_LIBRARY
4711
4712LIBRARY
4713SYSLIBCALLBACK.LIB 8.5.07 05:33:00
4714(* @LIBRARYSYMFILEINFO := '0' *)
4715NumOfPOUs: 2
4716SysCallbackRegister: 0
4717SysCallbackUnregister: 0
4718NumOfGVLs: 0
4719END_LIBRARY
4720
4721LIBRARY
4722SysLibSockets.lib 15.12.06 10:28:00
4723(* @LIBRARYSYMFILEINFO := '0' *)
4724NumOfPOUs: 26
4725SysSockAccept: 0
4726SysSockBind: 0
4727SysSockClose: 0
4728SysSockConnect: 0
4729SysSockCreate: 0
4730SysSockGetHostByName: 0
4731SysSockGetHostName: 0
4732SysSockGetLastError: 2048
4733SysSockGetLastErrorSync: 2048
4734SysSockGetOption: 0
4735SysSockHtonl: 0
4736SysSockHtons: 0
4737SysSockInetAddr: 0
4738SysSockInetNtoa: 0
4739SysSockIoctl: 0
4740SysSockListen: 0
4741SysSockNtohl: 0
4742SysSockNtohs: 0
4743SysSockRecv: 0
4744SysSockRecvFrom: 0
4745SysSockSelect: 0
4746SysSockSend: 0
4747SysSockSendTo: 0
4748SysSockSetIPAddress: 0
4749SysSockSetOption: 0
4750SysSockShutdown: 0
4751NumOfGVLs: 1
4752Globale_Variablen: 0
4753END_LIBRARY
4754
4755LIBRARY
4756SysLibSocketsAsync.lib 21.1.08 06:40:08
4757(* @LIBRARYSYMFILEINFO := '0' *)
4758NumOfPOUs: 26
4759SysSockAcceptAsync: 2048
4760SysSockBindAsync: 2048
4761SysSockCloseAllOpenAsync: 2048
4762SysSockCloseAsync: 2048
4763SysSockConnectAsync: 2048
4764SysSockCreateAsync: 2048
4765SysSockGetHostByNameAsync: 2048
4766SysSockGetHostNameAsync: 2048
4767SysSockGetLastErrorAsync: 2048
4768SysSockGetOptionAsync: 2048
4769SysSockHtonlAsync: 2048
4770SysSockHtonsAsync: 2048
4771SysSockInetAddrAsync: 2048
4772SysSockInetNtoaAsync: 2048
4773SysSockIoctlAsync: 2048
4774SysSockListenAsync: 2048
4775SysSockNtohlAsync: 2048
4776SysSockNtohsAsync: 2048
4777SysSockRecvAsync: 2048
4778SysSockRecvFromAsync: 2048
4779SysSockSelectAsync: 2048
4780SysSockSendAsync: 2048
4781SysSockSendToAsync: 2048
4782SysSockSetIPAddressAsync: 2048
4783SysSockSetOptionAsync: 2048
4784SysSockShutdownAsync: 2048
4785NumOfGVLs: 1
4786Globale_Variablen: 0
4787END_LIBRARY
4788
4789LIBRARY
4790SysLibTime.lib 15.12.06 10:28:00
4791(* @LIBRARYSYMFILEINFO := '0' *)
4792NumOfPOUs: 2
4793CurTime: 0
4794CurTimeEx: 0
4795NumOfGVLs: 1
4796Globale_Variablen: 0
4797END_LIBRARY
4798
4799LIBRARY
4800SysTaskInfo.lib 15.12.06 10:28:00
4801(* @LIBRARYSYMFILEINFO := '0' *)
4802NumOfPOUs: 1
4803taskinfo: 0
4804NumOfGVLs: 1
4805Globale_Variablen: 0
4806END_LIBRARY
4807
4808LIBRARY
4809Util.lib 21.1.08 06:40:20
4810(* @LIBRARYSYMFILEINFO := '0' *)
4811NumOfPOUs: 24
4812BCD_TO_INT: 2048
4813BLINK: 2048
4814CHARCURVE: 2048
4815DERIVATIVE: 2048
4816EXTRACT: 2048
4817FREQ_MEASURE: 2048
4818GEN: 2048
4819HYSTERESIS: 2048
4820INT_TO_BCD: 2048
4821INTEGRAL: 2048
4822LIMITALARM: 2048
4823LIN_TRAFO: 2048
4824PACK: 2048
4825PD: 2048
4826PID: 2048
4827PID_FIXCYCLE: 2048
4828PUTBIT: 2048
4829RAMP_INT: 2048
4830RAMP_REAL: 2048
4831STATISTICS_INT: 2048
4832STATISTICS_REAL: 2048
4833UNPACK: 2048
4834VARIANCE: 2048
4835Version_Util: 2048
4836NumOfGVLs: 1
4837Globale_Variablen: 0
4838END_LIBRARY
4839
4840PLC_CONFIGURATION
4841_GLOBAL
4842_VERSION: 3
4843_AUTOADR: 0
4844_CHECKADR: 1
4845_SAVECONFIGFILESINPROJECT: 0
4846_END_GLOBAL
4847
4848_MODULE: '3S'
4849_SECTION_NAME: 'Root'
4850_INDEX_IN_PARENT: '-1'
4851_MODULE_NAME: 'IndraLogic L40 DP 04VRS'
4852_NODE_ID: -1
4853_IECIN: %IB0
4854_IECOUT: %QB0
4855_IECDIAG: %MB0
4856_DOWNLOAD: 1
4857_EXCLUDEFROMAUTOADR: 0
4858_COMMENT: ''
4859
4860_MODULE: '3S'
4861_SECTION_NAME: 'OnBoardIO'
4862_INDEX_IN_PARENT: '1'
4863_MODULE_NAME: 'Onboard-IO'
4864_NODE_ID: 1
4865_IECIN: %IB0
4866_IECOUT: %QB0
4867_IECDIAG: %MB0
4868_DOWNLOAD: 1
4869_EXCLUDEFROMAUTOADR: 0
4870_COMMENT: ''
4871
4872_CHANNEL
4873_SECTION_NAME: 'I8'
4874_INDEX_IN_PARENT: '1'
4875_SYMBOLIC_NAME: ''
4876_COMMENT: ''
4877_CHANNEL_MODE: 'I'
4878_IECADR: %IB0
4879_BIT 0: %IX0.0 '' ''
4880_BIT 1: %IX0.1 '' ''
4881_BIT 2: %IX0.2 '' ''
4882_BIT 3: %IX0.3 '' ''
4883_BIT 4: %IX0.4 '' ''
4884_BIT 5: %IX0.5 '' ''
4885_BIT 6: %IX0.6 '' ''
4886_BIT 7: %IX0.7 '' ''
4887_END_CHANNEL
4888
4889_CHANNEL
4890_SECTION_NAME: 'O8'
4891_INDEX_IN_PARENT: '2'
4892_SYMBOLIC_NAME: ''
4893_COMMENT: ''
4894_CHANNEL_MODE: 'Q'
4895_IECADR: %QB0
4896_BIT 0: %QX0.0 '' ''
4897_BIT 1: %QX0.1 '' ''
4898_BIT 2: %QX0.2 '' ''
4899_BIT 3: %QX0.3 '' ''
4900_BIT 4: %QX0.4 '' ''
4901_BIT 5: %QX0.5 '' ''
4902_BIT 6: %QX0.6 '' ' '
4903_BIT 7: %QX0.7 '' ''
4904_END_CHANNEL
4905_END_MODULE
4906
4907_MODULE: '3S'
4908_SECTION_NAME: 'InlineIO'
4909_INDEX_IN_PARENT: '2'
4910_MODULE_NAME: 'InlineIO'
4911_NODE_ID: 2
4912_IECIN: %IB0
4913_IECOUT: %QB0
4914_IECDIAG: %MB0
4915_DOWNLOAD: 1
4916_EXCLUDEFROMAUTOADR: 0
4917_COMMENT: ''
4918
4919_PARAMETER
4920_PARAM 1: 0, 'Off'
4921_END_PARAMETER
4922
4923_MODULE: '3S'
4924_SECTION_NAME: 'InlineIO-IL 24 DI 8'
4925_INDEX_IN_PARENT: '1'
4926_MODULE_NAME: 'R-IB IL 24 DI 8'
4927_NODE_ID: 2
4928_IECIN: %IB1
4929_IECOUT: %QB0
4930_IECDIAG: %MB0
4931_DOWNLOAD: 1
4932_EXCLUDEFROMAUTOADR: 0
4933_COMMENT: ''
4934
4935_CHANNEL
4936_SECTION_NAME: 'IB8'
4937_INDEX_IN_PARENT: '1'
4938_SYMBOLIC_NAME: ''
4939_COMMENT: ''
4940_CHANNEL_MODE: 'I'
4941_IECADR: %IB1
4942_BIT 0: %IX1.0 '' ''
4943_BIT 1: %IX1.1 '' ''
4944_BIT 2: %IX1.2 '' ''
4945_BIT 3: %IX1.3 '' ''
4946_BIT 4: %IX1.4 '' ''
4947_BIT 5: %IX1.5 '' ''
4948_BIT 6: %IX1.6 '' ''
4949_BIT 7: %IX1.7 '' ''
4950_END_CHANNEL
4951_END_MODULE
4952
4953_MODULE: '3S'
4954_SECTION_NAME: 'InlineIO-IL AO 2/U/BP'
4955_INDEX_IN_PARENT: '1'
4956_MODULE_NAME: 'R-IB IL AO 2/U/BP'
4957_NODE_ID: 3
4958_IECIN: %IW2
4959_IECOUT: %QW2
4960_IECDIAG: %MB4
4961_DOWNLOAD: 1
4962_EXCLUDEFROMAUTOADR: 0
4963_COMMENT: ''
4964
4965_CHANNEL
4966_SECTION_NAME: 'AnalogO_W'
4967_INDEX_IN_PARENT: '1'
4968_SYMBOLIC_NAME: ''
4969_COMMENT: ''
4970_CHANNEL_MODE: 'Q'
4971_IECADR: %QW2
4972_END_CHANNEL
4973
4974_CHANNEL
4975_SECTION_NAME: 'AnalogO_W'
4976_INDEX_IN_PARENT: '2'
4977_SYMBOLIC_NAME: ''
4978_COMMENT: ''
4979_CHANNEL_MODE: 'Q'
4980_IECADR: %QW4
4981_END_CHANNEL
4982
4983_CHANNEL
4984_SECTION_NAME: 'AnalogI_W'
4985_INDEX_IN_PARENT: '3'
4986_SYMBOLIC_NAME: ''
4987_COMMENT: ''
4988_CHANNEL_MODE: 'I'
4989_IECADR: %IW2
4990_END_CHANNEL
4991
4992_CHANNEL
4993_SECTION_NAME: 'AnalogI_W'
4994_INDEX_IN_PARENT: '4'
4995_SYMBOLIC_NAME: ''
4996_COMMENT: ''
4997_CHANNEL_MODE: 'I'
4998_IECADR: %IW4
4999_END_CHANNEL
5000_END_MODULE
5001_END_MODULE
5002
5003_MODULE: 'DPMASTER'
5004_SECTION_NAME: 'DpMaster'
5005_INDEX_IN_PARENT: '3'
5006_MODULE_NAME: 'L40 DP-Master'
5007_NODE_ID: 3
5008_IECIN: %IB1
5009_IECOUT: %QB1
5010_IECDIAG: %MB0
5011_DOWNLOAD: 1
5012_EXCLUDEFROMAUTOADR: 0
5013_COMMENT: ''
5014
5015_DEVICESPECIFIC_DATA
5016_GSD_FILENAME: 'RX010160.gsd'
5017_STATIONNUMBER: 1
5018_HIGHEST_STATIONNUMBER: 3
5019_NUM_OF_CONNECTED_SLAVES: 2
5020_BAUDRATE: 7
5021_AUTOCLEAR: 0
5022_AUTOSTART: 1
5023_OPTIMIZE_TIMING_VALUES: 1
5024_NUM_OF_TIMINGVALUES: 12
5025_TIMINGVALUES: 400 11 150 2 1 4449 10 2 5 10 1200 1000
5026_GROUP: 'Gr 1' _FREEZE: 1 _SYNC: 1
5027_GROUP: 'Gr 2' _FREEZE: 1 _SYNC: 1
5028_GROUP: 'Gr 3' _FREEZE: 1 _SYNC: 1
5029_GROUP: 'Gr 4' _FREEZE: 1 _SYNC: 1
5030_GROUP: 'Gr 5' _FREEZE: 1 _SYNC: 1
5031_GROUP: 'Gr 6' _FREEZE: 1 _SYNC: 1
5032_GROUP: 'Gr 7' _FREEZE: 1 _SYNC: 1
5033_GROUP: 'Gr 8' _FREEZE: 1 _SYNC: 1
5034_END_DEVICESPECIFIC_DATA
5035
5036_MODULE: 'DPSLAVE'
5037_SECTION_NAME: 'DPSlave'
5038_INDEX_IN_PARENT: '1'
5039_MODULE_NAME: 'IndraDrive RX06'
5040_NODE_ID: 0
5041_IECIN: %IB2
5042_IECOUT: %QB1
5043_IECDIAG: %MB0
5044_DOWNLOAD: 1
5045_EXCLUDEFROMAUTOADR: 0
5046_COMMENT: ''
5047
5048_DEVICESPECIFIC_DATA
5049_GSD_FILENAME: 'RX060107.gsd'
5050_STATIONNUMBER: 2
5051_FAILSAVE_MODE: 1
5052_FREEZE_MODE: 0
5053_SYNC_MODE: 0
5054_STAION_ACTIVE: 1
5055_WD_ON: 1
5056_WD_TIME: 1000
5057_GROUP: 2#0
5058_LOCK_UNLOCK: 2
5059_TSDR: 11
5060_EXT_USER_PRM_DATA: _CONST
5061_GSD_MODULE: 'ParamCh not used' '0'
5062_ACTIVE: 1
5063_SYMBOLIC_NAMES:
5064_COMMENT:
5065_END_GSD_MODULE
5066_GSD_MODULE: 'F-Modul not used' '0'
5067_ACTIVE: 1
5068_SYMBOLIC_NAMES:
5069_COMMENT:
5070_END_GSD_MODULE
5071_GSD_MODULE: 'Input 12 Words' '219'
5072_ACTIVE: 1
5073_SYMBOLIC_NAMES: '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
5074_COMMENT: '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
5075_END_GSD_MODULE
5076_GSD_MODULE: 'Output 12 Words' '235'
5077_ACTIVE: 1
5078_SYMBOLIC_NAMES: '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
5079_COMMENT: '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
5080_END_GSD_MODULE
5081_END_DEVICESPECIFIC_DATA
5082_END_MODULE
5083
5084_MODULE: 'DPSLAVE'
5085_SECTION_NAME: 'DPSlave'
5086_INDEX_IN_PARENT: '2'
5087_MODULE_NAME: 'IndraDrive RX06'
5088_NODE_ID: 1
5089_IECIN: %IB26
5090_IECOUT: %QB1
5091_IECDIAG: %MB0
5092_DOWNLOAD: 1
5093_EXCLUDEFROMAUTOADR: 0
5094_COMMENT: ''
5095
5096_DEVICESPECIFIC_DATA
5097_GSD_FILENAME: 'RX060107.gsd'
5098_STATIONNUMBER: 3
5099_FAILSAVE_MODE: 1
5100_FREEZE_MODE: 0
5101_SYNC_MODE: 0
5102_STAION_ACTIVE: 1
5103_WD_ON: 1
5104_WD_TIME: 1000
5105_GROUP: 2#0
5106_LOCK_UNLOCK: 2
5107_TSDR: 11
5108_EXT_USER_PRM_DATA: _CONST
5109_GSD_MODULE: 'ParamCh not used' '0'
5110_ACTIVE: 1
5111_SYMBOLIC_NAMES:
5112_COMMENT:
5113_END_GSD_MODULE
5114_GSD_MODULE: 'F-Modul not used' '0'
5115_ACTIVE: 1
5116_SYMBOLIC_NAMES:
5117_COMMENT:
5118_END_GSD_MODULE
5119_GSD_MODULE: 'Input 12 Words' '219'
5120_ACTIVE: 1
5121_SYMBOLIC_NAMES: '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
5122_COMMENT: '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
5123_END_GSD_MODULE
5124_GSD_MODULE: 'Output 12 Words' '235'
5125_ACTIVE: 1
5126_SYMBOLIC_NAMES: '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
5127_COMMENT: '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
5128_END_GSD_MODULE
5129_END_DEVICESPECIFIC_DATA
5130_END_MODULE
5131_END_MODULE
5132_END_MODULE
5133PLC_END
5134
5135
5136RESOURCE
5137
5138TASK PLC_PRG (PRIORITY := 1, INTERVAL := T#10ms);
5139 PLC_PRG();
5140{Additional_info : 1,0,0,0,1,4294967295}
5141END_TASK
5142{event_task : 'start','Called when program starts','Start','FUNCTION CallbackStart: DWORD$R$NVAR_INPUT$R$N$TdwEvent: INT;$R$N$TdwFilter: INT;$R$N$TdwOwner: INT;$R$NEND_VAR$R$N'}{event_task_info : 1,1,22604}
5143{event_task : 'stop','Called when program stops','Stop','FUNCTION CallbackStop: DWORD$R$NVAR_INPUT$R$N$TdwEvent: INT;$R$N$TdwFilter: INT;$R$N$TdwOwner: INT;$R$NEND_VAR$R$N'}{event_task_info : 1,2,22604}
5144{event_task : 'before_reset','Called before reset takes place','','FUNCTION CallbackReset: DWORD$R$NVAR_INPUT$R$N$TdwEvent: INT;$R$N$TdwFilter: INT;$R$N$TdwOwner: INT;$R$NEND_VAR$R$N'}{event_task_info : 0,3,22604}
5145{event_task : 'after_reset','Called after reset took place','','FUNCTION CallbackAfterReset: DWORD$R$NVAR_INPUT$R$N$TdwEvent: INT;$R$N$TdwFilter: INT;$R$N$TdwOwner: INT;$R$NEND_VAR$R$N'}{event_task_info : 0,4,22604}
5146{event_task : 'debug_loop','Debug loop at breakpoint','','FUNCTION CallbackDebugLoop: DWORD$R$NVAR_INPUT$R$N$TdwEvent: INT;$R$N$TdwFilter: INT;$R$N$TdwOwner: INT;$R$NEND_VAR$R$N'}{event_task_info : 0,31,22604}
5147
5148END_RESOURCE
5149
5150
Note: See TracBrowser for help on using the repository browser.