Страница 50 из 62 ПерваяПервая ... 40484950515260 ... ПоследняяПоследняя
Показано с 491 по 500 из 689

Тема: Функциональные блоки на языке ST

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Функциональный блок работает только в момент его вызова. Все остальное время мы пользуемся результатом его работы.
    Например
    Код:
    var_input //объявление входных переменных
           E : bool; 
        end_var
    
        var_output //объявление выходных переменных
           Q : bool; 
        end_var
    
        var //объявление локальных переменных
           RTrig : SYS.RTRIG; 
        end_var
    
        RTrig.I := E;
        if not RTrig.Q then RТrig(); end_if
        Q := RTrig.Q;
    Здесь триггер взведется по фронту Е и останется таким навсегда (ну, или пока мы его где-нибудь в другом месте опять не вызовем)
    Был грешен... Вы мне открыли глаза.
    Проверил на codesys 3.5, выход триггера остаётся взведенным до его повторного вызова. Я всегда думал, что он работает до окончания цикла программы/подпрограммы. Т.е. по циклу программы он сбросится только когда снова в него упрется...

    Или я знал это раньше, или не знал и забыл)

    Надо это всё переосмыслить. Так знал я это или нет...

  2. #2

    По умолчанию

    Камрады-новички (я без иронии). Я вот вас читаю и понимаю, что надо у себя на сайте, что ли, написать простую статью о том, чем Функциональнй Блок от Функции отличается... Прям этот вопрос заново возник у кучи народа на форуме.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  3. #3

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Камрады-новички (я без иронии). Я вот вас читаю и понимаю, что надо у себя на сайте, что ли, написать простую статью о том, чем Функциональнй Блок от Функции отличается... Прям этот вопрос заново возник у кучи народа на форуме.
    А я и правда думал, что триггер возведён до конца цикла именно подпрограммы. Везде на диаграммах указан период работы - цикл. Но этот цикл не до окончания подпрограммы, а до того места, пока код в программе опять не увидит этот триггер.

    Да, я туп оказался. Позор на мои седины.

  4. #4

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    А я и правда думал, что триггер возведён до конца цикла именно подпрограммы. Везде на диаграммах указан период работы - цикл. Но этот цикл не до окончания подпрограммы, а до того места, пока код в программе опять не увидит этот триггер.

    Да, я туп оказался. Позор на мои седины.
    А я всегда выдумываю всякие эксперименты с кодом, если в чем-то сомневаюсь или недопонимаю. Такие баги в башке иногда вылавливаю - ужас!

  5. #5

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    А я и правда думал, что триггер возведён до конца цикла именно подпрограммы.
    Ну, если по серьёзному, без шуточек, то мнемонически можно запомнить, что во всей программе/задаче ПЛК цикл - это всё-всё целиком. Причём сначала считываются входы, обрабатывается программа, потом выдаются значения на выходы.
    Наверное когда-нибудь я про это напишу всё же, так как сам тупил: думал что FB - автономны, и какой-нибудь таймер сам по себе будет считать, если его не вызывать в коде
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  6. #6

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Ну, если по серьёзному, без шуточек, то мнемонически можно запомнить, что во всей программе/задаче ПЛК цикл - это всё-всё целиком. Причём сначала считываются входы, обрабатывается программа, потом выдаются значения на выходы.
    Наверное когда-нибудь я про это напишу всё же, так как сам тупил: думал что FB - автономны, и какой-нибудь таймер сам по себе будет считать, если его не вызывать в коде
    Вообще, для понимания лучше всего написать, например, тот же RTRIG, с моего вопроса о котором этот разговор начался, самому. И тогда вопросов никаких не остаётся. Сразу видно, что он просто не может по другому отработать. Если бы я это сделал сразу, одним глупым вопросом здесь было бы меньше. ))

  7. #7

    По умолчанию

    hawkey Да. Согласен. Только я душнила и долгострой. Идея классная, но напишу, наверное, через месяц, когда всем, кому интересно, будет нафиг не нужно =)
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  8. #8

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Только я душнила и долгострой. Идея классная, но напишу, наверное, через месяц, когда всем, кому интересно, будет нафиг не нужно
    Камрады! Я тут ночку посидел, не спя, и написал пост про, который говорил: https://cs-cs.net/funkciya-fun-i-fun...esys-owenlogic
    Это пост про Функции и Функциональные блоки. Описал я то, как они работают, как создавать, как вызывать. И некоторые приёмы для CodeSys (для OwenLogic не подойдут).
    Если кому полезно - читайте на здоровье!
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  9. #9

    По умолчанию

    Добрый день.
    Системная функция Get_Time возвращает значение переменной, содержащей время, прошедшее с момента включения прибора, в миллисекундах. Переменная четырёхбайтовая. Что происходит с её значением, если прибор находится во включённом состоянии более 50 дней? Обнуляется и начинает новый круг?

  10. #10

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    4 байта = 32 бита = 4294967295 сек = 136 лет (примерно)
    Да, но в справке сказано, что время в миллисекундах, не в секундах.

Страница 50 из 62 ПерваяПервая ... 40484950515260 ... ПоследняяПоследняя

Похожие темы

  1. ПЛК73 (Функциональные кнопки)
    от necro в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 18.05.2022, 10:03
  2. Функциональные блоки
    от ribamuka в разделе СПК2xx (архив)
    Ответов: 4
    Последнее сообщение: 08.04.2018, 15:01
  3. Функциональные блоки насосов в CoDeSys
    от Алексей Ермолаев в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 28.03.2017, 13:50
  4. Функциональные блоки- где искать?
    от Xops в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 01.03.2016, 11:07
  5. СПК функциональные клавиши
    от Lyohin в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 30.03.2015, 15:10

Ваши права

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