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

Ergebnis 1 bis 10 von 10

Thema: TwinCAD unterschied FUN und PRG???

  1. #1
    Registriert seit
    21.10.2013
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich bin Praktikant und soll für eine Firma ein Programm schreiben.
    Ich kannte bis dato nur Siemens. Nun muss ich mich in eine Beckhoff einarbeiten. Ich wurschtel nun schon sehr lange mit dem TwinCAD herum. So langsam komme ich ein wenig klar damit. Ich habe nun begonnen eine Formel zu Programmieren. Wenn ich diese Formel nun im FUN schreibe dann bringt er mir das falsche Ergebnis, denn wenn ich die selbe Formel nun im PRG schreibe dann kommt das richtige ergebnis dabei raus. Woran kann das liegen?
    Unbenannt.jpg
    Ich habe es mit ST und FUP probiert...
    Die Programme sind wirklich identisch...

    ich hoffe ihr könnt mir helfen
    Zitieren Zitieren TwinCAD unterschied FUN und PRG???  

  2. #2
    ichder ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.10.2013
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,

    ich bin Praktikant und soll für eine Firma ein Programm schreiben.
    Ich kannte bis dato nur Siemens. Nun muss ich mich in eine Beckhoff einarbeiten. Ich wurschtel nun schon sehr lange mit dem TwinCAD herum. So langsam komme ich ein wenig klar damit. Ich habe nun begonnen eine Formel zu Programmieren. Wenn ich diese Formel nun im FUN schreibe dann bringt er mir das falsche Ergebnis, denn wenn ich die selbe Formel nun im PRG schreibe dann kommt das richtige ergebnis dabei raus. Woran kann das liegen?
    Unbenannt.jpg
    Ich habe es in ST und FUP probiert...
    Die inhalte sind wirklich identisch...

    ich hoffe ihr könnt mir helfen.
    Zitieren Zitieren TwinCAD unterschied FUN und PRG???  

  3. #3
    Registriert seit
    08.08.2011
    Beiträge
    227
    Danke
    44
    Erhielt 8 Danke für 8 Beiträge

    Standard

    Post mal den Code deiner Formel.
    Wahrscheinlich verwendest du in der FUN eine Variable über einen Zyklus.
    FUN besitzt aber wie in S7 nur Temp. Var.
    Wer Rechtschreibfehler findet, darf sie behalten!

  4. #4
    ichder ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.10.2013
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die schnelle Antwort.
    was meinst du mit Zyklus?


    Grundformel : Beta=180°-(arcsin(3.6/4 * sin(90°-Alpha)))-(90°-Alpha)
    angewendete Formel: Beta=180°-Rad_TO_DEG(arcsin(3.6/4 * sin((90°-Alpha)*pi/180)))-(90°-Alpha)
    pi/180 --> Umwandlung in Bogenmaß / RAD-TO-DEG --> Umwandlung Bogenmaß in Winkelmaß

    Programm:
    part_b := 90 - Alpha;
    part_a := ASIN(3.6/4 * part_c);
    part_c := SIN(pi/180*part_b);
    part_d := RAD_TO_DEG(part_a);
    beta := 180 - part_d - part_b;
    winkel_lamelle := REAL_TO_INT(beta);

  5. #5
    Registriert seit
    08.08.2011
    Beiträge
    227
    Danke
    44
    Erhielt 8 Danke für 8 Beiträge

    Standard

    damit mein ich genau sowas:
    part_a := ASIN(3.6/4 * part_c);
    part_c := SIN(pi/180*part_b);

    wahrscheinlich hast du diese variablen als "VAR" in deiner FUN deklaliert oder?
    Wer Rechtschreibfehler findet, darf sie behalten!

  6. #6
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Programm:
    part_b := 90 - Alpha;
    part_a := ASIN(3.6/4 * part_c);
    part_c := SIN(pi/180*part_b);
    part_d := RAD_TO_DEG(part_a);
    beta := 180 - part_d - part_b;
    winkel_lamelle := REAL_TO_INT(beta);

    Dein Fehler liegt in der Berechnung von part_a.

    Du Verwendest für die Berechnung part_c. Part_c wird aber erst einen Schritt später berechnet. In einem Programm oder Funktionblock ist das Problem nicht so sehr ersichtlich, weil die Variablen statisch gespeichert werden. D.h. Part_c hat immer den Wert vom vorherigen Zyklus.
    In einer Funktion sind die Werte immer temporär. Ist die FUN abgearbeitet werden alle Werte auf 0 gesetzt. Deswegen bekommst du 120 raus, weil Part_c = 0 ist wen du Part_a berechnest.

    Problematisch bei der Lösung mit der Programm-Variante. Das Ergebnis ist immer für einen Zyklus falsch wenn Alpha einen neuen Wert bekommt. Du siehst es aber nicht, weil der Wert dann im folgendenen Zyklus stimmt ----> ganz böser Fehler, weil nicht beobachtbar!


    Lösung:
    part_b := 90 - Alpha;
    part_c := SIN(pi/180*part_b);
    part_a := ASIN(3.6/4 * part_c);
    part_d := RAD_TO_DEG(part_a);
    beta := 180 - part_d - part_b;
    winkel_lamelle := REAL_TO_INT(beta);

    Alle Werte werden in der korrekten Reihenfolge berechnet. Sollte jetzt auch als Funktion klappen.

  7. #7
    Registriert seit
    08.08.2011
    Beiträge
    227
    Danke
    44
    Erhielt 8 Danke für 8 Beiträge

    Standard

    Meine Worte in lang und ausführlich
    Wer Rechtschreibfehler findet, darf sie behalten!

  8. #8
    ichder ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.10.2013
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke euch beiden... jetzt wo ichs so lese... das habe ich mal gelernt ja
    jetzt ist es logisch... Daran habe ich mit keiner Silbe gedacht....
    Danke Danke

  9. #9
    Registriert seit
    21.04.2012
    Beiträge
    62
    Danke
    14
    Erhielt 11 Danke für 9 Beiträge

    Standard

    Und ich dachte mit TwinCAD kann man nur Schaltpläne erstellen.....
    Man lernt nie aus.

  10. #10
    Registriert seit
    05.07.2013
    Beiträge
    74
    Danke
    12
    Erhielt 13 Danke für 11 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Klingone22 Beitrag anzeigen
    Und ich dachte mit TwinCAD kann man nur Schaltpläne erstellen.....
    Man lernt nie aus.
    Aber nur 2 weil "Twin"

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 21.05.2013, 14:40
  2. Variabel in TwinCad PLC-Control ausgeben
    Von buffi4711 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 05.10.2012, 15:39
  3. :P Fun
    Von maxi im Forum Stammtisch
    Antworten: 2
    Letzter Beitrag: 17.03.2011, 12:50
  4. Hat jemand eine Beckhoff Twincad Anwendung zum Lernen
    Von F.F im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 02.11.2009, 00:57

Lesezeichen

Berechtigungen

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