Mit einem E/A-Feld auf mehrere DB-Einträge zugreifen (TIA V13 WinCC Advanced)

ThorstenSt

Level-1
Beiträge
89
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte über ein E/A-Feld auf verschiedene DB-Einträge lesend und schreibend zugreifen.
Habe leider noch nicht viel Erfahrung mit WinCC flex o.ä.

Meine Idee war bisher das ich aus einem Zahlenwert mir einen Pointer baue der auf den Gewünschten Eintrag im DB zeigt.

Code:
      L     #Werkzeugnummer
      L     4
      *I                         // Die DB-Einträge sind als DINT deklariert
      SLD   3
      LAR1                       // im Pointer steht nun die Adesse drinnen auf die ich zugreifen möchte
      AUF    DB34                    // DB mit den Daten
      L      DBD [ AR1 , P#0.0 ]      // Lade Aktuellen Wert aus DB
      T     #HMI_E/A             // und übertrage ihn zum E/A Feld
      L     #HMI_E/A             // Lade aktuellen Wert vom E/A Feld
      T     DBD [ AR1 , P#0.0 ]      // Übertrage aktuellen Wert zum DB

Kann das so funktionieren? Habe da so das gefühl da beißt sich die Katze in den Schwanz ;)

Als Hardware verwende ich ein KTP1200 Basic (2. Generation).

Gibt es unter TIA V13 WinCC Advanced vielleicht eine Funktion die sowas vereinfacht?

lg
Thorsten
 
Zuletzt bearbeitet:
Ich denke mal so geht das noch nicht, du schreibst #HMI E/A und liest es sofort zurück, da hat das HMi kaum eine Chance seinen Wert zu schreiben.

Ich schreibe die in der SPS aus dem DB gelesene Variable einmalig (bei Bildaufruf und/oder mit einer Taste Load) in einen HMI-DB.
Dann hat man Zeit, in der HMI den Wert zu ändern.
Ist man Fertig, dann Taste Speichern oder bei Bild verlassen, zurückschreiben von HMI_DB in den normalen DB.
Laden und Speichern sind bei mir Bits aus der HMI, die in der SPS dann das Umkopieren der Daten auslösen.
Hat den Vorteil, dass man im HMI ändern kann und wenn man es sich vertan hat, kann man einfach noch einmal laden drücken und bekommt die (noch nicht geänderten) Werte aus der SPS noch einmal geladen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da habe ich aber das Problem das man nicht sieht ob man vergessen hat auf Speichern zu klicken. Aber vielleicht man man das auch auschließen mit Bildwechsel o.ä.

Ich hätte das gern so das wenn man auf einen Werkzeugplatz klickt (Schaltfläche) im E/A Feld der Aktuell gespeicherte Wert angezeigt wird und dieser dann durch anklicken des E/A Feldes geändert werden kann....dannach sollte man den nächste Werkzeugplatz anklicken können usw.


Habe allerdings noch das Problem wenn man ein E/A Feld anklickt, den Wert eingibt und auf Ok klickt...immernoch der letzte Wert drinnensteht und sich erst beim Klicken auf ein anderes Objekt aktualisiert!?
Der Wert in der Variablen ändert sich sofort...nur eben Visuell nicht, das verwirrt immer etwas ;)
 
Zuletzt bearbeitet:
Die Vorgehensweise hat aber den Vorteil dass du keine Zwischenzustände hast, wenn einer mal am aktiven Datensatz was ändert.

Was für ne CPU is es denn?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es handelt sich um eine IM151-8F.
Werd es auch erstmal so machen und schauen wie es in der Praxis so klappt.

Sind deine Variablen auf "zyklisch fortlaufend" eingestellt oder auf "zyklisch bei Verwendung"?

Stehen alle auf "Zyklisch im Betrieb" "1s"
 
Zuletzt bearbeitet:
Habe allerdings noch das Problem wenn man ein E/A Feld anklickt, den Wert eingibt und auf Ok klickt...immernoch der letzte Wert drinnensteht und sich erst beim Klicken auf ein anderes Objekt aktualisiert!?
Der Wert in der Variablen ändert sich sofort...nur eben Visuell nicht, das verwirrt immer etwas ;)
Arbeitest Du mit einer Rezeptur? Oder ist das E/A-Feld auf Modus "Eingabe" eingestellt? Das muß auf "Eingabe/Ausgabe" stehen.
(Hmm, wo kann man bei der Eingabe in ein E/A-Feld auf "OK" klicken?)

ich möchte über ein E/A-Feld auf verschiedene DB-Einträge lesend und schreibend zugreifen.
Wieviele verschiedene Werte willst Du bearbeiten?
Das ist eigentlich eine typische Anwendung für Variablen-multiplexen. Schau mal in der TIA-Hilfe unter "Indexvariablen".

Harald
 
Ich Arbeite mit einem normalen E/A-Feld welches auf Ein/Ausgabe steht.

Wenn man am HMI auf ein E/A-Feld klickt öffnet sich die Bildschirmtastatur wo man den Wert eingibt und anschließend das eingegebene mit "Ok" Bestätigt. Und da ist es unschön das zwar der Wert ansich übergeben wird...das E/A-Feld bleibt aber noch makiert und man sieht Visuel keine änderung...erst wenn man ein anderes Element anklickt (Hintergrund anklicken birngt auch nichts)


Es sind insgesammt 28 Werte (je DINT) die ich entsprechend zuordnen und speichern möchte.
Werde ich mal in der Hilfe schauen, danke dir.
Die Funktion ist bei Basic-Panels leider nicht verfügbar ;) (oder in finde es nicht) aber das wäre genau das was ich bräuchte.

EDIT: glaube das geht doch :D

EDIT 2: Wieder etwas dazugelernt! Mit Variablen Multiplexen funktioniert es so wie ichs möchte und total unkompliziert!
 
Zuletzt bearbeitet:
Zurück
Oben