Программирование на SCL

Инженерное программное обеспечение
Ответить
САМ
Дилетант
Сообщения: 24
Зарегистрирован: 20 фев 2017, 19:05

Программирование на SCL

Сообщение САМ »

Здравствуйте, коллеги!

У кого есть изящный код обычной старт-стопной кнопки (нажал - вкл, нажал еще раз - выкл, и т.д.) на SCL? Поделитесь пож-та!

И более глобальный вопрос - где найти толковый справочник или список инструкций хотя бы? Что то нигде такого не нашел. Или может следует искать справочник не для SCL, а для PASCAL? (вроде как там синтаксис Паскаля)

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Программирование на SCL

Сообщение Михайло »

Код: Выделить всё

IF Кнопка_Старт = True THEN Выход := True;
IF Кнопка_Стоп = True THEN Выход := False;
Этот блок должен выполняться циклически.

САМ
Дилетант
Сообщения: 24
Зарегистрирован: 20 фев 2017, 19:05

Re: Программирование на SCL

Сообщение САМ »

Михайло писал(а):
29 фев 2024, 02:27
IF Кнопка_Старт = True THEN Выход := True;
IF Кнопка_Стоп = True THEN Выход := False;
Как говорил Промокашка, "тю... так я и сам сбацать могу" 8)
Вопрос не про триггер с двумя кнопками, а про "кувыркающийся", на одной кнопке.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Программирование на SCL

Сообщение Михайло »

Вроде бы детекторов фронтов в SCL нет, но можно сгородить вручную самостоятельно. Сохраняем в глобальную или статическую булеву переменную состояние кнопки и потом сравниваем сохранённое значение с текущим:

Код: Выделить всё

IF Кнопка = True AND Кнопка_prev = False THEN Выход := NOT(Выход);
Кнопка_prev := Кнопка;

САМ
Дилетант
Сообщения: 24
Зарегистрирован: 20 фев 2017, 19:05

Re: Программирование на SCL

Сообщение САМ »

Ладно, вопрос закрыт. Уже сам сочинил. Но на случай, если кому будет интересно, код такой:

IF I 0.1 END M 0.1 = NOT I 0.1 THEN
Q 0.1 := NOT Q 0.1;
END_IF;
M 0.1 := I 0.1;

САМ
Дилетант
Сообщения: 24
Зарегистрирован: 20 фев 2017, 19:05

Re: Программирование на SCL

Сообщение САМ »

Михайло писал(а):
29 фев 2024, 11:23
Сохраняем в глобальную или статическую булеву переменную состояние кнопки и потом сравниваем сохранённое значение с текущим
Да, именно так :beer:

Lgirdas
Профан
Сообщения: 1
Зарегистрирован: 21 мар 2024, 15:44

Re: Программирование на SCL

Сообщение Lgirdas »

IF I 0.1 END M 0.1 = NOT I 0.1 THEN
Q 0.1 := NOT Q 0.1;
END_IF;
M 0.1 := I 0.1;
Это генератор случайных чисел. Результат зависит от того, сколько раз в прокрутку циклов CPU попало состояние нажатого i0.1

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Программирование на SCL

Сообщение Михайло »

Нет i0.1 не изменится в течение скана ЦПУ, но все же я посоветовал более простой мой вариант реализации)

Ответить