Analogausgängen

Zuviel Werbung?
-> Hier kostenlos registrieren
Wobei man da schauen muss, was für einen Wert die Waage am analogen Ausgang tatsächlich ausgibt. Ich hatte schon Waagen gehabt, da wurde über den analogen Ausgang immer der Absolutwert ausgegeben, also das Gesamtgewicht, dass die Wägezelle erfasst und das um das Tara reduzierte Gewicht wurde nur über die anderen Schnittstellen übertragen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein, die kleinste Teilung ist der kleinstmögliche Schritt zwischen zwei Ergebnissen.

Wenn du große LKW mit Ladung messen möchtest und deine Anzeige zwischen 40.820kg und 40.840kg springt, ist deine kleinste Teilung 20kg.
 
Der Wägebereich der Waage ist quasi die Maxlast, bis zu der die Waage geht. Wie weit Du wiegen möchtest, ist dabei Zweitrangig.

Geht die Waage z.B. bis 100kg hast Du als Teilung 100kg/4096= 24,4g.
Vorausgesetzt, die Waahe hat am Aout auch mindestens 12bit.

Dann kommen Quantisierungsfehler, Nichtlinearitäten und Rauschen, sodass ich in dem Fall nicht besser als 50g anzeigen/auswerten würde.
 
Nein, die kleinste Teilung ist der kleinstmögliche Schritt zwischen zwei Ergebnissen.

Wenn du große LKW mit Ladung messen möchtest und deine Anzeige zwischen 40.820kg und 40.840kg springt, ist deine kleinste Teilung 20kg.
Ach so,
bei den WTS kann man einstellen, in wie viele Schritte die Anzeige unterteilt werden darf. Es gibt Werte von 0,0001 bis 1–5, glaube ich, und ich habe 0,1 eingestellt.

Der Wägebereich der Waage ist quasi die Maxlast, bis zu der die Waage geht. Wie weit Du wiegen möchtest, ist dabei Zweitrangig.

Geht die Waage z.B. bis 100kg hast Du als Teilung 100kg/4096= 24,4g.
Und das kann man am WTS einstellen, bis wie viel es gehen darf. Also: Ich habe 1500 kg / 4096 = 360 g?
Vorausgesetzt, die Waahe hat am Aout auch mindestens 12bit.

Dann kommen Quantisierungsfehler, Nichtlinearitäten und Rauschen, sodass ich in dem Fall nicht besser als 50g anzeigen/auswerten würde.
Ach so, heißt das, ich muss schauen, wie viele Bits die Waage mir zur Verfügung stellt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1732694353746.png

Hier siehst du jetzt wie Siemens Baugruppen normiert sind.Die untere wäre unipolar, und geht von
0..27648.Wenn man in die Bereiche drüber oder drunter geht, kann man ein Fehlerbit zuweisen.
Wenn du in der Waage deinem Baustein so anpassen kannst, kannst du direkt den Standartbaustein nehmen.
Ansonsten musst du selbst umrechnen.

Y=mx+b mit b =0.//x ist der Waagenwert

m=delta y/delta x

Als Bsp:bei 1500 kg Maxwert und 4096 als Digitalwert max
m=1500/4096

Bei Werten unter Null und über 4096 dann ein Fehlerbit zuweisen.
Tauchen diese Werte auf halt auf Null und 1500kg begrenzen.
Siemens nennt dieses Unter und Übersteuerungsbereich.
 
Anhang anzeigen 83419

Hier siehst du jetzt wie Siemens Baugruppen normiert sind.Die untere wäre unipolar, und geht von
0..27648.Wenn man in die Bereiche drüber oder drunter geht, kann man ein Fehlerbit zuweisen.
Wenn du in der Waage deinem Baustein so anpassen kannst, kannst du direkt den Standartbaustein nehmen.
Ansonsten musst du selbst umrechnen.

Y=mx+b mit b =0.//x ist der Waagenwert

m=delta y/delta x

Als Bsp:bei 1500 kg Maxwert und 4096 als Digitalwert max
m=1500/4096

Bei Werten unter Null und über 4096 dann ein Fehlerbit zuweisen.
Tauchen diese Werte auf halt auf Null und 1500kg begrenzen.
Siemens nennt dieses Unter und Übersteuerungsbereich.
Jetzt verwirr den armen Mann nicht auch noch.
Er hat keine Siemens SPS, sondern eine WAGO und da sind die Bereiche etwas anders.
4mA = 0
20mA = 32752

Wobei bei WAGO nur die Bits 4-15 (Zählung beginnt bei 0) für den Messwert Verwendung finden, so ich das Handbuch richtig verstehe.
 
Was ist daran verwirrend?
Ich habe eine Waage die liefert als Eingangswort X ohne Gewicht und einen Maxwert Y mit Gewicht.
Das setzt man dann über eine normale Geradengleichung um.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was ist daran verwirrend?
Ich habe eine Waage die liefert als Eingangswort X ohne Gewicht und einen Maxwert Y mit Gewicht.
Das setzt man dann über eine normale Geradengleichung um.
Mit verwirrend meinte ich, dass Du oben Tabellen von Siemens angehängt hast, wo die Analogwertverarbeitung, was die Werte angeht, etwas anders läuft.
 
Das Prinzip ist aber das Gleiche.Selbst wenn ich nicht bei Null starte ist es eine normale Geradengleichung.
die einen Digitalwertbereich in einen physikalischen Wertebereich umsetzt.
Gerade solche Zusammenhänge finde ich sollte man wirklich verstehen.
Das kann man auch auf ein Blatt Papier zeichnen und dann umsetzen.
 
Screenshot 2024-11-27 092603.png
Das habe ich von Wago übernommen, aber relevant für mich ist nur die 32.767, da das der Unterschied zwischen Siemens und Wago ist, den ich für die Berechnung meines Maximalgewichts benötige.

Also: 1500 / 32.767 = 0,0457 Einheiten, und mein Nullpunkt liegt bei 168 (das wäre dann für mich der Offset).

Kann ich die ersten Bits in meinem Programm abfragen, um den Fehler zu erkennen, oder muss ich dafür eine Berechnung durchführen?
wenn ja wie frage ich einen Bit von einem Word ab ?
 
Kann ich die ersten Bits in meinem Programm abfragen, um den Fehler zu erkennen, oder muss ich dafür eine Berechnung durchführen?
wenn ja wie frage ich einen Bit von einem Word ab ?
Der direkte Zugriff auf einzelne Bits ist relativ einfach:
Variable.Bitnummer
Um zum Beispiel mit einer IF-Abfrage zu prüfen, ob das Bit 0 der Variablen wGewicht gesetzt ist, kannst Du folgenden Code nehmen:
Code:
IF wGewicht.0 THEN
    // Hier gehört hin, was dann getan werden soll
END_IF
Bei mehreren Variablen die gleichzeitig TRUE sein sollen z.B. so:
Code:
IF wGewicht.0 AND wGewicht.1 THEN
    // Hier gehört hin, was dann getan werden soll
END_IF
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der direkte Zugriff auf einzelne Bits ist relativ einfach:
Variable.Bitnummer
Um zum Beispiel mit einer IF-Abfrage zu prüfen, ob das Bit 0 der Variablen wGewicht gesetzt ist, kannst Du folgenden Code nehmen:
Code:
IF wGewicht.0 THEN
    // Hier gehört hin, was dann getan werden soll
END_IF
Bei mehreren Variablen die gleichzeitig TRUE sein sollen z.B. so:
Code:
IF wGewicht.0 AND wGewicht.1 THEN
    // Hier gehört hin, was dann getan werden soll
END_IF
Das muss, soweit Du die selbe Variable nutzt, natürlich vor dem Verschieben passieren.
 
Ich würde die 4 Bits abfragen.
Für die 4 Bits brauchst du kein if, das sind logische Verknüpfungen.
Das ganze 2 mal.
oder Verknüpfen
Wenn Fehler 32767 auf Ausgang.Das kannst du mit if/else machen.
Sodass der Fehler wieder weg ist wenn im Range.
Oder 2 Feherwerte je anch Aufwand.
Aber jeder wie er mag.
 
Zurück
Oben