Moin Moin und danke für die Aufnahme :D
Ich habe ein Problem mit der Datenübertragung einer S7 1200 und einem Anybus Communicator via Profibus.
Der Communicator (Slave) ist in einem Generator verbaut, welcher eine Probe induktiv erwärmen soll.
Ich habe das Ganze mit einem GSD File projektiert, E/A Module eingefügt und Variablen angelegt. Soweit so gut.
Das erste komische was mir aufgefallen ist, war das die Adressen bei 0 Anfangen sollten, jedoch die E/A Module des GSD Files nur bei 1 Anfangen können (Adresse 0 angeblich belegt, auch wenn nicht ersichtlich ist durch was).
Ich habe also die erste Adresse übersprungen (dieser Wert ist vorerst unwichtig) und beim nächsten Angefangen, anschließend alle weiteren hinzugefügt.
Nur wenn ich die Werte der Variablen anschaue, sind die Werte stets um 1 Word bzw. 2 Byte verschoben, obwohl die Adressen eigentlich stimmen. Ich habe eine Liste der E/A Adressen von der Firma mitgeteilt bekommen, d.h. darauf (sollte) ich mich eigentlich verlassen können, dass diese stimmen.
Ich habe den Communicator auch direkt an den PC angeschlossen und konnte die Werte auslesen, wodurch ich mich auch vergewissern konnte, dass die Werte nach der Profibusübertragung (abgesehen von der Verschiebung) dieselben sind. Die Verschiebung ist jedoch wirklich erst nach dem Profibus vorhanden, nicht bei direkter Verbindung.
Und abschließend ist es leider so, dass die Werte für mich auch absolut kein Sinn ergeben. Beispielsweise habe ich die Variable Timer beobachtet, den Timer kann ich direkt am Generator einstellen, weiß daher welchen Realwert es sein sollte und sehe auch das sich die Variable im TIA Portal verändert, also ich beobachte nicht die Falsche. Ich mach am besten einfach mal ein Beispiel:
Variable Timer, Adresse 12 bis 15 (4 Byte)
Realwert: 0:00 Variable: 000 000 000 000 (dezimal)
Realwert: 0:01 Variable: 061 204 204 207 (dezimal)
Realwert: 0:02 Variable: 062 076 204 206 (dezimal)
Realwert: 0:03 Variable: 062 153 153 154 (dezimal)
Die Sprünge der jeweiligen Sekunden sind auch nicht identisch, über ein Bereich von einigen Minuten betragen sie 64 pro Sekunde, dann plötzlich 128
Und wieso die erste Startadresse von 1 Sekunde so aussieht (Siehe Beispiel) verstehe ich auch nicht. Ich kann mir auch beim besten Willen nicht vorstellen, dass es so gewollt ist das man den gesamten Verlauf von allen Möglichkeiten durchgehen muss und jede Variablenwert den Realwert zuweisen muss, das wäre doch ein absolut ungerechtfertigter Zeitaufwand oder?
Ich wäre wirklich mega dankbar, wenn hier vielleicht jemand etwas damit anfangen kann und ggf. sagen kann wo ich falsch liege. Wenn ich was vergessen haben sollte oder unverständlich dargestellt habe könnt ihr mir das gerne mitteilen, ich werde es dann nachtragen :icon_mrgreen:
Achja die jeweiligen Hersteller habe ich auch schon angeschrieben, leider verweisen die untereinander immer auch eine andere Partei, was es mir nicht wirklich leichter macht :?
Vielen Dank schonmal und ein schönen Tag allen!