DB auslesen; enthält CHAR

Black Scorpion

Level-1
Beiträge
82
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,
erst einmal vielen herzlichen Dank für die Unterstützung die ich bis jetzt hier bekommen habe. Hier lernt man mehr, sind ja auch nur Fachleute hier unterwegs, bis auf mich. Ich muss noch lernen.


Ja, ich habe die Forensuche genutzt, aber bin nicht schlau geworden. Ich kommuniziere mit einem Messsystem über die CP340. Das klappt auch alles wunderbar. Im DB200 werden brav die Daten abgelegt. Jetzt würd ich die gerne in eine eigene Funktion hinein laden. ICh bekomme ja die Anzahl der empfangenen Daten mit überliefert. Aber wie bekomme ich die Daten von einem DB aus in eine eigene Variable, z. B. String in eine eigene Funktion.

Bitte nicht lachen, auch wenn mein Brett vorm Kopf ein Mamutbaum ist.

Ich hab mal nen Screenshot angehangen, da könnt ihr sehen was da so drin steht.

Ich bedanke mich schon mal ganz herzlich.....
 

Anhänge

  • DB200.PNG
    DB200.PNG
    41,9 KB · Aufrufe: 39
Keine Sorge, diesem Mammutbaum kenne ich...

Die Frage von mir ist jetzt, was soll mit den CHAR Zeichen gemacht werden?
Wohin sollen sie kopiert werden?

Ein STRING ist ja nur eine andere Darstellungsform für die Zeichen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
du kannst ja z.b :

L DB1.DBB 0
T LB 0



so kannst du die daten die du brauchst in deine variablen laden oder ich habe gerade das brett vorm kopf und verstehe nicht was du vor hast :ROFLMAO:ROFLMAO:ROFLMAO:
 
Danke für dein Mitgefühl.....

Ich würde gerne die empfangenen CHARs in eine Variable ablegen die ich dann einer eigenen geschriebenen Funktion übergeben kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Schneemann86,

danke für deine Hilfe.

L DB1.DBB 0
T LB 0

Was macht das??? Sorry bin da totaler Anfänger. Kenn mich eher mit Windowsprogrammierung aus...

Meine Idee oder mein Wunsch ist, das z. B. eine Variable namens "EmpfangeneDaten" existiert mit dem Typ STRING. In diese möchte ich dann meine empfangenen Daten aus dem DB200 hinein schreiben.
 
Hallo dtsclipper,

danke für deine Anmerkung.....

Wie kann ich mir das vorstellen? Blockmove in einen anderen DB??? Wie gesagt bin blutiger Anfänger. Dann steht es in einem anderen DB drin und , sorry, was hab ich davon? Sorry wie erst später geschrieben wollte ich die Daten aus dem DB200 in eine Variable mit dem Typ STRING schreiben...

Hab wohl doch den Mamut vorm Kopf....
 
Im FB/FC legst du oben im Kopf in den Temp Variablen die bereiche an die du brauchst , geht auch String

Du schreibst das in einen FB/FC :

L DB1.DBB 0 / Lade aus DB1 das Byte 0 in akku 1 in deine fall L DB200.DBB 0


T LB 0 / Der Inhalt aus Akku 0 ( Inhalt aus Byte 0 Db200) wird in das Byte 0 der Temp variable Transferiert

kannst auch 4 bytes (DW) auf einmal laden mit

L DB200.DBD0
T LD 0

L DB200.DBD4
T DB200.DBD4

usw währe eben viel zu schreiben... was hast du denn dann mit dem String vor , bzw wozu brauchst du das ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich schlage mal folgendes vor:
Code:
      CALL  "BLKMOV"
       SRCBLK :=P#DB200.DBX0.0 BYTE 40
       RET_VAL:=MW10
       DSTBLK :=P#DB201.DBX2.0 BYTE 40

      L     40
      T     DB201.DBB    0
      T     DB201.DBB    1

Dabei legst du einen DB201 an, in welchem du einen String definierst.

Hier die Quelle dazu:

Code:
DATA_BLOCK DB 201
TITLE =
VERSION : 0.1


 STRUCT 	
   Empfangener_String : STRING  [254 ];	
  END_STRUCT ;	
BEGIN
   Empfangener_String := ''; 
END_DATA_BLOCK

Die 40 kannst du anpassen, je nachdem, wieviele Char du in den String kopieren willst! Mit dem String kannst du dann ganz normal weiterarbeiten.

z.Bsp. den Stringvergleich:

Code:
  CALL  "EQ_STRNG"
       S1     :=DB201.Empfangener_String
       S2     :=DB202.Empfangener_String
       RET_VAL:=M12.0

Darauf achten, daß der String im DB202 im Byte 0 und 1 jeweils auch die Länge der Daten enthält, in diesem Bsp. am besten auch 40.

Wenn weniger Daten, dann alle "40" z.Bsp. durch "10" ersetzen.
 
Also ich will die empfangen Daten zerlegen. Die Daten sind ne Befehlskette und jeder. Sozusagen Distanz und Status. Ich würde gerne diese Anzahl an empfangenen CHARS, es sind z. B. 10 komplett aus dem DB200 auslesen. Die Anzahl, hier jetzt 10, bekomme ich ja im Empfangsbaustein mitgeschickt. Also würde ich gerne jeweils für jede empfangenen Daten dem entsprechend diese auslesen. Zwischen den beiden beiden Befehlen steht ein ";" wonach man suchen kann und dann die Befehle auseinander zu pflücken.

Gibt es keinen einfacheren Weg die Daten aus dem DB zu kopieren. Ist ja nur ne Frage, da die Länge der empfangene DAten variieren können....
 
Hallo Ralle,

ja vielen Dank für die Antwort. DAS werd ich doch mal ausprobieren. Obwohl ich es im Moment noch nicht ganz verstehe, aber wenn ich das einzelnd eingeben werde sollte doch die Erleuchtung kommen. Momentan ein 1W Lämpchen. Aber bei eurer Hilfe sollte da schon ein 100W Lämpchen draus werden. Reicht mir im Moment mal aus..

Ein herzliches Dankeschön an alle die mich hier so toll unterstützt haben.

D A N K E
 
Zurück
Oben