-> Hier kostenlos registrieren
Hallo,
ich muss eine Programmänderung machen und versuche gerade ein Programm zu verstehen was schon etwas älter ist.
In diesem Programm wurde viel mit indirekter Adressierung programmiert und ich tue mich ehrlich gesagt noch etwas schwer damit.
Solche Programme finde ich sehr schwer zu verstehen, weil ich selber nicht so programmiere.
Kann mir da jemand einen Tip zu diesen Programmauszug geben ?
Und zwar was ich nicht verstehe ist, wie hier die Adressierung DIX und DIB funktioniert.
Was macht DIX und DIB in diesem Programmbeispiel ? Wird da direkt auf ein Adressregister zugegriffen oder auf ein DB der geöffnet ist.
Hier wird der FC "S_FC Logistic" aufgerufen, soweit OK !
In dem FC "S_FC Logistic" ist folgender Code enthalten:
Hier verstehe ich nicht woher der Wert kommt der z.b in DIB 65 steht.
Danke
LG
ich muss eine Programmänderung machen und versuche gerade ein Programm zu verstehen was schon etwas älter ist.
In diesem Programm wurde viel mit indirekter Adressierung programmiert und ich tue mich ehrlich gesagt noch etwas schwer damit.
Solche Programme finde ich sehr schwer zu verstehen, weil ich selber nicht so programmiere.
Kann mir da jemand einen Tip zu diesen Programmauszug geben ?
Und zwar was ich nicht verstehe ist, wie hier die Adressierung DIX und DIB funktioniert.
Was macht DIX und DIB in diesem Programmbeispiel ? Wird da direkt auf ein Adressregister zugegriffen oder auf ein DB der geöffnet ist.
Hier wird der FC "S_FC Logistic" aufgerufen, soweit OK !
Code:
LOG1: CALL "S_FC LOGISTIC"
MOBY_DBNR:=#MobyDBNO
U DIX 51.0 // Weg gerade
U DIX 60.4 // Page1 gerade
O(
U DIX 51.1 // Weg Umkehr
U DIX 60.5 // Page1 Umkehr
)
O(
U DIX 51.2 // Weg rechts
U DIX 60.6 // Page1 rechts
)
O(
U DIX 51.3 // Weg links
U DIX 60.7 // Page1 links
)
R DIX 51.5 // Prozessbit
R DIX 51.0 // Weg gerade
R DIX 51.1 // Weg Umkehr
R DIX 51.2 // Weg rechts
R DIX 51.3 // Weg links
S DIX 31.2 // Schritt 2
SPB ST3E
SET
S DIX 31.4 // Schritt 4
In dem FC "S_FC Logistic" ist folgender Code enthalten:
Hier verstehe ich nicht woher der Wert kommt der z.b in DIB 65 steht.
Code:
L #MOBY_DBNR
T #MOBY_DBNO
AUF DB [#MOBY_DBNO]
L DBB 201 // gelesenes Ziel
T #READ_TARGET
// Gerade gleich
ON DIX 60.0 // Projektiert
// ON DIX 61.0 // Anwahl
SPB NEX1
L #READ_TARGET // gelesenes Ziel
L DIB 65 // gleich gerade 1
==I
SPB STRA
L #READ_TARGET // gelesenes Ziel
L DIB 66 // gleich gerade 2
==I
SPB STRA
L #READ_TARGET // gelesenes Ziel
L DIB 67 // gleich gerade 3
==I
SPB STRA
L #READ_TARGET // gelesenes Ziel
L DIB 68 // gleich gerade 4
==I
SPB STRA
// Umkehr gleich
NEX1: ON DIX 60.1 // Projektiert
// ON DIX 62.0 // Anwahl
SPB NEX2
L #READ_TARGET // gelesenes Ziel
L DIB 71 // gleich Umkehr 1
==I
SPB TURN
L #READ_TARGET // gelesenes Ziel
L DIB 72 // gleich Umkehr 2
==I
SPB TURN
L #READ_TARGET // gelesenes Ziel
L DIB 73 // gleich Umkehr 3
==I
SPB TURN
L #READ_TARGET // gelesenes Ziel
L DIB 74 // gleich Umkehr 4
==I
SPB TURN
// Rechts gleich
NEX2: ON DIX 60.2 // Projektiert
// ON DIX 63.0 // Anwahl
SPB NEX3
L #READ_TARGET // gelesenes Ziel
L DIB 77 // gleich rechts 1
==I
SPB RIGH
L #READ_TARGET // gelesenes Ziel
L DIB 78 // gleich rechts 2
==I
SPB RIGH
L #READ_TARGET // gelesenes Ziel
L DIB 79 // gleich rechts 3
==I
SPB RIGH
L #READ_TARGET // gelesenes Ziel
L DIB 80 // gleich rechts 4
==I
SPB RIGH
// Links gleich
NEX3: ON DIX 60.3 // Projektiert
// ON DIX 64.0 // Anwahl
SPB NEX4
L #READ_TARGET // gelesenes Ziel
L DIB 83 // gleich links 1
==I
SPB LEFT
Danke
LG
Zuletzt bearbeitet: