Методом тыка, заметил, что при уменьшении времени ожидания ответа до 100мс. ПЛК перестал перезагружаться...
Но и правильных ответов на запрос нету...
Подскажите а как можно фильтровать полученный ответ, зная что начало ответа прибора 16#10, 16#FF, 16#90 далее отсчитать длину и остальное просто не сохранять в буфер?
Я не пойму как это сделать... Вернее как правильно это записать...
Структуру чтения ответа брал из примера с сайта Овен.
l откуда считается (длина запроса), т.е. по коду присвоения нет, только в конце в виде очищения приравнивается к нулю? И не пойму, зачем массив otvet заполняется с индексом l+i а не просто i ?Код:buf_otvet: ARRAY [0..7] OF BYTE ; otvet: ARRAY [0..15] OF BYTE ; byte_read:DWORD; l:DWORD:=0; ----- byte_read:=SysComRead(port_number, ADR(buf_otvet), 8, 0); IF byte_read>0 THEN FOR i:=0 TO byte_read-1 DO otvet[l+i]:=buf_otvet[i]; END_FOR l:=l+byte_read;




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