+ All Categories
Home > Documents > Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um...

Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um...

Date post: 06-Feb-2018
Category:
Upload: trancong
View: 226 times
Download: 3 times
Share this document with a friend
18
Im Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1] bis Datenfelder [10] anlegten. Die jeweiligen Datenfelder[] beinhalteten 10 Bytes (10 mal 8 Bits) oder auch 5 Worte. Nun sollte in Abhängigkeit von Parameter, genannt Quelle, die Daten in den Zielbereich um kopiert werden. Wir wollen zum Beispiel 10 Bytes von Datenfeld[5] in das Datenfeld[1] umladen oder um kopieren. Klassische Anwendung Rezeptur. Das Umladen wird impulsgesteuert einmalig vollzogen. Beginn: Ich legte zuerst eine UDT 1, einen sogenannten anwenderdefinierten Datentyp an. Dann erzeugte ich einen Datenbaustein DB1 in Verbindung mit dem UDT 1. Im DB legt ich einen ARRAY[0..10] mit Bezug zum UDT 1 an. Dann programmierte ich eine Funktion FC1. Dort programmierte ich einige Hilfsfunktionen, wie z.B. Daten in Datenbaustein mit Werte füllen usw. Jetzt stellt sich die Frage, wie mache ich nun dieses Umladen? Es gibt einige Lösungen, hier in meinem Beispiel habe ich 5 verschiedene Lösungsvorschläge integriert. 1. die S7-Code Variante, mittels Schleife 2. die SCL-Code Variante, Hochsprache 3. die IBLKMOV Variante, TI-S7 Converting Blocks 4. die SFC20 Variante, Systemfunktionen, fest 5. SFC20 Variante, variabel Es gibt noch weitere Möglichkeiten wie z.B. mittels S7-Programm und Sprungfunktonen. Doch hier sind nur die oben beschrieben Variante beschrieben. Um mit dem Programmcode zu arbeiten bzw. zu verstehen, sind einige Kenntnisse zur Architektur der CPU und den Registern notwendig. Deshalb habe ich kurz einige Informationen zusammen getragen. Um der Quellenamnestie vorzubeugen, nenne ich die Quellen, worauf ich zurück gegriffen haben: SIMATIC S7 Upgrade S5-S7, Trainis-Center, 1999 Automatisierung mit STEP 7 in AWL, Hans Berger, 1998 Automatisieren mit STEP 7 in AWL und SCL, Hans Berger, 2008 Einführung in der STEP 7 – Programmierung, Teil 1 -3, SPS-Magazin 99 seit 1987 Programmiererfahrung in der Industrie SIMATIC Manager Version 5.4 SP2, Onlinehilfe Simulator als Bestandteil des S7 Software http://Schmitz-Blanke.de/ D:\Eigene_Dateien\001_Dokumente\001_Word_OpenOffice\Adressierung_S7_2009.odt Datenfeld[1] 10 Byte Datenfeld[5] 10 Byte Datenfeld[10] 10 Byte DBB 0 DBB 9 DBB 40 DBB 49 DBB 90 DBB 99 DB 1 .
Transcript
Page 1: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

Im Datenbaustein Bereiche um kopieren

Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1,Datenfelder[1] bis Datenfelder [10] anlegten. Die jeweiligen Datenfelder[] beinhalteten10 Bytes (10 mal 8 Bits) oder auch 5 Worte. Nun sollte in Abhängigkeit von Parameter, genannt Quelle, die Daten in den Zielbereichum kopiert werden. Wir wollen zum Beispiel 10 Bytes von Datenfeld[5] in dasDatenfeld[1] umladen oder um kopieren. KlassischeAnwendung Rezeptur.

Das Umladen wird impulsgesteuert einmaligvollzogen.Beginn:Ich legte zuerst eine UDT 1, einen sogenanntenanwenderdefinierten Datentyp an. Dann erzeugte icheinen Datenbaustein DB1 in Verbindung mit dem UDT 1. Im DB legt ich einen ARRAY[0..10] mitBezug zum UDT 1 an. Dann programmierte ich eineFunktion FC1. Dort programmierte ich einigeHilfsfunktionen, wie z.B. Daten in Datenbaustein mitWerte füllen usw.Jetzt stellt sich die Frage, wie mache ich nun diesesUmladen? Es gibt einige Lösungen, hier in meinemBeispiel habe ich 5 verschiedene Lösungsvorschlägeintegriert.1. die S7-Code Variante, mittels Schleife2. die SCL-Code Variante, Hochsprache3. die IBLKMOV Variante, TI-S7 Converting Blocks4. die SFC20 Variante, Systemfunktionen, fest5. SFC20 Variante, variabel

Es gibt noch weitere Möglichkeiten wie z.B. mittels S7-Programm und Sprungfunktonen.Doch hier sind nur die oben beschrieben Variante beschrieben.

Um mit dem Programmcode zu arbeiten bzw. zu verstehen, sind einige Kenntnisse zurArchitektur der CPU und den Registern notwendig. Deshalb habe ich kurz einige Informationen zusammen getragen. Um derQuellenamnestie vorzubeugen, nenne ich die Quellen, worauf ich zurück gegriffenhaben:

• SIMATIC S7 Upgrade S5-S7, Trainis-Center, 1999

• Automatisierung mit STEP 7 in AWL, Hans Berger, 1998

• Automatisieren mit STEP 7 in AWL und SCL, Hans Berger, 2008

• Einführung in der STEP 7 – Programmierung, Teil 1 -3, SPS-Magazin 99

• seit 1987 Programmiererfahrung in der Industrie

• SIMATIC Manager Version 5.4 SP2, Onlinehilfe

• Simulator als Bestandteil des S7 Software

http://Schmitz-Blanke.de/ D:\Eigene_Dateien\001_Dokumente\001_Word_OpenOffice\Adressierung_S7_2009.odt

Datenfeld[1]10 Byte

Datenfeld[5]10 Byte

Datenfeld[10]10 Byte

DBB 0

DBB 9

DBB 40

DBB 49

DBB 90

DBB 99

DB 1 .

Page 2: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

Adressierung in der Steuerung S7 ( Siematic )

In den S7 CPUs der Serie 300er und 400er, sowie die Software – CPU RTX sind dieRegister gleich aufgebaut.

Aufbau, Architektur der Adressregister, Akkumulatoren, DB, und DI-Register

http://Schmitz-Blanke.de/ D:\Eigene_Dateien\001_Dokumente\001_Word_OpenOffice\Adressierung_S7_2009.odt

Page 3: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

P#20.0

U E [AR1, P#3.1]

AR1

U E 23.1

+P # 3.1

P#M20.0

L B [AR1, P#4.0]

AR1

L MB 24

+P # 4.0

Bereichszeiger

x = Bitadresse; y = Byteadresse; z = Bereich Der z-Bereich ist wie folgt festgelegt: siehe Bild Akkumulator

0 0 0 P = Peripherie

0 0 1 E = Eingänge

0 1 0 A = Ausgänge

0 1 1 M = Merker

1 0 0 DBX = Globaldaten

1 0 1 DIX = Instanzdaten

1 1 0 L = temporäre Daten

1 1 1 Temporäre Daten

Hier einige Beispiele zu der indirekten Adressierung

speicherindirekte Adressierung mit BereichszeigerL P#10.0 // Zeiger in den Akku 1 ladenT MD20 // ins Merkerdoppelwort rettenL MW[MD20] // digital adressieren. . . . . // weitere S7-CodeU M[MD20] // binär adressieren

speicherindirekte Adressierung mit NummerL 145 // Zeiger in den Akku 1 ladenT MW20 // ins Merkerwort rettenAUF DB[MW20] // Global-DB aufmachen. . . . . // weitere S7-CodeSE T[MW20] // Zeit starten (T 145)

registerindirekte bereichsinterne Adressierung LAR1 P#20.0 // Zeiger in das Adressrigister 1 laden. . . . . // L MW[AR1,P#4.1] // digital adressieren. . . . . // weitere S7-CodeU E[AR1,P#3.1] // binär adressieren

registerindirekte bereichsübergreifende Adressierung LAR1 P#M20.0 // Zeiger in das Adressrigister 1 laden. . . . . // L B[AR1,P#4.0] // digital adressieren. . . . . // weitere S7-CodeS A[AR1,P#8.7] // binär adressieren

http://Schmitz-Blanke.de/ D:\Eigene_Dateien\001_Dokumente\001_Word_OpenOffice\Adressierung_S7_2009.odt

P#10.0

U M [MD20] MD20

U M 10.0

145

AUF DB [MW20] MW20

AUF DB 145

Page 4: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

Pointer oder DB-Zeiger

Ein Pointer oder DB-Zeiger kann wie folgt nur als Parameter-Eingang an einem FC oderFB übergeben werden, er sieht wie folgt aus:

z.B. P#DB2.DBX0.0 Er ist 48 Bit bzw. 6 Byte groß.

Dieser Pointer kann nicht in den Akku und auch nicht in die Adressregister direktgeladen werden. Er kann jedoch z.B in einem DB (6 Byte) erzeugt und manipuliertwerden. Hier der Aufbau des DB-Zeiger

u = Datenbausteinnummer, 215 entspricht 32768, (abhängig von CPU);x = Bitadresse, 23 entspricht 8, adressierbar von 0 bis 7;y = Byteadresse, 215 entspricht 32768, (abhängig von CPU);z = Bereich, 23 Bitmuster und Bedeutung siehe unten;

0 0 0 P = Peripherie

0 0 1 E = Eingänge

0 1 0 A = Ausgänge

0 1 1 M = Merker

1 0 0 DBX = Globaldaten

1 0 1 DIX = Instanzdaten

1 1 0 L = temporäre Daten

1 1 1 Temporäre Daten

DB-Zeiger, andere Darstellung mit Beispiel

Byte Bedeutung z.B. DB2.wort Beispiel, Wert

n Datenbaustein- D B 2. D B B 0 00

n +1 nummer D B 2. D B B 1 01

n + 2 Operandenbereich D B 2. D B B 2 B#10000100

n + 3 Byte-Adresse D B 2. D B B 3 00

n + 4 Byte-Adresse D B 2. D B B 4 00

n + 5 Byte.Bit-Adresse D B 2. D B B 5 B#01010000

Im DB2.DBX0.0 (6Byte) ist der Pointer P#DB1.DBX10.0 adressiert.DB2.[DBB0][DBB1][DBB2][DBB3][DBB4][DBB5] immer rechtsbündig.

http://Schmitz-Blanke.de/ D:\Eigene_Dateien\001_Dokumente\001_Word_OpenOffice\Adressierung_S7_2009.odt

Ber

eich

szei

ger

y y y y y x x xy y y y y y y y0 0 0 0 0 y y y1 0 0 0 0 z z zu u u u u u u uu u u u u u u u

DB-Zeiger (immer rechtsbündig)Byte n Byte n+1 Byte n+2 Byte n+3 Byte n+4 Byte n+5

z.B. DB2.DBB0 --- DBB5

Page 5: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

Programm

Der SIMATIC Manager mit den Datenbausteine, UDTs, FCs usw.

Der DB1 mit dem ARRAY[0..10]

OB1, Hauptprogramm

Als Schmankerl, habe ich ab Netzwerk 13, eine komfortable Adressierung mittels SFC20BLKMOV und variabler Adressierung mit ANY_Zeiger und Lokalvariable programmiert.

FC1, Programm

http://Schmitz-Blanke.de/ D:\Eigene_Dateien\001_Dokumente\001_Word_OpenOffice\Adressierung_S7_2009.odt

Page 6: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIM ATIC 10.12.2009 21:59:35 300-Station\CPU312C(1)\...\FC 1 - <offline>

Sylvio Blanke Seite 1 von 9

FC1 - <offline>"Block_laden" Test FC zur Datenübertragung Beis piel , von Sylvio Blanke Dez. 2009Name: Familie:Autor: Version: 0.1

Bausteinversion: 2Zeitstempel Code:

Interface:10.12.2009 21:59:2808.12.2009 23:12:29

Längen (Baustein / Code / Daten): 00944 00800 00034

Name Datentyp Adresse Kommentar

IN 0.0

OUT 0.0

IN_OUT 0.0

TEMP 0.0

ANY_Zeiger Any 0.0 Lokalvariable Any-Zeiger 10 By te lang

SCHM Word 10.0 Schmierwort

RETURN 0.0

RET_VAL 12.0

Baustein: FC1 Test FC zur Datenübertragung mittels verschiedenen Verfahren

Dieser Baustein besteht aus: +--------------------+ ! Impulserzeugung ! +---------!----------+ ! +----Impuls ----+ Ja Nein ! ! +----------------+ ! ! Daten erzeugen ! ! +-------!--------+ ! ! ! +----->!<-------+ _____ ab hier werten die Beispiele für die Daten übertragung Umladung hintereinader, berarbeitet (gleiches Muste r) ! ! +--------------------+ ! Impulserzeugung ! +---------!----------+ ! +----Impuls------+ Ja Nein ! ! +----------------+ ! ! Daten umladen ! ! +-------!--------+ ! ! ! !<---------------* 1 Bausteinende

Page 7: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIM ATIC 10.12.2009 21:59:35 300-Station\CPU312C(1)\...\FC 1 - <offline>

Sylvio Blanke Seite 2 von 9

Netzwerk: 1 Dient der Impulserzeugung, in DB1 Daten füllen

ImpulserzeugenMB 1 ist ein Zeit bzw. Taktgeber, in der CPU als Ta ktmerker fest eingestellt MB1 = 0 0 0 0 0 0 0 0 ! +---> 2 Hz _ _ +-----------> 0,5 Hz _! !_! !_ . . . M2.1 wird nur ein Zyklus (CPU-Takt) _/\__/\__ . . .

=P

&M1.4M1.4

Blinktakt0,125 Hz

"M 1.4"

M10.0M10.0Daten im

DB1 füllen"M 10.0"

M2.0M2.0Flankenmer

ker 1"M 2.0"

M2.1M2.1Impuls 1"M 2.1"

SymbolinformationM1.4 M 1.4 Blinktakt 0,125 HzM10.0 M 10.0 Daten im DB1 füllenM2.0 M 2.0 Flankenmerker 1M2.1 M 2.1 Impuls 1

Netzwerk: 2

UN "M 2.1" // Impuls M2.1 -- Impuls 1 SPB Ende // wenn keiner dan Ende

// Ab hier füllen wir den DB1 mit daten// Erster Datensatz

AUF "Probe DB" // Db aufschlagen, oder besse r DB-Rigister adressieren

DB1 -- Probe Datenbaustein

L DBW 10 // jetzt können wir vereinfache n, kürzer als L DB1.DBW10 L 1 // Konstante laden +I // addieren T DBW 10 // und zurückschreiben

L DBW 12 // Variable 1 laden + B#16#1 // Konstante 1 und addieren T DBW 12 // Wert wieder zurück schreiben SLW 1 //SChiebe den Akku 1 nach links (*2) T DBW 14 SLW 1 T DBW 16 SLW 1 T DBW 18

// Zweiter Datensatz

L DBW 10 L 2 *I T DBW 20 + B#16#1 T DBW 22 + B#16#1 T DBW 24 + B#16#1 T DBW 26 + B#16#1 T DBW 28

// dritter Datensatz

L DBW 10 L 3 *I T DBW 30 + B#16#1 T DBW 32 + B#16#1 T DBW 34 + B#16#1 T DBW 36 + B#16#1 T DBW 38

Page 8: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIM ATIC 10.12.2009 21:59:35 300-Station\CPU312C(1)\...\FC 1 - <offline>

Sylvio Blanke Seite 3 von 9

// vierter Datensatz

L DBW 10 L 4 *I T DBW 40 + B#16#1 T DBW 42 + B#16#1 T DBW 44 + B#16#1 T DBW 46 + B#16#1 T DBW 48

// fünfter Datensatz

L DBW 10 L 5 *I T DBW 50 + B#16#1 T DBW 52 + B#16#1 T DBW 54 + B#16#1 T DBW 56 + B#16#1 T DBW 58

Ende: NOP 0

Netzwerk: 3 Dient der Impulserzeugung, zur Pro be nur einmal ausführen

Impuls für daten umladen, nur einmal wenn M10.1 ges etzt, mittels S7 Programmcode

=

P

M2.2M2.2Flankenmer

ker 2"M 2.2"

M10.1M10.1Datenübertragung S7

- Code"M 10.1"

M2.3M2.3Impuls 2"M 2.3"

SymbolinformationM2.2 M 2.2 Flankenmerker 2M10.1 M 10.1 Datenübertragung S7 - CodeM2.3 M 2.3 Impuls 2

Netzwerk: 4 Datenübertragung mittels S7 Code u nd Schleifenprogrammierung

Die Beschreibung gilt für den ersten Durchlauf (zum Verständnis) Über den Aufbau und die Architektur der Adressierun g habe ich ein Pamphlet (Erklärung) erstellt. Dezember 2009 / SBL

UN "M 2.3" // Impulsauswertung, nur einmal umladen M2.3 -- Impuls 2 SPB WeiA

// Vorbereitung Datenumladen

AUF "Probe DB" // [DB-Register] der Vorstän digkeit Quell_DB aufmachen

DB1 -- Probe Datenbaustein

AUF DI 1 // [DI-Register] Ziel_Db Aufmac hen (geht nicht symbolisch)

// Verwendung der Adressregister LAR1 P#DBX 10.0 // Adressregister 1 mit Quell e laden LAR2 P#DIX 0.0 // Adressregister 2 mit Ziel l aden

L 5 // SchleifenzählerSchl: T "MW 100" // Hilfsregister Schleifenzähle r Wert ret

tenMW100 -- Schleifenzähler für die Datenübertragung S7- Code

L W [AR1,P#0.0] // Lade erster Wert Daten- Quelle (AR1=DBX10.0+P#0.0 ....) T W [AR2,P#0.0] // Lade erster Wert Daten- Ziel (AR2=DBX0.0+P#0.0 ....) +AR1 P#2.0 // Adiere zum AR1=DBX10.0 + P#2.0 wird AR1=DBX12.0 ....) +AR2 P#2.0 // Adiere zum AR2=DBX0.0 + P#2.0 w ird AR2=DBX2.0 ....) L "MW 100" // Schleifenzähler wieder in Ak ku 1 lade

nMW100 -- Schleifenzähler für die Datenübertragung S7- Code

LOOP Schl // LOOP subtrahiert im Akku 1 = 5 - 1 Akku 1 = 4 dann Springen > 0...)

Page 9: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIM ATIC 10.12.2009 21:59:35 300-Station\CPU312C(1)\...\FC 1 - <offline>

Sylvio Blanke Seite 4 von 9

WeiA: NOP 0

Netzwerk: 5 Dient der Impulserzeugung, zur Pro be nur einmal ausführen

Datenübertragung mittels erstelltem FC100 mit der S truktursprache SCL

=

P

M2.4M2.4Flankenmer

ker 3"M 2.4"

M10.2M10.2Datenübert

ragungmit FC100

"M 10.2"

M2.5M2.5Impuls 3"M 2.5"

SymbolinformationM2.4 M 2.4 Flankenmerker 3M10.2 M 10.2 Datenübertragung mit FC100M2.5 M 2.5 Impuls 3

Netzwerk: 6 Datenübertragung mittels FC100 / S Cl Code

FC100 / Datenübertragung BLOCK_FC, in diesem Beispi el werden Datenbereiche im DB1 umkopiert oder besser übertragen EN = bei 1, einmal ausführenQuelle = aus dem Datenbaustein 1, Datensatz (10 Bytes) hier Datensatz[3]Ziel = in den Datenbaustein 1, in den Datensat z (10 Bytes) hier Datensatz[2]

FC100

M2.5M2.5Impuls 3

"M 2.5" EN

3 Quelle

2 Ziel ENO

SymbolinformationM2.5 M 2.5 Impuls 3

Netzwerk: 7 Dient der Impulserzeugung, zur Pro be nur einmal ausführen

Datenübertragen mittels FC81 siehe folgende

=

P

M2.6M2.6Flankenmer

ker 4"M 2.6"

M10.3M10.3Datenübert

ragungmit FC81

"M 10.3"

M2.7M2.7Impuls 4"M 2.7"

SymbolinformationM2.6 M 2.6 Flankenmerker 4M10.3 M 10.3 Datenübertragung mit FC81M2.7 M 2.7 Impuls 4

Netzwerk: 8

DB-Zeiger es gilt: DB-Zeiger [Byte n][Byte n+1][Byte n+2][Byte n+3][B yte n+4][Byte n+5] DB2. [ DBB 0][ DBB 1 ][ DBB 2 ][ DBB 3 ][ DBB 4 ][ DBB 5 ] Die Betrachtung ist immer rechtsorientiert. Byte n = Datenbausteinnummer (High-Byte) Byte n+1 = Datenbausteinnummer (Low-Byte ) Byte n+2 = Bereichszeiger (Byte n Operandenbere ich B#2#10000zzz ) Byte n+3 = Bereichszeiger (Byte n+1 Operandenbere ich B#2#00000yyy ) Byte n+4 = Bereichszeiger (Byte n+2 Operandenbere ich B#2#yyyyyyyy )

Page 10: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIM ATIC 10.12.2009 21:59:35 300-Station\CPU312C(1)\...\FC 1 - <offline>

Sylvio Blanke Seite 5 von 9

Byte n+5 = Bereichszeiger (Byte n+3 Operandenbere ich B#2#yyyyyxxx ) Bedeutung zzz 000 = Peripherie P 001 = Eingänge E 010 = Ausgänge A 011 = Merker M 100 = Globaldaten DBX 101 = Instanzdaten DIX 110 = tempräre Lokaldaten L 111 = temporäre Lokaldaten vorgän gerbaustein V yyy Byte-Adresse 0 bis 32768 xxx Bit-Adresse 0 bis 7 Diese allgemeine Beschreibung gilt für Quell und Zi elparameter ! Dezember 2009 / SBL

UN "M 2.7" M2.7 -- Impuls 4 SPB Nie1// Vorbelegung des Quell-Zeigers Pointer, es soll d er Quell-Zeiger P#DB1.DBX10.0 adressiert werden

AUF "Lokal-DB" // DB2 Zeiger oder Pointer DB aufschlagen DB2 -- Pointer zum Umlad en L 2#0 // Konstante 0 T DBB 0 // Byte n

L 2#1 // Datebbausteinnummer 1 T DBB 1 // Byte n+1

L 2#10000100 // Globaldaten DBX T DBB 2 // Byte n+2

L 2#0 // Byte-Adresse 00000yyy T DBB 3 // Byte n+3

L 2#0 // Byte-Adresse yyyyyyyy T DBB 4 // Byte n+4

L 2#1010000 // Byte-Adresse 10. Bit-Adress e 0 yyyyyxxx T DBB 5 // Byte n+5

// Länge der übertragenen Daten, am FC81 E-Typ habe ich o4=Word eingestellt, deshalb die 5, fünf Worte

L 5 // 5 Worte übertragen T DBW 6 // das Längewort belegen

// Vorbelegung des Ziel-Zeigers Pointer, es soll de r Ziel-Zeiger P#DB1.DBX0.0 adressiert werden

L 2#0 // Konstante 0 T DBB 8 // Byte n

L 2#1 // Datebbausteinnummer 1 T DBB 9 // Byte n+1

L 2#10000100 // Globaldaten DBX T DBB 10 // Byte n+2

L 2#0 // Byte-Adresse 00000yyy T DBB 11 // Byte n+3

L 2#0 // Byte-Adresse yyyyyyyy T DBB 12 // Byte n+4

L 2#0 // Byte-Adresse 10. Bit-Adresse 0 y yyyyxxx T DBB 13 // Byte n+5

Nie1: NOP 0 // Soweit die Vorbelegung.. komplizier t, nein, hierzu meine Beschreibung Adressierung lesen

Netzwerk: 9 Datebworte umladen mit der FC81 Fu nktion

Parameter von FC81 (dieser Baustein findet man wenn man die Übersicht einschaltet, unter Bibliotheken/Standrad Libory/TI- S7Converting Blocks ParameterDeklarationDatentypSpeicherbereichBeschrei bungEN EingangBOOLE, A, M, D, LDer Signalzustand " 1" am Fre igabeeingang akt iviert die Box.ENO AusgangBOOLE, A, M, D, LDer Freigabeausgan g hat den Sig nalzustand "1", wenn die Fun ktion fehlerfrei ausgeführt wir d.S_DATA Eingang *PointerE, A, M, DZeigt auf ein en Pointer, der die Anf angsadresse der Quelle ang ibt.LENGTH Eingang *PointerE, A, M, DZeigt auf die Länge des

Page 11: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIM ATIC 10.12.2009 21:59:35 300-Station\CPU312C(1)\...\FC 1 - <offline>

Sylvio Blanke Seite 6 von 9

Dat enbereichs, der übertragen wer den soll.D_DATA Eingang *PointerE, A, M, DZeigt auf ein en Pointer, der die Anf angsadresse des Ziels angibt.E_TYPE EingangBYTEE, A, M, D, LGibt den Datent yp an. Folgende Wer te sin d für E_TYPE gültig: B#1 6#02 = BYTE B#1 6#04 = WORD B#1 6#05 = INT B#1 6#06 = DWORD B#1 6#07 = DINT B#1 6#08 = REAL

"IBLKMOV"

FC81FC81Indirect Block Move

M2.7M2.7Impuls 4

"M 2.7" EN

P#DB2.DBX0P#DB2.DBX0.0.0

DB-Zeiger6 Byte /

Quelle"Lokal-

DB".Quelle_

Zeiger S_DATA

DB2.DBW6DB2.DBW6Länge der

Uebertragung

"Lokal-DB".Laenge LEN

P#DB2.DBX8P#DB2.DBX8.0.0

DB-Zeiger6 Byte /

Ziel"Lokal-

DB".Ziel_

Zeiger D_DATA

B#16#4 E_TYPE ENO

SymbolinformationFC81 IBLKMOV Indirect Block MoveM2.7 M 2.7 Impuls 4P#DB2.DBX0.0 "Lokal-DB".Quelle_Zeiger DB-Zeiger 6 Byt e / QuelleDB2.DBW6 "Lokal-DB".Laenge Länge der UebertragungP#DB2.DBX8.0 "Lokal-DB".Ziel_Zeiger DB-Zeiger 6 Byte / Ziel

Netzwerk: 10 Dient der Impulserzeugung, zur Pro be nur einmal ausführen

Datenübertragen mittels SFB20 BLKMOV

=

P

M3.0M3.0Flankenmer

ker 5"M 3.0"

M10.4M10.4Datenübert

ragungSFC20

BLOKMOV,feste

Adressierung

"M 10.4"

M3.1M3.1Impuls 5"M 3.1"

SymbolinformationM3.0 M 3.0 Flankenmerker 5M10.4 M 10.4 Datenübertragung SFC20 BLOKMOV, feste Ad ressierungM3.1 M 3.1 Impuls 5

Page 12: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIM ATIC 10.12.2009 21:59:35 300-Station\CPU312C(1)\...\FC 1 - <offline>

Sylvio Blanke Seite 7 von 9

Netzwerk: 11 Datenübertragung mit SFC20

Die Quellen und Zielangabe am SFC20 werden als ANY- Zeiger Format erwartet.Pointer mit Angabe der Länge hier P#DB1.DBX20.0 Byt e 10 Quellpointer P#DB1.DBX0.0 Byte 10 Zielpointer Hier fest eingestellt Datensatz[2] nach Datensatz[0 ] umladen

"BLKMOV"

SFC20SFC20Copy Variables

M3.1M3.1Impuls 5

"M 3.1" EN

P#DB1.DBX2P#DB1.DBX20.00.0

vorläufigePlatzhalt

ervariable"Probe

DB".DB_VAR[2] SRCBLK

RET_VAL

MW4MW4Schmiermer

kerwortoder auchDatengrab

"MW 4"

DSTBLK

P#DB1.DBX0P#DB1.DBX0.0.0

vorläufigePlatzhalt

ervariable"Probe DB".DB_VAR[0]

ENO

SymbolinformationSFC20 BLKMOV Copy VariablesM3.1 M 3.1 Impuls 5P#DB1.DBX20.0 "Probe DB".DB_VAR[2] vorläufige Platzha ltervariableMW4 MW 4 Schmiermerkerwort oder auch DatengrabP#DB1.DBX0.0 "Probe DB".DB_VAR[0] vorläufige Platzhal tervariable

Netzwerk: 12

// ############# Ein Beispiel wie man mittel ANY_Ze iger die Bereiche ########### // ############# adressieren kann ###########////

Netzwerk: 13 Dient der Impulserzeugung, zur Pro be nur einmal ausführen

Datenübertragen mittels SFB20 BLKMOV

=

P

M3.2M3.2Flankenmer

ker 6"M 3.2"

M10.5M10.5Datenübert

ragungSFC20,BLKMOV

mitvariabler

Adressierung

"M 10.5"

M3.3M3.3Impuls 6"M 3.3"

SymbolinformationM3.2 M 3.2 Flankenmerker 6M10.5 M 10.5 Datenübertragung SFC20, BLKMOV mit varia bler AdressierungM3.3 M 3.3 Impuls 6

Netzwerk: 14 Arbeien mit einem ANY_Zeiger

Der ANY_Zeiger ist 10 Byte lang und sihe wie folgt aus:

Page 13: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIM ATIC 10.12.2009 21:59:35 300-Station\CPU312C(1)\...\FC 1 - <offline>

Sylvio Blanke Seite 8 von 9

zB. P#DB1.DBX30.0 10 Byte, im temporären Bereich d es FC1 wurde ein ANY_Zeiger definiert. Die temporär en Variablen kann man mit LBx, LWx, LDx anspreche n. ANY-Zeiger für Datenbausteine z.Beispiel P# DB1.DBX30.0 10 Byte 16# in HEX 2# dual LB0 Byte n fest 16#10 16#10 LB1 Byte n+1 Type 16#02 (Byte) LB2 Byte n+2 Anzahl (highbyte) 16#00 LB3 Byte n+3 Anzahl (lowbyte) 16#0A 10 Byte LB4 Byte n+4 DB-NR (highbyte) 16#00 LB5 Byte n+5 DB-NR (lowbyte) 16#01 DB1 LB6 Byte n+6 Bereichszeiger 16#84 DBX LB7 Byte n+7 " 16#00 LB8 Byte n+8 " 16#00 LB9 Byte n+9 " 2#11110000 30.0 im untenstehenden Beispiel arbeiten wir mit LW also Lokalwort. Dezember 2009 / SBL S452

UN "M 3.3" // Impuls auswerten M3.3 -- Impuls 6 SPB www// der ANY-Zeiger wird nun mit Daten belegt

LAR1 P##ANY_Zeiger // Adressregister mit Anfa ngsadresse der temp.Variable laden Hier L0.0 L W#16#1002 // Type Byte T LW [AR1,P#0.0] // in BYte n und n+1 lade n L 10 // Anzahl der Bytes T LW [AR1,P#2.0] // in Byte n+2 und n+3 la den L 1 // DB-Nr T LW [AR1,P#4.0] // in BYte n+4 und n+5 L W#16#8400 // Operandenbereich hier DBX T LW [AR1,P#6.0] // in Byte n+6 und n+7

// wir laden hier eine Konstant zB 30 als Byteanfan gsadresse, hier kann man über MWxx xbeliebige// Werte laden. Die Byteadresse muss dreimal nach l inks geschoben werden, weil die unteren// drei Bits die Bitadresse beinhalten als 0 bis 7. Wir wollen 30.0 adressieren.

L 30 // Quellenanfang (Zeiger) wir woolen aus DB1.DBX30.0 anfangen SLW 3 // dreimal nach links (im Akku 1) T LW [AR1,P#8.0] // in Byte n+8 und n+9

// Der ANY_Zeiger sollte jetzt komplett vorbelegt s ein, war doch einfach oder ?

www: NOP 0 // Sprungmarke mit Nulloperation, ist halt so !

Netzwerk: 15 Datenübertragung mit SFC20

Die Quellen und Zielangabe am SFC20 werden als ANY- Zeiger Format erwartet.Pointer mit Angabe der Länge hier P#DB1.DBX30.0 Byt e 10 Quellpointer P#DB1.DBX0.0 Byte 10 Zielpointer Hier fest eingestellt Datensatz[2] nach Datensatz[0 ] umladen

"BLKMOV"

SFC20SFC20Copy Variables

M3.3M3.3Impuls 6

"M 3.3" EN

#ANY_Zeiger SRCBLK

RET_VAL

MW4MW4Schmiermer

kerwortoder auchDatengrab

"MW 4"

DSTBLK

P#DB1.DBX0P#DB1.DBX0.0.0

vorläufigePlatzhalt

ervariable"Probe DB".DB_VAR[0]

ENO

SymbolinformationSFC20 BLKMOV Copy VariablesM3.3 M 3.3 Impuls 6MW4 MW 4 Schmiermerkerwort oder auch Datengrab

Page 14: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIM ATIC 10.12.2009 21:59:35 300-Station\CPU312C(1)\...\FC 1 - <offline>

Sylvio Blanke Seite 9 von 9

P#DB1.DBX0.0 "Probe DB".DB_VAR[0] vorläufige Platzhal tervariable

Netzwerk: 16 Baustein Ende, immer mit BE abschl iessen

Sauberer Programmierstill !

BE

Page 15: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\ 10.12.2009 03:31:52 SIMATIC 300-Station\CPU312C(1)\ ...\SCL-Umladen

Seite 2 von 2

2 FUNCTION FC100 : VOID34 TITLE = 'SCL Datenuebertragung'5 //6 // DB1.DBX[x] umladen ...7 //8 VERSION : '1.0'9 AUTHOR : SBL

10 NAME : SCLUB1112 // Bausteinparameter13 VAR_INPUT14 // Eingangsparameter15 Quelle : INT ;16 Ziel : INT ;17 18 END_VAR1920 VAR_TEMP21 // temporäre Variablen22 IQuelle : INT ;23 IZiel: INT ;24 Schl: INT ;25 A : INT ;26 B : INT ;27 28 END_VAR29 BEGIN30 // Anweisungsteil31 A := 1;32 B := 1;33 IF (Quelle < 1) OR (Quelle > 5) THEN 34 // Anweisungsteil_IF35 A := 0;36 END_IF;37 IF (Ziel < 1) OR (Quelle > 5) THEN 38 // Anweisungsteil_IF39 B := 0;40 END_IF;4142 IQuelle := (Quelle - 1) * 10 * A;43 IZiel := (Ziel - 1) * 10 * B;4445 FOR Schl := 0 TO 8 BY 2 DO46 // Anweisungsteil47 DB1 . DBW[IZiel + Schl] := DB1 . DBW[IQuelle + Schl];48 END_FOR;49 50 END_FUNCTION51

2 FUNCTION FC100 : VOID34 TITLE = 'SCL Datenuebertragung'5 //6 // DB1.DBX[x] umladen ...7 //8 VERSION : '1.0'9 AUTHOR : SBL

10 NAME : SCLUB1112 // Bausteinparameter13 VAR_INPUT14 // Eingangsparameter15 Quelle : INT ;16 Ziel : INT ;17 18 END_VAR1920 VAR_TEMP21 // temporäre Variablen22 IQuelle : INT ;23 IZiel: INT ;24 Schl: INT ;25 A : INT ;26 B : INT ;27 28 END_VAR29 BEGIN30 // Anweisungsteil31 A := 1;32 B := 1;33 IF (Quelle < 1) OR (Quelle > 5) THEN 34 // Anweisungsteil_IF35 A := 0;36 END_IF;37 IF (Ziel < 1) OR (Quelle > 5) THEN 38 // Anweisungsteil_IF39 B := 0;40 END_IF;4142 IQuelle := (Quelle - 1) * 10 * A;43 IZiel := (Ziel - 1) * 10 * B;4445 FOR Schl := 0 TO 8 BY 2 DO46 // Anweisungsteil47 DB1 . DBW[IZiel + Schl] := DB1 . DBW[IQuelle + Schl];48 END_FOR;49 50 END_FUNCTION51

Page 16: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIMATIC 10.12.2009 22:02:15 300-Station\CPU312C(1)\...\DB1 - <offline>

Seite 1 von 1

DB1 - <offline> - Datensicht"Probe DB" Probe DatenbausteinGlobaler Datenbaustein DB 1Name: Familie:Autor: Version: 0.1

Bausteinversion: 2Zeitstempel Code:

Interface:10.12.2009 01:04:3908.12.2009 23:11:26

Längen (Baustein / Code / Daten): 00224 00110 00000

Baustein: DB1 Probe Datenbaustein

Adresse Name Typ Anfangswert Aktualwert Kommentar0.0 DB_VAR[0].Nr WORD W#16#0 W#16#02.0 DB_VAR[0].Variable_1 INT 0 04.0 DB_VAR[0].Variable_2 INT 1 16.0 DB_VAR[0].Variable_3 INT 2 28.0 DB_VAR[0].Variable_4 INT 3 310.0 DB_VAR[1].Nr WORD W#16#0 W#16#012.0 DB_VAR[1].Variable_1 INT 0 014.0 DB_VAR[1].Variable_2 INT 1 116.0 DB_VAR[1].Variable_3 INT 2 218.0 DB_VAR[1].Variable_4 INT 3 320.0 DB_VAR[2].Nr WORD W#16#0 W#16#022.0 DB_VAR[2].Variable_1 INT 0 024.0 DB_VAR[2].Variable_2 INT 1 126.0 DB_VAR[2].Variable_3 INT 2 228.0 DB_VAR[2].Variable_4 INT 3 330.0 DB_VAR[3].Nr WORD W#16#0 W#16#032.0 DB_VAR[3].Variable_1 INT 0 034.0 DB_VAR[3].Variable_2 INT 1 136.0 DB_VAR[3].Variable_3 INT 2 238.0 DB_VAR[3].Variable_4 INT 3 340.0 DB_VAR[4].Nr WORD W#16#0 W#16#042.0 DB_VAR[4].Variable_1 INT 0 044.0 DB_VAR[4].Variable_2 INT 1 146.0 DB_VAR[4].Variable_3 INT 2 248.0 DB_VAR[4].Variable_4 INT 3 350.0 DB_VAR[5].Nr WORD W#16#0 W#16#052.0 DB_VAR[5].Variable_1 INT 0 054.0 DB_VAR[5].Variable_2 INT 1 156.0 DB_VAR[5].Variable_3 INT 2 258.0 DB_VAR[5].Variable_4 INT 3 360.0 DB_VAR[6].Nr WORD W#16#0 W#16#062.0 DB_VAR[6].Variable_1 INT 0 064.0 DB_VAR[6].Variable_2 INT 1 166.0 DB_VAR[6].Variable_3 INT 2 268.0 DB_VAR[6].Variable_4 INT 3 370.0 DB_VAR[7].Nr WORD W#16#0 W#16#072.0 DB_VAR[7].Variable_1 INT 0 074.0 DB_VAR[7].Variable_2 INT 1 176.0 DB_VAR[7].Variable_3 INT 2 278.0 DB_VAR[7].Variable_4 INT 3 380.0 DB_VAR[8].Nr WORD W#16#0 W#16#082.0 DB_VAR[8].Variable_1 INT 0 084.0 DB_VAR[8].Variable_2 INT 1 186.0 DB_VAR[8].Variable_3 INT 2 288.0 DB_VAR[8].Variable_4 INT 3 390.0 DB_VAR[9].Nr WORD W#16#0 W#16#092.0 DB_VAR[9].Variable_1 INT 0 094.0 DB_VAR[9].Variable_2 INT 1 196.0 DB_VAR[9].Variable_3 INT 2 298.0 DB_VAR[9].Variable_4 INT 3 3100.0 DB_VAR[10].Nr WORD W#16#0 W#16#0102.0 DB_VAR[10].Variable_1 INT 0 0104.0 DB_VAR[10].Variable_2 INT 1 1106.0 DB_VAR[10].Variable_3 INT 2 2108.0 DB_VAR[10].Variable_4 INT 3 3

Page 17: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\ 10.12.2009 22:01:09 SIMATIC 300-Station\CPU312C(1)\...\DB2

Seite 1 von 1

DB2 - <offline> Datensicht"Lokal-DB" Pointer zum Umladen

Typ des Datenbausteins: Datenbaustein von UDT2

Name: Familie:

Autor: Version: 0.1

Bausteinversion: 2

Längen (Baustein / Daten ): 00122 / 00014

Zeitstempel

Code: 10.12.2009 01:05:01

Schnittstelle: 09.12.2009 23:26:22

Kommentar: Pointer zum Umladen

Adresse Name Typ Anfangswert Aktualwert Kommentar

0.0 Quelle_Zeiger[1] BYTE B#16#0 B#16#0 DB-Zeiger 6 Byte / Quelle

1.0 Quelle_Zeiger[2] BYTE B#16#0 B#16#0

2.0 Quelle_Zeiger[3] BYTE B#16#0 B#16#0

3.0 Quelle_Zeiger[4] BYTE B#16#0 B#16#0

4.0 Quelle_Zeiger[5] BYTE B#16#0 B#16#0

5.0 Quelle_Zeiger[6] BYTE B#16#0 B#16#0

6.0 Laenge INT 0 0 Länge der Uebertragung

8.0 Ziel_Zeiger[1] BYTE B#16#0 B#16#0 DB-Zeiger 6 Byte / Ziel

9.0 Ziel_Zeiger[2] BYTE B#16#0 B#16#0

10.0 Ziel_Zeiger[3] BYTE B#16#0 B#16#0

11.0 Ziel_Zeiger[4] BYTE B#16#0 B#16#0

12.0 Ziel_Zeiger[5] BYTE B#16#0 B#16#0

13.0 Ziel_Zeiger[6] BYTE B#16#0 B#16#0

Page 18: Im Datenbaustein Bereiche um kopieren - schmitz- · PDF fileIm Datenbaustein Bereiche um kopieren Die Aufgabe besteht darin, das wir in einem Datenbaustein, hier im Beispiel DB1, Datenfelder[1]

SIMATIC S7_Adressierung\SIMATIC 10.12.2009 22:03:16 300-Station\CPU312C(1)\S7-Programm(1)\Symbole

Seite 1 von 1

Symboltabellen-Eigenschaften

Name: Symbole

Autor:

Kommentar:

Erstellt am: 08.12.2009 22:51:44

Zuletzt geändert am: 10.12.2009 21:56:25

Letztes Filterkriterium: Alle Symbole

Anzahl der Symbole: 37/37

Letzte Sortierung: Symbol aufsteigend

Status Symbol Adresse Datentyp Kommentar

Aachen UDT 1 UDT 1 Probe UDT

BLKMOV SFC 20 SFC 20 Copy Variables

Block_laden FC 1 FC 1 Test FC zur Datenübertragung Beispiel , von Sylvio Blanke Dez. 2009

Cycle Execution OB 1 OB 1 Zyklus

IBLKMOV FC 81 FC 81 Indirect Block Move

Lokal-DB DB 2 UDT 2 Pointer zum Umladen

M 0.0 M 0.0 BOOL Konstante Null

M 1.0 M 1.0 BOOL Blinktakt 2 Hz

M 1.1 M 1.1 BOOL Blinktakt 1 Hz

M 1.2 M 1.2 BOOL Blinktakt 0,5 Hz

M 1.3 M 1.3 BOOL Blinktakt 0,25 Hz

M 1.4 M 1.4 BOOL Blinktakt 0,125 Hz

M 1.5 M 1.5 BOOL Blinktakt 0,0625 Hz

M 1.6 M 1.6 BOOL Blinktakt

M 1.7 M 1.7 BOOL Blinktakt

M 10.0 M 10.0 BOOL Daten im DB1 füllen

M 10.1 M 10.1 BOOL Datenübertragung S7 - Code

M 10.2 M 10.2 BOOL Datenübertragung mit FC100

M 10.3 M 10.3 BOOL Datenübertragung mit FC81

M 10.4 M 10.4 BOOL Datenübertragung SFC20 BLOKMOV, feste Adressierung

M 10.5 M 10.5 BOOL Datenübertragung SFC20, BLKMOV mit variabler Adressierung

M 2.0 M 2.0 BOOL Flankenmerker 1

M 2.1 M 2.1 BOOL Impuls 1

M 2.2 M 2.2 BOOL Flankenmerker 2

M 2.3 M 2.3 BOOL Impuls 2

M 2.4 M 2.4 BOOL Flankenmerker 3

M 2.5 M 2.5 BOOL Impuls 3

M 2.6 M 2.6 BOOL Flankenmerker 4

M 2.7 M 2.7 BOOL Impuls 4

M 3.0 M 3.0 BOOL Flankenmerker 5

M 3.1 M 3.1 BOOL Impuls 5

M 3.2 M 3.2 BOOL Flankenmerker 6

M 3.3 M 3.3 BOOL Impuls 6

MW 100 MW 100 WORD Schleifenzähler für die Datenübertragung S7- Code

MW 4 MW 4 INT Schmiermerkerwort oder auch Datengrab

Pointer UDT 2 UDT 2 DB-Zeiger und oder Pointer

Probe DB DB 1 DB 1 Probe Datenbaustein


Recommended