Страница 233 из 1044 ПерваяПервая ... 133183223231232233234235243283333733 ... ПоследняяПоследняя
Показано с 2,321 по 2,330 из 10436

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

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

    По умолчанию

    Валенок а они все неправильные, при a=1 выход b=1 а не срабатывает по переднему фронту и отключается. (только что попробовал)

    Седня пробовал переделать один макрос от AI где есть "обратная связь" в OwenLogic - не получилось, ведет себя неадекватно по сравнению с простыми элементами типа R и F тригера. Так что совсем непонятно, как работает ПР110(114) и как там точно реализована эта обратная связь.....

    Да, действительно, если стоит инверсия, то работает как и R тригер

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Все 3 варианта из #2535,#2538 ведут себя по разному. Который правильный то ?
    А что надо было еще и правильно написать я то всё пытался показать что никаких линий вести не надо,просто состояние переменной последнего блока передастся в следущем цикле блока выше

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

    По умолчанию

    Думал что здесь нахаляву узнаю таки - что такое R-тригер ? )))) Даже в ответах шифруют. Наверно супер штука.
    Кстати для melky#2535 - отличие этих вариантов не только инверсия, там есть более принципиальная разница.

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

    По умолчанию

    Валенок, да я просто на R и F тригерах тренировался Но не все так просто. В OwenLogic вообще непонятно как работает реле, потому что положение FB не сильно то влияет на исполнение кода, в отличие от CodeSys, тут чуть неправильный порядок и программа работает совсем иначе. Немного усложняет перенос макросов с ПР. Или вообще переделывать алгоритм или растягивать FB так, чтобы они работали в необходимой последовательности.

  5. #2325

    По умолчанию

    Добрый день.
    Моя проблема заключается в том, что я не могу объявить SFC-флаги в CoDeSys v3.5. При объявлении переменной SFCInit в области объявлений (как в CoDeSys v2.3) компилятор выдаёт предупреждение: "Использование переменной SFC-флага 'SFCReset' отключено!". В меню "Вид" - "Properties" - "Установки SFC" поля для галочек не доступны.
    В чём может быть проблема?

  6. #2326

    По умолчанию

    Объясните пожалуйста как работает чтение из буфера (код из примеров и полезностей: 08. Примеры программ и полезности\Samples_plc63-73\07_ModBus_And_OwenNet\ Modbus запись Int и Real (FBD).pro)

    IF cmpl THEN
    IF err=0 THEN (*Если нет ошибок, то получаем данные из буфера типа INT*)
    x:=BYTE_TO_WORD(BUFFER[1]) OR SHL(BYTE_TO_WORD(BUFFER[0]),8);
    END_IF
    master1:=1; (*переходим к выполнению следующего ФБ*)
    END_IF
    К чему там OR, там же нет никаких условий?

  7. #2327
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Цитата Сообщение от Денис_Гуливатенко Посмотреть сообщение
    Объясните пожалуйста как работает чтение из буфера (код из примеров и полезностей: 08. Примеры программ и полезности\Samples_plc63-73\07_ModBus_And_OwenNet\ Modbus запись Int и Real (FBD).pro)


    К чему там OR, там же нет никаких условий?
    Модбас имеет свойство менять местами байты в регистре. При чтении из буфера сразу меняем их местами.

    BYTE_TO_WORD(BUFFER[1]) - содержимое младшего байта. Берется из 1-го элемента массива буфера (8 бит), BYTE_TO_WORD меняет тип переменной на WORD (16 бит). В результате старшие 8 бит будут нули.

    SHL(BYTE_TO_WORD(BUFFER[0]),8) - содержимое старшего байта. Берется из 0-го элемента массива буфера (8 бит), меняем тип переменной на WORD (16 бит). В результате старшие 8 бит будут нули. Оператором SHL сдвигаем биты влево на 8 позиций, оставшиеся биты справа заполняются нулями. В результате старшие 8 бит имеют значение, а младшие 8 бит будут нули.

    OR - это булева операция. Она применяется к двум получившимся значениям побитно. В результате получается сарший байт имеет значение 1-го элемента массива буфера, младший байт имеет значение 0-го элемента массива буфера.

  8. #2328

    По умолчанию

    Спасибо! Теперь все понятно!

  9. #2329

    По умолчанию

    Где взять расшифровку ошибок к библиотеке ModBus?

  10. #2330
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    из библиотеки modbus.lib в разделе объявления переменных функционального блока MB_UNI_IO
    (* MODBUS Exception Codes *)
    EXC_NO: BYTE:= 16#00; (* NO EXCEPTION *)
    EXC_HW: BYTE := 16#FE; (* HARDWARE ERROR *)
    EXC_TO: BYTE := 16#FF; (* TIMEOUT ERROR *)

    Стандартные коды ошибок Модбас есть еще в Википедии
    http://ru.wikipedia.org/wiki/Modbus

Страница 233 из 1044 ПерваяПервая ... 133183223231232233234235243283333733 ... ПоследняяПоследняя

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

Ваши права

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