Jump to content
  • Sign in to follow this  

    Внедрение UDT в программирование ПЛК - определяемый пользователем тип данных

       (0 reviews)

    leikang

    В предыдущей статье мы говорили о том, что такое UDT, как создавать определяемые пользователем типы данных (UDT) и преимущества использования UDT в вашем проекте. В этой статье мы покажем один из способов использования UDT в программировании ПЛК.

    Содержание:

    • Старый функциональный блок симулятора танка.
    • Новый FB симулятора танка с UDT.
    • Вызов нового FB симулятора танка.
    • Добавление нового тега в UDT.
    • Выводы.

    UDT в программировании ПЛК

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

    Старый функциональный блок симулятора танка

    В старой системе симулятора танка мы определили некоторые внутренние параметры для повторного использования функционального блока столько раз, сколько нам нужно. См. рисунок 1.

    113-1.gif

    рисунок 1. FB симулятора танка.

    Как вы видите на рисунке, в интерфейсе функционального блока мы определили некоторые входы и некоторые входы-выходы, эти параметры должны быть предоставлены при вызове FB.

    Например, если мы вызвали FB для моделирования танка 1 и вызвали его снова для представления танка 2, нам нужно предоставить параметры для каждого танка связанному вызванному функциональному блоку. См. рисунок 2.

    113-2.gif

    рисунок 2. Моделирование танка 1 и танка 2.

    Вы можете видеть, что для каждого вызова FB мы должны назначить связанные теги. Для моделирования танка 1 мы должны назначить теги танка 1 вызванному FB. И то же самое для моделирования танка 2.

    Новый FB симуляции танка с UDT:

    Теперь мы хотим использовать UDT «Танк», который мы определили в последней статье, для моделирования наших танков. Мы создадим новый функциональный блок моделирования. См. рисунок 3.

    113-3.gif

    рисунок 3. Добавьте новый FB моделирования резервуара.

    Новый функциональный блок моделирования имеет ту же логику, что и старый FB, но в этой функции моделирования мы будем использовать определенный UDT «Tank» как внутренний тег InOut, как вы видите на рисунке.

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

    Вызов нового FB моделирования резервуара:

    Чтобы вызвать новую функцию моделирования, мы выбираем вызов внутри циклического прерывания OB, чтобы убедиться, что выполнение функционального блока не зависит от времени цикла основной логики OB1, как мы объясняли с помощью PID.

    Поэтому нам нужно сначала создать новый циклический прерывание OB. См. рисунок 4.

    113-4.gif

    рисунок 4. Добавление циклического прерывания для вызова танков 3 и 4.

    Вы можете выбрать циклическое время по своему усмотрению, в нашем случае мы установили его на 3000 микросекунд или 3 миллисекунды.

    Теперь вы можете перетащить свой FB «Tank Simulator with UDT» в свое циклическое прерывание, чтобы вызвать FB. Появится окно параметров вызова, в котором экземпляру данных FB можно присвоить любое имя. См. рисунок 5.

    113-5.gif

    Рисунок 5. Вызовите свой FB.

    После вызова FB, как вы знаете, нужно назначить параметры, относящиеся к танку, который вы хотите смоделировать. См. рисунок 6.

    113-6.gif

    рисунок 6. Назначьте параметры танка вызову FB.

    Обратите внимание, что у вас есть только один параметр для заполнения для функционального блока. И это созданный вами тег UDT. Который уже содержит все параметры танка, необходимые функциональному блоку.

    Мы хотим смоделировать Tank_03, поэтому мы назначим тег вызову FB. Смотрите рисунок 7.

    113-7.gif

    рисунок 7. Перетащите свой тег.

    Вызов функционального блока для танка 3 выглядит проще, чем вызов танка 1 со старым симулятором FB без UDT. Смотрите рисунок 8.

    113-8.gif

    рисунок 8. Различия в вызовах танка 1 и танка 3.

    Вы видите разницу между вызовами двух танков? Вам нужно указать все параметры функционального блока в случае без UDT. Представьте, что вам нужно смоделировать 50 танков с помощью этого симулятора. Назначать все эти параметры будет очень скучно и отнимает много времени, не говоря уже о том, чтобы сначала объявить их для каждого танка.

    Но в случае симулятора с UDT вы можете вызывать столько, сколько захотите, и это не займет много времени или усилий. Смотрите рисунок 9.

    113-9.gif

    рисунок 9. Вызов множества других резервуаров.

    Теперь представьте, что вам нужно добавить новую переменную в свою симуляцию. Например, вы хотите добавить сигнал предупреждения об оттоке. Со старым функциональным блоком симулятора без UDT это будет означать, что вам нужно объявить этот новый тег для каждого резервуара и добавлять его по одному при каждом вызове резервуара.

    Но с UDT вам нужно только обновить созданный вами UDT и добавить новый нужный вам тег. Смотрите рисунок 10.

    113-10.gif

    рисунок 10. Добавление нового тега в UDT.

    Когда вы вносите какие-либо изменения в UDT, вам даже не нужно обновлять вызов функции. Поскольку параметр вызова тот же самый, изменения были внесены внутри самого параметра. См. картинку 11.

    113-11.gif

    картинка 11. Не нужно вспоминать FB.

    Однако вам все равно нужно перекомпилировать ваш проект ПЛК или, по крайней мере, блок данных, чтобы изменения в UDT можно было обновить. См. рисунок 12.

    113-12.gif

    рисунок 12. Перекомпилируйте, чтобы обновить изменения в UDT.

    После компиляции все изменения в UDT будут автоматически обновлены для всех объявленных тегов этого UDT. См. рисунок 13.

    113-13.gif

    рисунок 13. Теперь все теги обновлены.

    Заключение

    • Вы можете использовать UDT в своем проекте, чтобы сделать программирование более быстрым и простым для понимания.
    • Использование UDT также упростит внесение изменений в ваши функции и функциональные блоки.
    Sign in to follow this  


    User Feedback

    Create an account or sign in to leave a review

    You need to be a member in order to leave a review

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    There are no reviews to display.


Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...