Frage zu 315-2 DP + DP/DP Koppler

Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist klar SPS_Psycho,

mir geht es darum, ob ich auf meiner Profibus-Linie in der Hardware mein DP/DP Koppler mit beiden Profibus Adressen eintragen muss bzw. sogar beide Master Systeme?
Oder ist für jeden Master ab DP/DP Koppler die Profibus-Linie Ende?
 
Das ist klar SPS_Psycho,

mir geht es darum, ob ich auf meiner Profibus-Linie in der Hardware mein DP/DP Koppler mit beiden Profibus Adressen eintragen muss bzw. sogar beide Master Systeme?
Oder ist für jeden Master ab DP/DP Koppler die Profibus-Linie Ende?

So ist es, jeder Master bekommt einen DP/DP-Koppler eingetragen. Jeder die Profibusadresse seiner Seite (es darf durchaus auch jeder Seite die selbe Adresse haben, muß aber nicht). Die E/A müssen natürlich gleich groß sein und über Kreuz jeweils beim DP/DP-Koppler eingetragen werden.

Also:
Code:
Master 1, DP/DP-Koppler  --> E
                         --> A
Master 2, DP/DP-Koppler  --> A
                         --> E
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"Konsistenz"

So, jetzt muß ich mich auch mal einmischen, weil ich bin leider nur verwirrter als schlauer geworden.

Ich will auch DPDP-Koppler einbauen. Hab mir zwei Teststeuerungen besorgt und den Koppler dazwischen gehangen.

Hardwaretechnich und Konfigurationstechnisch alles kein Problem, läuft.
Auch Programmtechnisch läuft es die Daten aus der Steuerung A kommen in der Steuerung B an, so wie sie das sollen.

Aber jetzt stolpere ich auch über die Frage der "Konsitenz" und weiß nicht wirklich was da jetzt am besten ist.

Meine DPDP-Module habe ich alle ohne Konsitenz eingegeben.
Es sind einmal 32 Byte, einmal 16 Byte, einmal 8 Byte und einmal 64 Worte.
Die Daten die ich austauschen will stehen in zwei DB´s einmal für die "Bytes" und einmal für die "Worte" (das sind bei mir Intengerwerte)

Der Datentransfer läuft im Augenblick so (was mir nicht gefällt)
L DB1.DBB 0
T PAB 256
L DB1.DBB1
T PAB 257

und bei der anderen Steuerung
L PEB 256
T DB1.DBB0
L PEB 257
T DB1.DBB1

Bei den Worten verhält es sich genauso
L DB2.DBW0
T PEW 278

L PEW 278
T DB2.DBW0
(Die Adresse stimmen jetzt nicht, bin aber zuhause und kann nicht gucken)

Dazu Frage 1)
Wenn ich das so mache werden die Daten doch sowieso "konsitent" übertragen oder ?

Dann habe ich mir jetzt den SFC 14 und SFC 15 angeguckt (kurz angeguckt). Erstmal gefällt mir daran schon das ich damit wesentlich weniger Tipp-Arbeit habe und schon allein deshalb werden ich das nächste Woche mal ausprobieren. Und dann hab ich gelesen, das mit diesen beiden SFC´s die Daten "konsitent" übertragen werden.

Dazu Frage 2)
Ist da immer so ? Auch wenn ich bei meiner Hardwareprojektierung bei den einzelnen Modulen nicht die "konsitente" Version ausgewählt habe ?

Und Frage 3)
Und auch wenn es ein wenig peinlich ist, mal grundsätzlich (weil ich das auch in keine Hilfe gefunden habe) was bedeutet denn "konsistent" genau.
Ich habe bis eben angenommen, das "konsistent" bedeutet das die Daten immer so übertragen werden das in einen "Wert" kein Mischmasch aus alten und neuen Daten entsteht. Zum Beispiel während eines Buszyklus werden immer 4 Bytes übertragen (stimmt doch oder ?) und die ersten beiden Bytes sind ein Datenword und die anderen beiden Bytes sind der erste Teil eines Doppelwortes. Dann hätte das Doppelword ein Wort mit alten Daten und eins mit neuen.
Ich bin bis eben davon ausgegangen das so etwas durch "konsistente" Datenübertragung vermieden wird.
Stimmt das was ich da schreibe oder ist das totaler Mist ?

Und dann zu nächten Frage (4)
Angenommen das oben geschrieben stimmt, was bedeutet es dann wenn ich meine Module als "konsistent" konfiguriere ?
Zum Beispiel "32 Byte konsistente Übertragung".
Werden diese 32 Byte dann so übertragen das der o.g. Mischmasch nicht auftreten kann ?
Oder werden die die 32 Byte übertragen und der SPS erst dann als neue Daten übergeben wenn alle 32 Bytes übertragen wurde ?

Es kann gut sein, dass ich mich da jetzt blamiere aber wenn man es mal genau wissen will sind die Siemensunterlagen nicht wirklich eine Hilfe und dumm sterben will ich auch nicht. Also im Zweifel lieber blamieren.

schöne Grüße
elektromensch
 
Zitat Siemens Service & Support:
Was sind konsistente Daten?
Beschreibung:
Die Größe des Datenbereichs, der nicht gleichzeitig durch konkurrierende Prozesse verändert werden kann, wird als konsistenter Datenbereich bezeichnet. Ein Datenbereich, der größer als der konsistente Datenbereich ist, kann somit in seiner Gesamtheit verfälscht werden.
Sie wollen den Mittelwert einer Zahlenreihe bestimmen. Folgende Randbedingungen werden für dieses Beispiel getroffen:
  • Die Elemente der Zahlenreihe müssen am Anfang der Berechnung erst ermittelt werden.
  • Die Quelldaten werden in einem Puffer zur Verfügung gestellt und müssen in einem zweiten Puffer abgelegt werden.
  • Die Übertragung der Quelldaten zwischen den Puffern erfolgt seriell und beansprucht Zeit von unterschiedlicher Dauer.
Wenn Sie die Berechnung in einem konstanten Zyklus vornehmen, dann beinhalten nicht alle Elemente den aktuellsten Wert und Sie erhalten einen falschen Mittelwert. Wird die Zahlenreihe im Ganzen als eine Einheit oder Struktur behandelt, erfolgt die Berechnung immer erst dann, wenn alle Elemente der Zahlenreihe einen gültigen Wert beinhalten. Dabei ist es unerheblich, in welcher Reihenfolge die Ermittlung der Elemente erfolgt oder wie viel Zeit benötigt wird. Diese Zahlenreihe ist dann konsistent.

Ohne es ausprobiert zu haben behaupte ich das dein Koppler wenn man es ihm nicht erzählt auch nix von konsistenten Daten wissen will, du kannst aber sehr wohl deinem Koppler Konsistenz parametrieren und trotzdem nur jeweils 4 Bytes verschicken.

Und wenn du jetzt nicht noch 50 verschiedene Koppler mit im Netz hängen hast würd ich mir da eh kein Stress mit machen und es bei dem wie du es jetzt hast belassen.

Gruss tonga...
 
Hallo zusammen,

Wenn ich in der Hardware meine Adresse vergebe, um Daten zwischen 2 CPUs zu senden/empfangen. Sind das dann "belegte Eingänge bzw. Ausgänge" die ich dann nicht mehr benutzen darf?
Oder werde ich in einer anderen Art mit dieser Belegung eingeschränkt?

Gruß
Syny
 

Anhänge

  • Datenaustausch.JPG
    Datenaustausch.JPG
    36 KB · Aufrufe: 51
Zuletzt bearbeitet:
Sfc20...???

Ich habe keinen DP/DP-Koppler zur Hand - hatte aber mal an eine Lösung mit SFC 20 gedacht.
Aber: Was passiert, wenn man den SFC20 BLKMOV zum Schreiben und Lesen der PAWs und PEWs benutzt?
Ist das eine konsitente Datenübertragung oder nicht?
Funktioniert das überhaupt?

Gruß

Ralf
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sfc14/sfc15

Ich habe keinen DP/DP-Koppler zur Hand - hatte aber mal an eine Lösung mit SFC 20 gedacht.
Aber: Was passiert, wenn man den SFC20 BLKMOV zum Schreiben und Lesen der PAWs und PEWs benutzt?
Ist das eine konsitente Datenübertragung oder nicht?
Funktioniert das überhaupt?
Gruß
Ralf

Also mit BLKMOV hab I_C_H es nicht hinbekommen.
Endweder geht es nicht oder ich bin zu duselig den Pointer für die PEW /PAW syntaxmäßig richtig einzugeben.

Mit den SFC14 (Daten konstitent schreiben) und mit SFC 15 (Daten konsitent lesen) geht das aber genauso einfach.
Nur beim DP-Koppler muß dann auch ein Modul ausgewählt werden das die Daten konstitent überträgt.
Also Modul: "64 Byte Eingang - Konsistent"
statt Modul "64 Byte Eingang".
Ausgänge natürlich genauso.

Und wenn ich das richtig verstanden habe muß ich mit SFC14/SFC15 dann auch 64 Byte übertragen und nicht etwas 48 Byte, da muß genau passen.

Und es ist so auf jeden Fall konsitent.
Wobei ich zu meiner Schande sagen muß das ich trotz des Beitrages von tonga (vielen Dank) immer noch nicht genau verstanden habe was denn konsistente Daten eigentlich sind (siehe mein Beitrag oben), aber da bin ich wohl nicht alleine.............

Bei meiner Anwendung ist es zwar egal ob die Daten konsitent übertragen werden oder nicht, aber ich hätte es schon gern verstanden.

Mfg
elektromensch
 
Ich habe

mal ein Projekt in Händen gehbat, das von einem Informatiker geschrieben worden ist. Der hatt alle Maschinenstati in einem DB zusammengesammelt und dann mit einem triggerimpuld per SFC 20 als Block konsistent übertragen.

Standardmäßig arbeite ich aber mit einfachen Transferbefehlen, also Signal xxx nach PAW yyy, PEWxxx nach Datum yyy

Greetz, Tom
 
ein zusammenhängender Datenbereich , zB ein Array mit 16 DWs die du wie schon desöfteren hier erwähnt nicht per PAW oder PAD ( was schon laut Definition nicht gehen kann ) verschicken kannst .Ein PEW sowie ein PAW sind und bleiben 2 Byte . Ich versteh aber immer noch nicht warum du den Kram nicht mit maximal 4 Bytes verschickst wenn es doch nicht notwendig ist. Entweder tickerst du die nacheinander ab oder du bastelst dir nen kleinen FB der in einer Schleife Daten an PAWs überträgt bzw PEWs einliest und in den gewünschten Bereich knallt.

Gruss ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So, ich habe jetzt nen DP/DP-Kopller zu Hand und habe mal versucht per Blockmove Daten zu transferieren:

Hardware: CPU412-2DP
DP-Koppler 6ES7 158 0AD01 0XA0

Blockmove funktioniert nicht. Diagnose sagt 8324h bzw. 8325h.
Soll heissen Bereichsfehler beim Lesen / Schreiben.

Man sollte also doch besser den SFC14 / 15 verwenden. Der funktioniert sicher!

Gruß

Ralf
 
Zurück
Oben