Главная » Руководства » Односторонний обмен данными между контроллерами Siemens SIMATIC S7 через PUT/GET без изменения программы второго ПЛК.

Односторонний обмен данными между контроллерами Siemens SIMATIC S7 через PUT/GET без изменения программы второго ПЛК.

Односторонний обмен данными между контроллерами Siemens SIMATIC S7 через PUT/GET без изменения программы второго ПЛК.

Организация обмена данными между PLC Siemens S7-300, S7-400, S7-1200 и S7-1500.

В промышленных системах автоматизации нередко возникает задача организации обмена данными между двумя контроллерами семейства Siemens SIMATIC S7. Стандартно коммуникация между ПЛК строится через конфигурируемые S7-соединения, при которых оба контроллера должны быть настроены и перепрограммированы.
Однако на практике часто возникают ситуации, когда доступ к одному из контроллеров ограничен:

  • отсутствует исходный проект PLC;
  • оборудование работает на действующем производстве и его нельзя останавливать;
  • необходимо подключить новый контроллер к уже работающей системе;
  • требуется интеграция с оборудованием серии S7-300 или S7-400.

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


Что такое одностороннее S7-соединение?

В стандартной конфигурации Siemens TIA Portal или Step7 коммуникация между PLC является двусторонней.

При одностороннем соединении только один контроллер:

  • инициирует подключение;
  • выполняет чтение данных;
  • выполняет запись данных;
  • содержит конфигурацию соединения.

Удаленный PLC работает без внесения изменений в существующую программу.

Такой метод работает через системные коммуникационные инструкции:

  • GET — чтение данных с удаленного PLC;
  • PUT — запись данных в удаленный PLC.

Другие коммуникационные инструкции Siemens требуют настройки на обеих сторонах соединения.


Основные условия работы одностороннего соединения Siemens S7.

Для корректной работы необходимо соблюдать несколько условий:

  • Соединение настраивается только на одном PLC. Конфигурация создается только в локальном контроллере, который будет инициатором соединения.
  • Соединение должно быть Active. Локальный контроллер выполняет активное подключение к удаленному устройству.
  • На стороне удаленного контроллера необходимо использовать системный ресурс соединения с идентификатором 03. Этот ресурс обрабатывается операционной системой CPU Siemens автоматически.
  • Используются только инструкции PUT и GET.

Пример схемы обмена между двумя PLC Siemens.

Рассмотрим практический пример.

Удаленный контроллер:

В качестве удаленного устройства используется PLC семейства S7-300, известны только параметры подключения:

IP-адрес:

192.168.43.4

Доступные области памяти:

DB1.DBD0
DB1.DBD4
DB1.DBD8

Локальный контроллер:

В роли активного контроллера используется Siemens SIMATIC S7-1500, локальный PLC полностью доступен для настройки и программирования.


Создание блока данных для приема информации

Перед началом обмена необходимо создать локальный Data Block, например DB13.

Перед началом обмена необходимо создать локальный Data Block.
Перед началом обмена необходимо создать локальный Data Block.

Этот блок будет хранить данные, считанные с удаленного PLC. Важно учитывать, что при использовании PUT/GET блок данных должен работать в режиме стандартного доступа.

Блок данных должен работать в режиме стандартного доступа
Блок данных должен работать в режиме стандартного доступа

Настройка S7 Connection в TIA Portal

В проекте необходимо открыть раздел:

Devices & Networks
Devices & Networks
Devices & Networks

После этого:

  1. Выбрать пункт Connections
  2. Создать новое соединение типа:
S7 Connection
Выбрать пункт Connections
Выбрать пункт Connections
Add new connection
Add new connection
  1. Указать сетевой интерфейс CPU.

Например:

X1
Указать сетевой интерфейс CPU.
Указать сетевой интерфейс CPU.
Connections
Connections

При создании соединения система назначает параметр:

Local ID = 0x100

Этот идентификатор потребуется при вызове блока GET или PUT.


Параметры удаленного контроллера

В настройках соединения необходимо указать IP-адрес удаленного устройства:

192.168.43.4
В настройках соединения необходимо указать IP-адрес удаленного устройства
В настройках соединения необходимо указать IP-адрес удаленного устройства

Далее задаются параметры CPU:

Rack: 0

Slot: 2

Connection Resource: 03

На вкладке Address details задаем rack/slot партнера
На вкладке Address details задаем rack/slot партнера

Для большинства контроллеров Siemens серии S7-300 и S7-400 используются именно значения:

Rack 0 / Slot 2

Использование блока GET для чтения данных

Функциональный блок GET для чтения данных с коммуникационного партнера
Функциональный блок GET для чтения данных с коммуникационного партнера

Для чтения информации используется системный функциональный блок GET.

Основные параметры блока:

REQ

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

ID

Идентификатор соединения.

Пример:

0x100

ADDR_1

Удаленный адрес памяти PLC, используется указатель типа ANY.

RD_1

Локальная область памяти для сохранения данных.

Для начала прочитаем одну вещественную переменную по удаленном адресу DB1.DBD0.
Для начала прочитаем одну вещественную переменную по удаленном адресу DB1.DBD0.

Также рекомендуется использовать формат ANY.


Формат указателя ANY в Siemens

Для чтения переменной REAL по адресу:

DB1.DBD0

Используется указатель:

P#DB1.DBX0.0 BYTE 4

Расшифровка:

  • P# — указатель;
  • DB1 — номер блока данных;
  • DBX0.0 — смещение внутри блока;
  • BYTE 4 — количество считываемых байтов.

Чтение одной переменной.

Если требуется считать одно значение REAL из удаленного PLC:

Удаленный адрес:

P#DB1.DBX0.0 BYTE 4

Локальный адрес:

P#DB13.DBX0.0 BYTE 4

После выполнения GET данные будут записаны в локальный Data Block.

Взведем переменную Tag_1 и посмотрим на результат чтения:
Взведем переменную Tag_1 и посмотрим на результат чтения:

Чтение нескольких переменных одновременно

Если необходимо считать три переменные:

DB1.DBD0
DB1.DBD4
DB1.DBD8

достаточно изменить длину блока.

Пример:

P#DB1.DBX0.0 BYTE 12

Локальный буфер:

P#DB13.DBX0.0 BYTE 12

В результате контроллер считает сразу три значения REAL.

Вызов приобретет следующий вид:
Вызов приобретет следующий вид:
Посмотрим на результат чтения:
Посмотрим на результат чтения:

Контроль состояния соединения

После выполнения GET рекомендуется контролировать системные выходы блока.

NDR

Новые данные успешно получены.

ERROR

Возникла ошибка передачи.

STATUS

Код состояния или код ошибки.

Следует учитывать, что эти сигналы активны только один цикл выполнения программы, поэтому обычно их сохраняют в отдельные переменные диагностики.


Использование блока PUT для записи данных.

Для передачи данных в удаленный контроллер используется инструкция PUT, принцип работы аналогичен GET.
Локальный PLC передает содержимое своей памяти в область памяти удаленного контроллера.
Пример записи значения в:

DB1.DBD0


Передаваемое значение берется из локального блока:
DB13
Для передачи информации (записи) удаленному контроллеру применяем вызов PUT
Для передачи информации (записи) удаленному контроллеру применяем вызов PUT
Изменим значение локальной переменной
Изменим значение локальной переменной
Запись данных выполнена успешно.
Запись данных выполнена успешно.

Особенности использования PUT и GET

При работе с инструкциями Siemens рекомендуется использовать указатели типа ANY. Практика показывает, что символьная адресация может корректно работать для GET, но вызывать ошибки при использовании PUT. Наиболее стабильный вариант — работа через абсолютные адреса памяти.

Пример:

P#DB13.DBX0.0 BYTE 4

Ограничения передачи данных.

Максимальный объем передаваемой информации зависит от модели CPU. Для контроллеров серии Siemens SIMATIC S7-300 максимальный размер одного пакета обычно ограничен 160 байтами. Точное значение зависит от конкретной модели центрального процессора.


Важное ограничение для S7-1200 и S7-1500.

Для контроллеров современных серий Siemens SIMATIC S7-1200, Siemens SIMATIC S7-1500 доступ через PUT/GET по умолчанию заблокирован. Для разрешения обмена необходимо активировать соответствующий параметр в настройках CPU:

Permit access with PUT/GET communication

Без включения этого параметра удаленный доступ к памяти контроллера будет недоступен.


Итог.

Односторонний обмен данными между PLC Siemens позволяет организовать связь между контроллерами без изменения программы второго устройства. Такой метод особенно полезен при модернизации существующих систем автоматизации, подключении нового оборудования к старым PLC и интеграции оборудования без доступа к исходному проекту. Основой реализации являются стандартные коммуникационные инструкции Siemens:

  • GET — чтение данных;
  • PUT — запись данных.

Метод поддерживается большинством контроллеров семейства SIMATIC S7 и широко применяется в промышленных сетях автоматизации.


Menu