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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 35

Thema: Winkelfunktionen

  1. #21
    Registriert seit
    08.09.2006
    Beiträge
    170
    Danke
    4
    Erhielt 26 Danke für 16 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von zloyduh Beitrag anzeigen

    gibt es unterschiede zwischen FW2.6 und 3.3??
    Ab FW3 wird eine vollkommen andere Hardware eingesetzt, MIPS statt C165.

  2. #22
    zloyduh ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.12.2008
    Beiträge
    226
    Danke
    92
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Longbow Beitrag anzeigen
    Ab FW3 wird eine vollkommen andere Hardware eingesetzt, MIPS statt C165.
    ändert sich dadurch auch irgendwas in der Programmierung ....??
    viellecht ist dass das Problemm bei meiner Anwendung
    weil mit FW2.6 funktioniert es

  3. #23
    Registriert seit
    08.09.2006
    Beiträge
    170
    Danke
    4
    Erhielt 26 Danke für 16 Beiträge

    Standard

    Zitat Zitat von zloyduh Beitrag anzeigen
    ändert sich dadurch auch irgendwas in der Programmierung ....??
    viellecht ist dass das Problemm bei meiner Anwendung
    weil mit FW2.6 funktioniert es
    Einfach mal die Bugliste bei den Firmwareupdates ansehen, SIEMENS kocht auch nur mit Wasser (aber meistens relativ gut).
    Es gibt aber bei SIN/COS auch noch größere Unterschiede zwischen der 300er und 400er. Ich hab noch nicht geprüft ob es da von FW2 auf FW3 auch noch unterschiede bei z.B. den denormalisierten Zahlen (sehr klein) gab. Aber die Winkelfunktionen sind nicht
    ganz so trivial wie es zunächst aussieht.

  4. #24
    Registriert seit
    13.03.2007
    Ort
    Nürnberg
    Beiträge
    563
    Danke
    56
    Erhielt 51 Danke für 46 Beiträge

    Standard

    Du dividirst Daten durch das Ergebnis von cos(Winkel_Bogenmaß) .

    Bei 90 Grad ist doch cos( .. ) recht genau 0, oder viell. genau 0.0.

    x / 0 --> error !

    Ergebnis:= Daten/cos(Winkel_Bogenmaß);

    nur mal so am rande.
    Kabelsalat ist Gesund
    (vom CCC abgekupfert)

    Prognosen sind schwierig,
    besonders wenn sie die Zukunft betreffen.
    (Ursprung nicht wirklich bekannt)



  5. #25
    zloyduh ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.12.2008
    Beiträge
    226
    Danke
    92
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Senator42 Beitrag anzeigen
    Du dividirst Daten durch das Ergebnis von cos(Winkel_Bogenmaß) .

    Bei 90 Grad ist doch cos( .. ) recht genau 0, oder viell. genau 0.0.

    x / 0 --> error !

    Ergebnis:= Daten/cos(Winkel_Bogenmaß);

    nur mal so am rande.


    nur mal so am rande: cos(0) = 1

  6. #26
    zloyduh ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.12.2008
    Beiträge
    226
    Danke
    92
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Wenn es denn ein Bug ist und Sinus funktioniert, dann vielleicht umwandeln.

    sin^2(x) + cos^2(x) = 1

    cos(x) = sqrt(1 - sin^2(x))

    so funktioniert es
    d.h. es muss ein Fehler in der FW3.3 sein

  7. #27
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von Senator42 Beitrag anzeigen
    Du dividirst Daten durch das Ergebnis von cos(Winkel_Bogenmaß) .

    Bei 90 Grad ist doch cos( .. ) recht genau 0, oder viell. genau 0.0.

    x / 0 --> error !

    Ergebnis:= Daten/cos(Winkel_Bogenmaß);

    nur mal so am rande.
    Da hast du wohl Recht.
    Anscheinend arbeiten die SPS mit den unterschiedliche Firmwareständen und auch der Simulator da etwas anders.
    Das Ergebnis, das die SPS anzeigt --> 16#7F800000 erhält man z.Bsp. bei Division durch Null, das bedeutet '3.4e39'
    und ist wohl außerhalb des gültigen Bereiches. Währe noch interessant was die Zustandsbits sagen, damit könnte man einen Sprung ausführen bei Division durch Null. Das Bogenmaß von 90° ist ja 1.5707963267948966 das wird in der SPS eingekürzt und dann ist der Cos davon vielleicht nicht genau 0.0.
    Geändert von Ralle (24.08.2012 um 09:05 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #28
    Registriert seit
    25.03.2007
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Heute hatte ich dasselbe Problem.
    FC4_1.png
    Auch wollte ich genau wissen, was das Ergebnis von der Anweisung
    L 0.0
    ist. Deshalb die Variable Test2.

    DAs Ergebnis:

    Temp_VAT1.png

    Es wird tatsächlich eine Null in der Variable Test2 erhalten.
    Aber das Ergebnis nach Ausführung von COS-Anweisung ist völlig daneben. Das Ergebnis hätte eine 1 sein müssen.

    Deshalb addiere ich im Voraus auf den eigentlichen Winkel 2*pi = 6,28...

    FC4_2.png

    Dann kommt auch das richtige Ergebnis.
    Na ja! Fast richtig.
    Aber für meine Zwecke genau genug-.

    Temp_VAT2.png

    Und hier die CPU:

    CPU.png

    Siehe da, die gleiche Firmware wie in diesen Thread: V 3.3.7

    Gruss

  9. #29
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von alicikcik Beitrag anzeigen
    ...
    DAs Ergebnis:



    Es wird tatsächlich eine Null in der Variable Test2 erhalten.
    Aber das Ergebnis nach Ausführung von COS-Anweisung ist völlig daneben. Das Ergebnis hätte eine 1 sein müssen.
    ...
    Wieso wird bei Dir das Ergebnis hexadezimal angezeigt, obwohl Du Gleitpunkt eingestellt hast?
    Wird das irgendwo gewandelt, denn binär (nicht real) ist es ja 1?
    Geändert von hucki (11.12.2012 um 23:27 Uhr) Grund: 1 Wort zuviel

  10. #30
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Winkelfunktionen haben schon ihre Spezialitäten, wie ich aus der Implementierung bei anderen SPS weiss, gibt es da schöne Überraschungen.

    Manche SPS haben Tabellen in Grad und interpolieren bei Zwischenwerten, andere rechnen den Sinus per Reihenentwicklung und unter Benutzung von Bogenmass aus und der COS ist dann SIN (Winkel + Pi/2) etc.

    Eine Spezialität dabei ist die Zahl Pi (3,14...), wenn man den COS aus dem SIN ermittelt. So genau rechnet keine CPU, dass das klappt. So verwendet man Reihenentwicklungen, um mit 16/32 Bit Integer rechnen zu können, und nimmt (2200 / 7) als Wert für 100*Pi.
    Als Freelancer immer auf der Suche nach interessanten Projekten.

Ähnliche Themen

  1. TwinCat - Winkelfunktionen
    Von nosti im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 28.07.2009, 22:31

Lesezeichen

Berechtigungen

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