Вот сто лет тому назад выкладывал таймер с прямым и обратным отсчётом времени:
https://owen.ru/forum/showthread.php...l=1#post353353
Вы как будто только сегодня после обеда с луны упали, мне так кажется!
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Раз пошла такая пьянка то тоже выложу свое.
Принципиальным считаю имена. Одно имя - одно поведение для портаций туды-сюды
Лишних полей не люблю
Запись без уступов терпеть не могу
Код: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.
Добрый день! Подскажите пожалуста, вот на 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.
Влияет
OR PUSK_F_RIGT
Если написать например так
if (LE_PR AND PUSK OR PUSK_F_RIGT) AND NOT L_KONC AND NOT STOP then
то будет работать
Да все верно, работает.БЛАГОДАРЮ
спасибо, сейчас попробую. Только сейчас заметил что задал вопрос не втой ветке и продублировал его в ,,правильной,,