Master:CPU315 2PN/DP+CP342-5 <-> Slave: CPU315 2DP läuft nicht richtig

Jan

Level-1
Beiträge
813
Reaktionspunkte
79
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.

Ich habe eine S7-CPU 315 mit CP als Master und eine S7-CPU315 als Slave.
Ich habe auf der Master-CPU die FC1 und FC2 programmiert.
Laut Rückmeldung der FCs sind diese in Betrieb und melden keine Fehler.

Auf der Slave-CPU habe ich die SFC14 programmiert.
Die SFC 14 meldet auch, dass alles OK ist.

In dem Datenbereich, den ich übertrage, habe ich ein Bit, dass ich im 1 Hz Takt takte.

So sollte ich erkennen, ob die Daten auch ankommen. Das Bit beim Slave ändert sich aber nicht.

Nun frage ich mich (euch), woran es liegen kann, dass die Daten nicht übertragen werden, obwohl alles OK sein sollte.

Hier noch ein paar Eckdaten:
Übertragungsrate: 9,6 kBit/s
Slave ist in der HW-Konfig. vom Master eingerichtet, die Verbindung hergestellt und die HW-Konfig. entsprechend in beide CPUs geladen.
Alle LEDs auf den CPUs und der CP sind grün (keine Fehler).
Ich habe das Projekt gerade nicht hier, daher keine Screenshots möglich.

Ich bin für jede Anregung, in welche Richtung ich nach dem Fehler suchen kann, dankbar.
 
Hast du auch die FC1 und FC2 aus der SIMATIC_NET_CP-Bibliothek verwendet ?

Grüße von HaDi

Worin besteht der Unterschied zwischen den FC1 / FC2 in der Standard Library und in der SIMATIC_NET_CP (gleiche Version und leiche Größe!)?

Ich bin mir fast ganz sicher, dass ich die FC 1 und FC 2 aus der Standard Library genommen habe.
 
Da hab ich was verwechselt, sorry, die Bausteine aus der Standard Library sind indentisch und sollten demnach auch gehen.
Was mich aber noch irritiert, ist, dass du in der Slave-CPU SFC14 verwendest, SFC14 ist doch eigentlich dafür da, konsistent Daten von einem Slave zu lesen, also im Master zu verwenden (was aber bei einem CP342-5 nicht geht).
In der HW-Konfig hast du doch mindestens ein Master-Slave-Module angelegt und die dort verwendete Adresse liegt doch sicherlich im Prozessabbild.
Dann kann man doch in der Slave-CPU direkt das Eingangsbit/-byte/-wort ... verwenden ohne irgendein weiteres Handling.

Grüße von HaDi
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
In der HW-Konfig hast du doch mindestens ein Master-Slave-Module angelegt und die dort verwendete Adresse liegt doch sicherlich im Prozessabbild.
Sicherlich ? Vielleicht ja, vielleicht nicht.
SFC14 funktioniert einfach. Und konsistente Daten werden in die meisten Fällen benötigt.
Aber zum testen kann man ohne weitere die EW oder PEW Adressen beobachten.

Was mich auffällt ist der 9.6kbs Busgeschwindigheit. Mit eine grosse Menge von Daten kann das Buszykluszeit in den sekunden-Bereich gelangen. Dann funktioniert es vielleicht nicht optimal mit ein "blinker-bit". Versuch eventuel ein Zahlen-Wert zu übertragen.
 
@ HaDi
Ich dachte ich müste die SFC 14 im Slave nutzen um die Daten in meinen DB zu schieben.
Ich habe es auch schon mit SFC20 versucht, hat aber auch nicht funktioniert.

@ Jesper
Ich habe natürlich in der HW-Konfig. vom Master an der CP einen Profibus, an dem der Slave dran ist und auch die Verbindung eingestellt ist.
Ich habe ja auch schon mein Projekt mit dem Beispielprojekt von Siemens verglichen (dort wurde auch der SFC14 verwendet).
Die konsistenten Daten brauche ich schon, sonst muss ich auf beiden Seiten zu viel rechnen.
Das mit dem EW / PEW kann ich mal ausprobieren.
Das mit den 9,6 kBit/s habe ich fast befürchtet, dann werde ich es mal mit einem Wert versuchen (wobei ich beim Testaufbau nur 8 Byte gesendet und 8 Byte empfangen habe).
 
Mit nur 8+8 bytes, und keine weitere DP Stationen, wird TTR ungefähr 2000 ms, aber TTRtyp nur ungefähr 100 ms.
Dann sollte es eigentlich kein Problem sein.

Schau uns deiner gesammte STEP7 Projekt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe die Fehler gefunden

Hallo,

ich habe noch mal ne Nacht drüber geschlafen und heute Morgen nochmal drauf geschaut.

Habe drei Fehler gemacht.

1. Ich habe in der HW-Konfig. bei dem Master (CP) mit Adresse 400
angefangen (FC1 / FC2 lesen und schreiben aber ab Adresse 0).

2. Ich habe beim Slave ab Adresse 400 geschrieben und gelesen (die
Daten werden in dem Prozessabbild geschrieben und gelesen; da dieses
nur von 0.0 bis 127.7 geht, war der Bereich zu hoch).

3. Der eingegebene Bereich der Daten war nicht durch acht teilbar (dies
ist erforderlich, um die SFC20 im Slave verwenden zu können).

Wenn man weiß wie es geht, ist das in 10 Minuten programmiert; wenn nicht, sitzt man 2,5 Tage dran.

Danke für eure Anregungen und tips.
 
Zurück
Oben