Страница 31 из 50 ПерваяПервая ... 21293031323341 ... ПоследняяПоследняя
Показано с 301 по 310 из 606

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Andrey G я плохо знаю ST чтобы рассуждать о вашем коде. насколько понимаю exit это то, что в других break, и если есть совпадение то просто выход, не зачем искать что-то дальше....
    на счет repeat вообще не в курсе что это разве в case есть циклы ? , хм, ну да, Валенок прав, зачем тулить цикл, который выйдет сразу по окончании кода ?
    Совершенно верно, exit - просто выход из цикла. Выполнилось условие - вызвал exit и перешел сразу к инструкции после end_repeat. Просто exit не работал (по крайней мере в указаной версии OL)
    case как и другие конструкции языка можно помещать в цикл.
    repeat с безусловным выходом использую чтобы выскочить из case вызвав там exit. Из case в ST по другому по-моему выйти нельзя.

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    а я думал exit относится к case, но суть в другом, case это набор констант в некотором роде, зачем вы его в цикл, даже если у вас единственная итерация ?

    з.ы. я не знаю, как там в C, но в C# вроде из switch case все таки выходят при найденном при помощи break. Может конечно еще какие реализации существуют, надо посмотреть...
    Последний раз редактировалось melky; 21.09.2022 в 13:05.

  3. #3

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    а я думал exit относится к case, но суть в другом, case это набор констант в некотором роде, зачем вы его в цикл, даже если у вас единственная итерация ?

    з.ы. я не знаю, как там в C, но в C# вроде из switch case все таки выходят при найденном при помощи break. Может конечно еще какие реализации существуют, надо посмотреть...
    Так вы сами и ответили на свой вопрос )
    В Си есть break; В ST аналогичной команды нет. Если поместить case в repeat - exit будет выполнять ту же функцию что и break в Си

  4. #4

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а с чего Вы решили что ST это Си-подобный язык?
    Вложение 62739
    я такого не писал, Вам показалось

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а зачем exit везде наставлены, потому что а так хотелось выйти из кейса?
    ну да, хотелось выйти из кейса. Я с самого начала об этом и пишу.

  6. #6

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    так на скрине же пишеться о том что break не нужен, программа сама выйдет из кейса не выполнив нижеследующие, я об этом с самого начала не пишу, но такой код бесмсленный об этом упоминал и по поводу Вашего радостного согласия с Валенком, прочитайте справку из ОЛ, бесконечный это цикл или не очень Вложение 62740
    Да, там ошибка в справке.
    попробуйте такую функцию на холст кинуть. Будет ошибка "программа зашла в бесконечный цикл"
    Код:
    function function1: bool; 
        var_input 
            inputVariable : bool; 
        end_var
        repeat
            
        until false
        end_repeat
        function1 := true;
    end_function
    Я Вас использовать exit таким образом не агитирую. Обходитесь без него - прекрасно. Зачем и в каких случаях я им пользуюсь написал, так как были заданы такие вопросы

  7. #7
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    Ну так exit не относится к case, чего вы от него хотите? мозги ожидают либо следующего case, если вдруг не совпало предыдущее, а ему НА на выход иди

    пытаюсь переварить код со своей колокольни, а чего там еще else делает? он от кого там?

  8. #8

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Ну так exit не относится к case, чего вы от него хотите? мозги ожидают либо следующего case, если вдруг не совпало предыдущее, а ему НА на выход иди

    пытаюсь переварить код со своей колокольни, а чего там еще else делает? он от кого там?
    else в данном примере не нужен, просто у capzap был, я не стал убирать.
    ограничений на использование exit не накладывается. Главное чтобы внутри цикла был. По крайней мере в в реализации CodeSys работает.
    Может есть реализации где во вложенных операторах ветвления нельзя exit вызывать. Но в этом случае компилятор должен ошибку выдать, хотя бы.

  9. #9

    По умолчанию

    Добрый день. подскажите как в Функции на ST в Owen Logic работать с датами и временем

  10. #10

    По умолчанию

    Цитата Сообщение от SiriusMan Посмотреть сообщение
    Добрый день. подскажите как в Функции на ST в Owen Logic работать с датами и временем
    В Лоджике нет переменных времени и даты, кроме Unix. Соответственно работать со временем в ST пока невозможно.
    Есть макросы для работы со временем, только в целочисленном виде, смотри скрин.
    Вы бы лучше написали, что вам надо конкретно. 1 Дата и время.jpg
    Например здесь (6-7 стр.) есть пример автомата состояний на ST, с внешними таймерами https://owen.ru/forum/showthread.php?t=35489&page=6#60
    Есть макросы подсчёта времени наработки, недельный таймер включения, выключения по времени и т. д.
    Последний раз редактировалось kondor3000; 18.11.2022 в 15:25.

Страница 31 из 50 ПерваяПервая ... 21293031323341 ... ПоследняяПоследняя

Похожие темы

  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, 11:37

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

Ваши права

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