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

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

Thema: Zählen über Variablen/Datenbank, scheinbar willkürliche Werte

  1. #21
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Der Fehler ist, dass Du Lampe oft verwendest.
    Du müsstest das verodern

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

    Standard

    @René: Puhh, da hast mir aber ganz schön was zum nachdenken gegeben. Vielen Dank schonmal!

    @borromeus: Das probier ich mal aus.

    Also eins steht fest: Bevor ich das nächste Mal irgend ne SPS anfass geh ich auf Fortbildung, egal was Chefchen will.

  3. #23
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Das letzte "= #Lampe" gewinnt klarerweise, egal was davor zugewiesen wurde.
    Du kannst die einzelnen Bedingungen verordern, oder ein kleiner Programmiertrick:
    Bei der ersten Zuweisung mit "= #Lampe" arbeiten.
    Und danach mit "S #Lampe".
    Das bewirkt, dass wenn eine Bedinung erfüllt ist, die Lampe leuchtet.

  4. #24
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Zitat Zitat von morrison Beitrag anzeigen
    @René: Puhh, da hast mir aber ganz schön was zum nachdenken gegeben. Vielen Dank schonmal!
    Es geht mir drum das du den Unterschied siehst zwischen der Art der Zugriffe die du auf den DB machst.

    Du hast das bei dir etwas gemischt (vom ersten Post bis zum letzten):
    Einerseits hast du vollqualifizierte absolutadressierte Zugriffe gemacht "DB1.DBD0"

    Anderseits vollqualifizierte symbolische Zugriffe "DB1".dbd0 (der könnte auch die absolute Adresse DB1.dbd2 haben, darum würde ich bei Symbolen Abstand nehmen von Hinweisen zur direkten Adresse)
    Dann kommt auch keiner auf die Idee über das Symbol auf irgendeine absolute Adresse zu schliessen.

    Und dann noch nichtqualifizierte Zugriffe
    "OPN DB1" Mit direktzugriff auf den geöffneten DB

    Jede dieser Vorgehensweisen hat ihre Berechtigung, man sollte nur wissen wann man welche Nutzen will und warum.

    Für dich als Anfänger empfehle ich dir nur vollqualifizierte Symbolische Zugriffe zu nutzen.
    Es wird dann noch früh genug kompliziert (Pointer)

    mfG René

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

    Standard

    Ich hab heute überall eindeutige Namen vergeben und alles in symbolische und vollqualifizierte Zugriffe geändert, nicht qualifizierte Zugriffe gibts keine mehr.
    Die Lampe-Funktion hab ich mit Merkerbits realisiert, die vor einem Oder hängen.
    Die Merkerdoppelwörter in der Variablentabelle sind nur zum beobachten der Werte da, die übernehmen keine wesentliche Funktion im Programm.

    Die Sache mit den Zugriffen hab ich verstanden, bei den Instanzen häng ich noch. Sind das die Flanken, die du statt den Merkern, die ich bei den positiven Flanken benutzt hab, verwendet hast? Sind Merker eigentlich Global und Flanken nicht? Was unterscheidet Merker und Flanken?
    Und wo wir gerade bei Merkern sind: Warum kann ich MD300 ff. nicht benutzen? Ist der Speicher für irgendwas spezielles reserviert?

    Das Programm läuft jetzt und tut was es soll. Der gravierendste Fehler war die Lampe selber. Die hing mit den Kontakten der Relais auf einem gemeinsamen Nullpotential, was zur Folge hatte, dass sobald der Ausgang für die Lampe geschaltet werden sollte alle vier Eingänge ein Signal bekamen. So konnte der Wert 10 nie überschritten werden. Nachdem ich die Lampe auf ein anderes Nullpotential gehängt hab hats funktioniert.

    Ich hab heute leider meinen Stick inner Firma vergessen, sonst würde ich das Programm nochmal hochladen. Mach ich morgen, dann kann da nochmal jemand drüberschauen.

  6. #26
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Merker sind Speicherstellen. Ueberbleibsel aus der S5 Zeit.
    Flanken sind Funktionen. Eine positiver Flankenmerker stellt dir einfach für einen Zyklus ein True hin wenn der Eingang von 0 nach 1 Wechselt.

    Ob du den Flankenmerker wirklich als Merker deklarierst, als Bit in einem DB ist eigentlich egal.
    DBs sind genauso global wie Merker.
    Das "Flanke_0" bei dem Baustein den ich eingefügt habe ist nur der Name für den Flankenspeicher. Du kannst die auch "Binky" oder "Brain" benamsen. Was darin abgespeicher wird ist nur abhängig von deinem Programm.

    In der Spalte Name, legst du effektiv nur eine Bezeichnung fest die idealerweise darauf hinweist was die Speicherstelle beeinhält.
    "Puls1" ist auch nur ein Name, Bei Datentyp wird dann festgelegt um was es sich effektiv handelt. Hier ist das die Systemfunktion "TP" Also Pulstimer. Oder Bool für ein Bit, oder INT für ein Wortgrosses Integer, oder Word für ein Wortgrosses, genau Wort. Das können aber auch Zeiten, Zeichen etc. sein.

    MD300 ist in einer 314er CPU nicht zugänglich, erst ab einer 315er CPU gibts die Möglichkeit auf MD ab 256 zuzugreifen.
    Die Speichermöglichkeiten sind in der Operationenliste S7-300 ersichtlich. kannste auf der Siemens Supportwebseite runterladen.

    mfG René

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So, nu läufts und tut, was es soll. Ich denk ich lass es so.
    Danke für die Hilfe!

    Relaiste.zip

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 08.05.2011, 19:02
  2. Antworten: 15
    Letzter Beitrag: 04.04.2011, 12:18
  3. Werte von Variablen auslesen und im Quellcode sichern
    Von CST-LS im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 05.07.2010, 10:46
  4. WinCC Flexible Variablen zählen
    Von Fabian228 im Forum HMI
    Antworten: 1
    Letzter Beitrag: 16.03.2010, 11:40
  5. Antworten: 1
    Letzter Beitrag: 25.10.2006, 08:48

Lesezeichen

Berechtigungen

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