TIA Analogwert deuten/einstellen

Zaudi

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin moin, in der Hoffnung, dass mir jemand helfen kann...
Ich habe einen Sensor, welcher die Höhe des Bauteils messen soll und entscheiden soll, ob es i.O oder n.i.O. ist.

Dazu gab es eine fertige Programmierung, in der ich "nur noch" die Werte eintragen muss.
Leider bin ich völlig überfragt.

Es handelt sich hierbei um eine +/-10V Analogeingangskarte.
AI 8xU/I/RTD/TC ST (6ES7 531-7KF00-0AB0)
Steckt an einer 1516-3 PN/DP CPU.


Was bitte ist hier der Unterschied? Analogwert zu Ausgangswert?
Eigentlich ist das Programm und der Sensor für 0-10V Eingangskarte gedacht.
Bedauerlicherweise lässt sich meine aber nicht auf 0-10V umstellen...

Anbei Bilder:
1651557226166.png
 
so wie ich das sehe ist das ein selbstgebastelter Skalierungs-Baustein.
Deine Analogwerte sind ja erstmal Inkremente (0...bis 27000 und irgendwas) - nun möchtest du aber daraus z.B. 10,0 bis 25,0 mm machen - das, so würde ich sagen, macht dieser Baustein.
Du gibst also den minimalen und maximalen Analogwert, der reinkommt an und dann die dazu passenden minimlaen und maximalen Ausgangswerte ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

So wie ich das sehe ist das lediglich ein Baustein um einen Wert von A..B (Analogwert) nach X...Y (Ausgangswert) anzupassen.
Der Analogwert vom AI muss davor aber trotzdem noch per SCALE Baustein auf zB 0..10V oder -10..10V skaliert werden.
 
So wie ich das sehe ist das lediglich ein Baustein um einen Wert von A..B (Analogwert) nach X...Y (Ausgangswert) anzupassen.
Der Analogwert vom AI muss davor aber trotzdem noch per SCALE Baustein auf zB 0..10V oder -10..10V skaliert werden.
Nein, muss man nicht.
Man kann auch direkt skalieren. Muss dann halt das Eingangs-Wort (oder Integer) in einen real wandeln.
Ich mache mal ein Beispiel:
- Analogkarte ist 0..10V (oder +-10V)
- Sensor ist Tempertursensor von -10..100°C

AN:=INT_TO_REAL(EingangsWort),
UAN:=0.0,
OAN:=27648.0,
UAU:=-10.0,
OAU:=100.0,

Im Ausgangswert (AU) befindet sich jetzt die Skalierte Temperatur in °C.
 
Und eigentlich sollte man dann noch die Über-Untersteuerungen und Über-Unterläufe auswerten:
1651563092952.png
Das machen aber viele Programmierer nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zeig doch mal einen Aufruf des Bausteins, mit welchen Werten er aufgerufen wird.
Normalerweise ist das elektrisch kein Problem, ob der Analogeingang auf 0..10V oder +/-10V eingestellt ist, der Unterschied ist lediglich, daß bei +/-10V auch negative Werte vom Analogeingang kommen können, und bei 0..10V nur positive Werte. Durch Meßfehler/Toleranzen können bei +/-10V kleine negative Werte vom Analogeingang kommen, die kannst Du aber durch 0 ersetzen. Du könntest den Code etwas erweitern:
Code:
Temp
  LAN : Real //auf positive Werte limitierter Eingangswert


#LAN := #AN;
IF #LAN < 0.0 THEN
    #LAN := 0.0;
END_IF;

#AU := (((#OAU - #UAU) / (#OAN - #UAN)) * (#LAN - #UAN)) + #UAU;

Übrigens: Warum ist der Baustein "Normierung" ein FB und keine Function (FC)? Ein FC würde auch funktionieren, bräuchte aber keinen Instanz-DB.

Harald
 
Moin, vorab schonmal danke.
Ihr habt mir sehr weiter geholfen.

Nun läuft alles wie es soll.

Danke! :)
Ich selber hatte vor 15 Jahren mal ausgiebig LOGO!/Easy und sehr wenig SPS in der Schule.

Entsprechend fällt mir SPS/TIA immer wieder schwer.
Die Basics sind da, aber bei komplexeren Dingen scheitere ich leider.

Das Ganze ist eine "einfache" MPS Station von FESTO Didactic.
Damit Azubis damit üben können.
Ich sollte diese nun für die Messe, die nun bald ansteht, als "Vorzeige Objekt" programmieren, damit die komplette Arbeitsstraße funktioniert.
Bin etwas an mein Limit gekommen, vor allem Zeitlich und habe deshalb fertige Programme von FESTO erhalten.
Die aber für eine andere CPU und in einer anderen TIA Version erstellt wurden.

Nachdem ich alles umgebastelt hatte, damit es auch bei mir läuft, blieb nur noch das Problem mit dem analogen Bauteil übrig.

Stand jetzt geht es.

Wenn ich die Zeit finde, möchte ich aber sowieso die ganze Anlage selbst programmieren.
Und dann vermutlich auch in SCL, dafür erhalte ich bald eine Schulung.

LG
Jonas
 
Zurück
Oben