Потребовалось читать данные по нестандартному протоколу Rnet. Сварганил по-быстрому читалку. Если нужна писалка, то увы — доделывайте сами. К сожалению, читалка игнорирует описание протокола в части таймаутов и повторных попыток. Просто в боевых условиях не нужна. Короче, «чё есть — то есть», «дарёному коню» и т.д.
Пример использования:Код:PROGRAM PLC_PRG VAR Settings: COMSETTINGS; COM1: COM_SERVICE; rnet1: RNET; result: POINTER TO INT; END_VAR IF NOT COM1.Ready THEN Settings.Port := 1; Settings.dwBaudRate := 19200; Settings.byParity := 0; Settings.dwTimeout := 0; Settings.byStopBits := 0; Settings.dwBufferSize := 0; Settings.dwScan := 0; COM1(Enable := TRUE, Settings := Settings, Task := OPEN_TSK); ELSE rnet1(Enable := TIME_TO_DWORD(TIME()) MOD 1000 > 500, ComHandle := Settings.Port, DevAddr := 5, ChNum := 0, RegAddr := 0); IF rnet1.Complete THEN result := rnet1.Data; END_IF END_IF


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