Страница 485 из 893 ПерваяПервая ... 385435475483484485486487495535585 ... ПоследняяПоследняя
Показано с 4,841 по 4,850 из 8922

Тема: CODESYS V3.5. Вопросы и ответы

  1. #4841

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    У меня проблема не воспроизводится:
    https://disk.yandex.ru/i/b0DPsW1bu3DYmw
    Спасибо. Я разобрался благодаря вашему видосу. Стало понятно.

  2. #4842

    По умолчанию

    Это баг или фича:
    баг фича.png

    Инкрементирую переменную. Но настроил выход блока неправильно. Получаю из-за этого ошибку. (показано красным)
    Причина в элементе 70, но это совсем другой элемент. (показано зеленым)

    Как так?

  3. #4843

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Это баг или фича:
    баг фича.png

    Инкрементирую переменную. Но настроил выход блока неправильно. Получаю из-за этого ошибку. (показано красным)
    Причина в элементе 70, но это совсем другой элемент. (показано зеленым)

    Как так?
    Это баг. Бывает.

    16719041905990.jpg

  4. #4844

    По умолчанию

    Есть вопрос.
    Каждый раз перед приёмом информации мне нужно очистить приемные буфера (.)(.)
    Я использую шаги (CASE). На шаге 65 я использую функциональный блок MEM.MemFill. Потом ухожу на шаг 70. См. рисунок:

    Л - логика.png

    Этот блок не отрабатывается, потому что в первом квадрате MEM.MemFill постоянно включен выход MemFill, хотя разрешение EN уже отключено.
    И во втором квадрате MEM.MemFill выход MemFill постоянно активен. Из-за этого квадрат move постоянно переключает bState в значение 70.

    Разве отсутствие входного сигнала EN не должно блокировать все выходы в квадрате? Это было бы логичнее!
    Последний раз редактировалось ВладОвен; 26.12.2022 в 18:40.

  5. #4845

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Есть вопрос.
    Каждый раз перед приёмом информации мне нужно очистить приемные буфера (.)(.)
    Я использую шаги (CASE). На шаге 65 я использую функциональный блок MEM.MemFill. Потом ухожу на шаг 70. См. рисунок:

    Л - логика.png

    Этот блок не отрабатывается, потому что в первом квадрате MEM.MemFill постоянно включен выход MemFill, хотя разрешение EN уже отключено.
    И во втором квадрате MEM.MemFill выход MemFill постоянно активен. Из-за этого квадрат move постоянно переключает bState в значение 70.

    Разве отсутствие входного сигнала EN не должно блокировать все выходы в квадрате? Это было бы логичнее!
    Разработчики стандарта МЭК 61131-3 считают иначе:

    26-12-2022 18-52-09.png

    26-12-2022 18-49-34.png

    Т.е. для функций состояние выходов при EN = FALSE не специфицировано и определяется конкретной реализацией.
    Для ФБ состояние выходов при EN = FALSE специфицировано - они сохраняют свои значения из предыдущего вызова.

    Разработчики CODESYS выбрали для функций ту же реализацию обработки выходов при EN = FALSE, что и для ФБ - и это вполне закономерно.

    Собственно, если вы ENO заведете на EN - то ваша проблема исчезнет сама собой.

  6. #4846

    По умолчанию

    Спасибо за разъяснения.
    Как бы вы решили такую задачу? Как словить именно фронт выходного сигнала MemFill? Есть какие-либо "одновибраторы - фронтовики" ?
    Триггер может какой?

  7. #4847

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Спасибо за разъяснения.
    Как бы вы решили такую задачу? Как словить именно фронт выходного сигнала MemFill? Есть какие-либо "одновибраторы - фронтовики" ?
    Триггер может какой?
    1. Соединял бы по цепочке ENO с EN следующего квадратика.
    2. R_TRIG

  8. #4848

    По умолчанию

    Так:
    rtrig.png

    Второй очищающий квадрат постоянно включен.
    Получается он постоянно очищает второй буфер.

    Честно говоря, не понял логики.
    Что я делаю не так?

    PS. Разобрался...
    Евгений, а этот R-Trig он при фронте на входе дает единичный импульс на выходе? Так?
    Последний раз редактировалось ВладОвен; 27.12.2022 в 10:52.

  9. #4849

  10. #4850

    По умолчанию

    Евгений, подскажите, правильно ли я вызываю метод? (основная прога называется main). См.рис.:

    method.png

    Это прием пакета через RS-232. Асинхронные прилеты пакетов заставляют контролировать целостность и склеивать иногда разорванные данные.
    Поэтому реализован обычный метод, который реально вызывается 1 раз в 10 секунд (реально наблюдал) для склейки двух буферов.
    Весь автомат заточен так, что bState приравнивается к 85 только когда пакет оказался разорванным. В остальных (99%) случаях этот шаг пропускается.
    Правильно ли я понял, что метод не запускается сам по себе и не отнимает ресурс ПЛК.

Страница 485 из 893 ПерваяПервая ... 385435475483484485486487495535585 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе СП3хх, СП270
    Ответов: 4209
    Последнее сообщение: 26.08.2026, 16:07
  2. Ответов: 863
    Последнее сообщение: 02.03.2026, 17:13
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 273
    Последнее сообщение: 08.09.2025, 13:21
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе СП3хх, СП270
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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