Имеется ПЛК154-УМ (прошивка 2.10.5), провод RS232 (без перемычки), HyperTerminal и сл. код в ПЛК:
Код:
IF NOT COM_OPEN THEN
RES1 := SysComOpen(COM_PORT);
IF RES1 = 16#FFFFFFFF THEN
RES2 := SysComClose(COM_PORT);
RES1 := SysComOpen(COM_PORT);
END_IF
COM_OPEN := RES1 <> 16#FFFFFFFF;
END_IF
IF NOT COM_OPEN THEN RETURN; END_IF
IF NOT COM_INIT THEN
COM_SETTINGS.Port := COM_PORT;
COM_SETTINGS.dwBaudRate := 1200;
COM_SETTINGS.byStopBits := 0;
COM_SETTINGS.byParity := 2;
COM_SETTINGS.dwTimeout := 0;
COM_SETTINGS.dwBufferSize := 0;
COM_SETTINGS.dwScan := 0;
COM_SETTINGS.cByteSize := 7; (* ??? *)
COM_SETTINGS.Size := SIZEOF(COM_SETTINGS);
RES2 := SysComSetSettingsEx(COM_PORT, ADR(COM_SETTINGS));
COM_INIT := RES2 = 0;
END_IF
IF NOT COM_INIT THEN RETURN; END_IF
IF Timer1.Q OR NOT Timer1.IN THEN
Timer1(IN := FALSE);
COM_SND_RES := SysComWrite(COM_PORT, ADR(COM_CMD), SIZEOF(COM_CMD), 0);
Timer1(IN := TRUE, PT := T#1s);
ELSE
Timer1;
END_IF
Настройки HyperTerminal Hyper.jpg
COM_CMD это строка 'N'.
Результат тишина, в настройках HyperTerminal'а вместо 7 ставлю 8 бит данных. Странно, но работает: получаю сообщения "N" от ПЛК.
Похоже COM_SETTINGS.cByteSize никак не влияет на биты данных. Как сменить на 7 бит?
Нужно подключить прибор со своим протоколом обмена. А тут такое