Программные блоки в TIA Portal с примерами

Поделиться
HTML-код
  • Опубликовано: 8 окт 2024
  • Телеграм-канал, где можно связаться со мной, пообщаться и задать свои вопросы: t.me/portal_view
    Привет. На этом канале я решил поделиться своими знаниями и опытом программирования в TIA Portal. В свое время я тоже разбирался в TIA Portal при помощи форумов и роликов на RUclips. Но информации было мало, а про какие-то базовые вещи мало кто говорил. Как и про продвинутые. Про них если и рассказывают, то поймет такие ролики только хорошо подкованный в теме специалист. Моя цель - доступно и понятно рассказать как о базовых вещах в программировании в TIA, так и о продвинутых, но так, чтобы понять это смог любой желающий.
    В данном ролике мы разберем программные блоки, которые понадобятся для программирования в TIA Portal. Поговорим про организационные блоки, покажу как работают функции, функциональные блоки и блоки данных. Создадим переменные, в том числе и переменные в энергонезависимой памяти контроллера и посмотрим, как это работает

Комментарии • 87

  • @alexb3344
    @alexb3344 11 месяцев назад +3

    Из всех обзоров по ТИА-порталу доходчивее объяснения не нашёл! Везде как будто из учебника на видео перекладывают. Огромное пацанское спасибо!

  • @user-py6eh7ox6h
    @user-py6eh7ox6h 3 года назад +21

    Кирилл, у тебя талант учителя! Отлично объясняешь.

  • @arslangalim9630
    @arslangalim9630 5 месяцев назад +3

    Посмотрел на одном дыхании, 30 минут очень полезной инфы влетели как свежий глоток воздуха! И сразу всё на свои места встало, как же понятно объясняете. Спасибо Огромное за Ваш труд! Респект и Уважуха!!! Всё, теперь я здесь живу)

  • @workwork3950
    @workwork3950 3 дня назад

    Спасибо тебе , за твой труд и контент !!!!

  • @dilshodrakhmatov1348
    @dilshodrakhmatov1348 3 месяца назад +1

    спасибо братишка мне 30 работаю в заводе 4 года уже вот чтото тепер про програме тиа узнаю

  • @engineerus
    @engineerus 2 года назад +4

    Респект и уважуха! ))) Помог, однозначно помог! Перекопал кучу инфы, случайно наткнулся на канал - это просто лучик света в темном царстве! Спасибо за труд!)))

  • @user-ShortAI
    @user-ShortAI 11 месяцев назад

    Спасибо тебе за труд!

  • @framos9991
    @framos9991 Год назад

    Спасибо за видео/ Очень полезно.

  • @Aleksandr_Kashirin
    @Aleksandr_Kashirin 4 года назад +3

    Спасибо, полезно!

  • @vyacheslavn4823
    @vyacheslavn4823 2 года назад

    Спасибо за уроки

  • @Sergnavin
    @Sergnavin Год назад

    Спасибо! Молодец! Очень познавательно )

  • @MakSs59
    @MakSs59 Год назад

    Видео очень полезное, спасибо! Обязательно продолжай!

  • @dmitriylaskin883
    @dmitriylaskin883 3 года назад +1

    спасибо. все понятно и доступно.

  • @Kluni997
    @Kluni997 3 года назад +1

    Спасибо. Всё толково.

  • @ainurgas7719
    @ainurgas7719 2 года назад

    Однозначно лайк и подписка!! Отличная подача материала!

  • @bekzhanmukhitov
    @bekzhanmukhitov 2 года назад

    Спасибо!!! 👍

  • @georgykutin8471
    @georgykutin8471 2 года назад +1

    Классные уроки, спасибо :). 29:22 переменные static для каждого блока будут свои? или это три переменных для трех блоков?

  • @Kipperleader
    @Kipperleader 4 года назад +12

    Вот таких вот нюансов хрен найдешь в интернете, считают все что это элементарно, и пропускают, а когда ты с нуля пытаешься разобраться то пипец как не элементарно, особенно когда тебе 40+...

    • @portalview3028
      @portalview3028  4 года назад +1

      Поэтому я и начал делать именно такие видео, потому что сам в свое время изучал все по ютюбу. И вопросов было после просмотра ролика больше, чем ответов. Надеюсь, что смог помочь ;)

    • @mi4ell
      @mi4ell 3 года назад

      На самом деле возраст тут не причем, просто занимайтесь как можно чаще, и у вас все получится! Все зависит от количества подходов))))

  • @Automation_Engineer0
    @Automation_Engineer0 11 месяцев назад +1

    TOP!!!

  • @andrey47579
    @andrey47579 3 года назад

    Интересно. Спасибо.

  • @АндрейБыков-о7ф
    @АндрейБыков-о7ф Год назад

    Спасибо

  • @felixm8788
    @felixm8788 3 года назад +1

    спасибо большое ,всё объяснили толково.
    если можно вопрос. есть проблема с тегами? "invalid internal data tape"
    если можно , буду рад ответу или можете снять видео. заранее спасибо .

  • @Ruslan_Ishmuratov
    @Ruslan_Ishmuratov Год назад +1

    Помог друг

  • @Joyhaakwi
    @Joyhaakwi 2 года назад

    thanks a lot

  • @Sergnavin
    @Sergnavin Год назад

    Кирилл, назрел вопросик. Экземплярный бд появляется в момент вставки ФБ в Main(организационный блок). А если мы не вставляем ФБ в Main(OBn)? Как плс работает с таким блоком:
    1. Будет ли этот ФБ считан плс как программа?
    2. Если да, то где будут хранится переменные Static такого FB?

    • @portalview3028
      @portalview3028  Год назад +1

      Да этот блок просто будет игнорироваться программой и все, если вызова нигде не будет)

    • @Sergnavin
      @Sergnavin Год назад

      @@portalview3028 Благодарю за ответ! )

  • @АлександрНасонов-н5х

    Скажите пожалуйста. Когда присваиваешь релейныи контактам адреса входов, там можно еще выбрать теги этих входов. Как правильней делать, присваивать теги или названия? Извиняюсь если непонятно изъясняюсь))

  • @AmirFamily02
    @AmirFamily02 3 года назад +1

    Более слаженнее надо. Не понятно какая цель у данного программирования (#2). Кажется как будто бы взято из головы. Надо конкретику. Условия и цель, а потом уже и показывать. Спасибо за обзор!

  • @АндрейКарпенков-с9н
    @АндрейКарпенков-с9н 2 месяца назад

    Если в функции(например) как в вашем примере, вы создали два входа и два выхода, предварительно назначив переменные, на вход функции из таблицы тегов на вход мы привяжем дискретный выход (tag_out), а на выход дискретный вход (tag_in) И если в функции переменные типа integer а мы хотим привязать из таблицы тегов булевые значения Tia Portal заругается?

    • @portalview3028
      @portalview3028  2 месяца назад

      Вообще должен заругаться, подсветит красным переменные и не даст скомпилировать. Иногда в некоторых ситуациях подсвечивает переменные жёлтым, когда в целом можно сделать, но не рекомендуется. Чаще всего портал просто не даст вам сделать дичь, которые вы хотите сделать

  • @yevhenizotov440
    @yevhenizotov440 Год назад

    Кирилл, такой вопрос. Если мы из main, через кнопку Старт, запустим на выполнение какой то ФБ. То после нажатия кнопки Стоп в main, ЕN функционального блока будет равен "1". Как сбросить его на "0".

    • @portalview3028
      @portalview3028  Год назад

      Ничего не понял) кнопку старт наверное сбросить надо. Если en активен, значит какое-то условие перед ним выполняется

  • @aleksandrzaviazkin285
    @aleksandrzaviazkin285 Год назад

    Добрый день. Кирилл. Хотел бы задать вопрос по теме: В main блоке есть несколько Network 1,2 3, и т.д. Подскажите пожалуйста, для чего они служат? Можно ли всю программу расположить в одном network или лучше каждый ФБ располагать в отдельном? Огромное Вам спасибо.

    • @portalview3028
      @portalview3028  Год назад +1

      Привет. По идее можно все и в один нетворк запихать, но программа не всегда будет правильно так работать. Есть некоторые правила и рекомендации. Например не рекомендуется в одном нетворке записывать переменную и тут же читать. Некоторые программы на это прям ругаются. Нетворки помогают организовать вашу программу, прокомментировать ее. Их удобно сворачивать, переносить, удалять, если что

    • @portalview3028
      @portalview3028  Год назад +1

      Есть у сименса пример, как сделать фб для инверсии бита. Там программа на два нетворка. Я ее по своему переписал с методички в один нетворк и она у меня не заработала. Я думаю, ну чё за фигня. Записал вот прям как в методичке в два нетворка и все заработало)

    • @aleksandrzaviazkin285
      @aleksandrzaviazkin285 Год назад

      @@portalview3028 Спасибо большое. Теперь всё понятно. Мыль была, что не зря так всё сделано с network, но сомневался. До этого больше с CoDeSys работал, сейчас первый серьёзный проект делаю в TIA PORTALE, вот и не хотелось бы ошибок наделать.

    • @aleksandrzaviazkin285
      @aleksandrzaviazkin285 Год назад

      @@portalview3028 Спасибо, Кирилл. Я теперь всё буду делать в отдельных Network, так действительно даже и удобней. Спасибо, удачи Вам.

  • @КоляМэл
    @КоляМэл 2 года назад

    Здравствуйте, Вы можите сделать ролики по плк ОМРОН

    • @portalview3028
      @portalview3028  2 года назад

      Не работал с омрон, к сожалению)

  • @talgatmusin296
    @talgatmusin296 4 года назад +1

    так какой создать блок фб или функцию если все равно к функции нужно блок данных создавать? проясните момент

    • @portalview3028
      @portalview3028  4 года назад +1

      к функции не обязательно блок данных создавать, это было для примера и понимания. функциональные блоки круто использовать, когда у тебя есть повторяющиеся элементы: задвижки, двигатели, датчики и так далее

    • @SHR-yo1pf
      @SHR-yo1pf 3 года назад

      @@portalview3028 А повторяющиеся функции можно использовать? Насколько я понял функции в плане использования памяти более рациональны чем блоки.

    • @chupa00
      @chupa00 3 года назад

      @@SHR-yo1pf функции можно вызывать сколько угодно, но они не хранят данные, в отличии от функ. блоков.

  • @StreamingTv.
    @StreamingTv. 4 месяца назад

    Подскажите пожалуйста в колонке monitor value не могу изменять значение false на true,как быть?При симуляции программы

    • @portalview3028
      @portalview3028  4 месяца назад

      Возможно переменная программно где то перезаписывается, поэтому и не можете

  • @КоляМэл
    @КоляМэл 2 года назад

    Здравствуйте, если реализовать простейшую схему включения пускателя с кнопками пуск и стоп необходимо реализовать самоподхват виртульным контактом и в итоге к примеру катушка имеет адрес Q0.0 реальный выход плк так?
    И контакт виртуальный привязан к тому же адресу Q0.0, почему так? Разве так можно?
    И еще подскажите как разбирать где идет привязка к реальному входу/выходу а где виртуальные элементы. Спасибо.

    • @portalview3028
      @portalview3028  2 года назад

      Что за виртуальные элементы? Любой выход от q0.0 до хоть q1000000.0 будет как вы говорите реальным выходом. Вам может повезти выбрать выход, который не используется плк, а может не повезти. Если вы хотите использовать свободно свои переменные, так создавайте свои блоки данных, не нужно область памяти входов и выходов просто так для своих каких-то вычислений использовать. Напишите свой функциональный блок, создайте все переменные, реализуйте самоподхват, а потом уже привяжите тэги с адресами входов и выходов плк в фб

  • @mp3corp
    @mp3corp 2 года назад

    Добрый день. У меня вопрос по поводу FB и его копирования. Если допустим есть 100 аналоговых сигналов, при написании под него FB и перетаскивания в OB выходит будет 100 блоков DB, это же не совсем удобно. Для этих операций как я понимаю нужно использовать FC и например какой то большой глобальный DB?

    • @portalview3028
      @portalview3028  2 года назад

      Перетащите 100 FB в один FC. Назовите его analog_call, например. И этот FC вызывайте в OB. От сотни DB вы не избавитесь, если у вас 100 сигналов и блок обработки сигналов под один сигнал. Нет ничего плохого в этом, создавайте папки, структурируйте блоки, чтобы было удобно

  • @АртурСагеев
    @АртурСагеев Год назад

    Классно все объясняешь!
    У меня возникла проблема при компиляции
    пишет "The F-runtime group 1 " does not have valid и перебрасывает меня на вкладку Safety administration
    Подскажи пожалуйста что делать в таком случае ?

    • @АртурСагеев
      @АртурСагеев Год назад

      я создал новую функиональную группу а старую удалил, будет ли у меня выполняться в плк тот код что я создал ранее ?

    • @portalview3028
      @portalview3028  Год назад

      Насчёт первого вопроса я не понял, не встречал такого. Но походу у тебя просят установить защиту на плк. Поставь пароль, попробуй ещё раз скомпилить.
      По второму вопросу тоже не особо понял. Если удалил что-то и прогрузил новое, то старое, очевидно, выполняться не будет) не понял вопроса

    • @АртурСагеев
      @АртурСагеев Год назад

      @@portalview3028 Не, поставил простой пароль, но пароль поставился только на открытие моего FBD, а как сделать так что бы он компилировался и выполнялся ?
      Или это нужно заново создавать функциональную группу ?

    • @АртурСагеев
      @АртурСагеев Год назад

      @@portalview3028 извините, просто если брать тот же Codesys или Eliwell, да та же IDE от Шнайдер, то там это всё дело намного легче.

    • @portalview3028
      @portalview3028  Год назад +1

      Я вас все равно не понимаю) FBD это язык. Вы имеете ввиду FB? Поставили пароль на функциональный блок? Ну и хорошо. Он запоролен от чтения, но при этом он будет исполняться на плк. Не понимаю, что такое функциональная группа? Насчёт других ide тут дело привычки. Я плююсь от шнайдера, кодесис меня вообще бесит, тиа портал на их фоне кажется в сто раз удобнее и продуманные) это кому как

  • @artemmaliutin943
    @artemmaliutin943 3 года назад

    Добрый день!
    Отличный курс, спасибо.
    Столкнулся с такой проблемой: делал упражнения по инструкциям, все ок. Затем перезагнрузил комп и контроллер перестал подключаться к ПК. В сети он виден, удается поморгать диодом, нажав на кнопку Flash LED, но при попытк езагрузить прошивку или перейте в online появляется вот такая ошибка the connection partner is not responding tia portal. В чем может быть дело?

    • @portalview3028
      @portalview3028  3 года назад

      Сложно сказать, не помню, чтобы я с таким встречался. Но как правило перезагрузки тиа портала и ПК достаточно в таких случаях. Как вариант, попробуйте хард ресет плк сделать. Может неудачно в прошлый раз загрузили программу

    • @artemmaliutin943
      @artemmaliutin943 3 года назад

      @@portalview3028 Hard Reset делается также через Tia Portal? Или на корпусе есть какая-то кнопка?

    • @portalview3028
      @portalview3028  3 года назад

      @@artemmaliutin943 лучше посмотрите по руководству, как это сделать. Это будет правильно. На самом плк есть рычажок или какая-то кнопка. Ее определенным образом нужно нажать

    • @artemmaliutin943
      @artemmaliutin943 3 года назад +1

      @@portalview3028 Спасибо за советы! Дело оказалось в сетевом подключении - в сети появилось устройство с таким же IP.

  • @АлександрНасонов-н5х
    @АлександрНасонов-н5х 3 года назад +1

    Если кто нибудь може объяснитьв чем разница FB и FC блоко и они нужны? Буду очень вам благодарен.

    • @portalview3028
      @portalview3028  3 года назад

      Целый ролик об этом был

    • @mi4ell
      @mi4ell 3 года назад +2

      FC- это функция, она может иметь входные и выходные параметры.
      Все внутренние переменные не являются статическими (регистры под них выделяются из
      стека соответственно обращаться к ним из других блоков нельзя, но виртуозы это могут делать на свой страх и риск).
      FC можно использовать для промежуточных повторяющихся вычислений.
      FB - это тоже функция, которая может также иметь входные и выходные параметры, НО!
      самый главные ее +, это то что FB имеет область статических переменных (сохраняемых от вызова к вызову).
      FB использует экземплярный блок данных (DB), так сказать сводную таблицу переменных которая содержит все переменные используемые в FB.
      И вот тут путем установки птички "Retain", ты можешь указать какая из переменных должны сохраняться в памяти при ребуте ПЛК.
      Для каждого вызова FB используется новый, вновь создаваемый (автоматически) DB.
      FB очень удобно использовать когда имеется множество однотипного оборудования с однотипной логикой управления.
      Каждому вызову FB соответствует одна единица оборудования (к примеру насос Н-1), соотвественно DB для него будет содержать
      переменные, значения которых актуальны именно для этого насоса (Н-1).
      Для следующего насоса, будет свой вызов FB (к примеру Н-2). И блок DB, будет содержать переменные актуальные уже для этого насоса (Н-2).

    • @neminem7276
      @neminem7276 2 года назад

      FC, тот же FB, но без памяти

  • @SERVICE_KARELIA
    @SERVICE_KARELIA 3 месяца назад

    0:45 с номером 1

  • @Master_Q
    @Master_Q 2 года назад

    Что такое network 1, network 2...?

    • @portalview3028
      @portalview3028  2 года назад

      Это то, где вы пишите программу. Можно все в один нетворк лепить, но это неудобно и не всегда будет работать. В одном нетворке одну операцию выполнили, в следующем нетворке - другую. Если простыми словами

  • @РамильМиннеханов-з9е

    напишите мне управляющую программу по дипломной работе для СИМЕНС 1212с, пожалуйста

  • @3Demonv
    @3Demonv Год назад

    >видос про блоки
    >ну про большинство блоков мы говорить не будем, можете сами почитать
    ору. но видос неплохой

    • @portalview3028
      @portalview3028  Год назад

      Потому что о них нет смысла говорить) за 5 лет работы многие из них мне ни разу не понадобились. А про самые основные рассказал

  • @Master_Q
    @Master_Q 2 года назад

    29:01 запутал немного)

  • @antonplankin699
    @antonplankin699 2 года назад

    у меня почему то нет катушки... (

    • @portalview3028
      @portalview3028  2 года назад

      А где именно нет? На панели под списком переменных? Это панель с избранными функциями. Может у вас просто не добавлена туда. Ищите ее справа в разделе инструкций

  • @КириллЧернявский-э6ь

    Привет из 2023, с домашним заданием по функциональму блоку не справился))

  • @chupa00
    @chupa00 3 года назад

    По поводу блока циклического прерывания, который вызывается независимо от main. Вы сказали, что используете для подсчета моточасов двигателей. А если допустим двигатель не был запущен или произошел простой, то моточасы же все равно накручиваются.

    • @portalview3028
      @portalview3028  3 года назад

      Почему это?) С помощью блока прерываний можно удобно считать секунды, например. Но если двигатель отключится, то из основного цикла без проблем можно получить эту информацию и остановить счётчик

    • @nik01aich
      @nik01aich 2 года назад

      @@portalview3028 а не проще таймер+счетчик блоками?

    • @portalview3028
      @portalview3028  2 года назад

      @@nik01aich если вам проще, то пожалуйста. Но как по мне, это та ещё дичь