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

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 46

Thema: Timer zeiten über Poti einstellen??

  1. #21
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey,

    das Ding soll verkauft werden, oder?
    Und ein FC zum Einlesen von Analogwerten wird doch da sein. Es gibt doch sicher noch mehr Messungen als die Poti...
    Ausserdem lassen sich die Probleme die ich oben geschildert habe doch nicht leugnen...
    Wenn du durch nen Drahtbruch keinen gültigen Zeitwert im MW10 stehen hast, dann funktioniert das Programm doch schon nicht mehr richtig...

  2. #22
    wankeldriver ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.02.2007
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von SPSKILLER Beitrag anzeigen
    Hallo,

    ich halte die Lösung für bedenklich. Meiner Meinung nach kannst mit dem Programmcode



    niemals auf eine Anlage losgehen. Probleme sind vorprogrammiert...
    Was machst denn bei nem Drahtbruch?
    Das Beispiel funktioniert auch nur sauber, wenn sich deine eingestellte Zeit immer innerhalb einer Zeitbasis befindet. Bei 0-20s z.B. hast schon n Problem.
    Wenn du dann immer die Zeitbasis für deine "20mA" Zeit schreibst werden kleine Einstellungen sehr ungenau... Bei 0-1000s z.B. wird das Problem noch viel größer.



    -> Es ist mehr Programmierung nötig, ansonsten hast meiner Meinung nach nur ne billige Bastellösung.

    Ich persönlich würde die Analogwerte getrennt einlesen mit korrekter Fehlerauswertung, ggfs. Ersatzwertaufschaltung usw.
    und dann anhand des eingelesenen Wertes die optimale Zeitbasis in einem separaten Fc berechnen und von dort die Zeit ausgeben (siehe Seite 1)

    Schöne Grüße
    hallo
    bei einem drahtbruch bleibt der timer immer auf 10 sek. stehen ,was nicht weiter schlimm ist. ( wie willst du bei einem analogen wert eine drahtbruchsicherheit programmieren. hätte da gar keine idee ).

    die zeit kann gar nicht ausserhalb der zeitbasis,weil sie auf max 10s begrenzt ist.

    welches problem meinst du genau wenn ich von 0-20 sek einstelle ist dann genau das gleiche ausser das die zeit dann auf 20 sek. begrenzt ist.(vollanschlag poti )

    bei der einstellung 0-1000 sek. gebe ich dir recht das wird ungenau.

    ich werde die über den poti eingestellte zeit über eine anzeige ausgeben.damit müsste man dann die zeit (0-10sek.)genau einstellen können ,auch im ms.bereich.

    werde deine lösug auch mal progr. und testen.

    gruss

  3. #23
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    Wenn deine Zeit 20s sein soll kannst nicht mehr
    l w#16#1000
    schreiben, weil das die Zeitbasis 0,1s ist.
    -> 999 bcd *0,1 =9,99s max.

    alles drüber braucht ne andere Zeitbasis.

    je kleiner deine Zeitbasis, um so genauer ist dein Timer.
    Deshalb ist es interessant, abhängig vom eingestellten Wert immer die kleinstmögliche Zeitbasis zu verwenden...

    Zum Drahtbruch:
    Natürlich kannst du Softwaretechnisch keinen Drahtbruch verhindern, aber erkennen und darauf reagieren, indem du z.B. einen Ersatzwert schreibst...

    Für mein FC von Seite 1 musst nicht viel programmieren, ist ja ne fertige AWL-Quelle. Symbol für FC anlegen übersetzen, fertig...
    Ist halt für einen Eingang von 0-100% geschrieben...

    Warum nimmst eigentlich die Potis wenn du eh ne Visu hast?

  4. #24
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    sorry verrechnet. geht natürlich bis 99,9 s mit 0,1s Zeitbasis

  5. #25
    wankeldriver ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.02.2007
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    leider klappt deine programmierung nicht ohne weiteres.
    die erste hälfe des potis geht nur bis 300 ms und dann macht es einen sprung auf über 5min und lauft wieder richtung o sek. runter. werde mich heute abend mal intensiver drum kümmern

  6. #26
    Registriert seit
    29.01.2007
    Ort
    Sandkrug
    Beiträge
    147
    Danke
    7
    Erhielt 36 Danke für 25 Beiträge

    Standard

    Hallo wankeldriver,
    ich hatte dich zwar gebeten, mal ein paar Eckwerte zu posten, aber leider reagierst du nicht darauf, denn es ist nicht ganz so einfach, wie es bisher dargestellt wurde.
    1. Wer garantiert, dass bei Linksanschlag der Analogeingang 0 liefert. Ich gehe mal davon aus, dass das nicht so ist und definiere diesen Wert mal mit Min.
    2. Hat dein Poti Rechtsanschlag bedeutet das auch nicht 32768 am Analogeingang sondern einen kleineren Wert, ich nenne ihn mal Max.
    3. Den aktuellen Wert nennen ich mal Xe.
    Dann berechnet sich deine Zeit nach folgender Formel:
    t=900*(Xe-Min)/(Max-Min)+100
    Ergebnis in ms. Dieser Wert muss nun noch in ein gültiges Zeitformat umgerechnet werden.
    Nachfolgend eine AWL mit angenommenen Werten (ist aus Zeitgründen aber noch nicht komplett getestet, vor allem wäre es besser, deine Werte zugrunde zu legen!)

    L 2.345600e+04 // Wert bei Rechtsanschlg
    T #Max
    L 1.234000e+03 // Wert bei Linksanschlag
    T #Min
    -R
    T #Max_Min
    // L PEW 20
    L 2222 // Angenommer INT-Wert aus Analogbaugruppe
    DTR
    L #Min
    -R
    T #Xe_Min
    L 9.000000e+02 // Beginn der Formelberechnung
    L #Xe_Min
    *R
    L #Max_Min
    /R
    L 1.000000e+02
    +R
    T #Ergebnis_in_ms // Ende der Formelberechnung
    L 9.995000e+02 // Wandeln in gültigen Zeitwert
    <R // Kann Ergebnis in 1/100s gewandelt werden?
    SPB Hund // <-- ja
    L #Ergebnis_in_ms // wenn nicht, dann in 1/10s wandeln
    RND
    DTR
    L 1.000000e+01
    /R
    RND
    DTB
    L W#16#1000 // Zehntel Sekunden
    OW
    T MW 10
    BEA

    Hund :L #Ergebnis_in_ms
    RND
    DTB
    T MW 10


    Probiers einfach mal und melde dich wieder, kostet ja nix!

  7. #27
    wankeldriver ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.02.2007
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von eNDe Beitrag anzeigen
    L 2.345600e+04 // Wert bei Rechtsanschlg
    T #Max
    L 1.234000e+03 // Wert bei Linksanschlag
    T #Min
    -R
    T #Max_Min
    // L PEW 20
    L 2222 // Angenommer INT-Wert aus Analogbaugruppe
    DTR
    L #Min
    -R
    T #Xe_Min
    L 9.000000e+02 // Beginn der Formelberechnung
    L #Xe_Min
    *R
    L #Max_Min
    /R
    L 1.000000e+02
    +R
    T #Ergebnis_in_ms // Ende der Formelberechnung
    L 9.995000e+02 // Wandeln in gültigen Zeitwert
    <R // Kann Ergebnis in 1/100s gewandelt werden?
    SPB Hund // <-- ja
    L #Ergebnis_in_ms // wenn nicht, dann in 1/10s wandeln
    RND
    DTR
    L 1.000000e+01
    /R
    RND
    DTB
    L W#16#1000 // Zehntel Sekunden
    OW
    T MW 10
    BEA

    Hund :L #Ergebnis_in_ms
    RND
    DTB
    T MW 10


    Probiers einfach mal und melde dich wieder, kostet ja nix!
    hi musste noch ein paar sachen einfügen.ich bekomme die zeit aber nicht auf 0-10 sek und bei dem sprung hund uberspringt das programm 2 sek.
    links und rechtsanschlag habe ich schon eingetragen.
    s7 cpu 300 er
    wenn du noch daten drauchst sag bitte welche

    L 5.617300e+004 // Wert bei Rechtsanschlg
    T #max
    L 1.040000e+003 // Wert bei Linksanschlag
    T #min
    L #max
    L #min
    -R
    T #max_min
    L PEW 20
    ITD
    T MD 50
    L 0
    T MW 50
    L MD 50
    DTR
    T MD 60
    L MD 60
    L #min
    -R
    T #xe_min
    L 9.000000e+002 // Beginn der Formelberechnung
    L #xe_min
    *R
    T #zwischenwert
    L #zwischenwert
    L #max_min
    /R
    L 1.000000e+002
    +R
    T #ergebnis_in_ms // Ende der Formelberechnung
    L 9.995000e+002 // Wandeln in gültigen Zeitwert
    <R // Kann Ergebnis in 1/100s gewandelt werden?
    SPB Hund // <-- ja
    L #ergebnis_in_ms // wenn nicht, dann in 1/10s wandeln
    RND
    DTR
    L 1.000000e+001
    /R
    RND
    DTB
    L W#16#1000 // Zehntel Sekunden
    OW
    T MW 10
    BEA
    Hund: L #ergebnis_in_ms
    RND
    DTB
    T MW 10

  8. #28
    Registriert seit
    29.01.2007
    Ort
    Sandkrug
    Beiträge
    147
    Danke
    7
    Erhielt 36 Danke für 25 Beiträge

    Standard

    Hallo wankeldriver,
    Zunächst möchte ich einen Fehler korrigieren. Meine Formel berechnet die Zeit nicht in ms sondern in 1/100s. Das Programm stimmt aber!
    Nun zum eigentlichen Problem:
    1. Analoge Baugruppen belegen Bit 15 im PEW mit dem Vorzeichen. Das macht auch Sinn, weil ja ein Messbereich von +/-10V das Vorzeichen braucht. Dein Max-Wert liegt bei 56173. Das bedeutet, es handelt sich um eine negative Zahl. Mit dem Analogeingang kann also irgend etwas nicht stimmen. Gib einfach mal den Befehl L PEW20 ein und beobachte im Status Baustein den Inhalt von Akku1. Der Wert muss immer im positiven Bereich liegen (0...32767, gültiger Messbereich bei Widerstandsgeber 0...27648, größere positive Zahlen charakterisieren den Übersteuerungsbereich!, negative Werte sind gar nicht möglich).
    2. Der von dir hinzugefügte Code ist überflüssig, er tut effektiv nämlich nichts, ausser in die MD50 und 60 etwas zu schreiben. Ich habe mein Programm noch einmal getestet -> es funktioniert und rechnet richtig!
    3. Ändere die letzten 7 Befehle
    Original:
    OW
    T MW 10
    BEA
    Hund: L #ergebnis_in_ms
    RND
    DTB
    T MW 10

    ab in:
    OW
    T MW 10
    SPA Ende
    Hund: L #ergebnis_in_ms
    RND
    DTB
    T MW 10
    Ende: NOP 0
    Vorteil: Jetzt kann der Programmcode weitergeführt werden, im MW10 steht der gültige Zeitwert im richtigen Format.

  9. #29
    wankeldriver ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.02.2007
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    das programm läuft jetzt.
    der eindestellte messbereich ist 0- 10 v
    die zusätlichen merker brauche ich um in das real zahl format zu wechseln.(eingang ist ja int. zur berechnung brauche ich real oder ??)
    ohne diese umwandlung lief es gar nicht bei mir.

    gruss und thx

  10. #30
    Registriert seit
    29.01.2007
    Ort
    Sandkrug
    Beiträge
    147
    Danke
    7
    Erhielt 36 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo wankeldriver,
    nochmal zur Klarstellung:
    Das PEW 20 (und überhaupt jedes Wortformat) umfasst 16 Bit (Bit15 .. Bit0). Der Befehl L PEWxxx schreibt in den Akku1 einen Integerwert, d.h. eine Zahl mit Vorzeichen. Damit umfasst der Wertebereich die Zahlen -32768 .. +32767. Zahlen außerhalb dieses Bereiches sind nicht möglich! Deine Vorgabe +56173 kann also nicht stimmen!
    Und hier mal eine ausführlichere Darstellung der Befehlsfolge:
    L PEW20 // Akku1 enthält den Zahlenwert im INT-Format
    DTR // wandelt im Akku1 das INT-Format in das Real-Format, dieses belegt jetzt 32 Bit
    Man braucht also keinerlei Hilfsmerker.
    Zum Abschluss nochmals das leicht veräderte Programm, wobei immer noch das Problem des Wertes bei Rechtsanschlag besteht.

    L 2.345600e+04 // Wert bei Rechtsanschlg ????
    T #Max
    L 1.040000e+03 // Dein Wert bei Linksanschlag
    T #Min
    -R
    T #Max_Min // Wert Max-Min
    L PEW 20 // Eingelesener Analogwert im INT-Format
    // L 32767 // Angenommer INT-Wert aus Analogbaugruppe
    DTR // wandelt Analogwert in das Real-Format
    L #Min
    -R // Berechnet Xe-Min
    T #Xe_Min // Wert Xe-Min
    L 9.000000e+02 // Beginn der Formelberechnung
    L #Xe_Min
    *R
    L #Max_Min
    /R
    L 1.000000e+02
    +R
    T #Ergebnis_in_hund // Ende der Formelberechnung
    L 9.995000e+02 // Beginn der Wandlung in gültigen Zeitwert
    <R // Kann Ergebnis in 1/100s ausgegeben werden?
    SPB Hund // <-- ja
    L #Ergebnis_in_hund // wenn nicht, dann in 1/10s wandeln
    L 1.000000e+01 // 1. durch 10 dividieren
    /R
    L 1.000000e+03 // 1000 addieren, wegen Formatwandlung
    +R
    RND // wandeln in DINT-Format
    DTB // Wandeln in BCD-Format
    T MW 10 // Zeitwert in 1/10s (10,0..13,7s)
    SPA Ende
    Hund :L #Ergebnis_in_hund // Ausgabe in 1/100s
    RND
    DTB
    T MW 10 // Zeitwert in 1/100s (0..9,99s)
    Ende :NOP 0

Ähnliche Themen

  1. Timer für Zeiten im Bereich 1ms bis 999ms
    Von dschig3s im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 16.11.2010, 20:51
  2. S7-200 Zeiten und Timer in Unterprogrammen
    Von eifelolli im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 06.08.2010, 13:08
  3. Timer / Zeiten funktionieren nicht S7 Step7
    Von excelite im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 08.06.2007, 17:31
  4. Zeiten / Timer im OP170B Anzeigen
    Von russkinemez im Forum HMI
    Antworten: 3
    Letzter Beitrag: 29.03.2007, 19:45
  5. Step5 Timer und Zeiten an FB
    Von burner im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 05.07.2006, 17:05

Lesezeichen

Berechtigungen

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