Zykluszeiten auf Leuchtanzeige darstellen

olitheis

Level-1
Beiträge
488
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich benötige etwas hilfe mit einer Zykluszeit-Überwachung bzw. Darstellung.
Also ich soll an unseren Anlagen ein (großes) Display anbringen, auf dem verschiedene Zykluszeiten angezeigt werden sollen, und zwar: die Soll-Zykluszeit und die (ich sage mal) letzten 5 Ist-Zykluszeiten (mit evtl. Alarm bei Überschreitung). Dazu jetzt meine Fragen:
1. wie würde man so etwas programmieren (für eine S7)?
2. kennt jemand einen Herstellerfür solche Anzeigen (LED, LCD,...); 4-5 Zeilen, 10cm hoch (pro Zeile)?
3. Wie kann man diese Anzeigen ansprechen (PB)? Oder gibt es diese Anzeigen schn fertig mit Microprozessro o.ä?
4. Besteht die Möglichkeit die erfassten Zeiten über Lan weiterzugeben?

Es sind viele Fragen, ich weiss, allerdings bin ich etwas ratlos im Moment und hoffe auf eure Hilfe :rolleyes:
Vielen Dank schonmal
Oli
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Fa. Siebert

Hallo,
die Fa. Siebert hat soetwas im Programm. Was du da bauen möchtest ist so eine Art ANDON ein Taktzeitanzeige. Wir haben von diesen Dingern mittlerweile mehr als 100 St. im Einsatz. Betseht aus einer Siebert Anzeige und einer VIPA 115 DIe Anzeige wird über Multiplexen BCD codiert angesteuert.

Gibs aber auch mit Profibus oder schon komplett fertig mit PC.

Einfach mal Anfragen. Es gibt noch mehr Hersteller Wibond ist noch einer und noch weitere deren Namen mir gerade nicht einfällt.

Bei und funktioniert das in etwas so wenn ein bestimmter Ablauf getsartet wird wir eine Vorher eingestellte Zeit heruntergezählt. Wird diese Zeit unterschritten läuft die Uhr im negativen Weiter, man kann genau sehen wieviel zeit verloren gegegangen ist.

ANDON kommt von TOYOTA
 
Hallo olitheis,


zu. 1
Die Zeiten zu stoppen ist wohl das kleinste Problem. Dann ersetze nach 5 zyklen die 1 letzte durch die vorletzte zeit, die vorletzte durch die vorvorletzte etc. (Last in - First out)
zu. 2
Hersteller von Anzeigen wären z.B. auch: http://wibond.de/produkte/d_innen_text.html

Habe mal kurz nachgesehen, bieten Interfaces für diverse Bussysteme an, z.B. auch Profibus oder Ethernet

zu 3.
siehe 2.

zu 4.
wenn du eine S7 hast, brauchst Du dazu einen Ethernet-CP. Dann ist es kein Problem auch beliebige Daten zu versenden. Und wenn Du wirklich Ethernet verwenden musst, kannst Du die Anzeige auch gleich mit Ethernet Interface ansteuern, so kann man noch ein paar Euros sparen weil Du so auch z.B. auf den Profibus verzichten kannst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schonmal vielen Dank für eure Antworten. Der Betriebsleiter war gerade hier und mitr also mitgeteilt, dass diese Anzeigen jetzt realisiert werden sollen.
Wenn ich also die Zeiten auch über Ethernet weitergeben möchte, sollte doch eine Lösung mit VIPA214+Ethernet und einer Leuchtanzeige mit Ethernet Schnittstelle funktionieren. Oder gibt es eine Lösung, die das alles umfasst?
Des Weiteren würde ich mich freuen, wenn mir jemand ein Programmierbeispiel geben könnte. Leider habe ich mit DB's noch nicht viel gemacht:
________________________
Start-Trigger ->
1. Zeit wird gestartet ->
Start-Trigger-->
1. Zeit wird gestoppt und gespeichert (wohin und wie?), 2. Zeit wird gestartet ->
Start-Trigger ->
2. Zeit wird gestoppt und gespeichert, 3. Zeit wird gestartet
usw.
_______________________
Ich würde übergangsweise dann versuchen eine Soll-Zykluszeit und die letzten 5 Zykluszeiten über Wonderware auf einem PC anzuzeigen.

Witerhin müsste ich dann allerdings noch wissen, wie dieses verschieben funktioniert, also dass immer nur die letzten 5 angezeigt werden.

Würde mich freuen, wenn mir jemand hier noch behilflich sein könnte.

@mitchih
könntest Du bitte etwas konkreter erklären, wie ihr das realisiert habt?
Vielen Dank
Oli
 
Code:
NW1  Sekundentakt generieren
 
   UN    "Takt1s"
    L     S5T#1S
    SE    T      1
    U     T      1
    =     "Takt1s"
NW2 Zyklus (sek) hochzählen
 
     U     E      0.0
     U     "Takt1s"
     SPBN  end
     L     MW    10
     L     1
     +I    
     T     MW    10
end:  NOP   0
 
NW3 Aktuelle Zeit in den DB schreiben und 
        weiterschieben
 
  U     E      0.0
      O(    
      L     MW    10
      L     0
      ==I   
      )     
      SPB   end1
      AUF   "ZykluszeitSpeicher"
      L     DBW    8
      T     DBW   10
      L     DBW    6
      T     DBW    8
      L     DBW    4
      T     DBW    6
      L     DBW    2
      T     DBW    4
      L     MW    10
      T     DBW    2
end1: U     E      0.0
      FN    M     20.0
      SPBN  end2
      L     0
      T     MW    10
end2: NOP   0


nur eine Methode,wie man es machen könnte.
wenn man millisekunde braucht kann man ja auch mit der variable OB1_PREV_CYCLE arbeiten
 
Danke für den Code!
Ich denke, ich werde es mit einer Vipa214 NET versuchen, dann habe ich die Option mit der LAN Verbindung. Angefragt habe ich die Leuchtanzeigen bei Wibond und Siebert mit Ethernet TCP/IP Schnittstelle.
Aber ich denke, ich muss nocheinmal auf den Code zurückkommen. Ich hoffe, ihr könnt mich da noch etwas unterstützen. Bisher habe ich auch mit Sprüngen noch nicht wirklich gearbeitet. Ich werde mal versuchen, den Code so zu übernehmen, und bei gelegenheit zu testen.
Nur interessehalber;) , wie sähe denn die Sache in FUP aus (wenn überhaupt so möglich)? Dann steige ich wahrscheinlich auch eher niter den Code.
Vielen Dank nochmal
Oli
 
Zuviel Werbung?
-> Hier kostenlos registrieren
möglich schon, aber ziemlich eklig... lade-/transferbefehle sowie sprünge lassen sich mit fup nicht wirklich schön lösen...
lies dir den code einfach mal in ruhe durch. ist nicht schwierig :)

wie genau gehen deine messungen und wie lang sind die zeiten?
 
Wie schon von PsYchO_LoGiC geschrieben ist diese Lösung ziemlich die einfachste.zumindest die mir einfällt.wenn du dir das mal genauer ansiehst,wirst du es selbst merken.
man könnte es auch flexibler mit pointern lösen,aber dann wäre es auch schwerer nachzuvollziehen.
in FUP sieht es nicht schön aus.lösbar wäre es aber schon
 
OK, werde die Vipa CPU bestellen und mich dann versuchen da reinzuarbeiten. Habe aber noch eine Frage zur Kommunikation SPS-->Ethernet--> LED-Anzeige. Und zwar bietet z. B. Wibond einen "Treiber" für S7-300/400 für 480 Euronen mit an, dessen Beschreibung ich mal hier mit anhänge. Es ist eine Quelle mit verschiedenen FB's, DB's, FC's, von denen ich jetzt nicht wirklich weiß, wie ich damit den Code von Gerhard K anwenden kann, also wie ich z.B. den Inhalt des DBW8 anzeigen kann. Würde mich freuen, wenn ihr vielleicht mal reinschaut, und mir dann sagt, wie und ob es sich mit der VIPA214Net, die ja mit dem Befehlssatz der S7-300 kompartibel ist, realisieren lässt. Ich weiß, dass ist etwas viel verlangt, aber hoffentlich könnt ihr mir weiterhelfen.

ach ja, @PsYchO_LoGiC
da die Anlagen relativ groß sind reicht eine Genauigkeit/Auflösung von 1 Sekunde bei einem Bereich von 0-999 sek.

nochmals vielen Dank
Oli
 

Anhänge

  • Beschreibung_Ethernet-Großanzeigentreiber-MP1585_für_Simatic-S7.pdf
    500,6 KB · Aufrufe: 25
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Code von Gerhard K

Hallo, ich habe heute mal den Code von Gerhard K ausprobiert.Der Sekundentakt läuft soweit, und im MW10 wird auch hochgezählt. Nur das Speichern in die DB's funktioniert nicht.

Code:
NW1  Sekundentakt generieren
 
   UN    "Takt1s"
    L     S5T#1S
    SE    T      1
    U     T      1
    =     "Takt1s"
NW2 Zyklus (sek) hochzählen
 
     U     E      0.0
     U     "Takt1s"
     SPBN  end
     L     MW    10
     L     1
     +I    
     T     MW    10
end:  NOP   0
 
NW3 Aktuelle Zeit in den DB schreiben und 
        weiterschieben
 
  U     E      0.0
      O(    
      L     MW    10
      L     0
      ==I   
      )     
      SPB   end1
      AUF   "ZykluszeitSpeicher"
      L     DBW    8
      T     DBW   10
      L     DBW    6
      T     DBW    8
      L     DBW    4
      T     DBW    6
      L     DBW    2
      T     DBW    4
      L     MW    10
      T     DBW    2
end1: U     E      0.0
      FN    M     20.0
      SPBN  end2
      L     0
      T     MW    10
end2: NOP   0
Hierzu habe ich folgende Fragen:
1. Wofür steht AUF "Zykluszeitspeicher"? Was muss ich dafür einsetzen?
2. Kann ich das mit den DB's genau so runterprogrammieren, oder muss ich erst im Simatic Manager z. einen DB1 anlegen und dementsprechend heißen dann die DB's dann DB1.DBW2,4,6 usw?? Oder wie bekomme ich die Zeiten in DB's geschrieben?
Wäre toll, wenn mir nochmal jemand helfen könnte.
Danke
Oli
 
hallo olitheis!

du musst vorher einen db anlegen. diesen öffnest du mit der AUF funktion. der vorteil dabei ist, dass du eben nicht jedes mal db1.dbw0, db1.dbw2 und so schreiben musst. du kannst so direkt auf die wörter, bits und bytes zugreifen (so wie in deinem programm).

kleiner tip noch: wenn du mal eine anweisung nicht kennst (wie hier AUF), kannst du sie anklicken und dann f1 drücken. so bekommst du die passende hilfe zu dem befehl. hilft ab und zu doch mal weiter :)

mfg
 
Zuletzt bearbeitet:
Hallo olitheis!!
es ist genauso wie es PsYchO_LoGiC geschrieben hat.
"ZykluszeitSpeicher" ist nur die symbolische bezeichnung meines db´s.
wenn du einen anlegst und die dazugehörigen 10 datenwörter dann funkt das ganze auch.
gruß gerhard
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok, wenn ich das also richtig verstanden habe, dann muss ich mir z.B. einen DB(10) neu anlegen. So weit so gut, aber wie lege ich dann im DB die weiteren 10 Datenwörter an? Also wie kann ich in einem DB "Adresse, Name, Typ usw. anlegen? Leider hänge ich dort schon wieder.
Danke euch
olitheis
 
Du mußt den DB öffnen-> in der spalte namen gibst du z.b.:"zyklus" ein
bei der spalte typ "array[1..20]"wenn du 20 brauchst wenn mehr dann eben eine andere zahl.
dann drückst du enter-> und in der nächsten zeile bei typ gibst du "int" ein,oder was für einen typ du auch immer brauchst.
hoffe es hilft dir weiter

PS: die adresse wird automatisch nach typ vergeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
die roten INT weg und dann ist es gut.und dann die ansicht von deklarationsansicht auf datenansicht umschalten.
 

Anhänge

  • Clipboard01.jpg
    Clipboard01.jpg
    19,9 KB · Aufrufe: 9
Zuletzt bearbeitet:
wenn du das willst,darfst du kein array machen,sondern jedes dbw eigens
anlegen.
z.bsp: 0.0 drehtisch int
2.0 stappelstation int
usw.
mußt du dann halt eintippen
 
Zurück
Oben