Indirekt in Datenbaustein schreiben

Ähm, was meinst du Paule?

SLD 3 macht einen Pointer aus dem Satzzähler.
Bleibt noch ein weiters SLD 3, was rechnerisch bedeutet 3 mal mit 2 Multiplizieren

2*2*2, also 8

Macht für der Satzzähler nun

1 *2*2*2 = 8
2 *2*2*2 = 16
3 *2*2*2 = 24
4 *2*2*2 = 32
5 *2*2*2 = 40
...

Lieg ich falsch?

@Gina_Jin

Du hattest dich verschrieben
8,16,22,30 muß heißen 8,16,24,32
Hallo Ralle,
Was meinst du verschrieben?
Dies hatte ich geschrieben
"SLD 6 Springt der Zeiger nicht 8, 16, 24,32......"

Ich habe es heute in den Testschrank einprogrammiert, leider
springt zähler auf 8,16,24,32,......Usw.






Fener habe ich festgestellt das ich SLD 7 also 16 Sprünge brauche.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du erstellst dir in deinem Projekt einen UDT, meinetwegen den UDT1 "Datensatz". Dann erstellst du dir deinen DB. vergibst den Namen den die Datensätze von 1 bis 600 haben sollen. z.B "Messwert", als Typ schreibst du nun

Code:
Array[1..600]

damit definierst du das es den "Messwert" als Array von 1 bis 600 gibt. Wenn du jetzt mal Enter drückst springt der Cursor automatisch in die Zeile unter dem Array, hier musst du den Typen für das Aaray angeben und in deinem fall schreibst du nun deinen UDT1 hin.

In der Deklarationssicht steht damit nur eine Variable in deinem DB. Der array des UDT1 von 1 bis 600. Gehst du nun in die Datenansicht. siehst du jeder einzelnen Wert.

Hallo,
Dein Baustein habe ich so aufgebaut, aber leider funktioniert der sprung nicht 8,16,32, usw.
 
Mit dem SLD 6 ist es richtig gewählt, Ich möchte die Werte

1 Datensatz
T1 in DW8 // 1 satz SLD 6 hier laden und reinschreiben
T2 in Dw10
T1+T2 Dw12

2 Datensatz
T1 in DW16 // 2 satz SLD 6 hier laden und reinschreiben
T2 in Dw18
T1+T2 Dw20

3 Datensatz
T1 in DW22 // 3 satz SLD 6 hier laden und reinschreiben
T2 in Dw24
T1+T2 Dw26

4 Datensatz
T1 in DW30 // 4 satz SLD 6 hier laden und reinschreiben
T2 in Dw32
T1+T2 Dw34

Usw. 600

Danke in Vorraus !

Das hattest du in einem späteren Post geschrieben. Da springst du auf
DBW8, DBW16, DBW22, DBW30
Im ersten Post war es DBW8, DWBW16, DBW32, DBW40.
Der Abstand zwischen den Datensätzen ist immer gleich, wegen der Berechnung aus dem Satzzähler.

Wenn du SLD 7 nimmst, dann liegt dein
1. Datensatz bei 16
2. Datensatz bei 32
3. Datensatz bei 48

usw.
 
Zuletzt bearbeitet:
Indirekt schreiben DB

Hallo zusammen,
:TOOL:
Sorry das ich viel geschrieben habe


Ich brauch eure Hilfe, ich habe alles programmiert.
Ich habe alles versucht leider kein Erfolg :confused:

Ich habe folgendes Festgestellt:

1. Ich benötige DB100. DBD

2. Die Werte sollen z.B. 3.5 Sek (Komme) angezeigt werden „Real ?“

  • In DBD 2 ( T1 als Real) DBD 6 ( T2 als Real) DBD 10( T3 als Real) werden die Zeit gepuffert
  • Diese Werte möchte ich schreiben DBD s.u.
  • DW0 ist Datensatzzähler
DW0 =1 steht soll er die Daten von Punkt 3 die Daten in den Datensatz 1
platzieren
DW0 =2 von Punkt 3 die Daten in den Datensatz 2 platzieren
DW0 =3 von Punkt 3 die Daten in den Datensatz 3 platzieren
DW0 =4 von Punkt 3 die Daten in den Datensatz 4 platzieren

usw..

  • Und wie muss ich de UDT, Datenbaustein aufbauen um die Sprünge realisieren kann?
1 Datensatz
T1 in Dbd16 // 1 satz SLD 7 hier laden und reinschreiben
T2 in DBD20
T1+T2 DBD24
DBD28-> DBD31 Reserve


2 Datensatz
T1 in DBD 32 // 2 satz SLD 7 hier laden und reinschreiben
T2 in DBD 36
T3 in DBD 40
DBD44-> DBD47 Reserve
3 Datensatz
T1 in DBD 48 // 3 satz SLD 7 hier laden und reinschreiben
T2 in DBD 52
T3 in DBD 56
DBD60-> DBD63 Reserve
4 Datensatz
T1 in DBD 64 // 4 satz SLD 7 hier laden und reinschreiben
T2 in DBD 68
T3 in DBD 72
DBD76-> DBD79 Reserve

Usw…. bis 300 Datensatz

Mein Programm Vorschlag:

U M 1.0
FP M 1.1
SPBN END
AUF DB 100
SLD 7
LAR1
L DBD 2
T DBd [AR1,P#0.0]
L DBD 6
T DBD [AR1,P#4.0]
L DBD 10
T DBD [AR1,P#10.0]
L DBW 0
L 1
+I
T DBW 0
L 600
>I
SPBN END
L 1
T DBW0

END: NOP 0


Wäre Super wenn Ihr mir helfen könntet.

Ihr seit alle Super gut drauf,

:TOOL:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das hattest du in einem späteren Post geschrieben. Da springst du auf
DBW8, DBW16, DBW22, DBW30
Im ersten Post war es DBW8, DWBW16, DBW32, DBW40.
Der Abstand zwischen den Datensätzen ist immer gleich, wegen der Berechnung aus dem Satzzähler.

Wenn du SLD 7 nimmst, dann liegt dein
1. Datensatz bei 16
2. Datensatz bei 32
3. Datensatz bei 48

usw.
Hallo Ralle,

siehe bitte mein mein neuen Beitrag bitte.
 
Also es haben dir inzwischen schon einige erklärt wie es mit einer UDT und DB geht.

So wie ich es dir beschrieben habe, eben statt INT eben REAL verwenden.
Wir hatten hier schon öfter das Thema, für Geld machen wir alles.

Und dann gibt hier im Forum eine super gute Beschreibung was Pointer sind und wie diese zu verwenden sind.

Viel Erfolg

bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Gina,
was ich jetzt hier so raus lese willst Du immer denselben Datensatz in ein anderes Ziel kopieren.
Dein Code macht dass doch fast, außer das Du nie die Zieladresse berechnest:
Code:
[COLOR=black][FONT=Verdana]   U M 1.0[/FONT][/COLOR]
[FONT=Verdana][COLOR=black]   FP M 1.1 [/COLOR][/FONT]
[COLOR=black][FONT=Verdana]   SPBN END[/FONT][/COLOR]
[FONT=Verdana][COLOR=black]   AUF DB 100[/COLOR][/FONT]
[SIZE=3][COLOR=red][B]  L DBW 0[/B][/COLOR][/SIZE]
[FONT=Verdana][COLOR=black]   SLD 7[/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   LAR1 [/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   L DBD 2[/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   T DBd [AR1,P#0.0] [/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   L DBD 6[/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   T DBD [AR1,P#4.0] [/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   L DBD 10[/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   T DBD [AR1,P#10.0] [/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   L DBW 0 [/COLOR][/FONT]
[COLOR=black][FONT=Verdana]   L 1 [/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   +I [/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   T DBW 0 [/FONT][/COLOR]
[FONT=Verdana][COLOR=black]   L 600[/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   >I[/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   SPBN END [/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   L 1[/COLOR][/FONT]
[FONT=Verdana][COLOR=black]   T DBW0 [/COLOR][/FONT]
[FONT=Verdana][COLOR=black]END: NOP 0[/COLOR][/FONT]

@ Ralle und Gerhard, ich hab's kapiert.
Ich dachte Ihr wollt immer um eins weiter schieben, aber es soll ja die Zieladresse erhöht werden und diese wird um (jetzt) 4 Stellen geschoben. :D
 
Hallo Gina,
was ich jetzt hier so raus lese willst Du immer denselben Datensatz in ein anderes Ziel kopieren.

Dein Code macht dass doch fast, außer das Du nie die Zieladresse berechnest:
Code:
[COLOR=black][FONT=Verdana] U M 1.0[/FONT][/COLOR]
[FONT=Verdana][COLOR=black] FP M 1.1 [/COLOR][/FONT]
[COLOR=black][FONT=Verdana] SPBN END[/FONT][/COLOR]
[FONT=Verdana][COLOR=black] AUF DB 100[/COLOR][/FONT]
[SIZE=3][COLOR=red][B]L DBW 0[/B][/COLOR][/SIZE]
[FONT=Verdana][COLOR=black] SLD 7[/COLOR][/FONT]
[FONT=Verdana][COLOR=black] LAR1 [/COLOR][/FONT]
[FONT=Verdana][COLOR=black] L DBD 2[/COLOR][/FONT]
[FONT=Verdana][COLOR=black] T DBd [AR1,P#0.0] [/COLOR][/FONT]
[FONT=Verdana][COLOR=black] L DBD 6[/COLOR][/FONT]
[FONT=Verdana][COLOR=black] T DBD [AR1,P#4.0] [/COLOR][/FONT]
[FONT=Verdana][COLOR=black] L DBD 10[/COLOR][/FONT]
[FONT=Verdana][COLOR=black] T DBD [AR1,P#10.0] [/COLOR][/FONT]
[FONT=Verdana][COLOR=black] L DBW 0 [/COLOR][/FONT]
[COLOR=black][FONT=Verdana] L 1 [/FONT][/COLOR]
[COLOR=black][FONT=Verdana] +I [/FONT][/COLOR]
[COLOR=black][FONT=Verdana] T DBW 0 [/FONT][/COLOR]
[FONT=Verdana][COLOR=black] L 600[/COLOR][/FONT]
[FONT=Verdana][COLOR=black] >I[/COLOR][/FONT]
[FONT=Verdana][COLOR=black] SPBN END [/COLOR][/FONT]
[FONT=Verdana][COLOR=black] L 1[/COLOR][/FONT]
[FONT=Verdana][COLOR=black] T DBW0 [/COLOR][/FONT]
[FONT=Verdana][COLOR=black]END: NOP 0[/COLOR][/FONT]

@ Ralle und Gerhard, ich hab's kapiert.
Ich dachte Ihr wollt immer um eins weiter schieben, aber es soll ja die Zieladresse erhöht werden und diese wird um (jetzt) 4 Stellen geschoben. :D

@ Hallo Paul,
Die Datensatze ändern sich, die Werte(Real) T1, T2,T3 werden speichern.

Wenn alle 3 Timmer( Sie laufen unterschiedlich) abgelaufen ist, sollen die Daten in die Datenbank geschrieben wie unten.

Was meinst du mit Zieladresse, vielleicht liegt dort mein Fehler.
Kannst du mir im Programmen Beispiel zeigen.


Wäre Super
:TOOL:
 
@Paule

Argh, du hast Recht, in meinem ersten Post hatte ich das

L DBW 0
SLD 6
LAR1

noch drin, im laufe der Posts habe ich das dann unter den Tisch fallen lassen. Prima, das du das gemerkt hast, ich hab da gar nicht mehr hingesehen, das hat ja am Anfang hingehauen. :ROFLMAO:
 
Zuletzt bearbeitet:
Zurück
Oben