В предыдущей статье мы говорили о команде PUT и о том, как мы используем ее для связи между двумя ПЛК, если они находятся в одном проекте или в двух разных проектах. В этой статье мы поговорим о команде GET, используемой для проекта связи Siemens ПЛК-to-ПЛК для обмена данными.
Что такое команда GET?
Так же, как и команда put, команда GET является встроенным функциональным блоком TIA Portal FB, который используется исключительно для ЦП семейства S7 для получения данных от удаленного партнерского ПЛК к локальному ПЛК. В отличие от команды PUT, вместо помещения данных из ПЛК_1 в ПЛК_2 команда GET будет получать данные из ПЛК_2 в ПЛК_1.
При использовании команды GET у меня будет два ПЛК, где мне нужно будет получить данные из одного ПЛК, называемого партнером, в другой ПЛК, называемый локальным. Локальный ПЛК – это место, где будет запрограммирована команда GET.
В дополнение к соединению Profinet между двумя ПЛК. Некоторые настройки должны быть выполнены для ПЛК-партнера, чтобы другой ПЛК мог получить к нему доступ.
Мы создадим пример проекта, чтобы показать, как использовать команду GET.
Проект связи между ПЛК Siemens
Мы предположим пример проекта, в котором у нас есть два ПЛК в одном проекте, ПЛК_1, который будет действовать как локальный ПЛК, и ПЛК_2, который является ПЛК-партнером.
Чтобы создать ситуацию, в которой нам нужно использовать команду GET, мы предположим, что мы хотим прочитать/получить целое число из ПЛК-партнера в локальный ПЛК_1.
Сначала давайте создадим новый проект и добавим два ПЛК. См. рисунок 1.
рисунок 1. Создайте новый проект и добавьте два ПЛК.
Теперь нам нужно настроить ПЛК-партнер для включения доступа GET из ПЛК_1. Нам также нужно подготовить данные, которые будут перемещены из ПЛК_2 в ПЛК_1.
Сначала нам нужно разрешить доступ команды GET к ПЛК_2, который будет предоставлять данные. Смотрите рисунок 2.
рисунок 2. Разрешить доступ команды GET.
Как вы видите на рисунке, мы разрешаем команде GET доступ к ПЛК_2 из свойств ПЛК_2, в опции «Защита и безопасность» нажмите на
«Разрешить доступ с помощью связи PUT/GET от удаленного партнера»
Теперь мне разрешено читать/получать данные из партнера ПЛК_2 с помощью команды GET.
ДАЛЕЕ мы хотим создать данные, которые будут перемещены в ПЛК_1, мы предположили, что ПЛК_1 хочет получить целое число из ПЛК_2.
Мы определим целочисленный тег с именем «SendDataToПЛК_1», этот целочисленный тег будет считан из ПЛК_2 в ПЛК_1. См. рисунок 3.
рисунок 3. Определите данные для перемещения в ПЛК_1
И это все; это вся конфигурация, которую вам нужно подготовить со стороны ПЛК_2, чтобы иметь возможность получать данные через команду GET.
ТЕПЕРЬ мы переходим к ПЛК_1, в ПЛК_1 мы хотим создать логику, в которой мы используем команду GET для чтения данных из ПЛК_2.
Как мы делали в предыдущей статье, мы просто перетащим команду GET в наш главный OB1. См. рисунок 4.
рисунок 4. Перетащите команду GET
Обратите внимание, что команда GET находится в папке связи S7, так как это эксклюзивная функция для семейства ПЛК S7, поскольку она связана с проблемами безопасности. Помните, на рисунке 2, когда мы разрешили использовать команду GET, она была в атрибуте «Безопасность и защита» свойств ПЛК, поскольку она связана с безопасностью и защитой ПЛК.
Когда вы перетаскиваете команду GET в свой, вам будет предложено создать экземпляр блока данных, поскольку команда GET по сути является функциональным блоком FB. Смотрите рисунок 5.
рисунок 5. Создайте экземпляр данных для команды GET.
Теперь, когда мы добавили команду GET в нашу логику, нам нужно начать настраивать блок GET, как мы делали это ранее с командой put. Чтобы открыть представления конфигурации команды GET, нажмите на маленький синий значок в верхней части блока. Смотрите рисунок 6.
рисунок 6. Откройте представление конфигурации.
У нас есть два основных параметра для настройки: параметр соединения и параметр блока. Смотрите рисунок 7.
рисунок 7. Конфигурация блока GET.
Как вы можете видеть на рисунке, локальный ПЛК — это ПЛК, где вызывается команда GET. В то время как партнерский ПЛК — это тот, который предоставит данные, он также тот, для которого мы разрешили доступ GET. В нашем проекте партнерский ПЛК — это ПЛК_2.
Вы также можете видеть на рисунке, что партнер пуст, и нам нужно выбрать ПЛК. Смотрите рисунок 8.
рисунок 8. Другой вариант в списке партнеров
Как вы можете видеть, у нас есть два разных варианта для выбора партнерского ПЛК.
Не указано, когда ПЛК принадлежат к разным проектам TIA Portal, а если ПЛК принадлежат к одному и тому же проекту TIA Portal, то вы найдете другой ПЛК в списке.
При выборе опции ПЛК_2, поскольку наши ПЛК находятся в одном проекте, конфигурация соединения будет заполнена автоматически. См. рисунок 9.
рисунок 9. ПЛК_2 как партнер
Поскольку оба ПЛК находятся в одном проекте, при выборе опции ПЛК_2 все параметры соединения будут заполнены автоматически.
С другой стороны, если партнерский ПЛК из другого проекта, то я выберу опцию Unspecified, и в этом случае мне придется заполнить некоторые данные, такие как IP-адрес партнерского ПЛК. См. рисунок 10.
рисунок 10. Партнерский ПЛК как неуказанный.
Как видите, когда партнер не указан, то вам нужно вручную добавить некоторую информацию, такую как IP-адрес партнерского ПЛК.
Вы также можете увидеть, что нам нужно добавить подсеть к локальному ПЛК_1. Для этого просто перейдите в свойства Profinet ПЛК_1 и выберите добавление новой подсети. См. рисунок 11.
Рисунок 11. Добавление подсети для ПЛК_1
После добавления новой подсети в ПЛК_1 настройка параметров соединения будет завершена. См. рисунок 12.
рисунок 12. Параметры соединения завершены.
Следующая конфигурация, о которой нам нужно позаботиться, — это параметр блока.
В параметре блока мы определяем данные, которые будут перемещены между двумя ПЛК, а также сигнал запуска, который позволит начать выполнение блока GET. См. рисунок 13.
рисунок 13. Параметр блока.
Как вы можете видеть, нам нужно определить сигнал запуска для блока GET, а также определить, какие данные будут перемещены из ПЛК_2 (область чтения ADDR_1) и куда эти данные будут отправлены (область хранения RD_1).
Мы уже определили ADDR_1, перед которым находится целочисленный тег SendDataToПЛК_1, который мы определили внутри ПЛК_2.
ТЕПЕРЬ мы определим область хранения для этого целочисленного тега и сигнала запуска. Смотрите рисунок 14.
рисунок 14. Определение сигнала запуска и области хранения
После того, как мы определили сигнал запуска, ADDR_1 и RD_1, мы заполним эти параметры в конфигурации блока. Смотрите рисунок 15.
Рисунок 15. Заполнение параметра блока
Теперь конфигурация блока GET завершена, и вы можете видеть, что блок теперь готов к загрузке и запуску. См. рисунок 16.
рисунок 16. Блок GET
Блок GET теперь настроен, и как только сигнал триггера активен, блок считывает ADDR_1 из ПЛК_2 и записывает его в RD_1 в ПЛК_1.
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now