Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 7 von 7

Thema: Matrizen in Codesys?

  1. #1
    Registriert seit
    23.11.2012
    Beiträge
    2
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich möchte eine Rotationsmatrix in Codesys V2.3 erstellen.

    Offenbar kann man Matrizen wohl direkt nicht erstellen, sondern muss irgendwelche Umwege über Arrays gehen. Das Rechnen mit Matrizen muss man dann auch noch selbst programmieren.
    Deshalb habe ich folgende Fragen:
    a) Gibt es eine Bibliothek oder ähnliches, die Matrizen und Matrizenrechnen unterstützt?
    b) Einige Matrixelemente müssten "COS(alpha)" heißen. Es steht also kein direkter Zahlenwert dort, sondern es soll der Kosinus des Winkels alpha berechnet werden. Da erscheint in meiner zusammengeschusterten "Array-Matrix" immer eine Fehlermeldung bezügl. eines fehlerhaften Initalwerts.
    Geht das irgendwie?

    Danke schonmal fürs lesen. Ich wäre euch wirklich sehr dankbar, wenn einer von euch dafür eine Lösung hat. Weder die Forumssuche noch google hat das was brauchbares ausgespuckt. Bin darüber ehrlichgesagt ziemlich verwundert, da ich ja wohl nicht der erste sein werde, der damit zu kämpfen hat.

    viele Grüße
    Christian
    Zitieren Zitieren Matrizen in Codesys?  

  2. #2
    Registriert seit
    13.01.2005
    Ort
    Allgäu
    Beiträge
    146
    Danke
    4
    Erhielt 23 Danke für 18 Beiträge

    Standard

    Hallo,

    zu den Berechnungen kann ich dir nicht wirkich weiterhelfen, aber zu dem Fehler: die Größe der Arrays können während der Laufzeit nicht verändert werden. Wenn du also z.B. ein Array definierst mit array [0...Variable] of INT muß die Variable zuvor schon einen Wert haben. Es ist also oftmals einfacher das Array ausreichend groß zu definieren und dann halt nur den notwendigen teil wirklich nutzen

    Gruß
    M_o_t

  3. Folgender Benutzer sagt Danke zu M_o_t für den nützlichen Beitrag:

    Christian68 (26.11.2012)

  4. #3
    Registriert seit
    12.08.2009
    Ort
    Schwarzwald
    Beiträge
    165
    Danke
    164
    Erhielt 97 Danke für 55 Beiträge

    Standard

    Hallo Christian,

    was hast Du vor, möchtest Du den Wert Deiner Matrix bzw. Determinante mit der Regel von Sarrus berechnen ?

    Habe in der Oscat Bibliothek unter Vector Mathematik sehr viele Vektor Funktionen gefunden, allerdings keine Wertberechnung einer einzelnen Determinante. Schau mal unter: Oscat Basic Doku.German

    Hilfe bietet vielleich auch dieser Beitrag über Matrizenberechnung.

  5. Folgende 2 Benutzer sagen Danke zu PLC-Gundel für den nützlichen Beitrag:

    Christian68 (26.11.2012),DaHauer (26.11.2012)

  6. #4
    Registriert seit
    12.08.2009
    Ort
    Schwarzwald
    Beiträge
    165
    Danke
    164
    Erhielt 97 Danke für 55 Beiträge

    Standard

    Zitat Zitat von M_o_t Beitrag anzeigen
    Hallo,

    zu den Berechnungen kann ich dir nicht wirkich weiterhelfen, aber zu dem Fehler: die Größe der Arrays können während der Laufzeit nicht verändert werden. Wenn du also z.B. ein Array definierst mit array [0...Variable] of INT muß die Variable zuvor schon einen Wert haben. Es ist also oftmals einfacher das Array ausreichend groß zu definieren und dann halt nur den notwendigen teil wirklich nutzen

    Gruß
    M_o_t
    Habe es so verstanden - er möchte einige Arrayelemente anstatt mit einer Variable oder Konstante mit "COS(a)" etc. füllen.
    Hab zwar kein Codesys, aber hab's interessehalber mal in TwinCAT ausprobiert. Dort geht es einwandfrei, allerdings muß das Arrayelement
    unbedingt ein REAL sein!

  7. #5
    Registriert seit
    01.10.2009
    Ort
    Regensburg
    Beiträge
    77
    Danke
    8
    Erhielt 11 Danke für 11 Beiträge

    Standard

    Hallo,

    am ehesten bekommst Matrizennotation, wenn du mit mehrdimensionalen Arrays arbeitest (hier denke ich 3). Die Verwendung der Indizes kannst du so verwenden wie es im allgemeinen für Matrizen gemacht wird.
    Weder in CoDeSys noch in TwinCAT gibt es aber fertige Funktionen, die mit Matrizen umgehen können. Hier musst du dir die Funktionen selber bauen (Bsp. Skalarprodukt und Matrizenprodukt).

    Vom Datentyp her musst Du sehen was für dich sinnvoll ist. Bei Rotationen und Verschiebungen nehme ich gerne ganzzahlige Datentypen, Komma wird nach rechts verschoben, und rechne die Ergebnisse dann in Real mit den gewünschten Nachkommastellen um.

    cheers
    Geändert von DaHauer (26.11.2012 um 07:30 Uhr)

  8. Folgender Benutzer sagt Danke zu DaHauer für den nützlichen Beitrag:

    Christian68 (26.11.2012)

  9. #6
    Registriert seit
    22.10.2012
    Beiträge
    6
    Danke
    1
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Guten Morgen!
    Ich würds mit nem zwei-dimensionalem Array machen. Ich bekomme in Codesys keine Fehlermeldung

    matrix : ARRAY [0..2,0..2] OF REAL;
    alpha: INT := 45;
    matrix[0,0] := COS(alpha); (* = 0.525322 *)

    Oder habe ich das Problem falsch verstanden?

  10. Folgender Benutzer sagt Danke zu LambdaFourth für den nützlichen Beitrag:

    Christian68 (26.11.2012)

  11. #7
    Christian68 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.11.2012
    Beiträge
    2
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    erstmal vielen Dank für alle Antworten.
    Hab ja jetzt die Antwort, dass es keine fertigen Algorithmen für Matrizenrechnungen gibt. Is zwar nicht das was ich gehofft habe, aber zumindest hab ich jetzt Gewissheit.

    Ich wollte einige Matrixelmente ursprünglich und einmal zu beginn mit COS(alpha) initialieren. "alpha" sollte dann als globale Variable zur Verfügung stehen und sich ca alle 100ms ändern.
    Es sollte einfach eine halbwegs elegante Lösung her. Letztendlich mach ich es jetzt halt so "MATRIX[2,2]:=COS(alpha);
    MATRIX[2,3]:=-SIN(alpha);
    MATRIX[2,4]:=dz2*SIN(alpha);" usw.
    und schreib gemäß dem Link zum "Beitrag über Matrizenberechnung" eine Matrizenmultiplikation.
    Nochmals danke für die kompetente Hilfe.

  12. Folgender Benutzer sagt Danke zu Christian68 für den nützlichen Beitrag:

    SPS_Fragekatalog (14.09.2015)

Ähnliche Themen

  1. Matrizen
    Von Huber_STEVE im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 21.04.2011, 12:10
  2. CoDeSys V3
    Von junkie im Forum CODESYS und IEC61131
    Antworten: 44
    Letzter Beitrag: 20.04.2011, 13:46
  3. Codesys V2.x VS V3 ?
    Von Humbe im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 19.04.2011, 07:50
  4. FC in S7 = was in Codesys
    Von Beginner09 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 26.02.2009, 11:30
  5. CoDeSys
    Von Gast im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 16.06.2006, 21:35

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •