maweri
Level-2
- Beiträge
- 383
- Reaktionspunkte
- 101
-> Hier kostenlos registrieren
Hallo Leute,
ich steh' hier vor einem Problem.
Zur Erklärung:
Um einen Barcodedrucker anzusteuern, muß ich ein jedesmal ein kleines Programm an diesen senden. Das Programm habe ich zeilenweise in einem Printer-DB (bestehend aus 25 String[254]-Variablen) hinterlegt. Insgesamt gibt es 5 veränderliche Daten auf dem Barcode-Label (4x Text, 1x Barcode). Diese Daten werden vom Kunden in einem DB als Strings bereitgestellt.
Ich hole mir den String aus dem Kunden-DB ab. Bereite ihn für den Drucker auf. Setze dann einen neuen String zusammen und schreibe ihn an die richtige Stelle in den Printer-DB.
Problem:
So wie ich das vorhabe geht's nicht. Bei der rot markierten Programmzeile wird der Fehler: Unzuläsiger Datentyp ausgegeben.
Kann mir da jemand weiterhelfen???
Gruß
maweri
ich steh' hier vor einem Problem.
Zur Erklärung:
Um einen Barcodedrucker anzusteuern, muß ich ein jedesmal ein kleines Programm an diesen senden. Das Programm habe ich zeilenweise in einem Printer-DB (bestehend aus 25 String[254]-Variablen) hinterlegt. Insgesamt gibt es 5 veränderliche Daten auf dem Barcode-Label (4x Text, 1x Barcode). Diese Daten werden vom Kunden in einem DB als Strings bereitgestellt.
Ich hole mir den String aus dem Kunden-DB ab. Bereite ihn für den Drucker auf. Setze dann einen neuen String zusammen und schreibe ihn an die richtige Stelle in den Printer-DB.
Problem:
So wie ich das vorhabe geht's nicht. Bei der rot markierten Programmzeile wird der Fehler: Unzuläsiger Datentyp ausgegeben.
Kann mir da jemand weiterhelfen???
Code:
FUNCTION_BLOCK assignment
VAR_INPUT
Printer_DB: BLOCK_DB; // program lines DB
Line_No: INT; // number of program line
Source: STRING; // source string
Type_of_print: INT; // 1=text, 2=barcode
END_VAR
VAR_TEMP
line_addr: INT; // address of program line
str_len: INT; // length of string
Prefix: STRING; // prefix for print type
prog_line: STRING; // program line
END_VAR
BEGIN
// determining string length
str_len := LEN (S:= Source);
// compiling program line
Prefix := '';
IF Type_of_print = 1 THEN
Prefix := 'PRTXT "';
ELSIF Type_of_print = 2 THEN
Prefix := 'PRBAR "';
END_IF;
prog_line := 'a'; // initializing string variable
prog_line := CONCAT (IN1 := Prefix, IN2 := Source, IN3 := '"');
// transfering string
line_addr := (Line_No - 1) * 256;
[COLOR=red]Printer_DB.DB[line_addr] := prog_line;[/COLOR]
END_FUNCTION_BLOCK
Gruß
maweri