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

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

Thema: SCL Binär Wert in INT ausgeben / Problem

  1. #21
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Schreib vielleicht einmal einen anderen Merker, oder ein freies Bit aus einem DB außen an "Fachbesetzt".
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  2. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Bollek (10.01.2013)

  3. #22
    Registriert seit
    12.10.2010
    Beiträge
    6
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo Bollek.

    das Programm sollte prinzipiell so arbeiten, jedoch 3 Dinge fallen mir auf:
    > in der Hardcopy ist der Eingang Einlagern und Auslagern nicht beschaltet und kann wegen dem Gedächtnis (InstanzDB) jeweil 1 (oder sonstwie sein) sein
    > in der 2. If Abfrage ist in der Zuweisung := True (sollte aber false sein da Auslagern)
    > Die Zuweisung Fachbesetzt sollte m.E. als letzte Anweisung durchgeführt werden und somit das Bit wirklich nach der eventuellen Manipulation deines Programms (wie das auch immer in wirklichkeit aussah) darstellen und dann auch mit dem Status des DBs übereinstimmen.

    Ansonsten: wenn Du SCL nimmst könntest Du auch ohne Pointer arbeiten und direkt symbolisch auf die Fächer (als 2-dim. Array (Reihe/Fach) definiert) zugreifen ...

    Grüsse SHU

  4. Folgender Benutzer sagt Danke zu SHU für den nützlichen Beitrag:

    Bollek (10.01.2013)

  5. #23
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    von der Anmerkung von SHU mal abgesehen (da hat er natürlich Recht) sollte aus meiner Sicht (vor Allem mit der Online-Ansicht dazu) das Ganze wie gewünscht funktionieren.
    In der IF-Abfrage würde ich Fach_besetzt und Einlagern und Auslagern auf TRUE und FALSE (je nach Bedarf - bzw. wenn TRUE erwartet wird gar nicht mehr als Vergleich aufführen und bei False mit NOT und ohne Vergleich arbeiten) vergleichen - das ist aber nur eine Schönheitsheitsgeschichte.

    Bist du dir sicher, dass dein DB mit seinen Bits nicht noch von woanders im Programm beschrieben wird ?

    Wo wird dieser Baustein aufgerufen ? Direkt im OB1 ? Kannst du mal nur den Baustein und nichts weiter im Programm laufen lassen - auch keine Visu ?

    Gruß
    Larry

    Nachsatz:
    Deine DB-Ansicht zeigt mir nicht die Online-Ansicht des DB sondern deine Zuordnung beim Erstellen - das kann ja u.U. abweichen - schalte das bitte mal auf Online ...
    Geändert von Larry Laffer (09.01.2013 um 19:05 Uhr)

  6. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Bollek (10.01.2013)

  7. #24
    Bollek ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.01.2013
    Beiträge
    9
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von SHU Beitrag anzeigen

    > in der Hardcopy ist der Eingang Einlagern und Auslagern nicht beschaltet und kann wegen dem Gedächtnis (InstanzDB) jeweil 1 (oder sonstwie sein) sein
    > in der 2. If Abfrage ist in der Zuweisung := True (sollte aber false sein da Auslagern)
    > Die Zuweisung Fachbesetzt sollte m.E. als letzte Anweisung durchgeführt werden und somit das Bit wirklich nach der eventuellen Manipulation deines Programms (wie das auch immer in wirklichkeit aussah) darstellen und dann auch mit dem Status des DBs übereinstimmen.

    Ansonsten: wenn Du SCL nimmst könntest Du auch ohne Pointer arbeiten und direkt symbolisch auf die Fächer (als 2-dim. Array (Reihe/Fach) definiert) zugreifen ...

    Grüsse SHU
    Hallo ihr da,

    >Ja, das stimmt. Hab es absichtlich erstmal nicht beschaltet, da die IF-Schleifen erstmal herauskommentiert sind bis sich dieses "Fachbesetzt" problem gelöst hat.
    >bereits verbessert. War ein flüchtigkeitsfehler *blush^^
    >Ja, da hast du recht, als richtiger Programmierer sollte man dies so tun. Momentan steht im Programm wirklich nur "fachbesetzt := DB10.DX[k,p];" + die berechnung von k und p

    >Ja wäre wahr. einfacher gewesen. Hab mich da ehrlich gesagt durchgequält und keine Ahnung wie symbolische Zugriffe auf DBs funktionieren. Die Pointer geschichten kamen mir so vertraut vor aus C mit seinen pointern und adressen

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Bist du dir sicher, dass dein DB mit seinen Bits nicht noch von woanders im Programm beschrieben wird ?

    Wo wird dieser Baustein aufgerufen ? Direkt im OB1 ? Kannst du mal nur den Baustein und nichts weiter im Programm laufen lassen - auch keine Visu ?

    Gruß
    Larry

    Nachsatz:
    Deine DB-Ansicht zeigt mir nicht die Online-Ansicht des DB sondern deine Zuordnung beim Erstellen - das kann ja u.U. abweichen - schalte das bitte mal auf Online ...
    Ja bin mir sicher, hab diesen Baustein extra nur für diesen SCL Baustein erstellt.
    Der Baustein wird nicht direkt im OB1 aufgerufen. Im OB1 sind nur zwei FBs drin. Der eine für Manuellen Betrieb der Anlage, der zweite für den Automatischen. Im FB7 (Auto) befinden sich im Prinzip das ganze geschehen (Schrittketten + der SCL Baustein (Organisatorisches Herzstück^^).

    Werde morgen früh mal nur den Baustein laufen lassen. Was meinst du mit Online-Ansicht des DBs ? Sorry, hantiere das erste mal mit DBs und bin noch nicht sehr erfahren im Umgang mit S7.

    Danke für die Hilfen!

    Mfg Bollek

  8. #25
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    von einem DB kannst du genauso eine Online-Ansicht bekommen wie von deinem Programmcode.
    Ich nehme an, dass du zwar irgendwann einmal den DB wie in dem Bild erstellt hast, er aber den Zustand nicht mehr hat.
    Du kannst natürlich auch vor deinem Bausteinaufruf einfach mal hinschreiben :
    Code:
    SET
    = DB10.DBX1.7
    Dann sollte es mit Fachbesetzt vielleicht auch klappen (wenn meine Vermutung hier stimmt) .

    Gruß
    Larry

  9. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Bollek (10.01.2013)

  10. #26
    Bollek ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.01.2013
    Beiträge
    9
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey,

    Larry du hattest Recht. Im Online Modus kam ne neue spalte dazu: "Aktualwert" und dort waren die Bits anders gesetzt... grml.. der ganze ärger wegen so einer trivialen geschichte...
    Jedenfalls funktioniert alles. Sowohl das setzten als auch das löschen durch die IF-Schleifen.

    Bedanke mich bei allen die sich meinem Problem angenommen haben. Ihr macht ne gute Arbeit hier im Forum.
    Thumbs up und weiter so.

    Mfg Bollek

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 03.09.2012, 12:48
  2. Achsbewegung (REAL oder INT) in BOOL ausgeben
    Von MunoRodriguez im Forum CODESYS und IEC61131
    Antworten: 22
    Letzter Beitrag: 26.09.2011, 20:44
  3. Wert über Kurvenanzeige in WinCC ausgeben
    Von Sally88 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 18.11.2010, 14:29
  4. MW mit geringstem Wert ausgeben
    Von PättPit im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 05.06.2010, 18:46
  5. Wert an Analog-Baugruppe ausgeben
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 22.08.2003, 10:18

Lesezeichen

Berechtigungen

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