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

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

Thema: Wert aus DB in MW schreiben: Hilfe benötigt

  1. #1
    Registriert seit
    14.09.2015
    Ort
    Emmental
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    mit dem Move-Befehl kann ich einen Wert aus einem Datenbaustein schreiben, soweit ist das kein Problem. Nun zum Problem: ich versuche, einen zweiten Wert aus einem anderen Datenbaustein in das gleiche Merkerwort zu schreiben, im gleichen FC. Der Wert verändert sich schon, nur sollte ich keine 0 als Resultat bekommen. Sprich: irgendwo liegt ein Fehler beim Transferieren vor, den ich so nicht finde. Ich kann mir das nicht ergründen, ein Merker kann ja auch in einem beliebigen Netzwerk im gleichen FC gesetzt werden, warum funktioniert das nicht mit einem Merkerwort? Es handelt sich sowohl im DB wie auch beim MW um das Format Integer, also sollten eigentlich keine Probleme von dieser Seite auftreten.
    Verwendete Hardware: CPU 315SB von der Firma Vipa (sehr interessantes Produkt ), OP 277, verbunden via Profibus.

    Hier die beiden Move-Befehle (programmiert mit FUP, angezeigt als AWL)

    Code:
    NW1
          A     "EL"
          A     "NG"
          JNB   _00a
          L     "REF_DB".RB10POS
          T     "RPB10"
    _00a: NOP   0
    
    NW2
          A     "HL"
          A     "NG"
          JNB   _019
          L     "REF_DB2".PB10
          T     "RPB10"
    _019: NOP   0

    Den Wert benötige ich für einen Counter (SFB2, CTUD), mit welchem ich die Position auf einem OP 277 von verschiedenen Elementen ändern kann.

    Code:
    NW3
          A     "CUV"
          A(    
          A     "RS"
          R     "B10S"
          A(    
          A     "B10S"
          L     S5T#500MS
          SE    T     11
          NOP   0
          NOP   0
          NOP   0
          A     T     11
          )     
          S     "B10S"
          A     "B10S"
          )     
          =     L      0.0
          BLD   103
          A     "CDV"
          A     "B10S"
          =     L      0.1
          BLD   103
          A     "NG"
          =     L      0.3
          BLD   103
          CALL  "CTUD" , DB20
           CU  :=L0.0
           CD  :=L0.1
           R   :=
           LOAD:=L0.3
           PV  :="RPB10"
           QU  :=
           QD  :=
           CV  :="POS_BLOCK".B10POS
          NOP   0
    Es geht um eine Umsetzung von Rushhour auf einem Panel, wobei mir abgesehen von dem Problem nur noch ein DB mit Kollisionsdaten fehlt.

    Mfg zingarra
    Geändert von zingarra (14.09.2015 um 14:56 Uhr)
    Zitieren Zitieren Wert aus DB in MW schreiben: Hilfe benötigt  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.326 Danke für 2.688 Beiträge

    Standard

    Zitat Zitat von zingarra Beitrag anzeigen
    ich versuche, einen zweiten Wert aus einem anderen Datenbaustein in das gleiche Merkerwort zu schreiben
    [...]

    Code:
    NW1
          A     "EL"
          A     "NG"
          JNB   _00a
          L     "REF_DB".RB10POS
          T     "RPB10"
    _00a: NOP   0
    
    NW2
          A     "HL"
          A     "NG"
          JNB   _019
          L     "REF_DB2".PB11
          T     "RPB11"
    _019: NOP   0
    Beim zweiten MOVE schreibst Du in eine andere Variable. Sollte das vielleicht ebenfalls "RPB10" heißen?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    zingarra (14.09.2015)

  4. #3
    zingarra ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.09.2015
    Ort
    Emmental
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Harald,

    danke für deine Antwort!

    Was du bemerkt hast, spielt im Grunde genommen keine Rolle, es sind mehrere Move-Befehle im FC für verschiedene Variabeln verwendet, da mir keine Umschaltung des L-Einganges des Move-Baustein's bekannt ist, respektive nicht zwei Variabeln an einen analogen Eingang gelegt werden können. Der Grund für mehrere Move-Befehle im selben FC bezieht sich auf mehrere Objekte, die bewegt werden und je nach Fenster eine andere Grundposition haben.

    Ich werde den Fehler korrigieren, danke das du mich darauf aufmerksam gemacht hast.

    Mfg zingarra

  5. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.326 Danke für 2.688 Beiträge

    Standard

    Zitat Zitat von zingarra Beitrag anzeigen
    da mir keine Umschaltung des L-Einganges des Move-Baustein's bekannt ist, respektive nicht zwei Variabeln an einen analogen Eingang gelegt werden können.
    Was für einen L-Eingang meinst Du? Mit was für einer Software programmierst Du?

    In Siemens Step7 aktiviert man MOVE mit Logik am Eingang EN. Vielleicht gibt es in Deinem Programmiersystem eine SEL-Anweisung (damit kann man zwischen zwei Variablen selektieren)?

    Man kann mehrere MOVE auf die selbe Zielvariable haben, man muß dann aber sinnvoll steuern welcher MOVE ausgeführt (EN-abled) wird. Falls mehrere MOVE auf die selbe Variable ausgeführt werden, dann gewinnt der letzte MOVE - d.h. im Ziel steht der Wert des zuletzt ausgeführten MOVE.

    Bei Deinem NW1 + NW2 ist es z.B. so, daß wenn "EL", "NG" und "HL" alle 1 sind, dann werden beide MOVE ausgeführt. Wenn "NG" 0 ist, dann wird kein MOVE ausgeführt.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #5
    zingarra ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.09.2015
    Ort
    Emmental
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    was den L-Eingang betrifft, ich hab mich wohl verschrieben oder nicht gut nachgeschaut.. Ich nutze schon Step7, jedoch bin ich noch nie wirklich mit Software von Siemens zufrieden gewesen, alles ist so stark ineinander verschachtelt, dass es manchmal schwer wird, gewisse Funktionen zu finden. Ähnlich ist es auch bei Android resp der Touchwiz Oberfläche, das ist aber ein anderes Thema..

    Die Variabeln "EL" und "HL" werden niemals zur selben Zeit gesetzt, darauf habe ich bei der Programmierung geachtet (natürlich auch wieder zurückgesetzt). Der erste Move-Befehel wird auch sauber ausgeführt (NW1) der zweite jedoch (NW2) nicht. Der Ausgabewert ist 0, unabhängig davon, was vorher für ein Wert im MW war. In der Datenbank sind mehrere Werte hinterlegt, ich kann mir das Problem weiterhin nicht ergründen. Es würde mir schon viel helfen, wenn ich den Move-Befehl im Programm beobachten könnte, jedoch ist Siemens anscheinend nicht in der Lage, alle Variabeln und Bausteine mit allen Werten gleichzeitig anzuzeigen, dass ist mir nicht das erste Mal aufgefallen.

    Mfg zingarra
    Eine Maschine wird nie denken wie ein Mensch, Sie ist wesentlich unkomplizierter (auch wenn das Sie ein Widerspruch ist )

  7. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.326 Danke für 2.688 Beiträge

    Standard

    Ein Bild sagt mehr als tausend Worte. Mach doch mal bitte einen Screenshot beim beobachten des Netzwerks, wo Du meinst, daß Dein MOVE nicht richtig ausgeführt wird, und einen Screenshot, wo die Zielvariable dann verwendet wird. Mach das Bild so, daß man die Variablenadressen sieht und sieht, wie die CPU den Programmteil ausführt. Wenn Step7 den Status von FUP-Anweisungen anzeigt, dann klicke mal auf einen Ausgang der Anweisung (also klicke mal auf den Strich am OUT- oder ENO-Ausgang des MOVE). Manche CPU liefern nicht so viele Statuswerte, so daß man das beobachten auf die Umgebung der markierten Stelle fokussieren muß.

    Wird Dein MW vielleicht nach dem MOVE nochmal überschrieben? Hast Du vielleicht Adress-Überschneidungen mit anderen Variablen (wie z.B. MW1, MW2, MB3 und MD0, welche alle teilweise den selben Speicherplatz benutzen)?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #7
    zingarra ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.09.2015
    Ort
    Emmental
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nach etlichen Klicks ist es mir endlich gelungen, den Wert aus dem DB im FC anzeigen zu lassen. Das Resultat ist nicht gerade schön..
    NW2.PNG
    Zum Vergleich das 1 Netzwerk:
    NW1.PNG

    Hier noch den DB4 und das Netzwerk aus einem zweiten FC, in welchem das Merkerwort verarbeitet wird:
    DB4.PNG FC1.PNG

    Das Merkerwort wird nur zwei Mal beschrieben, je mit dem Move-Befehl. Adress-Überschneidungen gibt es keine, sämtliche Merkerwörter haben immer zwei Merkerbyte zur Verfügung (MW100= M100.0-M101.7, nächstes MW ist 102), ich verwende abgesehen von normalen Merkern keine anderen Merkertypen. Nun habe ich durch die ewige Klickerei, bis mir im Netzwerk alle Werte angezeigt wurden, herausgefunden, das der Wert aus dem DB4 aus irgend einem Grund nicht übernommen wird. Der DB ist geladen und die Adresse stimmt auch (Differenzen zum ersten Post des Thread's sind möglich, da ich einige kosmetische Änderungen vorgenommen habe, was den Namen der Variable betrifft). Ich weiss echt nicht, wo sich der Fehler versteckt, ich habe die CPU bestimmt 10 mal neu gestartet und den Move-Befehl aus Adressgründen drei mal neu geschrieben, jedoch hat nichts eine Besserung hervorgerufen.

    Mfg zingarra
    Eine Maschine wird nie denken wie ein Mensch, Sie ist wesentlich unkomplizierter (auch wenn das Sie ein Widerspruch ist )

  9. #8
    Registriert seit
    15.07.2008
    Ort
    Ørting Danmark
    Beiträge
    122
    Danke
    13
    Erhielt 23 Danke für 17 Beiträge

    Standard

    Hallo erstmal,

    die werte stehen bei dir in den Anfangswerten. Hast du den DB initialisiert? Also Anfangswerte in aktual werte übertragen oder gibt es im Programm einen Teil der auf den DB 4 noch schreibt?

  10. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.326 Danke für 2.688 Beiträge

    Standard

    Schau Dir mal die Werte Deiner Variablen DB4.DBW18, DB2.DBW18 und MW18 mit einer Variablentabelle an
    Zielsystem > Variable beobachten/steuern

    Sinnvolle Werte in die DB-Variablen bringen:
    * im SPS-Programm Werte in die Variablen schreiben
    * im offline Projekt DB öffnen
    -- Ansicht > Datensicht
    -- in Spalte "Aktualwert" Werte eintragen
    -- Bearbeiten > Datenbaustein initialisieren --> überträgt alle Anfangswerte in die Aktualwerte

    (die DB-Anfangswerte haben mit den Werten in der SPS nichts zu tun, die werden nur im offline-Projekt verwendet)

    Btw. Deine Bilder sehen mir irgendwie ungewöhnlich aus. Welches Step7 verwendest Du?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. #10
    zingarra ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.09.2015
    Ort
    Emmental
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ja, den DB habe ich initialisiert. Der DB 4 wird nirgends im Programm beschrieben, also bleiben die Werte wie sie sind.

    Ich verwende V5.5, es ist aber gut möglich, dass einer der Lernenden die Farben geändert hat. Ein sehr nützliches Feature, dass muss ich Siemens gestehen.

    Mfg zingarra
    Geändert von zingarra (16.09.2015 um 12:45 Uhr)
    Eine Maschine wird nie denken wie ein Mensch, Sie ist wesentlich unkomplizierter (auch wenn das Sie ein Widerspruch ist )

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 24.09.2013, 18:09
  2. Sonstiges Dringend Hilfe zu 2 AI HS U benötigt !!
    Von MarkusP im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 24.05.2013, 23:19
  3. Hilfe benötigt
    Von Fugger im Forum Simatic
    Antworten: 34
    Letzter Beitrag: 30.03.2012, 13:48
  4. Schnelle Hilfe benötigt
    Von E-Techniker im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.04.2008, 15:06
  5. Hilfe bei Analogwertverarbeitung benötigt
    Von stephan282 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 01.10.2007, 06:59

Lesezeichen

Berechtigungen

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