Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Библиотека UNM помогите разобраться.

  1. #1

    По умолчанию Библиотека UNM помогите разобраться.

    Библиотека UNM помогите разобраться. с передачей разобрался, никак прием не могу осилить. вроде все понятно а на практике не работает ничего.
    надо принимать сообщения по 22 байта длиной. запросы отсылвть не надо, просто принимать ответы, устройство сыпит их постоянно.
    делаю вот так:


    otvet_RB: POINTER TO RBDATA; (*Структура ответа*)
    otvet: ARRAY [0..21] OF BYTE := 22(0); (*Ответ*)
    count:INT:=0; (*Число принятых байт*)


    otvet_RB:=GetByte(0);
    WHILE otvet_RB<>0 DO
    otvet_RB:=GetByte(0);
    otvet[count]:=otvet_RB^.data;
    count:=count+1;

    END_WHILE

    count:=0;


    что я делаю не правильно?

  2. #2
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Зачем в каждом цикле count:=0?

    Надо буффер заполнить, потом разобрать.
    Что-то из разряда
    If count>20 then
    (*разбираем буфер*)
    count:=0;
    end_if

    Но по-хорошему надо буффер делать больше ожидаемой строки (на случай возникновения мусора), потом разбирать пришедший пакет с учетом CRC и т.д.

    И цикл while мне кажется не нужен.
    В примере же было так:


    otvet_RB:= GetByte(0);
    IF otvet_RB >0 THEN
    p:=ADR(otvet)+count;
    p^:=otvet_RB^.data;
    count:=count+1;
    END_IF

    По крайней мере у меня так работает.

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    приблрист count обнуляется за циклом

    а по поводу бибки, каждый байт принимается раз в цикл плк, по этому вместо while в примерах используется IF
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #4

    По умолчанию

    рабочий кусочек кода можете показать? голову всю сломал уже... вроде все ясно , но нифига не работает...(


    и ещё вопрос. как упорядочить все? есть байт который означает начало сообщения и есть байт конца передачи. как все упорядочить?
    Последний раз редактировалось канавал; 13.12.2016 в 12:08.

  5. #5

    По умолчанию

    как сложить все по порядку?

  6. #6

    По умолчанию

    использовать кольцевой буфер? как есго реализовать в codesys?

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

    По умолчанию

    А пример опроса счетчика Меркурий смотрели ? как там реализовано не помню... Пример как раз использует UNM

  8. #8

    По умолчанию

    там запрос ответ. а у меня устройство спрашивать не надо, оно само сыпит сообщения....

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

    По умолчанию

    а в чем разница непосредственно при приеме ответа ? кроме того, что нужна проверка что вы не с середины принимаете... паузы ведь между посылками наверняка есть...

  10. #10

    По умолчанию

    вот я и не могу понять как мне начать прием именно с начала?

    попробовал вот так выхватывать сообщения :

    IF otvet_RB >0 THEN
    p:=ADR(otvet)+count;
    p^:=otvet_RB^.data;
    count:=count+1;
    END_IF

    IF otvet[0]=new AND otvet[21]=end THEN

    FOR j:=0 TO 21DO
    out[j]:=otvet[j];
    END_FOR

    END_IF
    ничего хорошего пока из этого не вышло

    просто документации нет на прибор(джойстик) он просто сыпит сообщения и все. начало и конец разглядеть можно.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. ПЛК-100 помогите разобраться
    от Дмитрий67 в разделе Трёп (Курилка)
    Ответов: 42
    Последнее сообщение: 02.12.2015, 17:29
  2. Не могу разобраться в чём проблема. MFC С++ TMP-251. Библиотека: owen.
    от IAGlushko в разделе Помощь Разработчикам
    Ответов: 7
    Последнее сообщение: 20.03.2015, 05:46
  3. Помогите разобраться
    от spinogryz57 в разделе Трёп (Курилка)
    Ответов: 19
    Последнее сообщение: 01.08.2014, 10:23
  4. ПОМОГИТЕ РАЗОБРАТЬСЯ!
    от doctorsot в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 17.12.2008, 23:50
  5. Помогите разобраться !!
    от viking в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 21.11.2007, 14:31

Метки этой темы

Ваши права

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