Страница 8 из 10 ПерваяПервая ... 678910 ПоследняяПоследняя
Показано с 71 по 80 из 96

Тема: Отображение данных с ПЛК210 на цифровом дисплее СП310-Р

  1. #71

    По умолчанию

    У вас FB это массив, а у ТС нет, он это никак не хочет понять...

  2. #72

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    https://owen.ru/forum/attachment.php...367589&thumb=1
    разве не очевидно что он гоняет один ФБ подставляя в него входящие значения входных данных из 20 мест?
    И ни какой таймер туда не входит
    даже если он объявил несколько экземпляров этого ФБ
    Да, так оно и есть.

    ФБ с обработкой событий с таймером вызываю в цикле 20 раз в Основной программе, соответственно меняются только входящие переменные.
    Объявление.png Программа.png Вызов.png

  3. #73

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Вот скрины работы 20 экземпляров ФБ, со встроенным таймером внутри ФБ. В примере Таймер на 20 секунд.
    Сама программа, таймер встроен в ФБ Вложение 81440 Вызов 20 экземпляров в цикле FOR Вложение 81441
    Просмотр работы 17 и 18 экземпляра, включены не одновременно и время на таймерах разное !!! Вложение 81442
    То есть они работают, каждый в своём экземпляре ФБ.

    Для просмотра работы, не открывая экземпляры, после цикла поставлена i:=17; и 17 экземпляр виден прямо в PLC_PRG.
    Спасибо, буду разбираться!

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

    По умолчанию

    Цитата Сообщение от Mikhail_NNT Посмотреть сообщение
    Да, так оно и есть.

    ФБ с обработкой событий с таймером вызываю в цикле 20 раз в Основной программе, соответственно меняются только входящие переменные.
    Вы вызываете двадцать раз один экземпляр с внутренним таймером, а надо вызывать 20 экземпляров, чтоб обеспечить 20 независимых внутренних таймеров
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  5. #75

    По умолчанию

    Всем спасибо за помощь, разобрался, все поправил, работает. Верная причина указана постом выше.

    Еще такой вопрос, как правильно организовать программу, если события в разных ФБ должны влиять на одно физическое устройство?

    Например, есть 1 лампа и 2 ФБ.
    При событии в первом ФБ лампа горит, иначе не горит.
    При событии во втором ФБ лампа моргает, иначе не моргает.

    Программа с подобными задачами у меня выстроена так (например, ФБ, обрабатывающий событие теста всех ламп световой колонны, и ФБ, обрабатывающий события нажатия кнопок и работы ламп световой колонны):
    В каждом ФБ создается своя выходная логическая переменная, которые привязываются к 2-м выходам на модуле DO. Далее физически 2 выхода подключаются через перемычку и на лампу.
    Такой способ слишком много свободных DO съедает.

    Знаю, что при присвоении значений в одну и ту же переменную в разных ФБ программы, ничего хорошего не выйдет. Но может есть еще варианты, чтобы в конечном итоге был задействован 1 выход модуля DO для лампы?

  6. #76

    По умолчанию

    Пересмотрите подход, пока не поздно, сделайте один ФБ, и управляйте всем чем надо, не будет проблем и геморроя.
    Два выхода на 1 лампу тоже не нужны, одного за глаза. Выше пример уже дал.
    Blink для моргания, тоже можно встроить прямо в ФБ. Пример моргания лампы от Аварии 1 Управление лампой.jpg
    Порядок не выставлял, это пример.
    Последний раз редактировалось kondor3000; 22.01.2025 в 15:11.

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

    По умолчанию

    При событии в первом ФБ лампа горит, иначе не горит.
    При событии во втором ФБ лампа моргает, иначе не моргает.
    События никогда не происходят вместе? - тогда их выходы через OR на DO
    События происходят вместе но одно из них главнее? - тогда выход DO подключать через Селектор.

  8. #78

    По умолчанию

    Понял, спасибо, перепишу код, чтобы все события были в одном условии и ссылались на один DO

  9. #79

    По умолчанию

    Подскажите еще по системному времени. Программа считает простои сборочной линии: кнопка нажата таймер запустился, кнопка отжата таймер остановился и сохранилось значение таймера ЕТ.
    Все работает отлично, все считает заносит данные в таблицу в панели, но делает это в миллисекундах, никак не пойму почему?
    Простои.png
    В выделенном фрагменте построчно:
    Системное время TIME перевожу в DWORD
    Перевожу миллисекунды в секунды разделив DWORD на 1000
    Перевожу DWORD в WORD
    Записываю значение в переменную- старое значение переменной + текущий WORD
    Таблица.png
    В таблице на HMI столбцы данных тип-WORD, всего знаков-4, формат-unsigned

  10. #80

    По умолчанию

    У вас dword в word влазит? Интересно интересно...

    PS А в чем проблема? Таймеры в миллисекундах и работают...
    Последний раз редактировалось МихаилГл; 24.01.2025 в 12:53.

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

Похожие темы

  1. Ответов: 25
    Последнее сообщение: 03.09.2020, 09:37
  2. Программируемое реле ПР200. Отображение информации на дисплее.
    от mchelarsky в разделе Программируемые реле
    Ответов: 2
    Последнее сообщение: 08.08.2019, 12:50
  3. Отображение float/int на дисплее ПР200
    от flicker581 в разделе Среда программирования OWEN Logic
    Ответов: 0
    Последнее сообщение: 17.02.2016, 19:12
  4. Ответов: 8
    Последнее сообщение: 05.06.2014, 21:33
  5. Ответов: 4
    Последнее сообщение: 21.02.2014, 09:24

Ваши права

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