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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 29 von 29

Thema: Auswertung eines Bits für 2 funktionen

  1. #21
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Der Dreschi Beitrag anzeigen
    Wenn ich das aber in ne 300 er reindattel, sollte das doch auch gehen zum testen oder gibts da die systemmerker in dem sinn nicht? Vlt sollte ich mir zum testen noch ne CPU holen
    Das Systemmerkerbyte gibt es in der Tat bei der 300er nicht.


    Dort muss man einen Neustart der CPU entweder über den OB100 oder über die Temp-Variable "OB1_SCAN_1" im OB1 erkennen und dann an den FB weitergeben.

    Dazu die Kapselung des FB's ganz komplett machen (globales Systemmerkerbit auch noch aus dem FB herausnehmen):









    und der Aufruf im OB1 der 300er könnte dann z.B. so aussehen:
    (bevor man den FB von der 1200er zur 300er kopiert, muss der optimierte Bausteinzugriff in den Eigenschaften "Attribute" abgeschaltet werden)

    Geändert von hucki (07.07.2013 um 09:25 Uhr) Grund: Falsches Bild 3 korrigiert

  2. #22
    Registriert seit
    19.01.2012
    Ort
    Mitte Deutschlands
    Beiträge
    77
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für deine mühe Hucki,
    ich glaube ich bleibe bei der 1200er und besorg mir noch eine als Übungsgerät. An der Arbeit haben wir halt noch keine 1200er im Einsatz und zuhause habe ich keine 300er.

    Edit: Außer an der Anzahl der Ein/Ausgänge unterscheiden sich doch die 1211 und 1212 nicht großartig oder?
    Geändert von Der Dreschi (07.07.2013 um 12:01 Uhr)

  3. #23
    Registriert seit
    19.01.2012
    Ort
    Mitte Deutschlands
    Beiträge
    77
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe das ganze jetzt noch ein wenig verändert, jetzt sollte ich doch den Baustein so oft nutzen können wie ich möchte oder?Projekt32.zip

  4. #24
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von Der Dreschi Beitrag anzeigen
    ... jetzt sollte ich doch den Baustein so oft nutzen können wie ich möchte oder?
    Definitiv nicht!

    Einfacher Indiz dafür - Verwendung von globalen Merkern als Flankenmerker und/oder (globale) Einzelinstanz für Timer/Counter verhindern den Mehrfachaufruf!

    Wenn ein Baustein mehrfach aufgerufen werden soll, muss jeder Aufruf seine Daten unabhängig von den anderen Aufrufen speichern können. Wird z.B. ein globaler Merker als Flankenmerker verwendet, würde jeder Aufruf auf die gleiche Speicherzelle zugreifen und die Flankenerkennung wäre nicht mehr unabhängig voneinander möglich. Genauso ist es mit den Einzelinstanzen von Timern/Countern. Jeder Aufruf würde wieder auf den gleichen DB zugreifen und damit die anderen Aufrufe beeinflussen/überschreiben.

    Der globale Systemmerker "First Scan" (hier M0.0) ist wie gesagt eine der berühmten Ausnahmen von der Regel, weil auf diesen auch nicht schreibend zugegriffen werden soll. Es kann natürlich auch schreibende Ausnahmen geben, wie vlt. ein Zähler, der bei jedem Aufruf des Bausteins weiter zählen soll.

    Doch im Normalfall sollten sich mehrfache Aufrufe nicht untereinander beeinflussen, also nicht die gleichen Daten verändern.
    Das wird dadurch ermöglicht, das jeder Aufruf des FBs seinen eigenen DB erhält, in dem er seine Daten bis zum nächsten Zyklus ablegt. Die Daten darin werden dann nicht von den anderen Aufrufen des FBs (im gleichen Zyklus) beeinflusst.



    Du musst für diese Nichtbeeinflussung also folgende Punkte noch umsetzen:
    Zitat Zitat von hucki Beitrag anzeigen
    1. Verwende ich als Flankenmerker für die negative Flanke des Timers einen Merker. In einem FB ist es aber besser, dafür eine lokale statische Variable vom Typ BOOL zu verwenden.

    2. Der Timer hat jetzt einen eigenen Instanzdatenbaustein. Da er aber in einem FB verwendet wird, ist es m.M.n besser, diese Instanz in die Instanz des FBs mit einzubetten. Man spricht dann von einer Multiinstanz.
    Den Flankenmerker musst Du manuell unter den statischen Variablen der Schnittstelle erstellen und dann im Netzwerk 2 unter der negativen Flankenerkennung angeben.

    Beim Timer kannst Du die Art der Instanzierung über das Kontextmenü ändern. Im Fenster "Aufrufoptionen", das beim Klick auf "Instanzändern" erscheint, von Einzel- auf Multiinstanz umschalten, aussagekräftigen Namen eingeben und den Rest erledigt dann TIA.


    Zum Vergleich hast Du ja meine Screenshots und vlt. fällt es Dir doch einfacher, wenn Du auch das Projekt in Natura ansehen kannst :
    Angehängte Dateien Angehängte Dateien

  5. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    Der Dreschi (10.07.2013)

  6. #25
    Registriert seit
    19.01.2012
    Ort
    Mitte Deutschlands
    Beiträge
    77
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe da noch eine frage , da ich mit dem programmieren ja einige Probleme habe, gibt's da eine vernünftige Lektüre wo anhand von Beispielen Sachen erklärt werden.

  7. #26
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Gibt es sicher. Hier im Forum wurden schon einige Sachen empfohlen.
    Benutz' doch bitte mal die Suche dafür.





    Noch etwas mehr OT:

    Was mir am meisten geholfen hat, war das Wachsen an einem realen Projekt, bei dem ich auch nicht unter Zeitdruck stand. Ich hatte eine Vakuumanlage von unserem Schweizer Partner, in der die 200er CPU unserer Meinung nach eher suboptimal programmiert war. Also hab' ich begonnen, ein Programm nach unseren Vorstellungen zu entwickeln, das aber auch den Schweizer Vorgaben entsprach.
    1000x bessser als Ampelschaltungen.



    Aber ich bin auch ehrlich - ohne die Teilnahme an einem 3-monatigen Grundkurs hätte ich persönlich den Einstieg nur durch autodidaktisches Lernen nicht geschafft!
    Allerdings war's auch niedlich, dass der Lehrer immer Schwierigkeiten hatte, meine Programme zu lesen, da er nun mal FUP gewohnt war, ich aber als Elektriker mit KOP besser klar kam. Erst mit den AWL-Sachen war er bei mir wieder glücklich.
    Als ich dann aber nach 2 Monaten die 200er mit zur Schule brachte, war's dann doch wieder mehr ein Selbststudium. Wenigstens konnte ich für das Panel noch ein paar Starttips mitnehmen.

  8. #27
    Registriert seit
    19.01.2012
    Ort
    Mitte Deutschlands
    Beiträge
    77
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,
    Vorkenntnisse sind ja vorhanden, nur sei dazu gesagt. Wir brauchen nix programmieren, wir sollen nur dafür sorgen das die Maschinen in der Firma laufen. Wenn man sich dann mit den Programmen mal auseinander setzte gibts gewaltige Unterschiede wie das die verschiedenen Hersteller umgesetzte haben. Die einen liebt man, die anderen ...Wenn man die vorgesetzen fragt wegen Schulung, ja, müssen wir mal schauen bekommt man als Antwort und das wars.
    Habe mir mal an der Arbeit zwischendurch die alten Schulungsordner von der 300er rausgesucht, zum nachlesen. Aber das was man wissen möchte, steht dann immer nicht da drin und die Hilfe hilft mir dann auch nicht so, wie ich das eventuell möchte. Programmierkenntnisse sind bedingt vorhanden, gab halt mal Kurse bei Siemens, nennen sich Serv 1+2, nur das was da vermittelt wurde, das brauch ich nicht alles wissen.
    Werde mir wie gesagt ne zweite CPU besorgen, damit meine Funktionen testen und dann damit mein Projekt zuhause erweitern damit. Warum ich keine S7 300 nehme, ich möchte später den Webserver noch nutzen von der s7 1200.
    Dann werde ich mal die Boardsuche benutzen und dann meld ich mich wieder.

  9. #28
    Registriert seit
    19.01.2012
    Ort
    Mitte Deutschlands
    Beiträge
    77
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Hucki,
    heute ist meine CPU gekommen zum Testen. Habe meine Box angeschlossen und probiert,etzt konnte ich das ganze wenigstens auch mal beobachten was da passiert. Es funktioniert(das aus dem obersten Beitrag auf der Seite) Vielen Dank nochmal.
    Das nächste Projekt wartet

  10. #29
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Der Dreschi Beitrag anzeigen
    Es funktioniert(das aus dem obersten Beitrag auf der Seite)

    Da steht bei mir Deine Threaderöffnung, weil bei mir 40 Beiträge je Seite angezeigt werden!
    Aber ich vermute mal, Du meinst Post 21, oder?

    However, your welcome!

  11. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    Der Dreschi (17.07.2013)

Ähnliche Themen

  1. InstanzDB: IN(INT), Auswertung der Bits...
    Von AndreK im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 07.11.2012, 12:33
  2. Auswertung eines Zählwerts
    Von 4nD1 im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 25.03.2011, 06:43
  3. Zugriff auf einzelne bits eines Realwerts
    Von Züttu im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 12.01.2011, 08:22
  4. Auswertung eines analogen Signals
    Von Rübezahl im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 26.09.2008, 22:46
  5. Antworten: 6
    Letzter Beitrag: 14.11.2006, 13:11

Lesezeichen

Berechtigungen

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