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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 26 von 26

Thema: Structured Text gemäß IEC 61131-3)

  1. #21
    megni ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.05.2013
    Beiträge
    17
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe bei mir TwinCAT installiert aber sehe ich kein TwinCat Icon mit denen ich den Realtime server Starten kann. Kann jemand mir helfen?

  2. #22
    megni ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.05.2013
    Beiträge
    17
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von StructuredTrash Beitrag anzeigen
    Zu 2)
    Das Array muss also von vornherein so gross sein wie maximal benötigt. Dann kann IN_ucFiltergrad auch nicht zu gross werden.
    Ich verstehe nicht genau was du damit meinst! Soll ich die Obergrenze mein Array auf 2^8-1 setzen? oder kannst du bitte mir ein Beispiel zeigen.
    Zitat Zitat von StructuredTrash Beitrag anzeigen
    Zu 2)
    Auch dabei wirst Du besser vorankommen, wenn Du Dein Programm testen kannst. .
    Ich habe mich TwinCaT besorgt und habe die syntaktische Fehler korriegieren aber es fällt mir schwer das Programm zu testen

  3. #23
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    Hast Du vielleicht die x64 Engineering-Version runtergeladen? Die hat kein Laufzeitsystem, Du brauchst TwinCAT 2.11 R3.
    Zitat Zitat von megni Beitrag anzeigen
    Soll ich die Obergrenze mein Array auf 2^8-1 setzen?
    Genau.

  4. #24
    megni ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.05.2013
    Beiträge
    17
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe meine Code nochmal geändert.
    Code:
    FUNCTION_BLOCK Mittelwert
    VAR_INPUT
    	IN_nx : INT; (* zu filternder Wert*)
             IN_ucFitergrad: BYTE; (*Anzahl abzuspeichernder Werte*)
    END_VAR
    VAR_OUTPUT
    	OUT_y: INT; (* Mittelwert: gefilterter Wert*)
             Info: STRING; (*Notification für den Benutzer *)
    END_VAR
    VAR
    	Messwerte:ARRAY[1..255] OF INT;
    	index_Write:INT:=1;
             index_Read:INT:=1;
    	Sum:INT:=0;
            zaehler:INT:=0;
    END_VAR
    
    (*zu filternder Wert im FIFO schreiben*)
    IF index_Write <= IN_ucFitergrad THEN
    Messwerte[index_Write]:=IN_nx;
    index_Write:=index_Write+1;
    Zaehler:= zaehler+1;
    ELSE
    index_Write:=1;
    END_IF;
    (*zu filternder Wert im FIFO auslesen*)
    IF index_Read <= index_Write THEN
    Sum:= Sum + Messwerte[index_Read];
    index_Read:=index_Read+1;
    ELSE
    index_Read:=1;
    END_IF;
    
    (*Mittelwert Berechnung*)
    IF zaehler < 20 THEN
    Info:= ' Für die Berechnung des gleitenden Mittelwerts reichen die gespeicherten Werte nicht aus';
    ELSIF (zaehler MOD IN_ucFitergrad)=0 THEN
    OUT_y:=Sum/IN_ucFitergrad;
    Sum:=Sum-Messwerte[1];
    ELSE
    OUT_y:=Sum/IN_ucFitergrad;
    Sum:= sum - Messwerte[zaehler MOD IN_ucFitergrad];
    END_IF;
    werde ich mich immer auf ihre Kritik freuen

  5. #25
    megni ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.05.2013
    Beiträge
    17
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von StructuredTrash Beitrag anzeigen
    Du brauchst TwinCAT 2.11 R3. Genau.
    Ich habe einen 64 Bit Rechner und TwinCAT 2.11 R3. läuft dort nicht

  6. #26
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von megni Beitrag anzeigen
    Ich habe einen 64 Bit Rechner und TwinCAT 2.11 R3. läuft dort nicht
    Dann musst Du es wohl in einer virtuellen 32 Bit-Maschine ausführen. Damit habe ich allerdings keine Erfahrung.

    Zu Deinem Code: Der wird immer konfuser, ich würde noch mal neu anfangen. Der Baustein muss doch Folgendes in der angegebenen Reihenfolge machen:
    1) Wenn der Ringpuffer voll ist, den ältesten Wert von der Summe subtrahieren, sonst den Füllstandszähler um 1 erhöhen.
    2) Den neuen Wert in den Ringpuffer eintragen (wenn der Ringpuffer voll ist, wird damit der älteste Wert überschrieben).
    3) Den neuen Wert zur Summe addieren und mit Hilfe des Füllstandszählers den Mittelwert berechnen.

Ähnliche Themen

  1. Structured Text (ST)
    Von nourdine im Forum PC- und Netzwerktechnik
    Antworten: 6
    Letzter Beitrag: 29.11.2009, 17:13
  2. [ ST - Structured Text ] Pointer Casten
    Von caret im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 16.10.2009, 22:38
  3. Structured Text RSLogix
    Von kammi-kaze im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 20.07.2009, 15:01
  4. SCL oder ST und EN 61131-3/IEC 61131-3
    Von McCowsky im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.03.2009, 15:05
  5. IEC 61131-3
    Von arcis im Forum Stammtisch
    Antworten: 1
    Letzter Beitrag: 24.12.2005, 11:52

Lesezeichen

Berechtigungen

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