PDA

View Full Version : Kommunikation zwischen Slave-CPU und Slave-CPU



Ralle
15.04.2005, 09:19
Folgende Konstellation:

Master_1: 308-2DP
5 Slave: 315-DP mit extra CP342-5 als Slave zur Master_1-CPU (Die CPU selbst sind jeweils Master im eigenen Bus innerhalb der Station).
Eine Simatic-PC-Station: eingerichtete Verbindungen zu jeder CPU im Master_1-Netz, Kommunikation über OPC-Server.

Die Slave kommunizieren mit dem Master über EA-Bereiche. Dazu müssen die Slave-CPU über DP-SEND-FC und DP-RECV-FC die Daten zur CP senden und von der CP holen. (Alte Versionen der CP!)

Jetzt endlich die Frage:

Kann ich direkt von Slave zu Slave Daten austauschen, welche Bausteine muß ich benutzen und woher nehme ich die Adresse des jeweiligen Kommunikationspartners?

Znarf
15.04.2005, 10:15
Hallo Ralle
Die von dir gewünschte Funktion nennt sich Querverkehr und muß von den DP-Slaves unterstützt werden. Ich habe es selbst noch nicht projektiert, habe aber ein Buch wo es beschrieben ist. Ich könnte dir zur Not die 10 Seiten kopieren und Faxen.

Gruß

Andreas

ulkula
15.04.2005, 14:28
Hallo,

also CP 342-5 mit Querverkehr (nennt sich inzwischen "Direkter Datenaustausch") sieht meines Wissens nach ziemlich schlecht aus.

Beim Siemens Customer-Support habe ich da einen FAQ mit folgender Beitrags-ID gefunden: 17660809. In der Liste der Baugruppen die den Direkten Datenausstausch unterstützen ist der CP nicht mit dabei.

Mir ist aber eine andere Möglichkeit zum Datenaustausch eingefallen.
Projektiere die CPs als aktiven Busteilnehmer (aktiver DP-Slave). Jetzt können die CPs miteinander über sogenannten FDL-Verbindungen Daten austauschen. In den S7-300 CPUn müssen hierzu die FCs AG-Send und AG-Recv aufgerufen werden (FC5 und FC6).

Bei der Verbindungsprojektierung können entweder 1:1 Verbindungen projektiert werden (also expliziet von CP zu CP) aber auch Mulitcast oder Broadcast-Verbindungen.
Die eleganteste Art ist die sogenannte "unspezifizierte FDL-Verbindung" mit "freiem Layer-2-Zugang". Da wird für jeden CP sowas wie ein Kanal nach ausen projektiert, beim Aufruf des Bausteins aber erst festgelegt, mit welchem Partner kommuniziert werden soll.

Die Adressen der Kommunikationspartner werden entweder in der Projektierung festgelegt oder wie oben angegeben beim freien Layer-2-Zugang müssen sie vom Programmierer "einfach gewusst" werden.

So, jetzt aber genug, als SPS-Profi ist Dir sicherlich vieles nicht neu was ich hier geschrieben habe.

Viel Erfolg!
ulkula

Ralle
18.04.2005, 09:03
Danke erstmal, werde dann einfach versuchen, über den Umweg Slave1-->Master-->Slave2 noch ein paar Byte mehr zu verschicken, für diesen Fall sollte das genügen.