TIA Einfach Frage Profinet Kommunikation

Metalhead

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,
sehr wahrscheinlich ist die folgende Frage in euren Augen etwas Lächerlich. :p

Für mich geht es bald in die Meisterprüfung, es ist gefordert das eine Automatisierte Anlage gebaut werden soll.

Hierfür habe ich folgende Bauteile vorgesehen.

CPU 1513-1
CPU 1214 C DC/DC/DC
KTP 700 Display
Scalance Switch

Ich bin aus der eigentlich Programiererei schon fast 10 Jahre raus.

Nun das Problem. Ich würde gerne die 1214 als I/O Device laufen lassen und eigentlich nur als "Eingänge Einlese und Ausgabe Setze" Baugruppe verwenden, gesteuert über die 1513-1. Über das HMI sollen die wichtigsten Information Visoalisiert werden. Ich schaffe es eine Profinet Verbindung zwischen beiden herstellen, allerdings scheint keine Kommunikation stattzufinden.

Wie bekomme ich es hin das die 1214 (I/O Divice) und die 1513-1 (I/O Master) eine Kommunikation aufbauen und wenn sie es tuhen, Wie kann ich die I/O Daten der 1214 in der 1513-1 abrufen und in die Programmierung einbringen?

z.B.
U I0.0 (Vom 1214)
U I0.0 (Vom 1513-1)
=Q0.0 (vom 1214)
=Q0.0 (Vom 1513-1)

Ich weiß das es damals bei 300er und Profibus richtig einfach war und man nur die Adressen in der HW Konfig ändern musste.

Ich habe jetzt schon einiges Gelesen mit Put, Get befehlen. Kann in meiner Aktuellen Situation leider wenig damit anfangen.

Für mich ist Wichtig wie kriege ich die I/O Daten in die 1513-1 und wie kann ich sie im Programm weiter verarbeiten.

TIA Portal 13 SP1 mit Step 7 Professional und WinCC Advanced.

Gruß
Metalhead
 
@Blackpeat Hab das schondurch Probiert. Ich müsste wissen, wie ich die ankommenden I/O im Programm weiter nutzen kann. Es geschieht eine Kommunikation auf irgendeine weise. Ich steige nicht durch, wo die Daten hinkommen und wieder zurückkommen.

@JesperMP Ich hatte noch eine 1200er rumliegen und wollte nicht unbedingt nochmal eine ET 200 kaufen :-(
 
In den PDF "I-Device in einer Standard Umgebung" Seite 20 siehst du den Transferbereich in den I-Device (also S7-1200).
Das sind die Adressen die du in den S7-1200 Programm lesen und schreiben muss.
Also:
S7-1200 physikalische Eingang --> S7-1200 I-Device "ausgang" --> S7-1500 Profinet "eingang".
S7-1500 profinet "ausgang" --> S7-1200 I-Device "eingang" --> S7-1200 physikalische Ausgang.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In dem Link von blackpeat Projektierung und Anwendung der PROFINET I-Device-Funktion die erste PDF "I-Device in einer Standard Umgebung (2,8 MB)" Kapitel 3.1 ist genau Dein Fall beschrieben.
Nach der Projektierung der S7-1200 als I-Device kümmert sich die S7-1500 (IO-Controller) um die ganze Kommunikation. In Deinem Programm schreibst Du einfach in die projektierten A-Adressen und liest von den projektierten E-Adressen (Kapitel 3.1.5 I-Device-Funktion testen). Du kannst die E/A auch bitweise ansprechen (z.B. %I100.0, %Q100.0)

Harald
 
Genau das erschließt sich mir irgendwie nicht. Das ganze ding läuft ja irgendwie und kommuniziert irgendwie.

Wenn ich das so mache, wie im Beispiel, dann wird Ausgang 0.0 1200 zu I0.0 in 1500 und Q0.0 1500 wird zu I0.0 in 1200?

Das ist eigentlich gegen mein Logic Verständnis, ich muss doch irgendwie mitteilen, das der 1200 Eingang 0.0 für die 1500 Eingang 100.0 ist. Der Ausgang der 1200 0.0 auf der 1500 Ausgang 100.0 ist.

Entweder ich verwirre mich gerade selber, oder ich bin zu bekloppt :-/
 
Wenn ich das so mache, wie im Beispiel, dann wird Ausgang 0.0 1200 zu I0.0 in 1500 und Q0.0 1500 wird zu I0.0 in 1200?
Wichtig zu verstehen:
Die physikalische E/A und die I-Device E/A haben unterschiedliche Adressen.
Z.B. Die physikalische E/A in S7-1200 haben die Adressen EB0 und QB0. Die I-Device E/A in S7-1200 haben die Adressen EB100 und QB100. Und die Profinet Adressen in S7-1500 könnte QB100 und EB100 heissen.
Den Austausch zwischen I-Device und IO Controller (S7-1200 und S7-1500) passiert automatisch.
Aber den Austausch zwisschen die physikalische E/A und die I-Device E/A in S7-1200 muss do noch in Code machen.

Also, in S7-1200 programmierst du:
EB0 --> QB100
EB100 --> QB0.

Der Ergebniss wird das
EB0 in S7-1200 wird zu EB100 in S7-1500.
QB100 in S7-1500 wird zu QB0 in S7-1200.
 
Ich verstehe nicht so ganz was du an der Logik nicht verstehst, dass bei einer Kommunikation zwischen zwei Partnern immer ein Schreiben/Lesen erfolgt.

Du kannst ja nicht den Eingang 0.0 deiner 1200 auf einen Eingang 0.0 der 1500 legen ohne zu schreiben. Deswegen wird aus I0.0 auch Q0.0, damit die 1500 diesen im Lesebereich hat.

Zudem wäre es wirklich einfacher dir eine ET200 Baugruppe zuzulegen.
 
Na gut, dann wird ich wohl in den saueren Apfel beißen und nochmal eine ET 200 SP bestellen.

IM155-6PN Basic sollte reichen?

Aber werde ich dann nicht wieder das selbe Problem mit den Adressen bekommen?

Oder ist es da wirklich so. Die I/O Adresse die ich einstelle ist auch die Adresse in der Sps?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
nein wirst du nicht.
die IM ist dann ein ganz normaler slave der einen e/a-bereich hat. man muss hierbei nicht hin- und hertransferieren.
logischerweise brauchst du natürlich auch ein eingangs und ausgangsmodul
siehe bild 2. im prigramm der 1500er wäre das dann wie in der hw konfiguriert ew40 und aw40


so nochmal zur 1200er
in den einstellungen der 1200er wählst du als betriebsart io-device (profinet-schnittstelle anklicken)
unter idevice-kommunikation fügst du 2 transferbereiche ein

im programm der 1500er
übertragen des EB 0 (das ist ein eingangsbyte einer di-karte die an der 1500er steckt) an die 1200er
L EB 0
T AB 200 (Transferbereich 1) ist in der 1200er EB300

L EB 200 (Transferbereich 2) ist in der 1200er AB300
T MB 200 (hier liegen nun die die EA welche du in der 1200er transferiert hast)


im programm der 1200er
übertragen des EB 0 (das ist ein eingangsbyte einer di-karte die an der 1200er steckt) an die 1500er
L EB 300 das ist AB 200 der 1500er
T MB 200 (Transferbereich 1) hier liegt nun das EB 0 der 1500er

L EB 0 (hier könnte natürlich auch ein AB oder MB oder DBB stehen)
T AB 300 (Transferbereich 2) das ist EB 200 in der 1500er
 

Anhänge

  • Zwischenablage04.jpg
    Zwischenablage04.jpg
    18,2 KB · Aufrufe: 20
  • Zwischenablage06.jpg
    Zwischenablage06.jpg
    89,5 KB · Aufrufe: 20
Zuletzt bearbeitet:
IM155-6PN Basic sollte reichen?

Aber werde ich dann nicht wieder das selbe Problem mit den Adressen bekommen?

Oder ist es da wirklich so. Die I/O Adresse die ich einstelle ist auch die Adresse in der Sps?
Weil man in einem "dummen" IO-Device wie die ET200 die E/A-Daten des Master nicht mit den eigenen E/As rangieren/kopieren muß, projektiert man direkt die Adressen unter denen die Eingänge und Ausgänge im Master angesprochen werden sollen. Das ist in der Tat so einfach zu projektieren und zu verstehen wie E/A-Module auf dem zentralen Rack direkt an der CPU.


Na gut, dann wird ich wohl in den saueren Apfel beißen und nochmal eine ET 200 SP bestellen.
Das Projektieren einer S7-1200 als I-Device ist aber nur wenig komplizierter als das Projektieren einer ET200 - deshalb muß man doch keine ET200 kaufen wenn man bereits eine S7-1200 hat.

Stell Dir mal das ganze bildlich vor wie Du es machen müsstest wenn Du die Kommunikation komplett zu Fuß realisieren müsstest:
Im "Master" müsstest Du Ausgangsdaten für den Slave zusammenstellen, dann an den Slave senden, der Slave müßte die Empfangsdaten nehmen (lesen = Eingänge!) und in seine Ausgänge schreiben. Dann müsste der Slave die für den Master interessanten Eingangsdaten zusammenstellen und bei Master-Anfrage an den Master senden (ausgeben = Ausgänge!), der Master empfängt die Daten und kann sie in seinem Programm lesend verarbeiten (lesen = Eingänge!).

Bei der Projektierung der S7-1200 als I-Device ist die Projektierung auf das minimal nötigste beschränkt (die spiegelbildlichen E/A-Adressen festlegen) - um alles andere kümmert sich der Master. Dabei hat man die Freiheit, daß die Adressen im Master nicht mit den Adressen in den Slaves übereinstimmen müssen (z.B. wenn man mehrere I-Slaves mit den Adressen E0.0...E1.7 hat dann können die ja nicht beide im Master 0.0...1.7 heißen).

Beispiel:
* Du möchtest im Master S7-1500 die Eingänge E0.0...E1.7 der S7-1200 verarbeiten - projektiere in der S7-1200 ein Ausgangswort zur S7-1500 auf die Adresse AW100 und kopiere im Programm das EW0 ins AW100. In der S7-1500 projektiere für den Empfang der Eingangsdaten von der S7-1200 ein Eingangswort EW100. Die S7-1500 wird nun zyklisch die Werte aus dem AW100 der S7-1200 lesen und in seinem eigenen EW100 ablegen, wo das Programm der S7-1500 ganz einfach zugreifen kann, z.B. lesen des E101.2 liefert den Wert des E1.2 der S7-1200.
* Du möchtest in der S7-1500 auch Werte an die Ausgänge der S7-1200 ausgeben - projektiere in der S7-1500 z.B. ein Ausgangsbyte an Adresse AB100 und in der S7-1200 ein Eingangsbyte EB100. Die S7-1500 wird nun zyklisch den Wert seines AB100 in das EB100 der S7-1200 schreiben. In der S7-1200 hast Du nun die Wahl, das EB100 direkt an sein AB100 auszugeben (einfacher MOVE) oder noch irgendwie zu verknüpfen, z.B. mit einem Schalter Fern-/Lokal-Steuerung oder eine Begrenzung von Analogwerten (eine ET200 kann das nicht).
In der Projektierung des I-Device brauchst Du für den ganzen Aufwand lediglich zwei Zeilen projektieren:
Transferbereich_1: S7-1500: EW100 <--- S7-1200: AW100
Transferbereich_2: S7-1500: AB100 ---> S7-1200: EB100

(Die Zahl in den Adressen muß nicht gleich sein, es vereinfacht aber die stationsübergreifende Verfolgung eines Signals wenn die gleich sind. Es wäre wesentlich schwieriger sich zu merken, das der Slave-A112.3 im Master als E247.3 auftaucht - A112.3 --> E112.3 kann man sich leichter merken)

Test, am einfachsten mit Beobachtungstabelle:
* S7-1500: A100.2 steuern -------> S7-1200: E100.2 ändert sich entsprechend, und kann z.B. an A0.2 ausgegeben werden
* S7-1200: E1.4 --> A101.4 -------> S7-1500: E101.4 zeigt den Zustand des E1.4 der S7-1200

Harald
 
Zuletzt bearbeitet:
im programm der 1200er
übertragen des EB 0 (das ist ein eingangsbyte einer di-karte die an der 1200er steckt) an die 1500er
L EB 300 das ist AB 200 der 1500er
T MB 200 (Transferbereich 1) hier liegt nun das EB 0 der 1500er

L EB 0 (hier könnte natürlich auch ein AB oder MB oder DBB stehen)
T AB 300 (Transferbereich 2) das ist EB 200 in der 1500er

Ich glaube in SCL wäre das Beispiel auch für Anfänger geeignet, eine 1200er kann kein AWL, deshalb muss man die Funktion erst sinnvoll übersetzen.

Beispiel:
* Du möchtest im Master S7-1500 die Eingänge E0.0...E1.7 der S7-1200 verarbeiten - projektiere in der S7-1200 ein Ausgangswort zur S7-1500 auf die Adresse AW100 und kopiere im Programm das EW0 ins AW100. In der S7-1500 projektiere für den Empfang der Eingangsdaten von der S7-1200 ein Eingangswort EW100. Die S7-1500 wird nun zyklisch die Werte aus dem AW100 der S7-1200 lesen und in seinem eigenen EW100 ablegen, wo das Programm der S7-1500 ganz einfach zugreifen kann, z.B. lesen des E101.2 liefert den Wert des E1.2 der S7-1200.
* Du möchtest in der S7-1500 auch Werte an die Ausgänge der S7-1200 ausgeben - projektiere in der S7-1500 z.B. ein Ausgangsbyte an Adresse AB100 und in der S7-1200 ein Eingangsbyte EB100. Die S7-1500 wird nun zyklisch den Wert seines AB100 in das EB100 der S7-1200 schreiben. In der S7-1200 hast Du nun die Wahl, das EB100 direkt an sein AB100 auszugeben (einfacher MOVE) oder noch irgendwie zu verknüpfen, z.B. mit einem Schalter Fern-/Lokal-Steuerung oder eine Begrenzung von Analogwerten (eine ET200 kann das nicht).
In der Projektierung des I-Device brauchst Du für den ganzen Aufwand lediglich zwei Zeilen projektieren:
Transferbereich_1: S7-1500: EW100 <--- S7-1200: AW100
Transferbereich_2: S7-1500: AB100 ---> S7-1200: EB100

(Die Zahl in den Adressen muß nicht gleich sein, es vereinfacht aber die stationsübergreifende Verfolgung eines Signals wenn die gleich sind. Es wäre wesentlich schwieriger sich zu merken, das der Slave-A112.3 im Master als E247.3 auftaucht - A112.3 --> E112.3 kann man sich leichter merken)

Test, am einfachsten mit Beobachtungstabelle:
* S7-1500: A100.2 steuern -------> S7-1200: E100.2 ändert sich entsprechend, und kann z.B. an A0.2 ausgegeben werden
* S7-1200: E1.4 --> A101.4 -------> S7-1500: E101.4 zeigt den Zustand des E1.4 der S7-1200

Harald

Sehr gutes Beispiel, perfekt erklärt. AB100 der S7 1200 sind die Ausgänge der 1200er Steuerung. Können auch irgend ein anderes Ausgangsbyte (z.B. Ab0) sein.
 
Zuletzt bearbeitet:
Zurück
Oben