Показано с 1 по 9 из 9

Тема: библиотека Unm и нулевые символы

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Нулевые символы записываются и обрабатываются.
    Но самими CoDeSys не отображаются и стираются строковыми функциями.

    На диске ПЛК есть пример, на форуме примеров море. Но каждый не читает документацию и строем идет по граблям. Поиск по сайту рулит!

  2. #2

    По умолчанию

    Спасибо Владислав, действительно похожая тема уже была на форуме:
    http://www.owen.ru/forum/showthread.php?t=1193&page=2
    RBDATA - структура из 2-х байт, в первом - принятый символ, во втором - флаги.

    В приведённом коде:

    IF n1_out THEN LockDevice(0);
    SetByte(0, Line, LEN); ...
    dd:=GetByte(0);
    END_IF

    dd - это указатель, его надо разименовать.

    data:byte;

    data:=dd^.data;
    Переменной "data" присваивается значение принятого символа. Далее его можно складывать в массив, анализировать и пр.
    Что-то более-мене прояснилось со структурой RBDATA. Но при запуске в режиме эмуляции в онлайн на "data:=dd^.data;" выдает ошибку
    "Доступ по не существующему адресу. ПЛК остановлен". Почему?
    Неужели работает только в ПЛК. Просто сейчас нет возможности попробовать на ПЛК.

  3. #3

    По умолчанию

    Действительно "data:=dd^.data;" работает только в ПЛК. В режиме эмуляции выдает ошибку. В остальном все нормально читается по Rs-232. По Rs-485 читается, но проскакивают ошибки, точнее смещение байт принимаемой посылки. Считаю тему закрытой. Спасибо за помощь.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •