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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 37

Thema: Stoppuhr über SPS ansteuern ?!?!

  1. #11
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von volker
    timer sind zyklusunabhängig.

    Hm, das ist so "nicht ganz" richtig.

    Die Timer sind sehr ungenau.
    Wenn man eine Zeit recht genau erfassen will, sollte mann schon mit Timeclicks oder Alarm - OB arbeiten.

    Ein Timer geht im Bereich von mehreren % falsch, das ist für eine genau Zeiterfassung nicht ausreichend.

    Für normale "Zeiten" ists natürlich egal.

  2. #12
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    also ich habe das eben in einer 113c2dp getestet.
    bei s5t#900s habe ich 0 sekunden abweichung mit der zeit in meinem pc.

    ok cpu lief nur mit dem timer und hatte daher eine zykluszeit von nur 2ms

    aber wenn du mehrere % schreibst sollte man zumindest eine geringe abweichung feststellen können.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #13
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard

    Hallo Volker,

    Hab bei einem Stundentimer knappe 6 Sekunden Verzug festgestellt,

    hast recht, dass sind letztendlich "nur" 0.17%, aber bei einem OB - Aufruf im Sekundentakt war die Abweichung genau 0.0.

    Und 6 Sekunden pro Stunde falsch, dass ist z.B. für ne Stopuhr eindeutig zu mies.

  4. #14
    UniMog Gast

    Idee

    Also Timer sind nicht sehr genau auch wenn Du das mal ebend in
    Deiner 313c-2DP ausprobiert hast.
    Betriebsstundenzähler mit Timern sind auch nicht 100% genau.

    Aber da ja nur Sekunden gefordert bzw. gebraucht werden spiel das dann hier auch keine Rolle und man kann es dann auch so lösen.

    Gruß

  5. #15
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    Siemens schreibt doch fast überall, dass die Timer eine Unschärfe in Höhe der Zeitbasis besitzen (S5-Timer); diese Unschärfe ist ein fester Wert. Die tatsächliche Abweichung ist ein Zufallswert zwischen 0 und der Zeitbasis. Das ist der absolute Fehler. Um diesen möglichtst gering zu halten wird empfohlen, die kleinstmögliche Zeitbasis zu verwenden.

    Der meist interessantere relative Fehler hängt vom absoluten Fehler und der Anzahl der Timer-Ticks ab. Er wird mit fortschreitender Zeit immer kleiner.

    Die Timer laufen asynchron zum OB1 ab. Die Zeit-OBs aber auch. Bei gleicher Zeitbasis bieten die Zeit-OBs keine größere Genauigkeit als Timer, vorrausgesetzt man bleibt im Zählbereich.

    Es spricht also nichts dagegen, einen Timer zu verwenden, solange die geforderte Genauigkeit eingehalten werden kann.
    Zitieren Zitieren Alles ein Frage der Genauigkeit  

  6. #16
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    natürlich ist ein aufruf im ob35 genauer.

    wie genau er das haben will ist aber ne ganz andere sache.
    für diese anwendung wird das aber vermutlich reichen.

    und der vollständigkeit halber der code für den ob1/ob35

    Code:
    U E0.0
    S M1.0
    U E0.0
    U A1.0
    R M1.0
    R A1.0
    Code:
    UN M 1.0
    SPBN m001
    L MW10 //soll*10
    T MW12 //ist
    m001: nop 0
     
    U A1.0
    BEB
     
    L MW12 
    L 10 
    -I
    T MW12
    L 0
    ==I
    S A 1.0
    so und nun werd ich mich auf das spiel vorbereiten
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  7. #17
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    @argv_user

    das die genauigkeit der timer abhängig ist von der zeitbasis, wusste ich.
    das das bei den zeit-ob's auch so ist, ist mir aber neu
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

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

    Standard

    Logisch hast du bei den Zeit-OB's auch eine Unschärfe in höhe der Aufrufzeit,

    weil - schematischer Ablauf:

    1. Du stellst fest, aha jetzt muss ich meine Zeit zählen
    2. Dummerweise war das aber 1ms bevor der OB35 aufgerufen wird, also fehlen dir bei den ersten 100ms 99ms
    3. Dadurch zählst du deinen Zeitwert also zwischen 1 - 99 ms zu früh hoch / runter
    Geändert von MSB (30.06.2006 um 16:04 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).

  9. #19
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard

    Wenn ich eine Stunde stoppe und dabei um 1..99 ms unscharf bin, ist mir dass so ziemlich egal!

    Der OB35 ist ein Interrupt, ich zähle im OB35, also ist die Unschärfe nur bei Abfrage ausserhalb des Interrupts zu erwarten.

    Die Timer hingegen haben IMMER Unschärfe UND Ungenauigkeit, wie oben bereits beschrieben wurde!

  10. #20
    SPS-Klempner ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    30.06.2006
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo nochmal.

    Allen die mir geholfen haben schonmal vielen Dank. Hab mit Hilfe des Programms, das plc_tippser hier zur Verfügung gestellt hat, mal versucht die Ausgänge zu beschalten.
    Der abgelesene, BCD-codierte Zahlenwert soll also so ausgegeben werden, dass einzelne 7-Segment-Anzeigen (3 Stück) angesprochen werden können. Funktioniert aber leider nicht. Wär nett, wenn ihr mal drüberschauen könntet, denn ich bin - wie gesagt - AWL-Laie.

    DANKE!

    [DATA_BLOCK DB 4
    // Anfang
    TITLE =
    AUTHOR : SIMATIC
    FAMILY : IEC_TC
    VERSION : 0.0
    "TON"
    // "TON" - Variablendeklarationsteil
    BEGIN
    IN := FALSE;
    PT := T#0MS;
    Q := FALSE;
    ET := T#0MS;
    STATE := B#16#0;
    STIME := T#0MS;
    ATIME := T#0MS;
    END_DATA_BLOCK
    FUNCTION "Stoppuhr" : VOID
    // VOID: Kein Rückgabewert bei einem Funktionsaufruf
    TITLE =
    VERSION : 0.1
    VAR_TEMP
    // tempöräre Variablen ???
    Start : BOOL ;
    // Start --> #Start --> E0.0
    Not_Used : BOOL ;
    TON_ET : TIME ;
    TON_ET_DINT : DINT ;
    TON_ET_S : DINT ;
    TON_ET_S_BCD : DWORD ;
    END_VAR
    // Ende der Deklaration
    BEGIN
    // Start des eigentlichen Programms
    NETWORK
    TITLE =
    U E 0.0;
    // E0.0 initialisiert #Start
    = #Start;
    NETWORK
    TITLE =
    U #Start;
    // #Start initialisiert Ladevorgang
    = L 18.0;
    // Lade 18.0 ???
    BLD 103;
    // Bildaufbauoperation; wie NOP
    CALL "TON" , DB 4 (
    // Laden der unter "TON" abgelegten Variablen
    IN := L 18.0,
    PT := T#1H,
    // Laufzeit: eine Stunde
    Q := #Not_Used,
    ET := #TON_ET);
    NOP 0;
    NETWORK
    TITLE =
    U( ;
    L #TON_ET;
    // Laden der Time-Variable
    T #TON_ET_DINT;
    // Transfer
    SET ;
    SAVE ;
    // Sichere Verknüpfungsergebnis in "BIE"
    CLR ;
    // Setzte VKE zurück (=0)
    U BIE;
    ) ;
    SPBNB _001;
    // Sprung, wenn VKE=0; VKE ins "BIE"
    L #TON_ET_DINT;
    // Lade
    L L#1000;
    // Lade
    /D ;
    // Division von "#TON_ET_DINT" durch L#1000
    T #TON_ET_S;
    // Transfer
    _001: NOP 0;
    // No Operation
    NETWORK
    TITLE =
    L #TON_ET_S;
    DTB ;
    // wandelt Ganzzahl in BCD
    T #TON_ET_S_BCD;
    NOP 0;
    T MW200;
    // BCD_Wert
    U M 201.0;
    // Ausgabe Einerzahl (E.1)
    = A 4.0;
    U M 201.1;
    // E.2
    = A 4.1;

    U M 201.2;
    // E.3
    = A 4.2;
    U M 201.3;
    // Ausgabe Zehnerzahl (Z.1)
    = A 4.3;

    U M 201.4;
    // Z.2
    = A 4.4;
    U M 201.5;
    // Z.3
    = A 4.5;
    U M 201.6;
    // Ausgabe Hunderterzahl (H.1)
    = A 4.6;
    U M 201.7;
    // H.2
    = A 4.7;
    U M 201.8;
    // H.3 (M 201.8 richtig???)
    = A 5.0;
    END_FUNCTION
    ORGANIZATION_BLOCK "Cycle Execution"
    TITLE = "Main Program Sweep (Cycle)"
    VERSION : 0.1
    VAR_TEMP
    OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
    OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
    OB1_PRIORITY : BYTE ; //Priority of OB Execution
    OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
    OB1_RESERVED_1 : BYTE ; //Reserved for system
    OB1_RESERVED_2 : BYTE ; //Reserved for system
    OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)
    OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
    OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
    OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
    END_VAR
    BEGIN
    NETWORK
    TITLE =
    CALL "Stoppuhr" ;
    NOP 0;
    END_ORGANIZATION_BLOCK]

    Ach so: Versucht zu programmieren hab ich mit Simatic Manager V5.3

Ähnliche Themen

  1. FU über Ethernet ansteuern
    Von CDrews im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 12.01.2011, 20:49
  2. Drucker über SPS ansteuern
    Von blueColt im Forum Simatic
    Antworten: 35
    Letzter Beitrag: 26.09.2010, 12:06
  3. über TP 270 Kamera ansteuern
    Von diver4666 im Forum HMI
    Antworten: 1
    Letzter Beitrag: 12.11.2008, 15:52
  4. Schrittmotor über ET200S ansteuern
    Von Youto im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 02.02.2006, 15:18
  5. Mehrere 315-2 DP über MPI ansteuern?
    Von Anonymous im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 15.12.2005, 15:03

Lesezeichen

Berechtigungen

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