PDA

Просмотр полной версии : Функция с несколькими выходами.



shiro320
16.03.2022, 19:14
Я так полагаю создание функции с несколькими выходами программно не возможно (Язык ST)? Мне нужна функция с несколькими выходами для того чтобы управлять какой из них включен а какой нет, возможно ли как то конвертировать один выход в три передавая например udint? (Я знаю что это можно реализовать другими путями но я хочу именно функцией)

Филоненко Владислав
16.03.2022, 19:29
Выход в виде структуры типовое решение. И несколько выходов на функцию в ST разрешены

shiro320
16.03.2022, 19:35
Выход в виде структуры типовое решение. И несколько выходов на функцию в ST разрешены


Нет, мне требуется несколько разделенных выходов друг от друга допустим выход1 выход2 и выход3 у каждого будут свои значения которые будут задаваться внутри функции, если это возможно то как? Я думаю скорее всего это невозможно в Owen Logic ибо ввиде выхода функция выдает своё значение а иные выходы задать как я поняль нельзя. Если это возможно можно пример? Буду очень признателен.

Dimensy
16.03.2022, 19:51
Так функция всегда возвращает только одно значение. А функциональные блоки в ST пока еще не завезли

shiro320
16.03.2022, 20:04
Так функция всегда возвращает только одно значение. А функциональные блоки в ST пока еще не завезли

Весьма печально будет ещё два вопроса если не сложно коли заговорили о ST.
1.Можно ли сделать бесконечный цикл в ST или что то на него похожее
2.Можно ли сделать таймер задержки, каким либо из путей в ST.
3.Можно ли занести переменную из ST скрипта в память на постоянной основе.
(Всё это в Owen Logic)

Dimensy
16.03.2022, 20:48
Есть хорошая книжка Петрова И.В. "Программируемые контроллеры"
59726

keysansa
16.03.2022, 21:49
Так функция всегда возвращает только одно значение. А функциональные блоки в ST пока еще не завезли
Можете предоставить источник, откуда такие данные?
ЗЫ. Прошу прощения, не обратил внимание, что owen logic обсуждается.

keysansa
16.03.2022, 22:06
Я так полагаю создание функции с несколькими выходами программно не возможно (Язык ST)? Мне нужна функция с несколькими выходами для того чтобы управлять какой из них включен а какой нет, возможно ли как то конвертировать один выход в три передавая например udint? (Я знаю что это можно реализовать другими путями но я хочу именно функцией)

Функция записывается примерно так: y = k*x + b
Т.е. выход один.

Функциональный блок - та же функция, но умеет сохранять свое состояние с прошлого вызова.

Функция может работать как функциональный блок, если ей в качестве аргумента передавать ее состояние на прошлый вызов.

Все. Больше никаких различий нет.

Наличие нескольких выходов - не зависит от того, функция это или функциональный блок. Каждый выход все равно управляется своей функцией/блоком.

Для композиции используются макросы. Которые включают в себя один/одну или несколько функциональный блок/функцию.

kondor3000
16.03.2022, 22:18
Я так полагаю создание функции с несколькими выходами программно не возможно (Язык ST)? Мне нужна функция с несколькими выходами для того чтобы управлять какой из них включен а какой нет, возможно ли как то конвертировать один выход в три передавая например udint? (Я знаю что это можно реализовать другими путями но я хочу именно функцией)

Возможно вам подойдёт автомат состояний, с таймерами снаружи, выход сделать целочисленным, соответственно можно получить до 16 (32) булевых выхода.

игорь68
16.03.2022, 23:03
Администраторы. А можно разговоры по ST загонять в тему ST. Иначе тут будет каша. Авторы топиков пишите о ST в свой раздел. У вас два вопроса а актуальные вопросы по фбд уходят в низ. Так как мне st неинтересна.

keysansa
16.03.2022, 23:06
Так тут ST именно Owen Logiс.
Именно тут больше всего вопросов пока, именно по его реализации.

Филоненко Владислав
17.03.2022, 08:13
Нет, мне требуется несколько разделенных выходов друг от друга допустим выход1 выход2 и выход3 у каждого будут свои значения которые будут задаваться внутри функции, если это возможно то как? Я думаю скорее всего это невозможно в Owen Logic ибо ввиде выхода функция выдает своё значение а иные выходы задать как я поняль нельзя. Если это возможно можно пример? Буду очень признателен.

Вам надо это в коде на FB? Для 3-х выходов пишите 1 функцию, которая делает расчёты и формирует структуру (хоть те же битовые поля) и 3 функции-декодера, каждая свой бит смотрит и на выход выдаёт. Сейчас только так.
Но развитие ST не остановлено, будут и ФБ, и доступ к данным между языками (общее пространство) и все остальные типовые фишки

IVM
17.03.2022, 09:52
Вам надо это в коде на FB? Для 3-х выходов пишите 1 функцию, которая делает расчёты и формирует структуру (хоть те же битовые поля) и 3 функции-декодера, каждая свой бит смотрит и на выход выдаёт. Сейчас только так.
Но развитие ST не остановлено, будут и ФБ, и доступ к данным между языками (общее пространство) и все остальные типовые фишки

Очень ждем.