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

Тема: Четность! А как собственно проще?

  1. #1

    По умолчанию Четность! А как собственно проще?

    Добрый день! Управляемое устройство использует 9 бит (четность) для распознавания адреса. Есть ли возможность устанавливать 9 бит без шманцев с параметрами порта? Менять настройки порта после посылки каждого байта очень грусно ((((. И ведь даже MARK SPACE не использовать((( И где искать функцию установки параметров порта INITCOM из библиотеки UNM. В описании библиотеки функция есть, а в самой библиотеке нету.... библиотека свежая с сайта.
    Последний раз редактировалось Дмитрий Артюховский; 25.03.2008 в 15:52.

  2. #2

    По умолчанию

    Unm настаивается через конфигурацию и на ходу менять чётность нельзя.

  3. #3

    По умолчанию

    А вот и не угадали! Структура параметров порта из библиотеки SysLibCom меняет параметры на лету.... вот и приходиться открывать порт RS-485 через библиотеку UNM, и использовать функции этой библиотеки для пересылки данных, а параметры менять через SysLibCom.... поскольку использовать 485 через Sys.... никак не получается, ну не открывает эта библиотека нулевой порт! А порт с именем COM1:=0 вообще срывает крышу Codesys-у и остальным. При использовании в качестве номера порта переменной типа BYTE с нулевым значением проходит трансляцию но не работает.

  4. #4

    По умолчанию

    485 прекрасно работает через SysLibCom.
    Про UNM - в самой библиотеке нет настройки параметров, но обходными путями можно...но не нужно, т.к. возможен конфликт. Или UNM, или SysLibCom

  5. #5

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    И ведь даже MARK SPACE не использовать((( И где искать функцию установки параметров порта INITCOM из библиотеки UNM. В описании библиотеки функция есть, а в самой библиотеке нету.... библиотека свежая с сайта.
    есть такие вредные устройства ).
    марк спэйс использовать не обязательно. достаточно разобраться, что такое четность. надо считать четность самому, и затем устанавливать чет или нечет в порту. у меня так сделано на i7188. если надо, могу примерчик дать. )
    через SysLibCom все порты Овена нормально работают, Port:= 0, 1, 4. Константы PORTS лучше не использовать на мой взгляд - для контроллеро-независимости.

  6. #6

    По умолчанию

    Как это сделать на другом контроллере я знаю ))). Мне на ПЛК-100 нужно 9-битную передачу, с управляемым моей программой 9 битом (который должен быть ни разу не четностью!), организовать.

  7. #7

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    Как это сделать на другом контроллере я знаю ))). Мне на ПЛК-100 нужно 9-битную передачу, с управляемым моей программой 9 битом (который должен быть ни разу не четностью!), организовать.
    я ж и пытался объяснить как это сделать...
    надо посчитать, сколько бит=1 в байте, и потом сделать настройку четности в порту одд или евен, учитывая что нужно получить на выходе. при этом уарт сам высчитает и подставит нужный 0 или 1 в 9-ю позицию( бит четности).

  8. #8

    По умолчанию

    да конечно, так можно, так и пытаемся делать..... только в этом случае нужно делать перенастройку порта после каждого байта...... а документация на ПЛК утверждает что после перенастройки порта нужна пауза 1-2 мс..! это же с какой скоростью идет обмен, плюс протокол обмена не допускает таких перерывов между байтами и приходиться дополнительно ошибки давить.... вот найти бы регистр куда этот 9 бит вставлять!!! на всех уартах такое есть, тока на ПЛК его не документируют почему-то... а времени на поиски нет.... делаю буферный контроллер, заодно уровни электрически посрягу правильно

  9. #9

    По умолчанию

    Аппаратно выдавать 9 бит всё же можно, но очень геморно. Реализуем, но не очень быстро.
    Также в сл. прошивке добавим возможность делать Mark/Space, но это не изменит существенно ничего. т.к. после каждого байта придётся менять настройки.
    Последний раз редактировалось Филоненко Владислав; 10.04.2008 в 14:49.

  10. #10
    Пользователь
    Регистрация
    18.03.2007
    Адрес
    г. Краснодар
    Сообщений
    233

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    ...на всех уартах такое есть...
    Не знаю как на всех. Но уменя была задача на компе организовать такое, приходилось каждый раз открывать и закрывать порт. Я страшно ругался на того кто придумал такой протокол и засунул в железо на проце 8051(там это было аппаратно). Опрос был медленный.
    Мой совет поискать другое оборудование и заменить.

Ваши права

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