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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Überwachungszeit über 2 Schrittketten

  1. #1
    Registriert seit
    16.11.2006
    Beiträge
    51
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe zwei getrennte Schrittketten die nacheinander ablaufen,
    Schrittkette "Mischen" und Schrittkette "Verteilen", deren gesamte Zykluszeit ich überwachen soll.

    Gesamte Zykluszeit = Start 1.Kette bis Letzter Schritt 2.Kette

    Dies ist ja soweit noch nicht das Problem.

    Nur es kann folgender Fall eintreten:
    2.Kette ist noch nicht abgearbeitet, neuer Start der ersten Kette. Eben eine neue 2. Mischung
    Zeit 1 ist ja noch am laufen.
    Somit müßte ja dann eine 2te Zeit programmiert werden und dementsprechend richtig gestartet bzw. rückgesetzt werden.

    Hierzu habe ich leider noch nicht die passende Lösung gefunden.
    Hoffe Ihr könnt mir weiterhelfen...

    gruß
    Zitieren Zitieren Überwachungszeit über 2 Schrittketten  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    stelle ich mir in etwa so vor:

    die zeitüberwachung realisierst du über den cpu-takt (z.b. Mx.0; 0,1s), die zeit schreibst du in einen datenbaustein.
    für jede weitere gestartete schrittkette, wird ein weiteres datenwort im db inkrementiert.
    also erfassen, wieviele starts erfolgt sind, dementsprechend viele zeiten laufen lassen...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Registriert seit
    16.11.2006
    Beiträge
    51
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    stelle ich mir in etwa so vor:

    die zeitüberwachung realisierst du über den cpu-takt (z.b. Mx.0; 0,1s), ...
    und mit dem Takt einen Zähler hochzählen lassen, oder wie meinst du das?

  4. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von alonely01 Beitrag anzeigen
    und mit dem Takt einen Zähler hochzählen lassen, oder wie meinst du das?
    genau das mein ich, in etwa so:

    Code:
    *
          U     M     x.0
          FP    M    10.0
          SPBN  end
          L     DB1.DBW 0
          +     1
          T     DB1.DBW 0
    end:  NOP   0
    die nächste gestartete schreibst du dann halt in DBW2. wird parallel zu der ersten hochgezählt.

    auf jeden fall mal indirekte adressierung angucken, da läßt sich sicher was drehen. mit adressversatz je gestarter kette und schleife über die anzahl der ketten...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #5
    Registriert seit
    16.11.2006
    Beiträge
    51
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Das hilft mir schon mal weiter.

    Nur eine Frage bleibt...

    Schritt 1 "Mischen": setzen mischung 1
    Schritt Ende "Verteilen" rücksetzen Mischung 1

    Wie mach ich´s dann, wenn jetz der "Mischung 1"-Merker noch gesetzt ist (Weil Kette 2 noch nicht abgearbeitet ist) und ich eben eine 2.Mischung gestartet bekomme???

  6. #6
    Registriert seit
    24.10.2007
    Ort
    USA
    Beiträge
    815
    Danke
    3
    Erhielt 73 Danke für 57 Beiträge

    Standard

    Zitat Zitat von alonely01 Beitrag anzeigen
    Hallo zusammen,

    ich habe zwei getrennte Schrittketten die nacheinander ablaufen,
    Schrittkette "Mischen" und Schrittkette "Verteilen", deren gesamte Zykluszeit ich überwachen soll.

    Gesamte Zykluszeit = Start 1.Kette bis Letzter Schritt 2.Kette

    Dies ist ja soweit noch nicht das Problem.

    Nur es kann folgender Fall eintreten:
    2.Kette ist noch nicht abgearbeitet, neuer Start der ersten Kette. Eben eine neue 2. Mischung
    Zeit 1 ist ja noch am laufen.
    Somit müßte ja dann eine 2te Zeit programmiert werden und dementsprechend richtig gestartet bzw. rückgesetzt werden.

    Hierzu habe ich leider noch nicht die passende Lösung gefunden.
    Hoffe Ihr könnt mir weiterhelfen...

    gruß
    Wie wäre es mit einer Verriegelung ??
    (eine Kette darf nicht starten solange die andere noch nicht fertig ist)

    Nachtrag: Du kommst auf das gleiche aus, wenn Du einen Timer/ Taktzähler bei der Zeitüberwachung einsetzen möchtest
    Geändert von johnij (29.10.2008 um 10:10 Uhr)
    Partys sind krass, am besten ist das Bier aus dem fränkischen Fass ...
    "Programming today is a race between the programmers and software engineers to create better
    and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
    the universe is winning". - Rich Cook

  7. #7
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von johnij Beitrag anzeigen
    (eine Kette darf nicht starten solange die andere noch nicht fertig ist)
    wir wollen aber ausdrücklich zulassen, dass eine zweite abarbeitung gestartet werden darf.

    stichworte: fifo, ringpuffer, identifikationsnummer

    bei deinem vorhaben solltest du eine eindeutige nummer für jeden start vergeben, welche von schritt zu schritt durchgereicht wird, nur so kannst du sicherstellen, dass die zeit auch richtig gestoppt wird.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #8
    Registriert seit
    16.11.2006
    Beiträge
    51
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    wir wollen aber ausdrücklich zulassen, dass eine zweite abarbeitung gestartet werden darf.
    Stimmt. Es soll unbedingt eine 2.te Abarbeitung gestartet werden dürfen.

    Hab ein wenig rumprogrammiert (an einer Teststeuerung) und bin endlich zu einer Lösung gekommen.
    Danke für die Tipps...

    Gruß
    Robert

  9. #9
    Registriert seit
    03.11.2008
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    so frei ausm bauch raus mit der vergangenen zykluszeit des vorherigen zykluses (kleine ungenauigkeit kann durch mehr code compensiert werden, ich sag nur flanken pos/neg und den zeitpunkt wenn man anfängt zu summieren um nen zyklus zu verschleppen und so ) mit taktmerkern oder gar nur mit zyklen zählen hat das halt mit ZEIT nicht mehr viel zu tun. das ist dann schätzen

    last ob1 scan time --> lastscan int
    sktimer1
    sktimer2 int/dint je nach prozesslänge
    sktimer1_akt
    sktimer2_akt /bool


    [ code ]

    L sktimer1
    L 0
    ==I
    u startsk1 //start schritkette 1
    s sktimer1_akt

    L sktimer1
    L 0
    <>I
    u startsk1
    s sktimer2_akt

    u sktimer1_akt
    spbn _10
    L sktimer1
    L lastscan
    +D
    t sktimer1

    _10:u sktimer2_akt
    spbn _11
    L sktimer2
    L lastscan
    +D
    t sktimer2

    _11:l sktimer2
    L 0
    ==I
    save
    u sk2ende
    spbn _20
    r sktimer1_akt
    l 0
    t sktimer1

    _20:l sktimer1
    l 0
    <>I
    u bie
    u sk2 ende
    spbn _21
    r sktimer1_akt
    l 0
    t sktimer1
    _21:nop 0

    [ /code ]


    den rest spar ich mir. das is eh nur mehr die auswertung der timervariablen. wenn ich jetzt nicht grad nen gedanken hänger hab sollte das fast copy paste gehen. kann höchstens sein das ich mich mit den vergleichen vertue. das prinzip sollte aber klar sein. wenn die sk1 startet und die sk2 noch nicht am ende ist muss man halt die 2te timevariable beginnen hochzusummieren. wenn sk2 beendet wird gibts eh nur 2 möglichkeiten. entweder rennt sk1 schon wieder oder nicht. je nachdem muss man halt die eine oder andere variable deaktivieren. keine notwendigkeit da irgend welche variablen durch schritte zu schleppen. sk2 kann immer nur vor sk1 fertig werden mit der 2ten messung. sk1 kann nie sk2 überholen so wie ich das verstanden hab. eigentlich eh sehr easy code. hab nicht mal ein adressregister bemühen müssen. das is bei meinen codes selten der fall
    Geändert von hpl (03.11.2008 um 05:23 Uhr)

  10. #10
    Registriert seit
    03.11.2008
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von johnij Beitrag anzeigen
    Wie wäre es mit einer Verriegelung ??
    (eine Kette darf nicht starten solange die andere noch nicht fertig ist)
    wohl noch nie ne maschine mit mehreren schrittketten gemacht die sich syncronisieren und gegenseitig abhängig steuern?

Ähnliche Themen

  1. Schrittketten in AWL
    Von Anaconda55 im Forum Simatic
    Antworten: 34
    Letzter Beitrag: 18.11.2008, 13:31
  2. Antworten: 2
    Letzter Beitrag: 05.08.2008, 16:44
  3. Schrittketten
    Von rhazel im Forum Programmierstrategien
    Antworten: 7
    Letzter Beitrag: 06.02.2008, 11:39
  4. Schrittketten
    Von burn-out-heizer im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 23.09.2006, 12:19
  5. Schrittketten = Fehlermeldungen
    Von Hugo-Soft im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 25.11.2004, 08:15

Lesezeichen

Berechtigungen

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