Wago z.B. 750-455: Analog-Eingangssignal SPS 0-27648 einstellbar?

Saufautomat

Level-2
Beiträge
62
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein erstes Projekt mit Wago: S7-1500 über 750-377 verbunden und funktioniert so weit.

Von Siemens bin ich es gewohnt alle Analogsignale als 0-27648 Int zu bekommen.

Nun bekomme ich Werte wie -200 und konnte es auch umwandeln. Bei vielen noch nicht richtig verdrahteten Sensoren bekomme ich die 3 oder 8500.

Bevor ich nun alles ändere gebe ich zu, den Überblick zu verlieren. Muss ich noch etwas umstellen, um wie üblich den Signalbereich von 0-27648 nutzen zu können oder ist es normal diese für mich neuen Analogsignale zu bekommen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein erstes Projekt mit Wago: S7-1500 über 750-377 verbunden und funktioniert so weit.

Von Siemens bin ich es gewohnt alle Analogsignale als 0-27648 Int zu bekommen.

Nun bekomme ich Werte wie -200 und konnte es auch umwandeln. Bei vielen noch nicht richtig verdrahteten Sensoren bekomme ich die 3 oder 8500.

Bevor ich nun alles ändere gebe ich zu, den Überblick zu verlieren. Muss ich noch etwas umstellen, um wie üblich den Signalbereich von 0-27648 nutzen zu können oder ist es normal diese für mich neuen Analogsignale zu bekommen?

Am einfachsten ist es eine kleine Funktion zu schreiben mit der du von "NichtSiemens"-Analog nach Siemens-Analog wandelst. Wirst du noch öfters brauchen können, da auch viele andere Hersteller (z.B. bei IO-Link-Sensoren) auch dieses Format verwenden.
 
Danke euch :)
Am einfachsten ist es eine kleine Funktion zu schreiben mit der du von "NichtSiemens"-Analog nach Siemens-Analog wandelst. Wirst du noch öfters brauchen können, da auch viele andere Hersteller (z.B. bei IO-Link-Sensoren) auch dieses Format verwenden.
So werde ich es machen

Für mich noch komplett überraschend und irgendwie wiedersprüchlich:
Der Dezimalwert 3 wird mir häufig angezeigt, passt auch zu den nicht angeschlossenen Geräten. Aber dass er <-3 mA und gleichzeitig 4,0xx mA sein könnte verwirrt mich noch. Wahrscheinlich bekomme ich noch das Diagnosesignal auch zu meiner SPS und kann daraus schlussfolgern, welcher Fall es nun ist?
1770132944491.png
 
Wago benutzt den vollen Steuerbereich 32768 und hat somit keinen Übersteuerungsbereich.
Man kann den Wertebereich für jede einzelne Karte einstellen, und so auf 0-27648 Siemens identisch kommt.
Somit muss man an der SPS Software nichts ändern.
Das Problem ist jedoch, dass man ab und zu die Hardware am Bus mal neu definieren muss, da sie sich bei Updates auf neue
Versionen nicht hochziehen lässt. Deswegen lasse ich wenn möglich immer die Standardeinstellungen stehen, dann bekommt man
damit keine Probleme.

Ich hab mir einen Baustein für die Skalierung geschrieben, der einen KonfigurationsEingang hat, so dass man auf die
Wago Standardskalierung umschalten kann. Das hat sich bei mir gut bewährt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke euch :)

So werde ich es machen

Für mich noch komplett überraschend und irgendwie wiedersprüchlich:
Der Dezimalwert 3 wird mir häufig angezeigt, passt auch zu den nicht angeschlossenen Geräten. Aber dass er <-3 mA und gleichzeitig 4,0xx mA sein könnte verwirrt mich noch. Wahrscheinlich bekomme ich noch das Diagnosesignal auch zu meiner SPS und kann daraus schlussfolgern, welcher Fall es nun ist?
Anhang anzeigen 94120
Bit 0 und Bit 1 als Diagnosebit findet man oft.
Hintergrund ist, dass die Analogkarten ja selten mehr als 12 Bit Auflösung haben. Somit hast bei einem 16 Bit Wort eben Bit 15 als Vorzeichen, dann Bit 14 bis hinunter zu Bit 2 als Analogwert und Bit 0/1 als Diagnose. Maskiere einfach Bit 0/1 in deiner Funktion aus bevor du umrechnest.
 
Ich muss gestehen, ich verstehe das ganze Konzept noch nicht. Zwar kann ich so die Messwerte auslesen aber ich muss es auch verstehen sonst werde ich verrückt(er).

Bitte korrigiert mich:
- je nach Baugruppe kann der Messbereich von -32768 bis 32676 gehen
- die Struktur ist so
1770194523155.png

Was ich nun nicht verstehe, wie weiß ich, ob der Messwert mir ein Integer von 3 liefert oder ob es Integer 3 bedeutet, dass es einen Fehler gibt?

Kaum schreibe ich es kommt mir die Vermutung:
Ich verwende wirklich nur (so wie von Wago gezeigt^^) die Bits 4-15 für den Messwert. So einen kleinen Messwert wie die 3 gibt es gar nicht? Was wiederum Sinn macht weil so präzise zu messen die meisten Geräte gar nicht hergeben? Und das hat Blockmove ja schon geschrieben, ich lerne nur langsam^^
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn der ADU des Analogwandlers nur höchstens 14 Bit auflöst, dann bleiben in einem 16 Bit Word noch (mindestens) 2 Bit frei. Die kann man prima für zusätzliche Statusbits verwenden. Damit die zusätzlichen Bits im Messwert-Word möglichst wenig stören, legt man die 2 Zusatz-Bits auf die niedrigsten Bits 0 und 1 und verschiebt den Messwert um 2 Bits nach links - multipliziert also mit 4 ---> aus z.B. realen 0 .. 1023 werden 0 .. 4092 (~ 4095). Dadurch macht der Messwert "Sprünge" um jeweils 4 Einheiten. Wenn man ganz genau sein will, kann man die Bits 0 und 1 ausblenden (dann macht der Messwert genau diese 4-er Schritte) oder den Wert durch 4 dividieren (dann macht er Messwert wieder 1-er Schritte). Man kann die Statusbits aber auch im Messwert drin lassen, weil sie den Messwert um höchstens 3 verfälschen - weniger als ein realer Schritt.

Ob und wie man die 2 Statusbits entfernt, ist wohl eher eine Geschmacksfrage.
Lässt man die Statusbits einfach drin, behält man eine Ungenauigkeit von weniger als ein LSB des ADU.
Man kann die Statusbits auch einfach ausmaskieren und behält den Analogwert x..32764 mit Schrittweite 4
oder man schiebt die Statusbits raus durch vorzeichenrichtiges rechtsschieben und erhält einen Analogwert x..8191 mit Schrittweite 1

z.B. ADU 14 Bit mit 2 Statusbits in Bit 0 und Bit 1
Code:
Analogwert16 := AnalogRohwert AND 16#FFFC;   // (-32768..)0..32764 mit Schrittweite 4
Analogwert14 := AnalogRohwert / 4;   // (-8192..)0..8191 mit Schrittweite 1
 
Ich muss gestehen, ich verstehe das ganze Konzept noch nicht. Zwar kann ich so die Messwerte auslesen aber ich muss es auch verstehen sonst werde ich verrückt(er).

Bitte korrigiert mich:
- je nach Baugruppe kann der Messbereich von -32768 bis 32676 gehen
- die Struktur ist so
Anhang anzeigen 94134

Was ich nun nicht verstehe, wie weiß ich, ob der Messwert mir ein Integer von 3 liefert oder ob es Integer 3 bedeutet, dass es einen Fehler gibt?

Kaum schreibe ich es kommt mir die Vermutung:
Ich verwende wirklich nur (so wie von Wago gezeigt^^) die Bits 4-15 für den Messwert. So einen kleinen Messwert wie die 3 gibt es gar nicht? Was wiederum Sinn macht weil so präzise zu messen die meisten Geräte gar nicht hergeben? Und das hat Blockmove ja schon geschrieben, ich lerne nur langsam^^
Du magst ja vielleicht langsam lernen, aber dafür strukturiert. Deine Exceltabelle sieht auf jeden Fall gut aus (y)
Ob du nun den "Messwert 3" berücksichtigst oder nicht, ist eigentlich ziemlich egal. Du hast ja selber gemerkt, dass es so einen kleinen Messwert gar nicht gibt. Ich hab die Bits trotzdem meistens ausmaskiert.
Noch ein Tipp:
Viele benutzen Schiebebefehle (SRW 2) um die Fehlerbits loszuwerden. Das funktioniert bei unipolaren AI (0-10V) ohne Probleme , hat man dann aber auf einmal einen bipolaren AI (+/-10V) gibt's Ärger mit dem Vorzeichen. Also nicht nur auf Bit 0/1 aufpassen, sondern noch viel mehr auf das Vorzeichen Bit 15.
 
Zurück
Oben