Страница 358 из 375 ПерваяПервая ... 258308348356357358359360368 ... ПоследняяПоследняя
Показано с 3,571 по 3,580 из 4481

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

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

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

    По умолчанию

    Цитата Сообщение от Traveller Посмотреть сообщение
    А вот у kondor3000, сначала не понял, потом дошло, в общем нужно в ms, там в коде "PT:=PT*1000" тыщу заменил на единицу и стало как надо, или эту строку вообще можно убрать?
    В общем всем спасибо!
    Если нужны мс, то строку можно удалить или закоментировать //

  2. #2

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Если нужны мс, то строку можно удалить или закоментировать //
    Ок! Я так и понял...

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

    По умолчанию

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

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

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

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

    По умолчанию

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

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

  5. #5

    По умолчанию

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

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

    По умолчанию

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

  7. #7

    По умолчанию

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

  8. #8

    По умолчанию

    Влияет
    OR PUSK_F_RIGT

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

  9. #9

    По умолчанию

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

  10. #10

    По умолчанию

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

Страница 358 из 375 ПерваяПервая ... 258308348356357358359360368 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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