Beschleunigungssensor

Feini

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich bin Student der Lebensmittel- und Bioprodukttechnologie und hab im Rahmen des Kurses Automatisierungstechnik eine Prüfungsaufgabe mit Codesys 2.3 zu lösen. Da ich erst seit Oktober Automatisierungstechnik habe, sind meine Kenntnisse dementsprechend gering.

Meine Aufgabe lautet einen Beschleunigungssensor zu erstellen, der die Beschleunigung in jede der Koordinatenrichtungen als Gleitkommazahl angibt. Eine Steuerung berechne den Betrag der Beschleunigung. Anschließend sollen die Ergebnisse davon als Balken variabler Höhe in einer Schaltung angezeigt werden.


Im Anhang ist mein bisheriges Projekt zu sehen. Ich habe x,y und z als Eingänge eingefügt. Anschließend die Werte addiert und als "a" in LREAL ausgegeben. Wenn ich anstatt x zb. x=2.22 angebe, ergibt das einen Fehler (kann BOOL nicht in ANY_NUM konvertieren).

Mein Problem ist , dass man wenn man online die Zahlen für x,y und z ändert dort folgendes steht:

x=0 <:=2.22>

Die Werte von x,y,z sowie a ändern sich nicht.

Kann (und wenn ja, wie?) ich ein Eingabefeld erstellen, bei dem ich die Werte für x,y und z online ändern kann? Oder kann man das sonst noch eleganter als meine Darstellung lösen ?
Und meint der letzte Teil der Aufgabe, dass ich einfach die alle Werte als Balken visualisiere und diese entsprechend des Wertes die Höhe verändern?

Danke im voraus.

Freundliche Grüße
Feini
 

Anhänge

  • beschleunigungssensor1.JPG
    beschleunigungssensor1.JPG
    29,5 KB · Aufrufe: 25
Zuletzt bearbeitet:
Du studierst nicht zufällig im selben Studiengang wie diese junge Dame hier:
http://www.sps-forum.de/showthread.php?50541-Automatisierungtechnik ?

Die Berechnung des Betrages deines Vektors ist schonmal falsch. Stichwort "Skalarprodukt" ....

Schau dir einfach den Link oben an. Ich denke das es bei euch an den gleichen Stellen hakt.
Die Darstellung als Balken in der Visu ist dann nur noch ne Fingerübung (wenn die Codesys Visu die selbe ist wie die von TwinCAT).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,


danke für die Antwort. Ja wir studieren zusammen.
Das Skalarprodukt habe ich in der neuen Grafik bereits gebildet. Hatte es zuerst, dann durch einen Denkfehler aber simpler gestalten wollen. Jedoch kurz vor deiner Antwort die richtige Grafik wieder eingefügt.
Da sie in das falsche Subforum gepostet hat, dachte ich mir, dass ich die Frage zum richtigen Fachpersonal weiterleite. :)
Unter dem Link finde ich auch keine Lösung für mein/unser Problem.
 
Ich habe noch nie mit Codesys gearbeitet, aber ich glaube nicht das dort das Hauptprogramm vom Typ "Function" ist wie auf deinem Bild.

Du brauchst als erstes ein Programm, das mit deiner Task verknüpft ist (bei TwinCAT wird sowas immer automatisch erstellt wenn man ein neues Projekt startet ..)
Außerdem ist deine Funktion falsch. Dein Wert a als Rückgabewert ist überflüssig, du kannst das Ergebnis der Berechnung gleich als Funktionswert ausgeben.
Tip: Schau dir nochmal mal wie Funktionen und Funktionblöcke in der IEC 61131 definiert sind.

Funktion
Code:
function summe :int
var_input
  a,b : int;
end_var

summe := a+b;

Hauptprogramm
Code:
PROGRAM Main
var
  a,b, ergebnis : int;
end_var

a:= 1;
b:= 2;
ergebnis := summe(a,b);

PS: Außerdem kann es sein, das EXPT und SQRT keine Variablen vom Typ LREAL unterstützen.
 
Zuletzt bearbeitet:
Hallo,

danke für deine Antwort aber ich habe wie gesagt wenig Ahnung hiervon. Wir hatten bislang nur ein paar Vorlesungen zu einigen wenigen Grundlagen. Viele Veranstaltungen sind ausgefallen.

Ich weiß mit deinen Vorschlägen somit nicht viel anzufangen.

Ich habe nun aber folgendes probiert:

Ich habe die Werte für x,y,z eingegeben und dann unter Online "Werte schreiben" benutzt. Dadurch wird auch "a" ausgegeben mit dem richtigen Wert. Anschließend habe ich einen dynamischen Balken erstellt, der a anzeigt. Siehe Grafik
beschleunigungssensor2.JPG
Ein Eingabefeld für die 3 Werte wäre allerdings trotzdem schöner.
 
Zuletzt bearbeitet:
Zurück
Oben