Тёмный
No video :(

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

Portal View
Подписаться 7 тыс.
Просмотров 32 тыс.
50% 1

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

Опубликовано:

 

24 май 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 87   
@user-py6eh7ox6h
@user-py6eh7ox6h 3 года назад
Кирилл, у тебя талант учителя! Отлично объясняешь.
@portalview3028
@portalview3028 3 года назад
Спасибо ;)
@alexb3344
@alexb3344 9 месяцев назад
Из всех обзоров по ТИА-порталу доходчивее объяснения не нашёл! Везде как будто из учебника на видео перекладывают. Огромное пацанское спасибо!
@arslangalim9630
@arslangalim9630 3 месяца назад
Посмотрел на одном дыхании, 30 минут очень полезной инфы влетели как свежий глоток воздуха! И сразу всё на свои места встало, как же понятно объясняете. Спасибо Огромное за Ваш труд! Респект и Уважуха!!! Всё, теперь я здесь живу)
@dilshodrakhmatov1348
@dilshodrakhmatov1348 Месяц назад
спасибо братишка мне 30 работаю в заводе 4 года уже вот чтото тепер про програме тиа узнаю
@engineerus
@engineerus 2 года назад
Респект и уважуха! ))) Помог, однозначно помог! Перекопал кучу инфы, случайно наткнулся на канал - это просто лучик света в темном царстве! Спасибо за труд!)))
@dmitriylaskin883
@dmitriylaskin883 3 года назад
спасибо. все понятно и доступно.
@user-gm5sh5nz1p
@user-gm5sh5nz1p 2 года назад
Отличный видеоурок.Спасибо Вам.
@Aleksandr_Kashirin
@Aleksandr_Kashirin 4 года назад
Спасибо, полезно!
@Kluni997
@Kluni997 3 года назад
Спасибо. Всё толково.
@MakSs59
@MakSs59 Год назад
Видео очень полезное, спасибо! Обязательно продолжай!
@user-ShortAI
@user-ShortAI 9 месяцев назад
Спасибо тебе за труд!
@framos9991
@framos9991 Год назад
Спасибо за видео/ Очень полезно.
@ainurgas7719
@ainurgas7719 2 года назад
Однозначно лайк и подписка!! Отличная подача материала!
@Sergnavin
@Sergnavin Год назад
Спасибо! Молодец! Очень познавательно )
@vyacheslavn4823
@vyacheslavn4823 2 года назад
Спасибо за уроки
@andrey47579
@andrey47579 3 года назад
Интересно. Спасибо.
@bekzhanmukhitov
@bekzhanmukhitov 2 года назад
Спасибо!!! 👍
@Kipperleader
@Kipperleader 3 года назад
Вот таких вот нюансов хрен найдешь в интернете, считают все что это элементарно, и пропускают, а когда ты с нуля пытаешься разобраться то пипец как не элементарно, особенно когда тебе 40+...
@portalview3028
@portalview3028 3 года назад
Поэтому я и начал делать именно такие видео, потому что сам в свое время изучал все по ютюбу. И вопросов было после просмотра ролика больше, чем ответов. Надеюсь, что смог помочь ;)
@mi4ell
@mi4ell 2 года назад
На самом деле возраст тут не причем, просто занимайтесь как можно чаще, и у вас все получится! Все зависит от количества подходов))))
@Ruslan_Ishmuratov
@Ruslan_Ishmuratov Год назад
Помог друг
@Automation_Engineer0
@Automation_Engineer0 9 месяцев назад
TOP!!!
@user-ip8vy6uf2r
@user-ip8vy6uf2r Год назад
Спасибо
@Joyhaakwi
@Joyhaakwi Год назад
thanks a lot
@georgykutin8471
@georgykutin8471 2 года назад
Классные уроки, спасибо :). 29:22 переменные static для каждого блока будут свои? или это три переменных для трех блоков?
@felixm8788
@felixm8788 3 года назад
спасибо большое ,всё объяснили толково. если можно вопрос. есть проблема с тегами? "invalid internal data tape" если можно , буду рад ответу или можете снять видео. заранее спасибо .
@user-rp4jm7mj7n
@user-rp4jm7mj7n 3 года назад
Скажите пожалуйста. Когда присваиваешь релейныи контактам адреса входов, там можно еще выбрать теги этих входов. Как правильней делать, присваивать теги или названия? Извиняюсь если непонятно изъясняюсь))
@SERVICE_KARELIA
@SERVICE_KARELIA Месяц назад
0:45 с номером 1
@yevhenizotov440
@yevhenizotov440 Год назад
Кирилл, такой вопрос. Если мы из main, через кнопку Старт, запустим на выполнение какой то ФБ. То после нажатия кнопки Стоп в main, ЕN функционального блока будет равен "1". Как сбросить его на "0".
@portalview3028
@portalview3028 Год назад
Ничего не понял) кнопку старт наверное сбросить надо. Если en активен, значит какое-то условие перед ним выполняется
@AmirFamily02
@AmirFamily02 2 года назад
Более слаженнее надо. Не понятно какая цель у данного программирования (#2). Кажется как будто бы взято из головы. Надо конкретику. Условия и цель, а потом уже и показывать. Спасибо за обзор!
@StreamingTv.
@StreamingTv. Месяц назад
Подскажите пожалуйста в колонке monitor value не могу изменять значение false на true,как быть?При симуляции программы
@portalview3028
@portalview3028 Месяц назад
Возможно переменная программно где то перезаписывается, поэтому и не можете
@mp3corp
@mp3corp 2 года назад
Добрый день. У меня вопрос по поводу FB и его копирования. Если допустим есть 100 аналоговых сигналов, при написании под него FB и перетаскивания в OB выходит будет 100 блоков DB, это же не совсем удобно. Для этих операций как я понимаю нужно использовать FC и например какой то большой глобальный DB?
@portalview3028
@portalview3028 2 года назад
Перетащите 100 FB в один FC. Назовите его analog_call, например. И этот FC вызывайте в OB. От сотни DB вы не избавитесь, если у вас 100 сигналов и блок обработки сигналов под один сигнал. Нет ничего плохого в этом, создавайте папки, структурируйте блоки, чтобы было удобно
@user-lm8ej2bi4b
@user-lm8ej2bi4b 2 года назад
Здравствуйте, если реализовать простейшую схему включения пускателя с кнопками пуск и стоп необходимо реализовать самоподхват виртульным контактом и в итоге к примеру катушка имеет адрес Q0.0 реальный выход плк так? И контакт виртуальный привязан к тому же адресу Q0.0, почему так? Разве так можно? И еще подскажите как разбирать где идет привязка к реальному входу/выходу а где виртуальные элементы. Спасибо.
@portalview3028
@portalview3028 2 года назад
Что за виртуальные элементы? Любой выход от q0.0 до хоть q1000000.0 будет как вы говорите реальным выходом. Вам может повезти выбрать выход, который не используется плк, а может не повезти. Если вы хотите использовать свободно свои переменные, так создавайте свои блоки данных, не нужно область памяти входов и выходов просто так для своих каких-то вычислений использовать. Напишите свой функциональный блок, создайте все переменные, реализуйте самоподхват, а потом уже привяжите тэги с адресами входов и выходов плк в фб
@user-bi3dt8kp3c
@user-bi3dt8kp3c 22 дня назад
Если в функции(например) как в вашем примере, вы создали два входа и два выхода, предварительно назначив переменные, на вход функции из таблицы тегов на вход мы привяжем дискретный выход (tag_out), а на выход дискретный вход (tag_in) И если в функции переменные типа integer а мы хотим привязать из таблицы тегов булевые значения Tia Portal заругается?
@portalview3028
@portalview3028 21 день назад
Вообще должен заругаться, подсветит красным переменные и не даст скомпилировать. Иногда в некоторых ситуациях подсвечивает переменные жёлтым, когда в целом можно сделать, но не рекомендуется. Чаще всего портал просто не даст вам сделать дичь, которые вы хотите сделать
@chupa00
@chupa00 3 года назад
По поводу блока циклического прерывания, который вызывается независимо от main. Вы сказали, что используете для подсчета моточасов двигателей. А если допустим двигатель не был запущен или произошел простой, то моточасы же все равно накручиваются.
@portalview3028
@portalview3028 3 года назад
Почему это?) С помощью блока прерываний можно удобно считать секунды, например. Но если двигатель отключится, то из основного цикла без проблем можно получить эту информацию и остановить счётчик
@nik01aich
@nik01aich 2 года назад
@@portalview3028 а не проще таймер+счетчик блоками?
@portalview3028
@portalview3028 2 года назад
@@nik01aich если вам проще, то пожалуйста. Но как по мне, это та ещё дичь
@talgatmusin296
@talgatmusin296 4 года назад
так какой создать блок фб или функцию если все равно к функции нужно блок данных создавать? проясните момент
@portalview3028
@portalview3028 4 года назад
к функции не обязательно блок данных создавать, это было для примера и понимания. функциональные блоки круто использовать, когда у тебя есть повторяющиеся элементы: задвижки, двигатели, датчики и так далее
@SHR-yo1pf
@SHR-yo1pf 3 года назад
@@portalview3028 А повторяющиеся функции можно использовать? Насколько я понял функции в плане использования памяти более рациональны чем блоки.
@chupa00
@chupa00 3 года назад
@@SHR-yo1pf функции можно вызывать сколько угодно, но они не хранят данные, в отличии от функ. блоков.
@Sergnavin
@Sergnavin Год назад
Кирилл, назрел вопросик. Экземплярный бд появляется в момент вставки ФБ в Main(организационный блок). А если мы не вставляем ФБ в Main(OBn)? Как плс работает с таким блоком: 1. Будет ли этот ФБ считан плс как программа? 2. Если да, то где будут хранится переменные Static такого FB?
@portalview3028
@portalview3028 Год назад
Да этот блок просто будет игнорироваться программой и все, если вызова нигде не будет)
@Sergnavin
@Sergnavin Год назад
@@portalview3028 Благодарю за ответ! )
@aleksandrzaviazkin285
@aleksandrzaviazkin285 Год назад
Добрый день. Кирилл. Хотел бы задать вопрос по теме: В main блоке есть несколько Network 1,2 3, и т.д. Подскажите пожалуйста, для чего они служат? Можно ли всю программу расположить в одном network или лучше каждый ФБ располагать в отдельном? Огромное Вам спасибо.
@portalview3028
@portalview3028 Год назад
Привет. По идее можно все и в один нетворк запихать, но программа не всегда будет правильно так работать. Есть некоторые правила и рекомендации. Например не рекомендуется в одном нетворке записывать переменную и тут же читать. Некоторые программы на это прям ругаются. Нетворки помогают организовать вашу программу, прокомментировать ее. Их удобно сворачивать, переносить, удалять, если что
@portalview3028
@portalview3028 Год назад
Есть у сименса пример, как сделать фб для инверсии бита. Там программа на два нетворка. Я ее по своему переписал с методички в один нетворк и она у меня не заработала. Я думаю, ну чё за фигня. Записал вот прям как в методичке в два нетворка и все заработало)
@aleksandrzaviazkin285
@aleksandrzaviazkin285 Год назад
@@portalview3028 Спасибо большое. Теперь всё понятно. Мыль была, что не зря так всё сделано с network, но сомневался. До этого больше с CoDeSys работал, сейчас первый серьёзный проект делаю в TIA PORTALE, вот и не хотелось бы ошибок наделать.
@aleksandrzaviazkin285
@aleksandrzaviazkin285 Год назад
@@portalview3028 Спасибо, Кирилл. Я теперь всё буду делать в отдельных Network, так действительно даже и удобней. Спасибо, удачи Вам.
@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 года назад
@@portalview3028 Спасибо за советы! Дело оказалось в сетевом подключении - в сети появилось устройство с таким же IP.
@Master_Q
@Master_Q 2 года назад
29:01 запутал немного)
@user-lm8ej2bi4b
@user-lm8ej2bi4b 2 года назад
Здравствуйте, Вы можите сделать ролики по плк ОМРОН
@portalview3028
@portalview3028 2 года назад
Не работал с омрон, к сожалению)
@user-xg5br3vr8m
@user-xg5br3vr8m 3 года назад
напишите мне управляющую программу по дипломной работе для СИМЕНС 1212с, пожалуйста
@dmitrijbozhok
@dmitrijbozhok 2 года назад
Помогли?
@Master_Q
@Master_Q 2 года назад
Что такое network 1, network 2...?
@portalview3028
@portalview3028 2 года назад
Это то, где вы пишите программу. Можно все в один нетворк лепить, но это неудобно и не всегда будет работать. В одном нетворке одну операцию выполнили, в следующем нетворке - другую. Если простыми словами
@user-rp4jm7mj7n
@user-rp4jm7mj7n 3 года назад
Если кто нибудь може объяснитьв чем разница FB и FC блоко и они нужны? Буду очень вам благодарен.
@portalview3028
@portalview3028 3 года назад
Целый ролик об этом был
@mi4ell
@mi4ell 2 года назад
FC- это функция, она может иметь входные и выходные параметры. Все внутренние переменные не являются статическими (регистры под них выделяются из стека соответственно обращаться к ним из других блоков нельзя, но виртуозы это могут делать на свой страх и риск). FC можно использовать для промежуточных повторяющихся вычислений. FB - это тоже функция, которая может также иметь входные и выходные параметры, НО! самый главные ее +, это то что FB имеет область статических переменных (сохраняемых от вызова к вызову). FB использует экземплярный блок данных (DB), так сказать сводную таблицу переменных которая содержит все переменные используемые в FB. И вот тут путем установки птички "Retain", ты можешь указать какая из переменных должны сохраняться в памяти при ребуте ПЛК. Для каждого вызова FB используется новый, вновь создаваемый (автоматически) DB. FB очень удобно использовать когда имеется множество однотипного оборудования с однотипной логикой управления. Каждому вызову FB соответствует одна единица оборудования (к примеру насос Н-1), соотвественно DB для него будет содержать переменные, значения которых актуальны именно для этого насоса (Н-1). Для следующего насоса, будет свой вызов FB (к примеру Н-2). И блок DB, будет содержать переменные актуальные уже для этого насоса (Н-2).
@neminem7276
@neminem7276 Год назад
FC, тот же FB, но без памяти
@3Demonv
@3Demonv Год назад
>видос про блоки >ну про большинство блоков мы говорить не будем, можете сами почитать ору. но видос неплохой
@portalview3028
@portalview3028 Год назад
Потому что о них нет смысла говорить) за 5 лет работы многие из них мне ни разу не понадобились. А про самые основные рассказал
@antonplankin699
@antonplankin699 2 года назад
у меня почему то нет катушки... (
@portalview3028
@portalview3028 2 года назад
А где именно нет? На панели под списком переменных? Это панель с избранными функциями. Может у вас просто не добавлена туда. Ищите ее справа в разделе инструкций
@user-dy9we9rj8y
@user-dy9we9rj8y Год назад
Классно все объясняешь! У меня возникла проблема при компиляции пишет "The F-runtime group 1 " does not have valid и перебрасывает меня на вкладку Safety administration Подскажи пожалуйста что делать в таком случае ?
@user-dy9we9rj8y
@user-dy9we9rj8y Год назад
я создал новую функиональную группу а старую удалил, будет ли у меня выполняться в плк тот код что я создал ранее ?
@portalview3028
@portalview3028 Год назад
Насчёт первого вопроса я не понял, не встречал такого. Но походу у тебя просят установить защиту на плк. Поставь пароль, попробуй ещё раз скомпилить. По второму вопросу тоже не особо понял. Если удалил что-то и прогрузил новое, то старое, очевидно, выполняться не будет) не понял вопроса
@user-dy9we9rj8y
@user-dy9we9rj8y Год назад
@@portalview3028 Не, поставил простой пароль, но пароль поставился только на открытие моего FBD, а как сделать так что бы он компилировался и выполнялся ? Или это нужно заново создавать функциональную группу ?
@user-dy9we9rj8y
@user-dy9we9rj8y Год назад
@@portalview3028 извините, просто если брать тот же Codesys или Eliwell, да та же IDE от Шнайдер, то там это всё дело намного легче.
@portalview3028
@portalview3028 Год назад
Я вас все равно не понимаю) FBD это язык. Вы имеете ввиду FB? Поставили пароль на функциональный блок? Ну и хорошо. Он запоролен от чтения, но при этом он будет исполняться на плк. Не понимаю, что такое функциональная группа? Насчёт других ide тут дело привычки. Я плююсь от шнайдера, кодесис меня вообще бесит, тиа портал на их фоне кажется в сто раз удобнее и продуманные) это кому как
@user-xu4hr2lz8r
@user-xu4hr2lz8r Год назад
Привет из 2023, с домашним заданием по функциональму блоку не справился))
Далее
Schoolboy - Часть 2
00:12
Просмотров 4,1 млн
TIA Portal: HMI Easy Alarms
18:20
Просмотров 145 тыс.
Crust of Rust: async/await
2:34:01
Просмотров 187 тыс.
Чего ожидать от HTTP/3 + Go
51:07
Просмотров 9 тыс.