TIA Analogwerte Probleme

KAGAzubi

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,
ich komme mit einem Problem nicht weiter und da ich auch nach stundenlangem Suchen immer wieder auf Analogwertverarbeitungsthemen hier in diesem Forum gestoßen bin, frag ich einfach mal hier nach, vielleicht kann mir jemand helfen.

Ich bin Auszubildender und soll ein Projekt bearbeiten. Dazu benutze ich TIA Portal V11, eine CPU 1212C DC/DC/DC (Bestell Nr. 6ES7 212-1AE31-0XB0), ein Zusatzmodul SM 1232 AQ2 (6ES7 232-4HB32-0XB0) und ein HMI, KTP400 Basic Mono. Laptop ist Windows 7 Professional 64x.

Mein Problem geht darum, eine Spannungsquelle anzusteuern. Diese Spannungsquelle kann mit einem einfachen D Sub Stecker "programmiert" werden, indem auf die Kontakte 0 bis 5V gelegt werden, was die Spannungsquelle dann in ihrem Spannungs- oder Strombereich umskaliert, 5V im Strom Kontakt sind dann 70A, 0V währen 0A usw.

Da ich in AWL nicht so der Könner bin, programmiere ich in FUP. Was ich hier gemacht habe ist zuerst NORM_X Min: 0, Max: 27648 und als Value PEW64 eingegeben, den ausgegebenen REAL Wert wird in einen Merker gespeichert und dann in einen SCALE_X Baustein mit 0 bis 70 gelegt und als REAL Wert gespeichert.

Hier ist schon die erste Frage, sollte ich lieber 0-140 als Limits nehmen? Da die Spannungsquelle nur 0-5V auf- und abgeben kann, die CPU und das Modul aber 0-10V?

Nun gut, hier meine Fragen.

- der Spannungseingang, PEW64, zeigt zufällige Werte, aber sehr geringe Werte, an. Ich schiebe das auf Hintergrundrauschen, allerdings zeigt PEW66 dieses Rauschen NICHT. Die Massen sind alle miteinander verbunden.
- Meinen Spannungswert würde ich auch wieder ausgeben können, welche Kombinaton von SCALE_X und NORM_X benutze ich hier? Dieser Punkt ist sehr verwirrend für mich, einen SCALE oder UNSCALE Baustein (FC105 usw) scheine ich nicht zu haben.

Ich werde mit Sicherheit noch auf andere Probleme stoßen, da mir in der Firma nicht sehr viele Leute dabei helfen können, wäre aber für jede einstweilige Hilfe dankbar,

mit freundlichen Grüßen,
KAGAzubi
 
AWL würde auf einer 1200 sowieso nicht gehen...

Skaliere dir den Wert doch selber, das ist keine Hexerei... Dein Maximum in Digits ist einfach (27648/2).

Deine Rechnung sieht danach so aus:

Code:
(70/(27648/2))xPEW
 
Zuviel Werbung?
-> Hier kostenlos registrieren
AWL würde auf einer 1200 sowieso nicht gehen...

Skaliere dir den Wert doch selber, das ist keine Hexerei... Dein Maximum in Digits ist einfach (27648/2).

Deine Rechnung sieht danach so aus:

Code:
(70/(27648/2))xPEW


Oh stimmt, bin noch zu sehr in S7-300 und Step 7 drin anscheinend. Gar nicht aufgefallen.

Du meinst mit selber skalieren den PEW einlesen, nach REAL konvertieren und dann die Rechnung?

Was du dort gemacht hast ist übrigens das, was ich bereits geschrieben hatte, da 70/27648/2 = 140/27648
Also die 70 verdoppeln, was ich gemeint habe mit 0-140 als limits zu nehmen.

Meine Hauptfrage ist wirklich mein Problem, wie gebe ich den Analogwert jetzt auch aus, wenn ich zum Beispiel von der Steuerung bekomme "du sollst jetzt 45V ausgeben" als REAL Zahl dann halt 45.0, wie kann ich dem Ausgang mitteilen, dass er seine Obergrenze bei 45V, seine Untergrenze bei 0V und das skaliert zwischen 0-5 (in diesem Fall also 45V->5V am Analogen Ausgang) auch herausgibt?

Noch ein paar Beispiele

Real Zahl am Spannungs Controller: 30V (maximum 45V)
Analoger Ausgang Kanal 0 demnach: 5/45*30 = 3.333 Volt messbar am analogen Ausgang

Real Zahl am Strom Controller: 54A (maximum 70A)
Analoger Ausgang Kanal 1 demnach: 5/70*54 = 3,857 Volt messbar am analogen Ausgang


Die Rechnungen dafür sind schon programmiert, auch die Abschaltung sollte ein Wert zu hoch sein (über 70A/45V), dass die Ausgänge nicht mehr angesprochen werden und eine 0 draufgeschoben wird ist vorhanden. Mein Problem ist also NUR wie ich das ausgeben kann.
 
Ich habe das Problem nach zwei Tagen endlich selbst lösen können :D mein Denkfehler war im SCALE_X Baustein.

Was ich jetzt gemacht habe ist den Soll Wert zwischen 0-140 (für den Strom Regler) mit dem NORM_X Baustein von 0-1 zu normieren, als Gleitpunktzahl zwischen zu speichern und dann mit dem SCALE_X Befehl das Ganze zu einem Integerwert zwischen 0-27648 zu skalieren und auf den Peripherieausgang zu leiten. Eigentlich simpel, mir war nur nicht klar, dass der SCALE_X mit großen Werten nicht skalieren kann, der braucht erst die normierten Werte.

Vielen Dank trotzdem für die Hilfe :)
 
hmm, joa, kann man jetzt so auch sehen :D wenn mans in den Taschenrechner so eingibt kommt 35 raus, richtig, von meinem Verständniss her sah ich 70/(27648/2) was 140 ergibt :p gehüpft wie gesprungen, die Lösung war jetzt wirklich das zwischen 0-140 zu skalieren um den Eingang, welcher 0-10V abbildet, auf die Spannungsquelle, die von 0-5V abbildet, zu normieren.

@RogerSchw85, der Ausgang könnte jetzt theoretisch 0-10V, stimmt, aber er wird zweimal im Programm, einmal mit einem globalen Merker "SpannungSTOP" oder "StromSTOP" ausgeschaltet, sollte über 45V/70A angesteuert werden (Analoger Ausgang jeweils 5V an diesen Punkten) und einmal direkt beim Ausgang welcher seinen Enable nicht bekommt, sollte der Ausgang über 5V steuern. Zudem wird über einen Move Befehl in beiden Fällen eine 0 auf den Ausgang geschrieben.
Außerdem wird das Ganze noch über hardware technische Sicherheitsmaßnahmen innerhalb der Spannungsquelle sichergestellt. Redundanzen über Redundanzen, aber Steuerungstechnisch waren sowohl der Merker als auch der Move Befehl sowieso vorhanden.

Vielen Dank für die Antworten in jedem Falle, mit freundlichen Grüßen
KAGAzubi
 
Zurück
Oben