Jump to content
  • Sign in to follow this  

    Перемещение данных между ПЛК – Siemens Basics – TSEND TRCV

       (0 reviews)

    caixiaofeng

    В предыдущей статье мы говорили о том, как настроить соединение между двумя ПЛК с помощью открытого пользовательского взаимодействия, и использовали протокол TCP для соединения между двумя ПЛК. В статье мы показали, как использовать такие инструкции, как TCON и TDISCON, для установления этого соединения.

    Перемещение данных между ПЛК

    В этой статье мы покажем, как можно начать перемещение ДАННЫХ между ПЛК, которые мы подключили в прошлой статье. Для этой цели мы будем использовать блоки TSEND и TRCV.

    Отправка данных в ПЛК_2

    Мы будем основываться на проекте, который мы создали в прошлой статье, то есть в нашем проекте уже установлены блоки TCON и TDISCON. и мы продолжим наш проект, добавив блоки TSEND и TRCV, чтобы начать перемещение данных между двумя ПЛК.

    Чтобы отправить данные из ПЛК_1 в ПЛК_2, давайте начнем с создания блока данных, который будет содержать всю информацию, которую нам нужно отправить в ПЛК_2. См. рисунок 1.

    91-1.gif

    рисунок 1. Создайте новый блок данных.

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

    Во-вторых, давайте добавим некоторые данные в блок данных, которые мы хотим отправить в ПЛК_2.

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

    91-2.gif

    рисунок 2. Определите некоторые данные для отправки в ПЛК_2.

    Есть еще одна вещь, которую нам нужно сделать, чтобы иметь возможность отправить только что созданный нами блок данных в ПЛК_2, а именно убедиться, что оптимизированный доступ к блоку данных не выбран.

    Для этого нам нужно перейти в свойства блока данных и снять этот выбор. См. рисунки 3 и 4.

    91-3.gif

    рисунок 3. Перейдите в свойства блока данных.

    91-4.gif

    рисунок 4. Снимите отметку с параметра Оптимизированный доступ к блоку.

    Обязательно снимите отметку с этого параметра перед использованием блока TSEND, иначе он не сработает.

    Теперь, когда мы подготовили данные, которые хотим отправить в ПЛК_2, давайте попробуем их отправить. Мы сделаем это с помощью блока TSEND. Просто перетащите инструкцию в ваш основной OB1, чтобы добавить ее в вашу логику. См. рисунок 5.

    91-5.gif

    рисунок 5. Добавьте блок TSEND.

    При добавлении блока TSEND вам будет предложено создать экземпляр блока данных, поскольку это по сути функциональный блок, снова дайте ему правильное имя. См. рисунок 6.

    91-6.gif

    Рисунок 6. Создание экземпляра данных для TSEND.

    Когда блок TSEND будет добавлен в вашу логику, вы обнаружите, что нам нужно сделать некоторые важные конфигурации. См. рисунок 7.

    91-7.gif

    рисунок 7. Блок TSEND.

    Как вы можете видеть, нам нужно сделать некоторые настройки:

    • Сигнал REQ, чтобы разрешить отправку данных.

    Что касается сигнала REQ, мы определим тег SendData, который будет использоваться для включения отправки данных.

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

    В последней статье мы определили идентификатор 1 для соединения между ПЛК_1 и ПЛК_2, поэтому мы установим идентификатор на 1.

    • ДАННЫЕ, которые мне нужно отправить. Мы уже создали блок данных со всей информацией, которую мне нужно отправить, мы можем просто перетащить блок данных в блок TSEND. Смотрите рисунок 8.

    91-8.gif

    рисунок 8. Настройте блок TSEND.

    Получение данных из ПЛК_1

    После того, как мы настроим TSEND для отправки данных в ПЛК_2, нам нужно получить эти данные внутри ПЛК_2. Для этого мы будем использовать блок TRCV. Смотрите рисунок 9.

    91-9.gif

    рисунок 9. Добавьте блок TRCV.

    Как видите, просто перетащите блок TRCV, чтобы добавить его в свою логику. И вы знаете, что далее нам нужно будет создать экземпляр данных для этого блока. Смотрите рисунок 10.

    91-10.gif

    рисунок 10. Добавьте экземпляр данных в блок TRCV.

    После вызова блока TRCV в вашу логику нам нужно будет настроить некоторые параметры, как мы это делали с TSEND. Смотрите рисунок 11.

    91-11.gif

    рисунок 11. Блок TRCV.

    Как вы можете видеть, EN-R — это разрешающий сигнал, который должен быть истинным, чтобы позволить блоку TRCV начать получать данные. ID — это соединение, которое будет использоваться, а DATA — это место, где будут храниться полученные данные.

    Итак, нам нужно создать блок данных для получения данных внутри него. Не забудьте дать ему правильное имя. Смотрите рисунок 12.

    91-12.gif

    рисунок 12. Создайте блок данных для получения данных.

    Далее определите информационные теги, которые будут получены от ПЛК_1, лучше всего убедиться, что блок данных содержит ту же структуру данных, что и данные, которые будут получены. См. рисунок 13.

    91-13.gif

    рисунок 13. Определите теги данных.

    Для EN-R мы определим тег RecieveData, чтобы включить прием данных. А для идентификатора соединения это 1, как мы установили ранее. См. рисунок 14.

    91-14.gif

    рисунок 14. Сигнал EN-R.

    Затем перетащите созданный нами блок данных в наш блок TRCV, чтобы завершить все настройки. См. рисунок 15.

    91-15.gif

    рисунок 15. Добавьте свой блок данных в блок TRCV.

    Когда вы перетащите созданную нами базу данных, вы заметите, что TIA Portal выдает предупреждение и не принимает только что добавленный нами блок данных.

    И это потому, что мы не сняли отметку с «Оптимизированного доступа к блоку» блока данных, как мы сделали с TSEND. Смотрите рисунок 16.

    91-16.gif

    рисунок 16. Оптимизированный доступ к блоку.

    Как мы уже говорили, нам нужно снять отметку с этой опции, иначе TSEND и TRCV не будут работать. Смотрите рисунок 17.

    91-17.gif

    рисунок 17. Снимите отметку с опции оптимизированного доступа к блоку.

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

    Теперь, когда вызов и настройка блоков TSEND и TRCV завершены, давайте смоделируем наш проект и посмотрим, как будут отправляться и приниматься данные.

    Сначала мы создадим простую логику, которая гарантирует наличие значений данных для наших определенных тегов.

    Простая логика для автоматического создания значений данных

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

    91-18.gif

    рисунок 18. Простая логика.

    Эта простая логика будет использовать тактовый бит %M50.5 для автоматического изменения значений данных, хранящихся в блоке данных SendToПЛК_2.

    Моделирование проекта ПЛК

    Давайте скомпилируем наш проект и начнем моделирование. Первое, что нам нужно будет сделать, это установить соединение между двумя ПЛК с помощью блока TCON, который мы настроили в прошлой статье.

    Помните, что нам нужно будет включить возможность подключения из ПЛК_2 и установить соединение с ПЛК_1. См. рисунки 19, 20 и 21.

    91-19.gif

    рисунок 19. Нет связи между ПЛК

    91-20.gif

    рисунок 20. включите соединение.

    91-21.gif

    рисунок 21. Установите соединение.

    Теперь, когда мы установили соединение между двумя ПЛК, давайте переместим данные из ПЛК_1 в ПЛК_2, как мы его настроили.

    Сначала установите тег SendData в значение TRUE. См. рисунок 22.

    91-22.gif

    Рисунок 22. Сигнал REQ имеет значение true.

    Вы можете видеть, что, хотя SendData имеет значение TRUE, данные не были отправлены из ПЛК_1 в ПЛК_2. И это потому, что блок TRCV еще не включен для приема каких-либо данных. См. рисунок 23.

    91-23.gif

    picture23. Сигнал EN-R — ложь.

    Как видите, поскольку RecieveData еще не имеет значения TRUE, блок TRCV не может принимать какие-либо данные. Как только EN-R становится истинным, данные будут отправлены из блока данных в ПЛК_1 в блок данных ПЛК_2. См. рисунок 24.

    91-24.gif

    picture 24. Сигнал EN-R — Истина.

    Как только EN-R становится истинным, вы можете видеть, что данные перемещаются из ПЛК_1 в ПЛК_2.

    Если вы откроете проект и смоделируете его самостоятельно, вы обнаружите, что данные постоянно обновляются в ПЛК_1 и передаются в ПЛК_2.

    И вот как мы можем установить связь между двумя ПЛК и использовать блоки TSEND, TRCV.

    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...