Страница 883 из 1042 ПерваяПервая ... 383783833873881882883884885893933983 ... ПоследняяПоследняя
Показано с 8,821 по 8,830 из 10414

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #8821

    По умолчанию

    Angelina69, представленный протокол - это точно не ModBus.
    Думаю, что решение с обменом - применение библиотек SysLibCom и самостоятельная обработка строк. Т.е. не через конфигуратор, а при помощи самодельной программы. Точнее не подскажу, опыта нет.

    В целом, решал бы задачу так.
    Построил конечный автомат по разбору поступающих данных:
    Код:
    var
      iState: integer; (* номер шага конечного автомата *)
    end_var;
    
    case iState of
      10: (* ожидание первого символа стартовой последовательности *)
          какой-то код по приёму символа
          if символ=26 then
            iState:=20;
          end_if;
      20:  (* ожидание второго символа стартовой последовательности *)
          какой-то код по приёму символа
          if символ=50 then
             iState:=30
          else
            iState:=10 (* если ошибка - вернуться к началу *)
          end_if;
      30: ............
      40: (*считывание 20 байт кода *)
          какой-то код чтения 20 байт
          разбор массива байт и преобразование его в несколько чисел
          выставление флага готовности чисел для дальнейшей обработки в программе ПЛК
          iState:=10; (* переход к началу приёма пакета данных - стартовой кодовой последовательности *)
    else
      iState:=10;
    end_case;
    Конечно, могу ошибаться, но направление примерно такое.


    Вот ссылка на пример
    https://owen.ru/forum/showthread.php?t=13585
    Последний раз редактировалось FPavel; 23.05.2022 в 22:11.

  2. #8822

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    В некоторых случаях бывает даже потеря связи с контроллером.
    То что надо углубляться в работу на ST я уже понял, если четно, то даже и рад этому, всё как-никак развитие. Но хотелось бы понять что происходит в данном конкретном случае, ведь память не занята, предупреждений и ошибок при компиляции нет, что тогда?

  3. #8823
    Пользователь Аватар для Rednaxel
    Регистрация
    15.05.2015
    Адрес
    Минск
    Сообщений
    19

    По умолчанию

    Цитата Сообщение от Angelina69 Посмотреть сообщение
    ...пытаюсь получить данные из датчика давления. Протокол связи RS-232, подсоединяю датчик к плк овен 100. Данных о датчике почти нет....Вложение 60799
    Что значит "Данных почти нет"? А что есть? Марка, модель? Всю информацию о параметрах связи с датчиком Вам должен дать производитель. Даже самые китайские китайцы дают. Без этого будет не сказать чтобы совсем невозможно вычислить адрес устройства, а также адреса и параметры регистров, но очень и очень непросто.
    Начать хотя бы с того что RS-232 -- это не протокол связи, а стандарт физического уровня. А вот протокол, т.е. как раз описание процедур обмена данных с прибором, может быть какой угодно, вплоть до уникального и нигде не описанного.

  4. #8824

    По умолчанию

    Спасибо за ответ, попробую сделать что-нибудь в таком духе, а в ссылке на примеры файлы почему-то не скачиваются, может потому что закрытая тема, не знаю( может есть примеры в другом месте?
    Последний раз редактировалось Angelina69; 24.05.2022 в 12:02.

  5. #8825

    По умолчанию

    Вместе с датчиком шло ПО, которое и считывало все данные, скорее всего поэтому производители не включили информацию о протоколе, но мне нужно подключить именно к контроллеру, чтобы он отображал данные и производил необходимые мне арифметические действия. (про протокол спасибо - согласна)

  6. #8826

    По умолчанию

    Angelina69, видимо, ссылки "протухли".
    Посмотрите, тогда среди https://owen.ru/product/codesys_v2/example_program - вижу там примеры связи по нестандартным протоколам
    Не обязательно это будет SysLibCom - может UNM или OwenNET. У меня реально в этом нет опыта, но предполагаю, что кирпичики для решения в этом направлении.

    Немного неудобно оказалось - примеры разбросаны на страницах к приборам и на странице CoDeSys и на форуме, а не в одном месте, но это лучше, чем ничего.

    Ещё, менеджер по продажам нашего федерального округа советовал писать в техподдержку support@owen.ru, но на мои вопросы они ответили дословно "в каждом случае по разному". Но, попытка не пытка, может именно по вопросу протоколов у консультантов есть ещё примеры и наработки, а если скажете им ещё и название датчика - может даже и готовое решение. Если они отправят к тем же примерам, то значит в примерах есть направление к самостоятельному решению.

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

    По умолчанию

    Цитата Сообщение от АлександрZ Посмотреть сообщение
    ...Но хотелось бы понять что происходит в данном конкретном случае, ведь память не занята, предупреждений и ошибок при компиляции нет, что тогда?
    Дык Марс в Юпитере, очевидно ж

  8. #8828

    По умолчанию

    Цитата Сообщение от Angelina69 Посмотреть сообщение
    Подскажите, как узнать ModuleSlaveAddress , имеет ли значение ModuleIP, как узнать можно RegisterAddress. Как считать* данные, может есть какие-нибудь примеры связи контроллера с slave по rs-232, ничего найти почти не могуВложение 60799
    как узнать ModuleSlaveAddress - теоретически - никак, так как это параметр, который выставляется руками в слейве
    практически - воспользуйтесь простейшим сканером модбас, который перебирает адреса и скорости, если датчик сделан под модбас, сканер покажет на какой адрес и скорость отвечает слейв.
    можете скачать по ссылке и попробовать
    https://drive.google.com/file/d/1lxZ...ew?usp=sharing

    как узнать можно RegisterAddress - теоретически - из документации производителя
    практически - также сканером данных , но если датчик реально под протокол модбас сделан. Но всё, что вы сможете узнать - это регистр и тип, а что туда вложил производитель - неизвестно.
    Но ковыряние "чёрного ящика" сканером - та ещё история, учитывая ваш "expirience", проще найти документацию, либо запросить производителя

    slave по rs-232
    а почему вырешили, что датчик работает по 232?

    и да - в любом случае, для экспирементов со сканером, вам потребуется юсб/рс преобразователь
    Последний раз редактировалось In_Da_Cher_A; 25.05.2022 в 09:26.

  9. #8829

    По умолчанию

    Вопрос, если программу вызывать вот так :
    CASE a OF
    0 :
    ton1(IN:= NOT ton1.Q , PT:= t#50ms , Q=> , ET=> );
    IF ton1.Q THEN
    a :=1 ;
    END_IF
    1 :
    XXX; (* Вызов программы *)
    a := 0;
    END_CASE
    Это равносильно вызову программы через Timer_POU ?

  10. #8830

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение

    [/CODE]только медленнее на цикл или два
    Для вызова PID регулятора это критично или нет?

Страница 883 из 1042 ПерваяПервая ... 383783833873881882883884885893933983 ... ПоследняяПоследняя

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

Ваши права

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