на 0 не ругается?
на 0 не ругается?
Неа, на ноль не ругаетсяправда что при этом делает - не проверял
for vFor := 1 to 10 do
v := 11 - vFor;
end_for
Это то понятно, но как-то костыльно... тем более что по стандарту языка ST BY может быть отрицательным. Просто как всегда не доделано
Последний раз редактировалось Мамонов Михаил; 06.04.2026 в 15:08.
у Лоджика нет понятия отрицательного числа для целочесленных, может по этому?
А, логично, да. Ведь в BY можно и переменную подставить, не только константу. Ну значит считаем, что такая особенность в лоджике
Можно ещё дуркануть через WHILE, но он опасен: его можно легко загнать в бесконечный цикл.
Код:udiI := 10; WHILE (udiI > 0) DO *** *** udiI := udiI -1; END_WHILE
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab
По строкам не считал, но количество операций, вроде, меньше
Код:function_block TOnP // Таймер TON с паузой var_input In,P : bool; PT : udint; // Задача времени таймера udint, мс end_var var_output Q : bool; // ET: udint; // Выход времени таймера udint, мс end_var var clk : bool; tmStart, tmNow :udint; end_var tmNow := time_to_udint(get_time()); if P then tmStart := tmNow - ET; end_if if In and not clk then tmStart := tmNow; end_if clk := In; ET := (tmNow - tmStart) * bool_to_udint(In); if ET >= PT then ET := PT; end_if Q := In and (ET = PT); end_function_block
Последний раз редактировалось Dimensy; 22.04.2026 в 16:16.
Пытаясь сделать ввод в массив на 40 начальных значений, столкнулся с проблемой, вывод на экран 40 дисплеев для ввода, 1 Скрин записи массива.jpg
происходит переполнение визуализации на 136 %.
Соответственно, надо придумать автоматизацию для ввода.
Пробовал на циклах и обычную запись. Оказалось лучше и проще, обычная последовательная запись.
Получилось так.
После первого ввода, сохранения и пока идёт запись, горит синий индикатор. После ввода РТ, выбрать Запись и нажать Ок,
после записи, автоматически поменяется номер строки массива, для последующего ввода и сохранения.
Двумя ФБ, можно записать параллельно и 2 массива, используя всего 6 дисплеев и 1 экран. 1 Скрин записи массива_2.jpg
Проверил, всё работает, но пример загромождать не стал. Версия Owen Logic3.0.372,
онлайн отладка массивов в версии Owen Logic3.0.373
Последний раз редактировалось kondor3000; 27.04.2026 в 18:09.