Страница 431 из 455 ПерваяПервая ... 331381421429430431432433441 ... ПоследняяПоследняя
Показано с 4,301 по 4,310 из 4550

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

  1. #4301
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,460

    По умолчанию

    Вот сто лет тому назад выкладывал таймер с прямым и обратным отсчётом времени:

    https://owen.ru/forum/showthread.php...l=1#post353353

    Вы как будто только сегодня после обеда с луны упали, мне так кажется!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

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

    По умолчанию

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

    Код:
    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.

  3. #4303

    По умолчанию

    Добрый день! Подскажите пожалуста, вот на 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? Наверное я чегото с синтаксисом не так написал?

  4. #4304

    По умолчанию

    Влияет
    OR PUSK_F_RIGT

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

  5. #4305

    По умолчанию

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

  6. #4306

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от дрю Посмотреть сообщение
    Добрый день! Подскажите пожалуста, вот на 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.

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

    По умолчанию

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

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

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Я б ещё добавил, что если юзается чисто бинарное выражение (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. #4310

    По умолчанию

    Теперь,наверное, в правильной ветке задам вопрос. Напмсал ФБ на 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

Страница 431 из 455 ПерваяПервая ... 331381421429430431432433441 ... ПоследняяПоследняя

Похожие темы

  1. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 15.04.2025, 16:38
  2. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  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

Ваши права

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