Нулевые символы записываются и обрабатываются.
Но самими CoDeSys не отображаются и стираются строковыми функциями.
На диске ПЛК есть пример, на форуме примеров море. Но каждый не читает документацию и строем идет по граблям. Поиск по сайту рулит!
Нулевые символы записываются и обрабатываются.
Но самими CoDeSys не отображаются и стираются строковыми функциями.
На диске ПЛК есть пример, на форуме примеров море. Но каждый не читает документацию и строем идет по граблям. Поиск по сайту рулит!
Спасибо Владислав, действительно похожая тема уже была на форуме:
http://www.owen.ru/forum/showthread.php?t=1193&page=2
Что-то более-мене прояснилось со структурой RBDATA. Но при запуске в режиме эмуляции в онлайн на "data:=dd^.data;" выдает ошибкуRBDATA - структура из 2-х байт, в первом - принятый символ, во втором - флаги.
В приведённом коде:
IF n1_out THEN LockDevice(0);
SetByte(0, Line, LEN); ...
dd:=GetByte(0);
END_IF
dd - это указатель, его надо разименовать.
data:byte;
data:=dd^.data;
Переменной "data" присваивается значение принятого символа. Далее его можно складывать в массив, анализировать и пр.
"Доступ по не существующему адресу. ПЛК остановлен". Почему?
Неужели работает только в ПЛК. Просто сейчас нет возможности попробовать на ПЛК.
Действительно "data:=dd^.data;" работает только в ПЛК. В режиме эмуляции выдает ошибку. В остальном все нормально читается по Rs-232. По Rs-485 читается, но проскакивают ошибки, точнее смещение байт принимаемой посылки. Считаю тему закрытой. Спасибо за помощь.