Как создать функцию на языке ST в Owen Logic

Поділитися
Вставка
  • Опубліковано 24 лют 2024
  • Пример добавления функции на языке ST в программу на Owen Logic. Попутно повествуется, как зашифровать битовую маску в десятичное число и использовать дешифровку для выдачи произвольных команд на дискретные выходы реле ПР103.
  • Наука та технологія

КОМЕНТАРІ • 19

  • @alexberest1982
    @alexberest1982 2 місяці тому +2

    Сделаю несколько дополнений и замечаний. При объяснение функции и функционального блока, все-таки лучше оперировать входная переменная или вход и выходная переменная или выход. Несколько раз было сказано "входная функция", тут лучше было сказать "функция", т.к. там имеет ввиду уже выходное состояние функции. Функция может иметь несколько входов и только один выход. Она при каждом цикле не сохраняет состояние. Пример IF I=2 THEN Q:=true. Если I=2, то выход Q выдаст сигнал, то при следующем цикле если I уже не будет равен 2, а любому другому числу, то Q прекратит сигнал. Функциональный блок же может иметь несколько входов и выходов и сохраняет состояние при следующем цикле. И в примере выше если I=2, то выход Q выдаст сигнал и не снимет сигнал если в следующем I будет равен другим числам. Поэтому или обязательно прописывать оператор ELSE(иначе) и присвоение или другое условие(IF(ELSIF) THEN.

  • @izada666
    @izada666 2 місяці тому +1

    В данном случае. Через if смысла нет делать. Код через if дольше будет испоняться, чем через case. То есть каждый if это шаг программы, который обязан исполнить контроллер, а в case в зависимости от значения происходит в два шага первый шаг это переход на функцию внутри case, а второй это выполнение функции.

  • @Glukonic
    @Glukonic 2 місяці тому +2

    Замечательное видео, по поводу задержек Овен сказали что типо ни чего страшного, жёлтые не красные, Но по поводу времени жаль что они не реализовали ПР чисто с транзисторными PNP выходами вместо реле.

    • @alexzhukblog
      @alexzhukblog  2 місяці тому +2

      Да, у них в стандартных макросах желтые линии попадаются. Но это раздражает слегка.

    • @Glukonic
      @Glukonic 2 місяці тому +1

      @@alexzhukblog я просто делал не помню где и мне кретично было быстрота исполнения, а с линией задержки уже поздно сигнал уходил, в версии 1.2 вроде или более старой небыло такой ерунды как жёлтые линии открыл старый проект с совой ещё (это иконка ов тогда была).

  • @darthabbadonyz7904
    @darthabbadonyz7904 2 місяці тому

    Здравствуйте, Александр. Программерством лет 15 не занимался (раньше мелкосы в мысыйокселе сочинял),
    но как увидел - сразу все понятно. Могу не знать особенностей конкретного языка, но логику ухватил
    чуть ли не за планковское время (10^-43с) 🙂
    А начало видео - "ВАЩЕ ЧУМА!!!" - Ну когда еще Черный Электрик тебе зеленым глазом подмигнет? 🙂

    • @darthabbadonyz7904
      @darthabbadonyz7904 2 місяці тому

      З.Ы А во времена дедушки DOS'a и наСИльничал и ПАСКудничал и ASMатривался
      и даже на ВАСИКе сочинял - школьнику все интересно было.

    • @alexzhukblog
      @alexzhukblog  2 місяці тому +2

      На Барсике и я начинал. QBasic )

  • @Glukonic
    @Glukonic 2 місяці тому

    при получении ПР103 я задолбался складывать клемные коннекторы в верном порядке, но потом понял для аналоговых вводов 3 по 5 pin, дискретные вводы и RS 2pin + 5 pin + 3 pin + 5 pin. А на дискретные выводы остальные, затем это меня не устроило и на дискретные выводы я заказал отдельные клеммы целиковые на китайском этом самом.

  • @Glukonic
    @Glukonic 2 місяці тому +1

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

    • @sbersh
      @sbersh 2 місяці тому

      Есть вложеность. Не знаю как она ОЛ, но в кодесис без проблем

    • @Glukonic
      @Glukonic 2 місяці тому

      @@sbersh у меня в функциональном блоке ок, а вот функции я пока не создавал.

    • @izada666
      @izada666 2 місяці тому +1

      Для этого есть case, да и else и else if тут присутствует.

    • @nick8765
      @nick8765 Місяць тому

      @@GlukonicУ функций тот же функционал кроме возможности хранить статические данные.

  • @_Weyland
    @_Weyland 2 місяці тому +1

    А в массивы этот язык ST не умеет? Потому что если он умеет в массивы, то проще, вместо кучи сравнений, сразу брать соответствующий элемент из массива.

    • @Glukonic
      @Glukonic 2 місяці тому

      в ОВ он не такой полный как в кодесис.

    • @izada666
      @izada666 2 місяці тому

      Пока не умеет.

    • @izada666
      @izada666 2 місяці тому

      Только в последней версии добавили вызов системных функций.

    • @izada666
      @izada666 2 місяці тому +1

      В пр от Овена нет типа данных массив.