Страница 359 из 413 ПерваяПервая ... 259309349357358359360361369409 ... ПоследняяПоследняя
Показано с 3,581 по 3,590 из 4885

Тема: разные вопросы новичка

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,188

    По умолчанию

    Раз пошла такая пьянка то тоже выложу свое.
    Принципиальным считаю имена. Одно имя - одно поведение для портаций туды-сюды
    Лишних полей не люблю
    Запись без уступов терпеть не могу

    Код:
    function_block TP
    //полный эквивалент Кодесис/Standart/TP с ТЕМ ЖЕ дебильным мерцанием при PT = 0 IN = TRUE
    
        var_input //описание полей - см справка Кодесис
            IN: bool;
            PT: udint; //мс
        end_var
        
        var_output 
            Q : bool;
            ET: udint; //мс
            
        //++ к Кодесис/Standart/TP 
            REM: udint; //мс, оставшееся время работы
        end_var
        
        var 
            StartTime: time;
        end_var
        
        if Q then
            ET := time_to_udint(get_time() - StartTime);
            if ET >= PT then
                ET := PT;
            end_if
            Q := ET < PT;
            REM := PT - ET;
        elsif not IN then
            ET := 0;
            REM := PT;
        elsif ET = 0 then
            StartTime := get_time();
            Q := true;
        end_if
    
    end_function_block
    Последний раз редактировалось Валенок; 29.08.2025 в 17:14.

  2. #2

    По умолчанию

    Добрый день! Подскажите пожалуста, вот на ST выражениеЖ
    if LE_PR AND PUSK OR PUSK_F_RIGT AND NOT L_KONC AND NOT STOP then
    MOTOR :=TRUE;
    PUSK_F_RIGT:=true;

    ELSE
    MOTOR :=false;
    PUSK_F_RIGT:=false;
    А это скрин сииммуляцциии его в лоджике
    end_ifbandicam 2025-08-30 10-03-58-419.jpg. вопрос _почему когда входные переменные:
    LE_PR=1 PUSK=1 и L_KONC=1 выходная переменная MOTOR тоже равна 1 хотя условие and not L_KONC должно запрещать выходной переменной MOTOR true? Наверное я чегото с синтаксисом не так написал?

  3. #3
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    2,162

    По умолчанию

    Цитата Сообщение от дрю Посмотреть сообщение
    Добрый день! Подскажите пожалуста, вот на ST выражениеЖ
    if LE_PR AND PUSK OR PUSK_F_RIGT AND NOT L_KONC AND NOT STOP then
    MOTOR :=TRUE;
    PUSK_F_RIGT:=true;

    ELSE
    MOTOR :=false;
    PUSK_F_RIGT:=false;
    А это скрин сииммуляцциии его в лоджике
    end_ifbandicam 2025-08-30 10-03-58-419.jpg. вопрос _почему когда входные переменные:
    LE_PR=1 PUSK=1 и L_KONC=1 выходная переменная MOTOR тоже равна 1 хотя условие and not L_KONC должно запрещать выходной переменной MOTOR true? Наверное я чегото с синтаксисом не так написал?
    Операция and - это логическое умножение, or - сложение. И приоритеты у ниж такие же как в обычной математике. Т.е., в вашем случае получилось:
    1 * 1 + 1 * 0 * 1 = 1 + 0 = 1. Так что выделяйте нужный порядок скобками

    А еще, так, для справки, выражение not A and not B можно записать как not (A or B), ну и, также not A or not B = not (A and B)
    Последний раз редактировалось Dimensy; 30.08.2025 в 11:31.

  4. #4

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Не претендую на оптимальность
    Цитата Сообщение от EFrol Посмотреть сообщение
    Вариант 2:
    Owen.jpg
    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Ниже код TP с паузой, умножение на 1000 на входе РТ -задача в секундах (можно убрать),
    разделить на 1000 на выходе ЕТ, не будет миллисекунд (можно добавить).
    Благодарю коллеги!
    Оказывается это так просто...😊

  5. #5

    По умолчанию

    Влияет
    OR PUSK_F_RIGT

    Если написать например так
    if (LE_PR AND PUSK OR PUSK_F_RIGT) AND NOT L_KONC AND NOT STOP then
    то будет работать

  6. #6

    По умолчанию

    Да все верно, работает.БЛАГОДАРЮ

  7. #7

    По умолчанию

    спасибо, сейчас попробую. Только сейчас заметил что задал вопрос не втой ветке и продублировал его в ,,правильной,,

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

    По умолчанию

    Я б ещё добавил, что если юзается чисто бинарное выражение (if else) да ещё и и с присвоением по сути результата if, то сам if не нужен, можно просто присвоить
    Мотор := логическое выражение //выше норм сказали
    А второй переменной (здесь) присвоить Мотор

    В кодесис можно было бы сделать сквозное присвоение
    Мотор := вторая переменная := логическое выражение

  9. #9
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    2,162

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Я б ещё добавил, что если юзается чисто бинарное выражение (if else) да ещё и и с присвоением по сути результата if, то сам if не нужен, можно просто присвоить
    Мотор := логическое выражение //выше норм сказали
    А второй переменной (здесь) присвоить Мотор

    В кодесис можно было бы сделать сквозное присвоение
    Мотор := вторая переменная := логическое выражение
    Перефразирую, специально для чайников:
    выражение типа
    if (A or B) and not C then
    M := true;
    B := true;
    else
    M := false;
    B := false;
    end_if


    Можно записать как
    M := (A or B) and not C;
    B := M;

  10. #10

    По умолчанию

    Теперь,наверное, в правильной ветке задам вопрос. Напмсал ФБ на ST_проверил его в симуляторе все работает ошибок нетbandicam 2025-08-30 11-42-55-798.jpg
    Перенес его на основной ,,холст,, лоджика_плдключил необходимые переменные_ включаю симуляцию и две из четырех переменных привязаных к физичиским входам не активны в симуляторе (на скрине их отметил красными стрелками)
    bandicam 2025-08-30 11-42-11-537.jpg. Если одну из этих ,, мертвых,, перееемеых ,,отвязываю,, от ФБ и соединяю с любым из не используемых выходов на ,,холсте,, она,,оживает,,.. Прикручиваю оббраатно - вхоод нова становиться не доступным . Может кто подскажет что с ними не так?
    В качестве эксперимента отсоеденил от ФБ ,,мертвый,, *Пуск_П* и к нему прикрутил используемый в другом участке схемы физичиский вход *З_право* - вс нормально вход доступен в симуляции, значит дело не в написаном мною ФБ.bandicam 2025-08-30 11-57-30-567.jpg

Страница 359 из 413 ПерваяПервая ... 259309349357358359360361369409 ... ПоследняяПоследняя

Похожие темы

  1. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 62
    Последнее сообщение: 27.07.2026, 19:16
  2. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 15.04.2025, 16:38
  3. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 14:39
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 09:29

Ваши права

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