Страница 2 из 8 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 76

Тема: ПЛК110-30-М02 нестандартный проткол к весам ВСП4

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

    По умолчанию

    Почему бы и нет ? Кто-то запыхается (см. п. 1) ?
    ну если цель стоит только отображать на HMI значение то не запыхается.
    А если стоит цель что-то положили на весы, взвесить, отобразить, куда-то передать, то как бы зачем?

    Ну хотя код чтения порта и разбора переменной может крутиться всегда и уже программой сверху выдергивать, не суть.

    я думаю, что пауза там есть, хоть о ней и не написано, снифер покажет.

  2. #12
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,656

    По умолчанию

    Вот потому, что спешить особо некуда, лучше надергать буффер 28 байт, т.е в котором будет гарантированный полный пакет, и уже парсить эту кучу, выдернув сам пакет и уже распарсив его вытащить данные искомые.
    Но вариантов решения задачи может быть как минимум 3, так что кто как хочет, так этим и занимается

  3. #13
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,656

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Для 'Wn' достаточно 15-ти, а дальше примитивная работа со строкой где выдернуть пакет не больше кода чем надергав 28.
    К тому же, в отличие, не будет потери последнего вдруг пакета если он внезапно не ляжет в [14..27] ))
    Скользящий разбор буффера приема? Код усложняется.

    Цитата Сообщение от Валенок Посмотреть сообщение
    Я могу предположить их не менее 64730 на 25-09-21 12:25 - у Овена внизу написано.
    И чё там у него написано?

  4. #14
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,656

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Да ладно.
    А давайте сравним кол-во шагов разбора Вашего буфера с данными (описанием) :
    Дождались 28 байт.
    ..
    ?
    По китайски прямолинейно...
    1. В цикле ищем w, проверяем следующий n, если нет буффер ф топку, если да хватаем номер(i) в буффере и Return из этого цикла;
    2. В цикле из буффера, начиная с (i) выбрасываем в буффер данных 7 байт, проверяем следующие в на соответствие k,g, если нет, все ф топку, если да буффер в топку и Return из этого цикла;
    3. Весело верещща конвертируем буффер данных в Real;
    4. Повторяем экзекуцию с заполнением буффера и ...начинаем, шило и мочало-начинай сначала.

    Цитата Сообщение от Валенок Посмотреть сообщение
    Статистика Форум АСУ ТП. ОВЕН форум
    Тем 25,307 Сообщений 324,534 Пользователи 64,730 Активные участники 2,046
    Это про минимальное кол-во вариантов ))
    Ну и сколько из 2,046 (щас слеза навернулась) вообще поймут о чем речь?
    Последний раз редактировалось Sergey666; 25.09.2021 в 15:49.

  5. #15
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,656

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Не менее прямолинейно..
    При получении любой порции данных к текущему буферу :
    1. Ищу 'wn' - Если нашел выкидываю всё что до, если нет и длина = 15 буфер в топку.
    2. Если длина данных >= 14 беру на проверку [2..11] на бяки для хорошо/буфер в топку
    3. "Весело верещща конвертируем хорошие данные в Real" (С)
    4. Из буфера удаляю первые 14 байт
    Всё. Циклов - нет ))
    2. Если длина данных >= 14 беру на проверку [2..11] на бяки для хорошо/буфер в топку
    Это при каком размере буфера? Если 15-16, а wn обнаруживается в конце начала середины то "хороших данных" может не быть вовсе.

    З.Ы Да, "при получении любой порции данных к текущему буферу" это норм, если потерь пакетов не будет
    Последний раз редактировалось Sergey666; 25.09.2021 в 16:45.

  6. #16
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,314

    По умолчанию

    ...........
    Последний раз редактировалось Валенок; 25.10.2021 в 22:19.

  7. #17
    Пользователь
    Регистрация
    20.05.2021
    Адрес
    г.Челябинск
    Сообщений
    36

    По умолчанию

    Да, спасибо. Понял ошибку! Буду ловить начало пакета. Кстати, скорость обмена в настройках у весов можно менять, я просто пробовал разные скорости, остановился на минимальной, но дело не в скорости.

  8. #18
    Пользователь
    Регистрация
    20.05.2021
    Адрес
    г.Челябинск
    Сообщений
    36

    По умолчанию

    Исправил код. Вот он.
    PROGRAM PLC_PRG
    VAR
    portReady:BOOL;
    port:COMSETTINGS:=(Port:=COM1,dwBaudRate:=2400,byS topBits:=0,byParity:=1,dwBufferSize:=28);
    buf:ARRAY[0..27]OF BYTE;(*данные из весов через RS232*)
    buf1:ARRAY[0..7]OF BYTE;(*массив веса*)
    i:INT:=0;
    i1:INT:=0;
    END_VAR
    IF portReady=FALSE THEN(* Сразу открываем и настраиваем порт *)
    portReady:=TRUE;
    SysComOpen(port.Port);
    SysComSetSettings(port.Port,ADR(port));
    ELSE(* Работаем с открытым портом *)
    SysComRead(port.Port, ADR(buf),28,0);
    END_IF
    FOR i:=0 TO 27 DO
    IF (buf[i]=119)AND(buf[i+1]=110) THEN
    FOR i1:=0 TO 7 DO
    buf1[i1]:=buf[i1+i+2];
    END_FOR
    END_IF
    END_FOR

    Прогнал по шагам. В буфере из 28 байт (buf[0..27] какие-то странные данные. Например:в десятичном коде 119,119,152,152,76,76,38,38,90,157,53,10,119,119,1 52,152,76,76,38,38,9,90,157,53,10,119,119,152
    Последовательности 119,110( wn)вообще нет. Чисто числовых данных( 48-57) почти нет. И непонятно откуда там данные больше 127?
    Последний раз редактировалось павелсиражев; 27.09.2021 в 14:38.

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

    По умолчанию

    а 127 это разве для десятичного формата?

  10. #20
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,656

    По умолчанию

    Чистить буфер приема надо перед чтением. И на скорости 2400 может порт некорректно работать, что хотя-бы 9600 нельзя поставить?

Страница 2 из 8 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

  1. Нестандартный отчет
    от Terminat в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 27.10.2017, 10:23
  2. Нестандартный протокол
    от SVVSVA в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 08.09.2011, 15:18
  3. нестандартный протокол
    от niklud19511 в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 05.05.2011, 15:02
  4. Нестандартный протокол
    от Евгений Владимирович в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 28.02.2010, 23:22
  5. Нестандартный протокол
    от Klik в разделе ПЛК1хх
    Ответов: 36
    Последнее сообщение: 03.03.2008, 13:49

Ваши права

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