Имеется ПЛК154-УМ (прошивка 2.10.5), провод RS232 (без перемычки), HyperTerminal и сл. код в ПЛК:
Настройки HyperTerminal Hyper.jpgКод: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
COM_CMD это строка 'N'.
Результат тишина, в настройках HyperTerminal'а вместо 7 ставлю 8 бит данных. Странно, но работает: получаю сообщения "N" от ПЛК.
Похоже COM_SETTINGS.cByteSize никак не влияет на биты данных. Как сменить на 7 бит?
Нужно подключить прибор со своим протоколом обмена. А тут такое![]()


Ответить с цитированием