Столкнулся со следующей проблемой. STRING ограничен 255 символами, склеил нескольких строк в одну с помощью OSU.StrConcatA и поместил в sCommand: STRING(500), в результате получилась такой запрос:
Код:
mysql -s -utest -p11 -h 10.33.1.101 --database=test --default-character-set=cp1251 -e "INSERT INTO new_table (date, time, value) values (CURRENT_DATE(), CURRENT_TIME(), 24.42029), (CURRENT_DATE(), CURRENT_TIME(), 19.95781), (CURRENT_DATE(), CURRENT_TIME(), 22.24042)"
который MYSQL отказывается почему то принимать. В БД ничего не приходит.

Может быть есть способ сформировать адекватный запрос в БД?
Задача состоит в том, чтобы раз в 1 сек зафиксировать показания датчиков ~20шт (sVar1-sVarn), приклеить метку времени и передать это все в БД.
На данный момент имею вот такой код:
Код:
FUNCTION_BLOCK MySQL_CLIENT

VAR_INPUT
	xExecute:					BOOL;
	sUser:						STRING(30);
	sPassword:					STRING(30);
	sIpAddr:					STRING(30);
	sDatabase:					STRING(30);
	sVar1:                      STRING(30);
    	sVar2:                      STRING(30);
	sVar3:                      STRING(30);
END_VAR

VAR_OUTPUT
	xDone:						BOOL;
	xBusy:						BOOL;
	xError:						BOOL;
	asResult:					ARRAY [1..255] OF STRING(255);
	usiCountOfStrings:				USINT;
	xOverFlow:					BOOL;
END_VAR

VAR
	sCommand:		STRING(500);
	fbSe4:		 	CmpSysExec.SysExecute4;
	fbRiseEdge:		R_TRIG;
END_VAR

VAR CONSTANT
	c_sCommand:			STRING(255):= 'mysql -s -u#USER# -p#PASS# -h #HOST# --database=#DATABASE# --default-character-set=cp1251 -e ';
END_VAR
Код:
fbRiseEdge(CLK := xExecute);

IF fbRiseEdge.Q THEN
	sCommand := OSU.ReplaceSubstring(c_sCommand, '#USER#', 		sUser);
	sCommand := OSU.ReplaceSubstring(sCommand,   '#PASS#', 		sPassword);
	sCommand := OSU.ReplaceSubstring(sCommand,   '#HOST#',  	sIpAddr);
	sCommand := OSU.ReplaceSubstring(sCommand,   '#DATABASE#', 	sDatabase);
	
	OSU.StrConcatA(ADR('"INSERT INTO new_table (date, time, value) values (CURRENT_DATE(), CURRENT_TIME(), '), ADR(sCommand), SIZEOF(sCommand));
	OSU.StrConcatA(ADR(sVar1), ADR(sCommand), SIZEOF(sCommand));
	OSU.StrConcatA(ADR('), '), ADR(sCommand), SIZEOF(sCommand));
	OSU.StrConcatA(ADR('(CURRENT_DATE(), CURRENT_TIME(), '), ADR(sCommand), SIZEOF(sCommand));
	OSU.StrConcatA(ADR(sVar2), ADR(sCommand), SIZEOF(sCommand));
	OSU.StrConcatA(ADR('), '), ADR(sCommand), SIZEOF(sCommand));
	OSU.StrConcatA(ADR('(CURRENT_DATE(), CURRENT_TIME(), '), ADR(sCommand), SIZEOF(sCommand));
	OSU.StrConcatA(ADR(sVar3), ADR(sCommand), SIZEOF(sCommand));
	OSU.StrConcatA(ADR(')"'), ADR(sCommand), SIZEOF(sCommand));
END_IF

fbSe4
(
	xExecute 	:= fbRiseEdge.Q,
	sCommand 	:= sCommand,
	sOutput  	=> asResult,
	cntReadStr  => usiCountOfStrings,
	xOverFlow   => xOverFlow,
	xDone       => xDone,
	xBusy       => xBusy,
	xError      => xError
);