Вот код:
PROGRAM PLC_PRG
VAR
com_num:PORTS:=0; (*Номер порта для работы с модемом*)
port_opened: BOOL := FALSE; (*Признак открытия порта*)
com_handle: DWORD; (*Дискриптор порта*)
com_set: COMSETTINGS;
port_init:BOOL:=FALSE;
res:BOOL;
END_VAR
(*Открываем порт*)
IF NOT port_opened THEN
com_handle:=SysComOpen(com_num);
IF com_handle <> 16#FFFFFFFF THEN (*Если дискриптор равен 16#FFFFFFF , то ошибка*) (*Можно сравнить com_handle с 0- потому что ОВЕН *)
port_init:=TRUE;
ELSE
SysComClose(com_num);
port_init:=FALSE; (*Признак открытия порта*)
END_IF;
IF port_init THEN
(*Настраиваем скорость*)
com_set.Port:=com_num;
com_set.dwBaudRate:=1200;
com_set.byParity:=0;
com_set.dwTimeout:=0;
com_set.byStopBits:=0; (* *)
com_set.dwBufferSize:=0;
com_set.dwScan:=0;
res:=SysComSetSettings(com_num,ADR(com_set));
(*Успешно открыли*)
IF NOT res THEN (* ИЛИ Наоборот если res = TRUE, то все параметры установились???*)
port_opened:=TRUE;
END_IF;
END_IF;
END_IF;




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