Страница 6 из 58 ПерваяПервая ... 456781656 ... ПоследняяПоследняя
Показано с 51 по 60 из 579

Тема: Создать функцию на ST

  1. #51

    По умолчанию

    Цитата Сообщение от Адрей Посмотреть сообщение
    Согласен на счет развития проекта все нормально идет темпы хорошие так держать. Но думаю на первых парах в ST не стоит вкладывается во все функции на это нужно уйма времени.
    А вот выходов в функции можно добавить.
    Нельзя в функции выходов добавить (читайте описание функции и отличие от ФБ), можно в ФБ или в макросе добавить.
    В этом весь и смысл, сразу пошли по неверному пути.
    Последний раз редактировалось kondor3000; 01.12.2021 в 18:06.

  2. #52
    Пользователь Аватар для СергейНовосиб
    Регистрация
    23.05.2011
    Адрес
    Новосибирск
    Сообщений
    330

    По умолчанию

    А почему нет как в макросах после внесений изменений команды "Обновить функцию". Изменил тип выходной переменной, а в программе нельзя просто обновить. Надо из списка функций заново вставить в проект, чтобы изменить тип выхода. По входам тоже самое.
    Название выходной переменной тоже нельзя изменить.

  3. #53

    По умолчанию

    Браво!
    Но да, выходных переменных нехватает. Конечного автомата не сделаешь. Только для расчетов годится.

  4. #54

    По умолчанию

    Цитата Сообщение от СергейНовосиб Посмотреть сообщение
    А почему нет как в макросах после внесений изменений команды "Обновить функцию". Изменил тип выходной переменной, а в программе нельзя просто обновить. Надо из списка функций заново вставить в проект, чтобы изменить тип выхода. По входам тоже самое.
    Название выходной переменной тоже нельзя изменить.
    В функции переменная выхода и есть имя функции, изменить можно, если название изменить. Если вы про Q, то да, выход всегда Q будет.
    Последний раз редактировалось kondor3000; 02.12.2021 в 11:02.

  5. #55
    Пользователь
    Регистрация
    22.02.2012
    Адрес
    Челябинск
    Сообщений
    191

    По умолчанию

    Присоединяюсь - после изменения не обновляется функция на поле, например если её название изменить. Только удалить-вставить.
    И в плане консультации, таймер как (можно/нельзя) на этом языке описать? Я понимаю, что функция, это участок кода, который имеет один выход. Если у меня есть такие участки программы, но они включают в себя таймер, можно/нельзя их реализовать на ST? Ну и я правильно понимаю, что между вызовами функция никаких внутренних значений переменных не сохраняет и всегда вызывается "как в первый раз" и иначе сделать нельзя?

  6. #56

    По умолчанию

    Цитата Сообщение от starmos Посмотреть сообщение
    Присоединяюсь - после изменения не обновляется функция на поле, например если её название изменить. Только удалить-вставить.
    И в плане консультации, таймер как (можно/нельзя) на этом языке описать? Я понимаю, что функция, это участок кода, который имеет один выход. Если у меня есть такие участки программы, но они включают в себя таймер, можно/нельзя их реализовать на ST? Ну и я правильно понимаю, что между вызовами функция никаких внутренних значений переменных не сохраняет и всегда вызывается "как в первый раз" и иначе сделать нельзя?
    В том то весь и смысл, мало того, что выход один, функция не сохраняет данные, и каждый раз будет снова запускаться, сделали бы ФБ даже с одним выходом, можно было бы и таймеры и что угодно делать.
    Я например пытался сделать таймер с паузой и выходом времени (флоат или целочисленное), и просто сохранить переменную, ничего не получается, каждый раз переменная меняется.
    Последний раз редактировалось kondor3000; 02.12.2021 в 13:50.

  7. #57
    Пользователь
    Регистрация
    22.02.2012
    Адрес
    Челябинск
    Сообщений
    191

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    В том то весь и смысл, мало того, что выход один, функция не сохраняет данные, и каждый раз будет снова запускаться, сделали бы ФБ даже с одним выходом, можно было бы и таймеры и что угодно делать.
    Возможно дело в том, что в ОВЕН хотят, чтобы все эти изделия назывались непременно "программируемые реле". А у таких реле уже устоявшийся вид среды и методики программирования. Т.е. нет задачи превратить это в ПЛК (я помню давнюю дискуссию на эту тему здесь где-то). Поэтому такой усеченный вид. Пригодный только для упрощения комбинационной логики и вычислений, т.е. того, что сильно занимает экран. Бесило рисовать например 8-входовое ИЛИ, а тут раз и просто. Или посчитать что-нибудь большее чем сложить/умножить. А так: вроде и упростили работу и "фундаментальных основ" не затронули.

  8. #58
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,089

    По умолчанию

    Странно, в макрос запихать функцию на ST нельзя, можно пользоваться только в основной программе

  9. #59
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,167

    По умолчанию

    Цитата Сообщение от Адрей Посмотреть сообщение
    Посмотрим что дальше будет, но думаю грань между ПЛК и ПР они не передут. Если не передут то разбегутся от них все. И ПР103 будет не востребован.
    А что есть такая грань?
    Кроме Вас об этом кто-то знает?
    Сколько было тем по этому вопросу, пока грань не получалось обозначить, короче, не томите, грани нарисуйте!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  10. #60

    По умолчанию

    Цитата Сообщение от gmz_001 Посмотреть сообщение
    Браво!
    Но да, выходных переменных нехватает. Конечного автомата не сделаешь. Только для расчетов годится.
    Добрый вечер! Конечный автомат сделать можно. На входе создаете переменную, например, PrevState. И с помощью "линии задержки" передаете выходное значение Q (UDInt - код шага в автомате) на вход. Таким образом при вызове функция узнает на каком шаге автомата она остановилась в прошлом цикле. Внутри делаете CASE по PrevState и все. Получился такой себе FB с хранением предыдущего состояния "снаружи". Все таймеры внешние. Если шаг =10, то таймер 1 запустить. Таймер через время задержки Т выдает TRUE на вход функции. Управление исполнительными механизмами - по номеру состояний. скрин 1.JPGскрин 2.JPG

Страница 6 из 58 ПерваяПервая ... 456781656 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 14
    Последнее сообщение: 01.07.2023, 21:30
  2. Ответов: 6
    Последнее сообщение: 22.12.2021, 10:50
  3. Ответов: 3
    Последнее сообщение: 13.09.2021, 13:31
  4. ПЛК160. Чем заменить функцию записи 0x05?
    от FallenDAY в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 26.08.2017, 13:19
  5. Как написать собственную функцию wait()
    от PavelKazakov в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 23.07.2009, 12:37

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •