Просмотр полной версии : Функция с несколькими выходами.
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 ибо ввиде выхода функция выдает своё значение а иные выходы задать как я поняль нельзя. Если это возможно можно пример? Буду очень признателен.
Так функция всегда возвращает только одно значение. А функциональные блоки в ST пока еще не завезли
shiro320
16.03.2022, 20:04
Так функция всегда возвращает только одно значение. А функциональные блоки в ST пока еще не завезли
Весьма печально будет ещё два вопроса если не сложно коли заговорили о ST.
1.Можно ли сделать бесконечный цикл в ST или что то на него похожее
2.Можно ли сделать таймер задержки, каким либо из путей в ST.
3.Можно ли занести переменную из ST скрипта в память на постоянной основе.
(Всё это в Owen Logic)
Есть хорошая книжка Петрова И.В. "Программируемые контроллеры"
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) булевых выхода.
Администраторы. А можно разговоры по 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 не остановлено, будут и ФБ, и доступ к данным между языками (общее пространство) и все остальные типовые фишки
Вам надо это в коде на FB? Для 3-х выходов пишите 1 функцию, которая делает расчёты и формирует структуру (хоть те же битовые поля) и 3 функции-декодера, каждая свой бит смотрит и на выход выдаёт. Сейчас только так.
Но развитие ST не остановлено, будут и ФБ, и доступ к данным между языками (общее пространство) и все остальные типовые фишки
Очень ждем.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot