# Profibus Problem mit S7 1200 und Anybus Communicator



## MarcelKIT (15 Mai 2019)

Moin Moin und danke für die Aufnahme 


  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 

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!


----------



## RONIN (15 Mai 2019)

Wie beobachtest du das? Der Wert 061 204 204 207 (dezimal) geht sich doch gar nicht in 32Bit (4 Byte Real) aus?
Vielleicht postest du mal einen Screenshot von deiner Slave-Konfigration inkl. Module bzw. wie die andere Seite in der Anybus-Config-Software aussieht.


----------



## PN/DP (15 Mai 2019)

MarcelKIT schrieb:


> Realwert: 0:00                   Variable: 000 000 000 000 (dezimal) = 16#/0x 00000000 = 0.0
> Realwert: 0:01                   Variable: 061 204 204 207 (dezimal) = 16#/0x 3DCCCCCF = 0.10000002
> Realwert: 0:02                   Variable: 062 076 204 206 (dezimal) = 16#/0x 3E4CCCCE = 0.20000002
> Realwert: 0:03                   Variable: 062 153 153 154 (dezimal) = 16#/0x 3E99999A = 0.3



Alles gut. Du beobachtest das Bitmuster von REAL-Werten. Wenn Du schon weißt daß die Werte REAL sein sollen, warum beobachtest Du die Werte dann nicht einfach mal im REAL-Format? Beobachten von Kommunikation oder überhaupt von unverständlichen Werten sollte man immer mal in verschiedenen Formaten tun, bevorzugt zuerst mal in HEX anschauen.
Wie die Bitmuster von REAL-Werten aussehen kannst Du hier nachschauen:
IEEE-754 Konverter für Fließkommazahlen


Dein Problem mit "Verschiebung" verstehe ich nicht. Kannst Du das nochmal kürzer erklären?

Harald


----------



## RONIN (15 Mai 2019)

Ahh.. jetzt hat es bei mir auch klick gemacht...

16#3DCCCCCF  ist eigentlich 1036831951 dez.
Aber wenn der TE die einzelnen Bytes dezimal beobachtet dann kommt eben für 16#3D (061), für 16#CC (204dez) usw. raus.


----------



## MarcelKIT (15 Mai 2019)

Das mit den REAL Zahlen ist ein super Tipp, so macht das ja tatsächlich Sinn  

Im Anhang habe ich ich mal ein Bild wo die Variablentabelle Zeigt im TIA Portal, und 2 Screenshots vom Anybus Tool, jeweils einmal in Dez und einmal in hex angezeigt. Jeweils auf 0,1sec eingestellt. 

Die richtigen Bytes hab ich eingerahmt (hoffe man erkennt es). 

Wird wohl auch ein blöder Fehler meinerseits seien, aber ich komm nicht drauf ^^


----------



## RONIN (15 Mai 2019)

Wenn ich dich richtig verstehe geht es jetzt nur mehr darum warum die Adressen verschoben sind, oder?
Wenn du derzeit z.B. ID46 im Anzeigeformat REAL beobachten würdest müsstest du ja schon 0.1 sehen.

Die EA-Adressen auf der SPS sind von der Konfiguration des Profibus-Slaves in der Hardwarekonfig der SPS ab.
Zeig uns doch mal einen Screenshot wie der Anybus (vor allem sine Ein-Ausgangsmodule) dort konfiguriert ist.


----------



## MarcelKIT (15 Mai 2019)

Genau, ich habe vorhin zum testen mal die Adressen alle um 2 addiert, und tatsächlich werden jetzt alle richtig angezeigt! Ist zwar getrickst, aber dank eurer Hilfe bin ich schonmal ein gutes Stück weiter 
Ich kann mir gut vorstellen dass das damit zusammenhängt das ich Adresse 0 nicht belegen konnte/durfte und dahher die ersten zwei Adressen übersprungen habe in den E/A Modulen des Slaves, praktisch CMD0 welche von 0-1 geht weggelassen und stattdessen mit CMD1 von 2-3 angefangen 

Aber ich lade gleich den Screenshot hoch, mach grad noch kurz Mittagspause zuende :wink:


----------



## RONIN (15 Mai 2019)

Könnte mir auch gut vorstellen dass der Anybus auf den Bytes 0 und 1 irgendwelche Statusinformation mit schickt.
Sind die ersten Bytes leer ist da was drin...


----------



## MarcelKIT (15 Mai 2019)

Nein er zeigt zwar die Bemerkung an das Adresse 0 belegt wäre, aber es ist nirgends aufgeführt was dann darauf vergeben sein soll. Die 1 wäre gegangen, ich habe aber das erste gesamt Modul (Byte 0 und 1) weggelassen da es nicht benötigt wird und (so mein damaliger Gedanke) dann die anderen Adressen nicht verschoben sind. 

Aber ich denke so kann ich fürs erste mit arbeiten, muss es nur dokumentieren das es nicht irgendwann mal für verwirrung sorgt xD

Hier ist einmal die Variablen Liste, wie es nun dort aussieht (Werte Stimmen ja jetzt) und noch ein Bild der E/A Module:


----------



## PN/DP (15 Mai 2019)

Ist die Gerätekonfig fehlerfrei "komplett" übersetzt und in die S7-1200 CPU geladen? Sicher?

Harald


----------



## MarcelKIT (16 Mai 2019)

Alle Geräte sind mit einem grünen Punkt markiert und Fehler werden auch nicht angezeigt. Auch das hochladen und der übersetzungsvorgang hat Fehlerfrei funktioniert, also ich würde sagen ja.
Vielleicht gibt es irgendwo noch versteckt etwas, aber ich kann es mir nicht erklären ^^

Ich hab bezüglich der Adresse 0 nochmal Anybus geschrieben, ich dachte mir da hätte ich gute Chancen an eine Erkenntnis zu kommen, aber entweder Sie fanden die Frage zu dämlich, oder Sie wissen es nicht, auf jeden Fall haben sie nicht geantwortet xD

Ich probier’s einfach weiter, so wie es jetzt ist kann ich die meisten Funktionen schonal realisieren, was toll ist 
Wenn ich aber doch noch ein Fehler oder ähnliches Finde, werde ich das hier anmerken. Vielleicht hat ja irgendwann nochmal jemand ein ähnliches Problem und sieht das dann.
Und generell find ich es echt bemerkenswert wieviel Zeit und Wissen ihr hier ins Forum steckt, ich hab schon einige Posts von euch gesehen welche sehr hilfreich waren, danke dafür


----------



## MarcelKIT (16 Mai 2019)

Hier noch kurz die Übersicht von Fehlern oder ähnlichem. Bei HMI zeigt er eine Warung an, aber ansonsten scheint das zu passen? HMI bin ich aber grade dabei anzupassen, also das sollte davon kommen.


----------

