// Baue DB Zeiger
L B#16#10 // Lade Wert für einen Bereichsübergeifender Zeiger
T LB 0 // Speicher in zielANYPDbx Byte 0
L B#16#2 // Lade Wert für Datentypcodierung Byte
T LB 1 // Speicher in zielANYPDbx Byte 1
L #anzSchrtitWudt10W // Lade die Länge des UDT10 - 8 BYTE
T LW 2 // Speicher in zielANYPDbx Byte 2
L #zielDBW // Lade Adresse des DB
T LW 4 // Speicher in zielANYPDbx Byte 4
LAR1 P#DBX 0.0 // Lade Zeiger auf Globaldendatensatz
L DW#16#0
L #anfangsAdrZielDbW // L
SLD 3
+AR1
TAR1 LD 6
// Baue tSensor Zeiger
L B#16#10 // Lade Wert für einen Bereichsübergeifender Zeiger
T LB 10 // Speicher in zielANYPDbx Byte 10
L B#16#2 // Lade Wert für Datentypcodierung Byte
T LB 11 // Speicher in zielANYPDbx Byte 11
L #anzSchrtitWudt10W // Lade die Länge des UDT10
T LW 2 // Speicher in zielANYPDbx Byte 12
L 0 // Auf kein DB Refernzieren!
T LW 4 // Speicher in zielANYPDbx Byte 14
L P##tSensor // Lade Adresse des tSensors
T LD 16 // Speicher sie ab Byte 16
// Kopiere Inhalt des DB Sensor x in tSensor
CALL "BLKMOV"
SRCBLK :=#zielANYPDbx
RET_VAL:=#RetValSFC20
DSTBLK :=#anyPtSensor
// Teste
L #tSensor.BgKAdr // Hier steht 320 im DB
T #testint
L B#16#10 //10h für s7
T LB 0
L B#16#02 //Typ BYTE
T LB 1
L 8 //Anzahl (Wiederholungsfaktor)
T LW 2
L 33 //Datenbaustein
T LW 4
[COLOR=red] L 14 //Anfangsadresse[/COLOR]
[COLOR=red] SLD 3 //Pointer bauen[/COLOR]
[COLOR=red] T LD 6[/COLOR]
[COLOR=red] L B#16#84 //Speicherbereich (hier DB)[/COLOR]
[COLOR=red] T LB 6[/COLOR]
Noch was. Hab mir dein Bild angesehen.
Ist ein Struct und kein Array!!
...
Du willst nur einen Wert da raus kopieren und diesen dann weiterverarbeiten?? Gestern 17:00
Da hast ja INT und BOOL gemischt.
Nein was soll das
+AR1
TAR1
bewirken??
LAR1 P#DBX 0.0 // Lade Zeiger auf Globaldendatensatz
L DW#16#0 // Alles Null setzten
L #anfangsAdrZielDbW //
SLD
+AR1
TAR1 LD 6
LAR1 P##zielANYPDbx // Lade Adresse des zielANYPDbx
L B#16#10 // Lade Wert für einen Bereichsübergeifender Zeiger
T LB [AR1,P#0.0] // Speicher "B#16#10" an die Stelle des zielANYPDbx mit dem "offset" P#0.0
L B#16#02 // Lade Typ: Byte
T LB [AR1,P#1.0] // Speicher Typ Byte an die Stelle des zielANYPDbx mit dem "offset" P#1.0
L #schrtittWudt10W // Lade Schrittweite / Bytes die geschrieben werden sollen.
T LW [AR1,P#2.0] // ... mit dem offset P#2.0
L #zielDBW // Lade die Nummer des Ziel DBs
T LW [AR1,P#4.0] // .. mit dem offset P#4.0
//LAR1 P#DBX 0.0
L DW#16#00000000
L #anfangsAdrZielDbW
SLD 3
T LD [AR1,P#6.0]
L B#16#84 //Speicherbereich (hier DB)
T LB [AR1,P#6.0]
LAR1 P##anyPtSensor
L B#16#10
T LB [AR1,P#0.0] // Speicher "B#16#10" an die Stelle des zielANYPDbx mit dem "offset" P#0.0
L B#16#02 // Lade Typ: Byte
T LB [AR1,P#1.0] // Speicher Typ Byte an die Stelle des zielANYPDbx mit dem "offset" P#1.0
L #schrtittWudt10W // Lade Schrittweite / Bytes die geschrieben werden sollen.
T LW [AR1,P#2.0] // ... mit dem offset P#2.0
L 0 // Lade die Nummer des Ziel DBs, da kein DB-Any Pointer ist steht hier eine 0
T LW [AR1,P#4.0] // ... mit dem offset P#4.0
// FEHLER AB HIER!!!
L P##tSensor // Lade Adresse der TempVar tSensor typ UDT10
T LD [AR1,P#6.0] // .. mit dem offset P#6.0
// Bereichszeigertyp müsste 6 sein [temporäre Lokaledaten], sollte aber auf jeden fall richtig mit, L P##tSensor erfasst sein
// L 86 // Bereichszeigertyp müsste 6 sein [temporäre Lokaledaten]
//T LB [AR1,P#6.0] // Überschreibe Bereichszeigertyp mit dem offset P#6.0
// FEHLER BIS HIER!!!
CALL "BLKMOV"
SRCBLK:=zielandypdbx
RET_VAL:=RetValSFC20
DSTBLK:=anyPtSensor
// Bereichszeigertyp müsste 6 sein [temporäre Lokaledaten], sollte aber auf jeden fall richtig mit,
L P##tSensor //erfasst sein
T LD[AR1,P#6.0]
L 86 // Bereichszeigertyp müsste 6 sein [temporäre Lokaledaten]
T LB [AR1,P#6.0]// Überschreibe Bereichszeigertyp mit dem offset P#6.0
// FEHLER BIS HIER!!!
L #tSensor
SLD 3
T LD[AR1,P#6.0]
L B#16#86 // Speicherbereich (Lokaldaten)
T LB{AR1,P#6.0]
// FEHLER AB HIER!!!
L P##tSensor // Lade Adresse der TempVar tSensor typ UDT10
T LD [AR1,P#6.0]
Z. B.
Quelle generieren und den Quellcode in ein TXT kopieren und fertig
CALL "SensorenAuswertenFC10"
zielDBW:=W#16#0001
anfangsAdrZielDbW:=W#16#0000
schrtittWudt10W:=W#16#0006
@HelmutvdR
Als „Anfänger“ hoffe ich mal das ich die Frage stellen darf, ist der SFC14/15 nicht für den einen Bus da und nicht für eine direkte Baugruppe?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?