Страница 56 из 58 ПерваяПервая ... 6465455565758 ПоследняяПоследняя
Показано с 551 по 560 из 579

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

  1. #551

    По умолчанию

    Цитата Сообщение от Алексаныч Посмотреть сообщение
    То на симуляции это работает так. На примере команды "Вперед". Подается сигнал на первый выход(пуск двигателя вперед). Если нажать повторно кнопку "Вперед" двигатель остановится. Но вот если вместо кнопки "Вперед", нажать "Назад" двигатель не остановится, а мгновенно включиться сигнал на второй выход(пуск двигателя в реверс). А мне надо, чтобы он остановился и уже при следующем нажатии кнопки оператор может запустить двигатель в нужный момент. Просто у нас растительное масло, а оно способно сделать залипании кнопки.
    Тогда схема будет такой 1 Схема.jpg
    А первая функция будет так
    Код:
       if vper and not puskn or puskv  and not nazad then motorvper := true;
       end_if      
       if  nazad or vper  and puskv  then motorvper := false ;
       end_if       
    end_function
    Вторая по аналогии сами попробуйте

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

    По умолчанию

    Цитата Сообщение от Алексаныч Посмотреть сообщение
    Да если бы он вот так объяснил, было бы намного лучше.
    Но походу или я тупой или плохо обрисовал задачу. Если вот так прописать, как в первом варианте(даже с линиями задержки, и без вторых IF) или вариант Валенка. То на симуляции это работает так. На примере команды "Вперед". Подается сигнал на первый выход(пуск двигателя вперед). Если нажать повторно кнопку "Вперед" двигатель остановится. Но вот если вместо кнопки "Вперед", нажать "Назад" двигатель не остановится, а мгновенно включиться сигнал на второй выход(пуск двигателя в реверс). А мне надо, чтобы он остановился и уже при следующем нажатии кнопки оператор может запустить двигатель в нужный момент. Просто у нас растительное масло, а оно способно сделать залипании кнопки.
    Если сделать вот так, то работает
    Вложения Вложения

  3. #553
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,236
    Последний раз редактировалось Сергей0308; 31.05.2023 в 01:59.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

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

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Ну, хочет человек ST.
    Вот мой вариант
    Безымянный.png
    Вложения Вложения

  5. #555
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от Алексаныч Посмотреть сообщение
    мне надо, чтобы он
    странное желание "ловить" события с помощью функции, да и сам алгоритм вызывает сомнения, к примеру если операторы начнут совершать двойные нажатия на кнопки. Автоматизация это же не безусловное использование вычислительной техники в любого рода задачах. Кто будет определять что привод действительно остановился, чтоб только после этого задать другое направление. По хорошему всё же должна быть третья кнопка которая просто останавливает процесс, а вперед и назад должны работать по принципу нажал и забыл, автоматом должна происходить парковка(остановка) и смена направления по единственному нажатию, надеюсь ОС с частотника заведена в контроллер
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  6. #556

    По умолчанию

    Всем спасибо. Разобрался. Для себя подчерпнул много нового. Для переживающего о двойном нажатии и резкой смене движения. Еще ни разу не было обращений. Я же эту систему сначала чисто на блоках сделал. Просто как она выглядит на блоках и как с помощью ST это большая разница и если знать нюансы ST и иметь больше опыта легче в создании вразы. А уж при появлении возможности создать функциональный блок, это можно все в один блок запихать.

  7. #557
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от Алексаныч Посмотреть сообщение
    Еще ни разу не было обращений.
    убойный аргумент, туше. Может и не жалуются потому что видят в Вас авторитет, из галетника на три положения сделать целую систему на контроллере это круто
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #558
    Пользователь
    Регистрация
    09.03.2020
    Адрес
    Новочеркасск
    Сообщений
    27

    По умолчанию

    Вопрос: а когда можно будет вставлять st-функции внутрь ФБ?

  9. #559

    По умолчанию

    Ошибка при Включении отладки и использование блока ST
    Подскажите с чем это связанно и как этого избежать

    System.ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
    at System.Collections.Generic.List`1.GetRange(Int32 index, Int32 count)
    at Owen.ProgrammableRelay.StackBuild.CopyCellsTo(Int3 2 sourceCellIndex, Int32 destCellIndex, Int32 cellsCount)
    at ProgramRelayFBD.ApplicationLayer.ST.AnalizeFunctio nElementService.Analize(StFunctionElement element, ProgramCode program, ICompiledFunctionRepository compiledFunctionRepo)
    at Owen.General.DomainEvents.RaiseEvent[T](T event, IEnumerable`1 actions)
    at ProgramRelayFBD.DomainLayer.OnlineDebugging.Online DebuggingCompilerState.HandleBuildElement(IBuildin gElement element, ProgramCode program, ICompiler compiler)
    at Owen.Compiling.ProgramLinker.CompilingElements(Pro gramCode program, IEnumerable`1 elements, CancellationToken cancellationToken)
    at ProgramRelayFBD.DomainLayer.Compilers.BaseCompiler .CompilePrograms(ProgramItem programItem, CancellationToken cancellationToken)
    at ProgramRelayFBD.DrawingView.<>c__DisplayClass91_0. b__0()
    at System.Threading.ExecutionContext.RunFromThreadPoo lDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
    --- End of stack trace from previous location ---
    at System.Threading.Tasks.Task.ExecuteWithThreadLocal (Task& currentTaskSlot, Thread threadPoolThread)

  10. #560

    По умолчанию

    Подскажите, какой сценарий возникновения такой ошибки и на какой версии owen logic?
    Менеджер по продукту | Owen Logic
    email: soft@owen.ru

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

Похожие темы

  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

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

Ваши права

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