Недавно попал на этот канал - большое спасибо за Ваш труд! Очень полезный контент. Как по мне лучший канал в рунете по TIA. В одном из видео была затронута тема про ОБ Cyclic interrupt и использования его для подсчета моточасов. Могли бы Вы снять видео на эту тему? Как начинающему работу с TIA очень хотелось бы услышать преимущества использования блока прерываний от обычных таймеров. Не пропадайте, буду с нетерпением ждать новые видео!:-)
Спасибо за комментарий, очень приятно;) Постараюсь делать видео почаще. Надеюсь, видео в таком формате без озвучки получилось не хуже предыдущих видео. В таком виде я мог бы делать видео почаще, если зайдет зрителям. А что касается циклических прерываний, спасибо за наводку, интересная тема для видео. Как-нибудь сделаю ;)
@@portalview3028 Видео зашло. А для чего был удален DB блок? Чтобы не "плодить" их для каждого таймера? Правильно понимаю, что Вы используете структуру в FB чтобы код был компактнее? Или есть ещё какие-либо преимущества? Как по мне с озвучкой видео лучше в том случае, если Вы хотите описать какие-нибудь преимущества технического решения (ну типа показать плюсы/минусы/подходы). А для описания работы текстовый формат тоже хорош. Делайте как Вам удобнее. Полезная информация - она в любом виде хороша :-)
Наверное, стоило этот момент объяснить. В общем, ничего плохого нет в том, чтобы создавать для каждого таймера блок данных. Однако, если таким образом создать таймер в функциональном блоке, который будет в дальнейшем мультиэкземплярным, то возникнут проблемы. Потому что это будет один общий таймер на, например, 20 блоков. Но если создать структуру для таймера как на видео внутри функционального блока, то для всех 20 экземпляров будет свой отдельный таймер. Как-то так ;)
@@portalview3028 Понятно, т.е. это такой универсальный задел на будущее, чтобы потом не возникло проблем. Подводный камень так сказать. Это я к тому, что "Наверное, стоило этот момент объяснить." - все их не опишешь - тема очень обширная. Да и базовые знания нужны и практика. Спасибо за ответ.
Спасибо за урок! Подскажите пожалуйста, в чем отличие между IEC_Timers (отображаются в виде функционального блока в меню выбора, имеют свой DB) и обычными таймерами(те что идут ниже, которые мы просто перетягиваем драг дропом в OB и пользуемся)? Алгоритмы задержки точно те же. Зачем тогда создали одни и другие ? Когда целесообразно использовать IEC таймеры, а когда обычные?
Еще один способ организации таймера я увидел в буржуйской программе. Он заключается в том, что в локальной области блока ОВ1 есть данные о времени выполнения предыдущего цикла программы. Задаете значение задержки и производите вычитание времени при каждом проходе цикла программы. Вот таким образом они иногда выпендриваются - просто сделать не умеют
Это не буржуйский, а программерско-математический способ. Использовать дельта-интервал dt. В этом есть некие преимущества в плане гибкости. Сименсовские IEC таймеры кстати тоже используют не явно этот метод для аккумулирования времени из-за чего они являются не точными так как всегда возникает небольшая ошибка при расчете dt.
Здравствуйте. Видео классные. Очень помогают осваивать программу. У меня вопрос. Мне нужно измерять время между двумя импульсами чтобы расчитывать скорость. Как это можно реализовать?
Подскажи пожалуйста, почему теги таймера прописываешь именно в Static? Чем Static отличается от Temp и Constant? Если можно, расскажи коротко про Static, Temp и Constant ))
Константы - это константы, очевидно, там просто можно создать переменные, значения которых меняться не будут. Темп - это временные переменные для промежуточных вычислений, они каждый цикл сбрасываются. А статик сохраняет значения, поэтому там и прописываю)
Привет. Расскажи чем эти таймерв отличаются от Legacy таймеров? Эти таймеры используют блоки данных, а легаси используют системные типа Т1 Т2 и тд. Когда следует применять первые, а когда вторые?
За видос лайкос. С речью лучше,но это на усмотрения автора.Такой вопрос. Как ставить время в секундах минутах и т.д. если делать математические вычисления то не получится потом конвектировать тип данных int в time.
Для конвертации воспользуйтесь инструкцией T_CONV. Находится в разделе Extended instructions | Date and time-of-day. С помощью нее все у вас должно получиться ;)
Что это значит? Хотите запомнить время, в которое включили или отключили оборудование? Способов масса, самый простой на панели с помощью аварийных сообщений
@@ZHAKEI-x5cВ таком случае, если нет панели, нужно реализовать классический кольцевой буфер прямо в ПЛК и записывать туда каждое событие связанное с включением/выключением необходимого оборудования. Например: ID оборудования, операция, время(читать с ПЛК). Размер буфера зависит от возможностей вашего ПЛК. И не забыть предусмотреть блокирование одновременного доступа к буферу разных событий в одном цикле.
@@ZHAKEI-x5c ru.m.wikipedia.org/wiki/Кольцевой_буфер В Википедии очень точно описан принцип его работы. Ничего сложного в его реализации нет. Писать нужно на SCL. Я его применяю для реализации динамического звена - транспортная задержка. А также для подсчета средне арифметических значений за определенное прошедшее время. Например: средняя скорость ветра за последние 10 мин. Но также его можно использовать и в Вашем случае: для аккумулирования неких событий. Вообщем - это классическая структура данных, которая широко применяется в программировании. Информации на просторах сети очень много.
Как раз что искал !!!! Спасибо. Всё понятно, хоть и без слов.
Спасибо Вам за ваши труды очень наглядно и то что надо ! то что и искал что бы понять уже полностью. жду Ваших новых видео приятно познавать с вами
Классно придумано, субтитры и релакс мелодия, смотреть очень приятно
Спасибо)) очень интересно))
Недавно попал на этот канал - большое спасибо за Ваш труд! Очень полезный контент. Как по мне лучший канал в рунете по TIA. В одном из видео была затронута тема про ОБ Cyclic interrupt и использования его для подсчета моточасов. Могли бы Вы снять видео на эту тему? Как начинающему работу с TIA очень хотелось бы услышать преимущества использования блока прерываний от обычных таймеров. Не пропадайте, буду с нетерпением ждать новые видео!:-)
Спасибо за комментарий, очень приятно;) Постараюсь делать видео почаще. Надеюсь, видео в таком формате без озвучки получилось не хуже предыдущих видео. В таком виде я мог бы делать видео почаще, если зайдет зрителям. А что касается циклических прерываний, спасибо за наводку, интересная тема для видео. Как-нибудь сделаю ;)
@@portalview3028 Видео зашло. А для чего был удален DB блок? Чтобы не "плодить" их для каждого таймера? Правильно понимаю, что Вы используете структуру в FB чтобы код был компактнее? Или есть ещё какие-либо преимущества? Как по мне с озвучкой видео лучше в том случае, если Вы хотите описать какие-нибудь преимущества технического решения (ну типа показать плюсы/минусы/подходы). А для описания работы текстовый формат тоже хорош. Делайте как Вам удобнее. Полезная информация - она в любом виде хороша :-)
Наверное, стоило этот момент объяснить. В общем, ничего плохого нет в том, чтобы создавать для каждого таймера блок данных. Однако, если таким образом создать таймер в функциональном блоке, который будет в дальнейшем мультиэкземплярным, то возникнут проблемы. Потому что это будет один общий таймер на, например, 20 блоков. Но если создать структуру для таймера как на видео внутри функционального блока, то для всех 20 экземпляров будет свой отдельный таймер. Как-то так ;)
@@portalview3028 Понятно, т.е. это такой универсальный задел на будущее, чтобы потом не возникло проблем. Подводный камень так сказать. Это я к тому, что "Наверное, стоило этот момент объяснить." - все их не опишешь - тема очень обширная. Да и базовые знания нужны и практика. Спасибо за ответ.
Вроде того) не за что;)
Спасибо вам большое
Спасибо за урок! Подскажите пожалуйста, в чем отличие между IEC_Timers (отображаются в виде функционального блока в меню выбора, имеют свой DB) и обычными таймерами(те что идут ниже, которые мы просто перетягиваем драг дропом в OB и пользуемся)? Алгоритмы задержки точно те же.
Зачем тогда создали одни и другие ? Когда целесообразно использовать IEC таймеры, а когда обычные?
Еще один способ организации таймера я увидел в буржуйской программе. Он заключается в том, что в локальной области блока ОВ1 есть данные о времени выполнения предыдущего цикла программы. Задаете значение задержки и производите вычитание времени при каждом проходе цикла программы. Вот таким образом они иногда выпендриваются - просто сделать не умеют
Ну это дичь какая-то
@@portalview3028 ну и тем не менее, может кто и столкнется
Это не буржуйский, а программерско-математический способ. Использовать дельта-интервал dt. В этом есть некие преимущества в плане гибкости. Сименсовские IEC таймеры кстати тоже используют не явно этот метод для аккумулирования времени из-за чего они являются не точными так как всегда возникает небольшая ошибка при расчете dt.
Здравствуйте. Видео классные. Очень помогают осваивать программу. У меня вопрос. Мне нужно измерять время между двумя импульсами чтобы расчитывать скорость. Как это можно реализовать?
С такими вопросами велком в тг канал, ссылка есть в описании к каждому видео. Там кто-нибудь поможет, наверняка
@@portalview3028 спасибо
Подскажи пожалуйста, почему теги таймера прописываешь именно в Static? Чем Static отличается от Temp и Constant? Если можно, расскажи коротко про Static, Temp и Constant ))
Константы - это константы, очевидно, там просто можно создать переменные, значения которых меняться не будут. Темп - это временные переменные для промежуточных вычислений, они каждый цикл сбрасываются. А статик сохраняет значения, поэтому там и прописываю)
@@portalview3028 Спасибо!
Привет. Расскажи чем эти таймерв отличаются от Legacy таймеров? Эти таймеры используют блоки данных, а легаси используют системные типа Т1 Т2 и тд. Когда следует применять первые, а когда вторые?
А, можно сделать автоматическую установку уставки таймера из показаний счётчика?
Можно, это же обычная переменная. У меня был проект, где уставка каждый раз по определённой формуле считалась
За видос лайкос. С речью лучше,но это на усмотрения автора.Такой вопрос. Как ставить время в секундах минутах и т.д. если делать математические вычисления то не получится потом конвектировать тип данных int в time.
Для конвертации воспользуйтесь инструкцией T_CONV. Находится в разделе Extended instructions | Date and time-of-day.
С помощью нее все у вас должно получиться ;)
@@portalview3028 спасибо будем разбираться.
Подскажите как отследить включение и выключение оборудования от реального времени?
Что это значит? Хотите запомнить время, в которое включили или отключили оборудование? Способов масса, самый простой на панели с помощью аварийных сообщений
Да запомнить дату и время включения и отключения оборудования, и сколько может храниться история? Панели нет, есть управление с ПК@@portalview3028
@@ZHAKEI-x5cВ таком случае, если нет панели, нужно реализовать классический кольцевой буфер прямо в ПЛК и записывать туда каждое событие связанное с включением/выключением необходимого оборудования. Например: ID оборудования, операция, время(читать с ПЛК). Размер буфера зависит от возможностей вашего ПЛК. И не забыть предусмотреть блокирование одновременного доступа к буферу разных событий в одном цикле.
А как это сделать не подскажите? Может есть на эту тему какое - либо видео?@@nick8765
@@ZHAKEI-x5c ru.m.wikipedia.org/wiki/Кольцевой_буфер
В Википедии очень точно описан принцип его работы. Ничего сложного в его реализации нет. Писать нужно на SCL. Я его применяю для реализации динамического звена - транспортная задержка. А также для подсчета средне арифметических значений за определенное прошедшее время. Например: средняя скорость ветра за последние 10 мин. Но также его можно использовать и в Вашем случае: для аккумулирования неких событий. Вообщем - это классическая структура данных, которая широко применяется в программировании. Информации на просторах сети очень много.
Молчаливая база
Интересный факт. В комментариях только мужики