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

Ergebnis 1 bis 9 von 9

Thema: variablen Zeitwert erstellen

  1. #1
    Registriert seit
    29.07.2006
    Beiträge
    14
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Grüße an die Profis,

    versuche in Step7 eine Formel einzugeben um einen variablen Zeitwert zu erhalten, den ich dann für einen Timer (SE) benutzen will. Aber leider funktioniert das nicht so wie ich mir das denke. Ich komme da mit Real und Int irgendwie durcheinander.
    Zur Formel: t = s / ( d * ¶ * (n / 60))
    T = ?;
    s= weg(1700mm); d= Durchmesser=8,3mm; ¶= PI =3,14; n= Drehzahl=2700¯¹

    und jetzt ?

    freu mich auf jede Anregung oder Ansatz zum Problem
    danke
    Zitieren Zitieren variablen Zeitwert erstellen  

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

    Standard

    Hallo Zapot,

    bin alles andere als ein Profi, über die Zusammensetzung
    der S5 Zeit habe ich mal folgendes aufgeschnappt.
    Vielleicht hilft dir das ein wenig weiter.

    MfG

    Peter


    s5t setzt sich aus 4 Werten zusammen

    Das ganze steht in einen Wort

    Bin : xxxx 3333 2222 1111

    xxxx = Faktor 0 = 10 ms 1 = 100 ms 2 = 1s 3 = 10s

    3333 3 Stelle vom BCD Code ( 0 - 9 )
    2222 2 Stelle vom BCD Code ( 0 - 9 )
    1111 1 Stelle vom BCD Code ( 0 - 9 )

    das heist wenn du

    Bin 0010 0000 0011 0111

    x = 2
    3 = 0
    2 = 3
    1 = 7

    würde das bedeuten Zahlen wert 37 * Faktor von 1 sek = 37 sekunden

    Bsp. 1:
    L EW 0
    L KH 0FFF <- vierte Tetrade ausblenden
    UW
    L KH 2000 <- Ziffer 2 speichern (2 = Sekunden)
    OW
    T MW10

    Bsp. 2:
    L 120
    ITB
    L W#16#2000
    OW
    T MW10

    0000hex wären 10ms
    1000hex wären 100ms
    2000hex wären 1s
    3000hex wären 10s
    _________________

  3. #3
    Registriert seit
    02.12.2005
    Ort
    Laakirchen
    Beiträge
    44
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich würde das wie folgt lösen alles in Real

    DB anlegen mit ein paar Real Zahlen

    AUF DB 110 //Rechen DB

    L DBD 0 //Drehzahl
    L 6.000000e+001
    /R
    T DBD 4 // Zwischenwert Drehzahl

    L DBD 8 // Durchmesser
    L DBD 4 // Zwischenwert Drehzahl
    *R
    T DBD 12 // Zwischenwert Durchmesser mal Zwischnwert Drehzahl


    L DBD 16 // Weg
    L DBD 12 // Zwischenwert Durchmesser mal Zwischnwert Drehzahl
    /R
    T DBD 20 // Ergebnis Zeit in Real



    L DBD 20 // Ergebnis Zeit in Real
    TRUNC
    DTB
    T DBD 24 // Zeit umgewandelt


    U E 1.0
    U E 1.1
    L DBW 26 // Zeit
    SE T 100


    U T 100
    = A 1.0

    Das sollte eigentlich so funktionieren

    mfg

    Andy
    mfg
    Andreas Pührimair
    Promot Automation GmbH

    http://www.promot.at

    --Wenns zwickt dann zwickt's --

  4. #4
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.520 Danke für 1.282 Beiträge

    Standard

    @puehri
    Also eigentlich bin ich nicht der Meinung das das so funktionieren würde.
    Schon alleine deshalb weil du die Zeitbasis vollkommen unberücksichtigt lässt.
    Was heißt das du in obigem Fall mit den Werten den Timer mit exakt 10ms startest.

    Hier ein Vorschlag von mir:
    Das die Berechnung des Wertes steht, das setze ich jetzt einfach mal vorraus.
    Der Wert, in obigem Fall 1,448 Sekunden? steht im MD0, im MW10 steht der berechnete Zeitwert.

    Code:
    L MD0
    L 1000.0
    *R
    RND
    T MD4  //Zeitwert in MS (Format: TIME)
    
    CALL FC40 //Aus Standartbiblio - IEC Function Blocks
    IN: MD4
    RET_VAL: MW10  //Zeitwert von TIME umgewandelt auf S5TIME
    
    U Bedingungen_fuer_Timer
    L MW10
    SE T0
    Geändert von MSB (08.01.2007 um 16:06 Uhr)
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  5. #5
    Registriert seit
    02.02.2006
    Ort
    Hessen
    Beiträge
    429
    Danke
    16
    Erhielt 28 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Zapot Beitrag anzeigen
    versuche in Step7 eine Formel einzugeben um einen variablen Zeitwert zu erhalten, den ich dann für einen Timer (SE) benutzen will. Aber leider funktioniert das nicht so wie ich mir das denke. Ich komme da mit Real und Int irgendwie durcheinander.
    Hallo,
    warum nicht gleich mit IEC-Timer (siehe TON), muß doch nicht SE sein,
    oder ist das wieder so eine gescheite Übungsaufgabe?
    mfG Werner
    Hoch lebe die Suchfunktion!
    Zitieren Zitieren Ton  

  6. #6
    Registriert seit
    24.09.2003
    Beiträge
    122
    Danke
    0
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Hallo,

    @puehri
    Irgendwie vermisse ich das PI in deiner Rechnung?

    Wenn man bei einem Ergebnis von 1,448 den Befehl TRUNC verwendet,
    wird daraus 1. Somit ergeben sich viel zu große Ungenauigkeiten.
    Wenn man für die S5-Timer den Sekunden - Wert mit 100 multipliziert, erhält man die kleinste Zeitbasis ( 1/100sec) und braucht dann nur den Integer
    zu BCD konvertieren.

    Ich würde aber eher auch mit 1000 multiplizieren (ms) und dann wie MSB
    mit der Funktion umrechnen, oder lieber gleich einen TON - Timer nehmen.



    Code:
    // T = S / (d * Pi * (U / 60)) 
    // T = S * 60 / (d * Pi * U)
    // T[max] = 9,99s !
    
          L     1700                        // S= 1700mm
          L     60                            
          *D                                 // DINT!
          DTR   
          L     8.300000e+000            // d=8.3mm
          /R    
          L     3.140000e+000           // pi
          /R    
          L     2.700000e+003          // 2700U
          /R    
          L     1.000000e+002         //Faktor 100 für Hundertstel sek.
          *R                                // dann ist Zeitbasis 0000
          RND                              // runden -> Integer
          ITB                               // Integer -> BCD
          T     MW    10                // Zeitwert
    
    // Testen Zeit
    
          UN    T     20
          L     MW   10
          SE    T     20
    mfg.
    Rolf
    Geändert von RolfB (09.01.2007 um 12:39 Uhr)

  7. #7
    Zapot ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.07.2006
    Beiträge
    14
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    also vielen dank an alle,

    habe Rolfs Vorschlag ausprobiert und es hat alles super funktioniert.
    Ich hatte nur das Problem das ich nicht wuste, dass REAL-Typen als Gleitzahl betrachte werden müssen, so konnte ich mit dem ganzem Unfug den ich da abgelesen habe überhaupt nichts anfangen. Aber kaum macht man es richtig, funktioniert es auch schon!
    Um es als S5-TIME zu verarbeiten kann man noch bit 12/13 den Zeitfaktor bestimmen. 00= 0,01s; 10= 0,1s; 01= 1s; 11= 10s

    Ähhhhhhh "TON Zeit" ??????????? was und wie
    Zitieren Zitieren antwort  

  8. #8
    Registriert seit
    02.09.2006
    Beiträge
    115
    Danke
    5
    Erhielt 13 Danke für 11 Beiträge

    Standard

    TON ist ein sogenannter IEC Timer. Den gibt es als Standartbaustein in der Library. Ich gaube SFB4 heißt er da.
    Wenn du in einer CPU z.B. keine Timer mehr frei hast, oder willst keine Timer einsetzen, oder sowas, kannst du diesen Baustein verwenden.

    Im Prinzip machst du nur:

    SPA (SPB) SFB4

    Dann erscheint:

    IN - Starteingang
    PT - Zeitdauer, um die die steigende Flanke am Eingang IN verzögert wird. PT muß positiv sein. ( Hinweis: Der Wertebereich ist durch den Datentyp TIME festgelegt.)
    Q - Status der Zeit
    ET - abgelaufene Zeit

    Fertig. Den gibts auch noch als TOF, dies ist dann der SFB 5.
    Geh einfach mal in die SFB Library und schau dir die beiden mal mit F1 an...

    MfG
    Borsti

  9. #9
    Registriert seit
    13.12.2006
    Beiträge
    628
    Danke
    109
    Erhielt 42 Danke für 39 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Jop,

    auch mir als quereinsteiger hat dieser Thread sehr gut geholfen. Bei meiner Aufgabe muss ich von einem TP170 Daten in die CPU einlesen und die z.T. als Zeiten im Bereich zwischen 0 und 2000 ms in den Timer einspeisen.

    Das mit dem
    '
    WERT
    FAKTOR
    RND
    ITB
    ab in den Timer
    '
    ist ne einfache und sehr gute Sache.

    Mein Lieblingstimer ist übrigens der verlängerte Impuls, auch gut, um nen Überwachungs- zeit- tor zu schalten. Mal schauen, ob es den 'SV' auch als SFC gibt

    Wer Bibliotheken nicht findet, wie ich bis heute morgen *rot werd* , klicke einfach auf den Button 'Übersichten Ein/ aus' , oder aktiviere den in den Ansichten. DA sind nämlich auch die vielen ach so tollen Bibliotheken aus der 'F1- Siemens- Verulkungsparty'

    Greetz

Ähnliche Themen

  1. Zeitwert umwandeln
    Von Hanspeter23 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 11.07.2011, 13:10
  2. WinCC Variablen fortlaufend erstellen
    Von Barthiboy im Forum HMI
    Antworten: 3
    Letzter Beitrag: 11.03.2011, 16:19
  3. Zeitwert
    Von De Hettrumer im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 07.01.2010, 21:18
  4. Pointer für lokale Variablen erstellen
    Von neuer_user im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 10.10.2006, 12:02
  5. Unter WinCC MUX-Variablen erstellen??
    Von dellamorte-dellamore im Forum HMI
    Antworten: 3
    Letzter Beitrag: 23.06.2005, 15:12

Lesezeichen

Berechtigungen

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