Step 7 10 Werte ins DB eintragen

deadmeachine

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

ich habe eine Anzeige mit dem KTP 600 projektiert bei der eine Zahl zwischen 1-10 eingegeben werden kann, durch drücken eines Buttons ( "db_hmi".Wert.uebernehmen ) , der zugewiesene Wert ausgegeben wird.
Die 10 Werte werden in einen Datenbaustein eingetragen.

Zum Beispiel: Wert 1
U "db_zahlen".zahl_5 // Taste 5
SPBN _005
L 5
T "db_hmi".ea_feld.eingabe // Eingabefeld
SET
R "db_zahlen".zahl_5
_005: NOP 0
//---------------
U "db_hmi".Wert.uebernehmen // Button Übernehmen
SPBN _101

L "db_hmi".ea_feld.eingabe
T "db_hmi".ea_feld.ausgabe
T "db_werte".Wert_1 // Datenbaustein für Werte

SET
R "db_hmi".Wert.uebernehmen

_101: NOP 0

Immer durch drücken des Buttons - "db_hmi".Wert.uebernehmen - wird - "db_hmi".ea_feld.ausgabe - ins - "db_werte".Wert_1 bzw "db_werte".Wert_2...."db_werte".Wert_10 eingetragen.

Ich habe es so gemacht:


U "db_hmi".Wert.uebernehmen
UN "hm_wert_2"
UN "hm_wert_3"
UN "hm_wert_4"
UN "hm_wert_5"
UN "hm_wert_6"
UN "hm_wert_7"
UN "hm_wert_8"
UN "hm_wert_9"
UN "hm_wert_10"
SPBN _101
L "db_hmi".ea_feld.eingabe
T "db_hmi".ea_feld.ausgabe
T "db_werte".Wert_1
SET
R "db_hmi".Wert.uebernehmen
S "hm_wert_2"

_101: U "db_hmi".Wert.uebernehmen
U "hm_wert_2"
UN "hm_wert_3"
UN "hm_wert_4"
UN "hm_wert_5"
UN "hm_wert_6"
UN "hm_wert_7"
UN "hm_wert_8"
UN "hm_wert_9"
UN "hm_wert_10"
SPBN _102
L "db_hmi".ea_feld.eingabe
T "db_hmi".ea_feld.ausgabe
T "db_werte".Wert_2
SET
R "db_hmi".Wert.uebernehmen
R "hm_wert_2"
S "hm_wert_3"
_102: U "db_hmi".Wert.uebernehmen
UN "hm_wert_2"
U "hm_wert_3"
UN "hm_wert_4"
UN "hm_wert_5"
UN "hm_wert_6"
UN "hm_wert_7"
UN "hm_wert_8"
UN "hm_wert_9"
UN "hm_wert_10"
SPBN _103
L "db_hmi".ea_feld.eingabe
T "db_hmi".ea_feld.ausgabe
T "db_werte".Wert_3
.
.
.

usw bis Wert 10 eingetragen wird.

Meine Variante ist ziemlich lang und kompliziert.
Gibt es eine andere bzw. einfache Lösung?

Simatic S7 - 300
600 Basic Mono PN

Vielen Dank

deadmeachine
 
Zuletzt bearbeitet:
Geht das nicht alles in der HMI? Mit "SetzeVariable" kann ich doch Zielvariablen sowohl mit Konstanten als auch mit Quellvariablen füllen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich habe keine Ahnung was Du genau willst.

Du hast einen DB, gut.
Du hast ein TP.
Du hast am TP einen Eingabewert, da gibst Du was zwischen 1 und 10 ein.
Du willst nun am TP anzeigen welchen Inhalt der DB an der Speicherstelle des Eingabewertes hat.
Ist das so richtig?
Welches Format haben die Werte im DB, Real, Int, .... ?
 
Also ich habe keine Ahnung was Du genau willst.

Du hast einen DB, gut.
Du hast ein TP.
Du hast am TP einen Eingabewert, da gibst Du was zwischen 1 und 10 ein.
Du willst nun am TP anzeigen welchen Inhalt der DB an der Speicherstelle des Eingabewertes hat.
Ist das so richtig?
Welches Format haben die Werte im DB, Real, Int, .... ?

Also ich möchte einfach die 10 Werte in einem Datenbaustein speichern. (siehe bild 1)
Ich habe einen Eingabefeld und Ausgabefeld.
Wenn ich Übernehmen drücke wird Zahl von Eingabefeld ins Ausgabefeld transferiert.
Und gleichzeitig ins DB ( Wert 1 ) gespeichert

z.Bsp

Eingabefeld : 5
// ich drücke Übernehmen
Ausgabefeld : 5
Wert 1 : 5

Eingabefeld : 10
// Ich drücke Übernehmen
Ausgabefeld : 10
Wert 2 : 10

usw...
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    17,3 KB · Aufrufe: 22
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich möchte einfach die 10 Werte in einem Datenbaustein speichern. (siehe bild 1)
Ich habe einen Eingabefeld und Ausgabefeld.
Wenn ich Übernehmen drücke wird Zahl von Eingabefeld ins Ausgabefeld transferiert.
Und gleichzeitig ins DB ( Wert 1 ) gespeichert

z.Bsp

Eingabefeld : 5
// ich drücke Übernehmen
Ausgabefeld : 5
Wert 1 : 5

Eingabefeld : 10
// Ich drücke Übernehmen
Ausgabefeld : 10
Wert 2 : 10

usw...

OK. und was passiert wenn ich nochmal Übernehmen drücke, nach dem zehnten Wert?
 
Was Du brauchst geht so:

Code:
      U     "Übernahmetaste"
      FP    M     10.0
      SPB   NW
      SPA   END
NW:   NOP   0
      L     "Pointer"
      SLD   4
      LAR1  
      L     "Eingabewert-TP"
      AUF   DB     1
      T     DBW [AR1,P#0.0]
      T     "Ausgabewert-TP"
      L     "Pointer"
      L     1
      +I    
      T     "Pointer"
      L     10
      <I    
      SPB   END
      L     0
      T     "Pointer"
END:  NOP   0

Edit: OK habe die Info nicht gehabt was danach passieren soll
 
Zuletzt bearbeitet:
Zurück
Oben