Techniker2012
Level-1
- Beiträge
- 4
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo Liebe Community =)
Ich bin NEU hier und bin dringend auf eure Hilfe angewiesen.
Ich bin angehender Techniker Fachrichtung Energie und Automatisierungstechnik... Und muss zu meinem Abschluss als Techniker eine Technikerarbeit abgeben.
Die Technikerarbeit besteht darin das ich eine IFM O2I100 Kamera mit der CPU S7 315 mit übergeordneten CP 343 1 Lean habe.
Jetzt habe ich von der IFM Seite ein vorgefertigtes Programm bekommen. Den ich bisher recht gut mit meinen Kenntnissen verstanden habe.
Nur bräuchte ich evtl Hilfe bei diesen 2 Netzwerken wo es um den Pointer und die Indirekte Adressierung geht.
Im NW2 habe ich als Kommentar so einigermaßen das hingeschrieben was ich verstanden habe!
Hilfestellung sind eher im NW 1 beim Maskieren vorhanden...
Variable RECV_BUF in Variable und zeigt mit dem Pointer auf mein DB wo die Daten aus der Kamera gespeichert werden.
NW1
//---------------------------------------------
// Maskieren
//---------------------------------------------
TAR2 // Was wird hier gemacht?
UD DW#16#FFFFFF // Wieso maskiere ich nicht alle Felder? also 8 bits? sondern nur 6 Bits?
LAR1 P##RECV_BUF // Lade die Adresse vom DB222 in den Adressregister -> macht sinn
+AR1 // abder wieso muss ich das jetzt miteinander addieren? HILFE?????
//---------------------------------------------
// Kopiere den ANY-pointer nach TEMP Zwischenspeicher[VAR_BUF]
//---------------------------------------------
L W [AR1,P#0.0]
T LW 0
L B [AR1,P#2.0]
T LB 2
L B [AR1,P#3.0]
T LB 3
L W [AR1,P#4.0]
T LW 4
L W [AR1,P#6.0]
T LW 6
L W [AR1,P#8.0]
T LW 8
NW2:
//---------------------------------------------
// Erlaube mehrfache instanzen
//---------------------------------------------
LAR1 P##RECV_BUF // Adresse des Any-Pointer [DB222] in AR1 Legen
//---------------------------------------------
// Kopiere ANY-pointer nach TEMP Zwischenspeicher
//---------------------------------------------
L W [AR1,P#0.0] // Syntax ID vom Any Pointer [DB222] in
T LW 0 // Any-Pointer [TEMP] eintragen
L #RCV_LEN // Länge
T LW 2
L W [AR1,P#4.0] // DB- Nummer [Keine Veränderung]
T LW 4
L W [AR1,P#6.0] // Bereichszeiger 16 Bit ----> Stimmt meine Aussage???? -_-
T LW 6
L W [AR1,P#8.0] // Bereichszeiger 8 Bit [Da FC6(Ag_Send) nur Bytes Empfangen kann
L #BIT_OFFSET // wird hier der Wert mit BitOffset erweitert] BitOffset zähle ich in vorherigen NW hoch!
+I
T LW 8
ICH DANKE SCHON MAL FÜR DIE HILFESTELLUNG
Ich bin NEU hier und bin dringend auf eure Hilfe angewiesen.
Ich bin angehender Techniker Fachrichtung Energie und Automatisierungstechnik... Und muss zu meinem Abschluss als Techniker eine Technikerarbeit abgeben.
Die Technikerarbeit besteht darin das ich eine IFM O2I100 Kamera mit der CPU S7 315 mit übergeordneten CP 343 1 Lean habe.
Jetzt habe ich von der IFM Seite ein vorgefertigtes Programm bekommen. Den ich bisher recht gut mit meinen Kenntnissen verstanden habe.
Nur bräuchte ich evtl Hilfe bei diesen 2 Netzwerken wo es um den Pointer und die Indirekte Adressierung geht.
Im NW2 habe ich als Kommentar so einigermaßen das hingeschrieben was ich verstanden habe!
Hilfestellung sind eher im NW 1 beim Maskieren vorhanden...
Variable RECV_BUF in Variable und zeigt mit dem Pointer auf mein DB wo die Daten aus der Kamera gespeichert werden.
NW1
//---------------------------------------------
// Maskieren
//---------------------------------------------
TAR2 // Was wird hier gemacht?
UD DW#16#FFFFFF // Wieso maskiere ich nicht alle Felder? also 8 bits? sondern nur 6 Bits?
LAR1 P##RECV_BUF // Lade die Adresse vom DB222 in den Adressregister -> macht sinn
+AR1 // abder wieso muss ich das jetzt miteinander addieren? HILFE?????
//---------------------------------------------
// Kopiere den ANY-pointer nach TEMP Zwischenspeicher[VAR_BUF]
//---------------------------------------------
L W [AR1,P#0.0]
T LW 0
L B [AR1,P#2.0]
T LB 2
L B [AR1,P#3.0]
T LB 3
L W [AR1,P#4.0]
T LW 4
L W [AR1,P#6.0]
T LW 6
L W [AR1,P#8.0]
T LW 8
NW2:
//---------------------------------------------
// Erlaube mehrfache instanzen
//---------------------------------------------
LAR1 P##RECV_BUF // Adresse des Any-Pointer [DB222] in AR1 Legen
//---------------------------------------------
// Kopiere ANY-pointer nach TEMP Zwischenspeicher
//---------------------------------------------
L W [AR1,P#0.0] // Syntax ID vom Any Pointer [DB222] in
T LW 0 // Any-Pointer [TEMP] eintragen
L #RCV_LEN // Länge
T LW 2
L W [AR1,P#4.0] // DB- Nummer [Keine Veränderung]
T LW 4
L W [AR1,P#6.0] // Bereichszeiger 16 Bit ----> Stimmt meine Aussage???? -_-
T LW 6
L W [AR1,P#8.0] // Bereichszeiger 8 Bit [Da FC6(Ag_Send) nur Bytes Empfangen kann
L #BIT_OFFSET // wird hier der Wert mit BitOffset erweitert] BitOffset zähle ich in vorherigen NW hoch!
+I
T LW 8
ICH DANKE SCHON MAL FÜR DIE HILFESTELLUNG