TwinCAT MS-Database Variable

FCBJW31

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

ich bin dabei mit TwinCAT 3 einen Datenabruf aus einer MS Datenbank zu programmieren.
Die Kommandozeile wird mit ExecuteDataReturn ausgeführt. Der Zugriff auf die Datenbank, sowie der Selectbefehl funktionieren einwandfrei.

Bei der Abfrage möchte ich das aktuelle Datum (aus der PLC) mit dem Einträgen aus der Datenbank in der Zeile *anzeigedatum* vergleichen.
Wenn ich das aktuelle Datum von 'Hand' eingebe (wie in der sCmd1 siehe unten) funktioniert der Aufruf.

1627028018190.png
Jedoch bekomme ich es nicht hin, anstatt das Datum von 'Hand' einzugeben, eine Stringvariable dort einzusetzen.

In der Datenbank ist das *anzeigedatum* als DateTime-Variable aufgeführt.
1627027945745.png

Ich bin für jeden Hinweis und jede Hilfe sehr dankbar.

Falls jemand noch weitere Informationen benötigt, kann er sich gerne melden.

Danke!

Gruß Julian
 

Anhänge

  • 1627027125732.png
    1627027125732.png
    7,8 KB · Aufrufe: 3
  • 1627027980879.png
    1627027980879.png
    4,7 KB · Aufrufe: 3
Zuviel Werbung?
-> Hier kostenlos registrieren
@jensemann Danke für die Antwort.

Mein Problem ist nicht das Datum in einen String zu packen, sondern die String-Variable in die Commandozeile (sCmd1) zu integrieren.

Also anstatt $'2021-07-19 00:00:00$' soll dort {PLCDatum} stehen.
 
Im Prinzip den String mit CONCAT zusammenbauen. Schwierig ist es dabei, die Hochkommata mit in den String zu kriegen. Wenn ich mich recht erinnere, geht das mit dem Steuerzeichen $'
Code:
scmd1:=CONCAT('SELECT TOP2 ... [anzeigedatum] = $',$');
scmd1:=CONCAT(scmd1,PLCDatum);
scmd1:=CONCAT(scmd1,$');
scmd1:=CONCAT(scmd1,' order by ...');
 
Zurück
Oben