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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: B&R Schieberegister?

  1. #11
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Anaconda55 Beitrag anzeigen
    Verstehe ich nicht, kannst Du mir das genauer erklären?
    Meine Aussage stimmt auch nur unter der Voraussetzung das der Abstand zwischen dem Start- und Zielpunkt kleiner eines vollen Inkrementzykluses ist.

    Für diesen Fall:

    Gilt die Differenz zweier werte ist absolut gesehen gleich.

    Hier mal das Beispiel mit Byte (USINT):

    Code:
    Delta := Neuerwert - Alterwert;
    Code:
    0 := 100 - 100;
    1 := 101 - 100;
    100 := 200 - 100;
    155 := 255 - 100;
    156 := 0 - 100;
    157 := 1 - 100;
    206 := 50 - 100;

    Nun zu dem Fall das der Abstand größer eines Inkrementalzykluses ist dann kann man den von Hand zu Fuß selber bauen.

    In jedem SPS-Zyklus das Delta zum vorhergehenden SPS-Zyklus berechnen und den immer auf eine ausreichend große Variable um kopieren in dem man z.B. die Inkremente auf mm umrechnet und diese dann in eine UDINT bzw. DWORD Variable kopiert.... ist das nun verständlich?
    If you open your Mind too much, your Brain will fall out.

  2. #12
    Avatar von Anaconda55
    Anaconda55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Ja das ist mir jetzt schon klar.

    Allerdings funktioniert das nicht wenn in dieser Strecke der Inkrementalwert 2mal oder öfters auf 0 gesetzt wird.

    Eventuell könnte ich es so machen?

    Bandtaktvorgabe = 5
    iDiff = Inkremental - InkrementalALT

    if iDiff >= Bandtaktvorgabe then
    Bandtakt=true
    InkrementalALT = InkrementalALT + Bandtaktvorgabe
    else
    Bandtakt=false
    endif


    Bei jedem Bandtakt setze ich dann die Positionen im Array um Bandtaktvorgabe hier 5 hoch.

  3. #13
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von zotos Beitrag anzeigen
    ...
    Nun zu dem Fall das der Abstand größer eines Inkrementalzykluses ist dann kann man den von Hand zu Fuß selber bauen.

    In jedem SPS-Zyklus das Delta zum vorhergehenden SPS-Zyklus berechnen und den immer auf eine ausreichend große Variable um kopieren in dem man z.B. die Inkremente auf mm umrechnet und diese dann in eine UDINT bzw. DWORD Variable kopiert.... ist das nun verständlich?
    Also wars doch nicht verständlich ;o(

    Hier mal in Codeform:
    Code:
    (* Alles was nicht explizit angegeben ist entspricht dem Type UDINT *)
    
    FaktorInkrementeProZehntelmillimeter := InkrementeProUmdrehung * 10 / REAL_TO_UDINT(UDINT_TO_REAL(DurchmesserInMillimeter) * PI); (* muss nicht zyklisch berechnet werden PI idt vom Typ Real *)
    
    
    DeltaInkremente := InkrementeAktuell - InkrementeLetzerZyklus;
    InkrementeLetzerZyklus := InkrementeAktuell;
    
    DeltaZehntelmillimeter := DeltaInkremente / FaktorInkrementeProZehntelmillimeter;
    
    Neuerwert := Neuerwert + DeltaZehntelmillimeter;
    
    Delta := NeuerWert - GespeicherterWert; (* Der Gespeicherte Wert stammt aus dem FIFO *)
    
    InPosition := ((Delta < (Sollposition + Toleranz)) AND (Delta > (Sollposition - Toleranz)); (*InPos ist vom Typ Bool*)
    If you open your Mind too much, your Brain will fall out.

  4. #14
    Avatar von Anaconda55
    Anaconda55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Ja okay. Das wird wohl auch funktionieren. Aber geht das nicht noch einfacher?

  5. #15
    Avatar von Anaconda55
    Anaconda55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Was ist eigentlich mit der Variable "PI" in der ersten Zeile gemeint?

  6. #16
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Die Kreiszahl (Pi)
    If you open your Mind too much, your Brain will fall out.

  7. #17
    Avatar von Anaconda55
    Anaconda55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Ist die im Codesys gleich als PI definiert oder was?

  8. #18
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    nein.

    Schreib einfach an stelle PI 3.14159
    If you open your Mind too much, your Brain will fall out.

  9. #19
    Avatar von Anaconda55
    Anaconda55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Also da stimmt jetzt was nicht weil z.B. bei UDINT folgendes rauskommt

    NeuerWert:=0
    GespeicherterWert:=10

    Delta := NeuerWert - GespeicherterWert;

    Delta Ergebnis = 4294967286

    Das heißt das ich nie in Position sein kann ...

  10. #20
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Anaconda55 Beitrag anzeigen
    Also da stimmt jetzt was nicht ...
    Sorry!

    Leider passt der Code nicht (ich hatte ihn auch nicht getestet).
    If you open your Mind too much, your Brain will fall out.

Ähnliche Themen

  1. Schieberegister mit S7-300
    Von Spag im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 06.08.2008, 13:06
  2. Schieberegister
    Von Schenker im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 08.10.2007, 11:09
  3. Schieberegister
    Von Mütze im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 22.10.2006, 06:01
  4. Schieberegister
    Von Anonymous im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 30.01.2006, 08:47
  5. Schieberegister mit S7-200
    Von Anonymous im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 14.10.2003, 15:00

Lesezeichen

Berechtigungen

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