Главная » Руководства » LOGO! и S7-коммуникация: полное практическое руководство по интеграции с S7-1200/S7-1500 и HMI

LOGO! и S7-коммуникация: полное практическое руководство по интеграции с S7-1200/S7-1500 и HMI

Применяемое ПО: LOGO! Soft Comfort (LSC) V8.3, TIA Portal V19
Оборудование: LOGO! 8.3, SIMATIC S7-1200/1500, панели SIMATIC HMI (Basic, Comfort)


Содержание

  1. Введение: что такое S7-коммуникация и где её применять
    • История и место в экосистеме Siemens
    • Преимущества перед другими протоколами
  2. Глубокое погружение в терминологию
    • Соединения: фиксированные и динамические
    • Что такое TSAP: структура, диапазоны, правила выбора
    • Local ID в TIA Portal
    • Память LOGO!: IB, QB, MB, VM – детальное описание с примерами адресации
  3. Подготовка оборудования и проектов
    • Требования к версиям ПО и прошивкам
    • Настройка IP-адресации в сети
    • Рекомендации по физической топологии
  4. Сценарий 1: LOGO! как ведущий (Master) для других LOGO!
    • Пошаговая настройка в LSC
    • Использование ведомых LOGO! как удалённых модулей ввода-вывода
    • Особенности работы с модулями расширения ведомых
    • Диагностика: как определить потерю связи
  5. Сценарий 2: обмен между независимыми LOGO! (Peer‑to‑Peer)
    • Создание сетевого проекта в LSC
    • Настройка TSAP мышкой и вручную
    • Передача дискретных сигналов через MB
    • Передача аналоговых значений через VM
    • Важные предостережения: конфликт V-области, зарезервированные флаги
  6. Сценарий 3: LOGO! как клиент, S7-1200/1500 как сервер
    • Подробная настройка на стороне LOGO!
    • Настройка S7-контроллера (неоптимизированный DB, разрешение S7-соединений)
    • Как организовать «удалённые I/O» без программирования в S7
  7. Сценарий 4: LOGO! как сервер, S7-1200/1500 как клиент с диагностикой
    • Настройка LOGO! для приёма PUT/GET
    • Программирование функций PUT и GET в TIA Portal
    • Обработка ошибок и коды STATUS
    • Организация диагностики обрыва связи
  8. Сценарий 5: подключение HMI панелей к LOGO!
    • Встроенная панель TDE: настройка, ограничения
    • Панели Basic/Comfort через TIA Portal: выбор протокола LOGO!, создание переменных
    • Проблемы с несколькими HMI и перехватом соединений
  9. Расширенные темы и оптимизация
    • Как проверить занятость соединений в LOGO!
    • Совместное использование S7-коммуникации и Modbus TCP на одном LOGO!
    • Пример: создание распределённой системы сбора данных на базе LOGO!
  10. Типичные ошибки и их устранение
    • «Ждём установки соединения от активного участника»
    • Не передаются данные, хотя соединение зелёное
    • Панель HMI «выбивает» другие соединения
    • Проблемы с оптимизированными DB в S7
  11. Заключение и дальнейшие шаги

1. Введение: что такое S7-коммуникация и где её применять

S7-коммуникация — это протокол прикладного уровня, используемый в системах SIMATIC для обмена данными между контроллерами, HMI и другими устройствами. Он работает поверх TCP/IP (Ethernet) и не требует от пользователя написания сложных программ: операционная система контроллера автоматически управляет установкой соединений и передачей данных.

S7-коммуникация — это протокол прикладного уровня

1.1. Где используется

  • LOGO! ↔ LOGO! — создание распределённых систем без центрального контроллера.
  • LOGO! ↔ S7-1200/1500 — интеграция LOGO! в более крупные проекты в качестве удалённого I/O или специализированного логического модуля.
  • LOGO! ↔ SIMATIC HMI — визуализация процессов на панелях оператора.

1.2. Преимущества и недостатки

ПреимуществаНедостатки
Простота настройки (минимум параметров)Отсутствие шифрования и аутентификации
Не требует программирования на стороне сервераОграниченное количество передаваемых данных
Встроен в операционную системуНе работает с оптимизированными блоками данных
Поддерживает до 8 соединений у LOGO!Диагностика обрыва не всегда встроена

2. Глубокое погружение в терминологию

2.1. Соединения (Connections)

Соединение — это логический канал, идентифицируемый парой (IP адрес, TSAP). LOGO! 8.3 поддерживает до 8 соединений одновременно. Они могут быть:

  • Фиксированные — заданы в проекте (например, в сетевом проекте LSC).
  • Динамические — создаются вызовом специальных функций из программы (для S7). LOGO! не поддерживает динамические соединения в качестве клиента, но может выступать сервером для динамических запросов от S7.

Важно: одно соединение резервируется, если используется HMI (даже TDE) или онлайн-подключение LSC.

2.2. TSAP (Transport Service Access Point)

TSAP — это двухбайтовый идентификатор, который определяет, к какому приложению или каналу относится соединение. В контроллерах Siemens TSAP обычно задаётся в формате xx.yy, где:

  • Первый байт (xx) — номер стойки/слота (в Ethernet-системах часто 10, 20 и т.д.)
  • Второй байт (yy) — номер соединения (01, 02 и т.д.)

Для LOGO!:
Используются TSAP 20.00 … 27.00. В LSC они визуально представлены квадратиками. Каждый квадратик соответствует одному возможному TSAP:

  • 20.00 — крайний левый квадратик
  • 21.00 — следующий, и так до 27.00 (крайний правый)
Что такое tsap в network input в Siemens Logo! Soft Comfort
Что такое tsap в Network Input в Siemens Logo! Soft Comfort?

TSAP (двухбайтовый идентификатор, который определяет, какое приложение на целевом устройстве участвует в обмене) может использоваться в сетевых соединениях для передачи данных через Modbus TCP/IP.

Для S7-1200/1500:
При работе в качестве сервера ожидает TSAP, который можно выбрать из выпадающего списка (например, 10.01, 10.02, …). Часто для обмена с LOGO! используется 10.01.

Для HMI:
Панели используют TSAP, который настраивается в проекте HMI и должен соответствовать ожидаемому на LOGO!.

2.3. Local ID (S7)

В TIA Portal при создании S7-соединения контроллеру присваивается Local ID — 16-битный идентификатор, который используется в системных функциях PUT/GET для ссылки на это соединение. Он назначается автоматически (например, W#16#1) и отображается в свойствах соединения.

2.4. Память LOGO! в деталях

LOGO! имеет следующие области, доступные для S7-коммуникации:

ОбластьТипДиапазонОсобенности
IBФизические входы0–23 (24 входа)Записываются аппаратными сигналами. Программа имеет более высокий приоритет, чем сеть.
QBФизические выходы0–15 (16 выходов)Управляются программой; сеть может их перезаписывать, если не используются локально.
MBБит-память (флаги)0–63 (64 бита)Доступна побитно и побайтно. Передача по сети всегда побайтовая. Часть байтов зарезервирована системой (например, для часов).
VMАналоговая память (слова)0–27 (28 слов)16-битные слова (0–65535). Могут использоваться как для чисел, так и для упаковки битов. Передаются целиком по 2 байта.

Важные ограничения:

  • V-область (VM) единая для всех аналоговых и цифровых сетевых переменных. Если вы используете в программе VW0 (аналоговый вход) и V0.0 (цифровой сетевой вход), они будут ссылаться на один и тот же байт памяти, что может привести к непредсказуемому поведению.
  • Некоторые байты MB зарезервированы: например, MB0–MB7 могут использоваться системой для временных меток и диагностики. Рекомендуется начинать передачу с MB8 или выше.

3. Подготовка оборудования и проектов

3.1. Требования к версиям

  • LOGO! 8.3 (8.2 тоже подходит, но некоторые функции могут отличаться)
  • LOGO! Soft Comfort V8.3 или выше
  • TIA Portal V13 SP1 и выше (для S7-1200/1500 и HMI)
  • Прошивка S7-1200/1500 — любая, поддерживающая S7-коммуникацию

3.2. Настройка IP-адресации

Все устройства должны находиться в одной подсети. Пример:

  • LOGO! Master: 192.168.0.10
  • LOGO! Slave 1: 192.168.0.11
  • S7-1200: 192.168.0.20
  • HMI: 192.168.0.30

Маска подсети: 255.255.255.0

В LSC IP-адрес задаётся в свойствах устройства (двойной клик → Ethernet).
В TIA Portal — в конфигурации устройства.

3.3. Физическая топология

Используйте стандартные Ethernet-коммутаторы (неуправляемые). Рекомендуется избегать использования хаба, так как это может увеличить коллизии.
Кабели: экранированная витая пара (CAT5e и выше).


4. Сценарий 1: LOGO! как ведущий (Master) для других LOGO!

4.1. Цель

Расширить количество входов/выходов за счёт ведомых LOGO!, которые не имеют собственной программы и работают как удалённые модули.

4.2. Пошаговая настройка в LSC

  1. Создайте новый проект в LSC.
  2. Добавьте ведущий контроллер (например, LOGO! 8.3).
  3. Добавьте ведомые устройства:
    • Нажмите «Устройства» → «Добавить устройство».
    • Выберите «LOGO! 8.3» (или другую версию) и укажите IP-адрес.
    • Для ведомых в списке выберите тип «Ведомый» (Slave) (в некоторых версиях LSC это называется «Устройство, работающее как ведомое»).
  4. Свяжите входы/выходы:
    • В программе ведущего используйте входы ведомого как обычные I (например, I1 ведомого → вход в схеме ведущего).
    • После того как вы поместите на схему элемент, привязанный к ведомому, LSC автоматически создаст сетевую связь.
  5. Загрузите конфигурацию в ведущий контроллер. Ведомые не требуют загрузки программы (у них нет схемы).

4.3. Использование модулей расширения ведомых

Ведомые LOGO! могут иметь собственные модули расширения (DM8, AM2 и т.д.). Эти входы/выходы также доступны ведущему. Нумерация: I2.0 (второй модуль, канал 0) и т.д.

4.4. Диагностика

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

  • Использовать сетевой вход в режиме «Диагностика сетевого подключения» (реагирует только на пропадание сигнала на порту ведущего).
  • Периодически отправлять от ведущего специальный «heartbeat» и ожидать ответ через сетевые входы (но для этого потребуется, чтобы ведомый имел программу).

Ограничение: если ведомые подключены через коммутатор, физическое отключение одного ведомого не влияет на порт ведущего, и диагностика не сработает.


5. Сценарий 2: обмен между независимыми LOGO! (Peer‑to‑Peer)

5.1. Цель

Организовать двусторонний обмен данными между двумя (или более) LOGO!, каждое из которых выполняет свою программу.

5.2. Создание сетевого проекта в LSC

  1. Откройте сетевой проект: в LSC выберите «Сеть» → «Сетевой проект».
  2. Добавьте устройства (оба LOGO!) из верхней части списка. Присвойте им IP-адреса.
  3. Создайте соединение:
    • Наведите курсор на квадратик TSAP одного устройства, нажмите левую кнопку и перетащите на квадратик другого.
    • Появится линия, а в таблице соединений добавится запись.
    • Номер квадратика определяет TSAP (20.00…27.00).
  4. Задайте области передачи:
    • В таблице соединений выберите созданное соединение.
    • Укажите направление (например, отправка из A в B).
    • Выберите область (MB или VB), начальный адрес, длину.

5.3. Передача дискретных сигналов через MB

  • Если вы передаёте MB0 длиной 1 байт, то на приёмнике биты M1…M8 будут соответствовать битам M1…M8 передатчика.
  • Можно указать смещение: передача MB0 → MB2 означает, что биты M1…M8 передатчика попадут в M17…M24 приёмника.

Важно: Некоторые MB зарезервированы. Рекомендуется использовать MB8–MB63 для передачи.

5.4. Передача аналоговых значений через VM

  • Для передачи числовых значений используйте сетевые аналоговые входы/выходы (VW).
  • В LSC выберите «Аналоговый сетевой вход/выход» в программе и укажите адрес VM.
  • Длина всегда 2 байта (одно слово).
  • Приёмник может использовать эти данные как число 0–65535 или интерпретировать как два отдельных байта.

5.5. Предостережение: конфликт V-области

Если вы используете в программе одновременно сетевой аналоговый выход VW0 и цифровой сетевой выход V0.0, оба будут ссылаться на один и тот же байт памяти (байт 0 V-области). Это может привести к тому, что цифровой сигнал будет затирать часть аналогового значения. Избегайте смешивания в пределах одного байта.

Рекомендация: Для дискретных сигналов используйте MB, для аналоговых — VM. Если же необходимо передавать и биты, и числа в рамках одного соединения, используйте только VM, но упаковывайте биты в слова.


6. Сценарий 3: LOGO! как клиент, S7-1200/1500 как сервер

6.1. Цель

Использовать LOGO! как простой и дешёвый удалённый модуль ввода-вывода для S7-контроллера. В этом режиме LOGO! не имеет программы, а все его входы/выходы отображаются в DB S7.

6.2. Настройка LOGO!

  1. В LSC в программе (или даже без программы) добавьте «Устройство с поддержкой S7».
  2. Введите IP-адрес S7-контроллера.
  3. Укажите TSAP = 10.01 (это стандартный TSAP для S7-1200/1500 в роли сервера).
  4. В области передачи укажите:
    • Локальный адрес (в LOGO!) — например, I0 (физический вход) или Q0 (выход) или VM.
    • Удалённый адрес (в S7) — например, DB1.DBB0 (байт 0 в DB1).
  5. Загрузите конфигурацию в LOGO!.

6.3. Настройка S7-1200/1500 в TIA Portal

  1. Создайте неоптимизированный блок данных (например, DB1). В нём объявите переменные, которые будут отражать состояние входов/выходов LOGO!.
    • Важно: отключите оптимизированный доступ в свойствах DB (снять галочку «Optimized block access»).
  2. В разделе «Сетевые соединения» создайте новое S7-соединение:
    • Партнёр: LOGO! (укажите IP).
    • На вкладке «Адреса» установите TSAP: 20.00 (или 21.00 в зависимости от того, какой квадратик вы выбрали в LOGO!).
    • Активное установление соединения оставьте неактивным (соединение будет устанавливаться LOGO!).
    • Разрешите S7-соединения (галочка в свойствах CPU).
  3. Больше никаких действий в программе S7 не требуется. Данные будут автоматически отображаться в DB1.

6.4. Результат

При запуске LOGO! установит соединение с S7 и начнёт передавать данные. S7 может читать DB1 и получать актуальные значения входов LOGO!.

Недостаток: Нет диагностики. Если кабель отключить, S7 не узнает об этом.


7. Сценарий 4: LOGO! как сервер, S7-1200/1500 как клиент с диагностикой

7.1. Цель

Получить возможность программно отслеживать состояние связи, используя функции PUT/GET.

7.2. Настройка LOGO! как сервера

  1. В LSC добавьте «Устройство с поддержкой S7» (сервер) или, если у вас уже есть другие соединения, создайте новое серверное соединение в сетевом проекте.
    • В сетевом проекте: наведите курсор на квадратик TSAP, выберите «Добавить клиента».
    • Укажите IP S7-контроллера (или оставьте 0.0.0.0, чтобы принимать запросы с любого адреса).
    • Область передачи не заполняйте — она будет определяться запросами клиента.
  2. TSAP для сервера будет автоматически присвоен в порядке создания соединений (например, 20.00, 21.00 и т.д.). Запомните, какой TSAP используется.

7.3. Программирование PUT/GET в TIA Portal

  1. Создайте S7-соединение в разделе «Сетевые соединения»:
    • Партнёр: LOGO! (IP).
    • TSAP партнёра: тот, который вы назначили в LOGO! (например, 20.00).
    • Активное установление соединения включите (галочка).
    • Local ID: будет присвоен автоматически.
  2. В программе S7 (например, в циклическом OB1) вызовите функцию PUT или GET.

Пример вызова PUT (запись данных в LOGO!):

scl

CALL "PUT" (
REQ := TRUE, // Постоянный запрос
ID := W#16#1, // Local ID соединения
DONE := doneFlag,
ERROR := errorFlag,
STATUS := statusWord,
ADDR_1 := P#VW0 BYTE 2, // Адрес в LOGO! (VW0)
SD_1 := P#DB1.DBX0.0 BYTE 2 // Откуда берём данные
);

Пример вызова GET (чтение из LOGO!):

scl

CALL "GET" (
   REQ        := TRUE,
   ID         := W#16#1,
   DONE       := doneFlag,
   ERROR      := errorFlag,
   STATUS     := statusWord,
   ADDR_1     := P#VW2 BYTE 2,  // Адрес в LOGO! (VW2)
   RD_1       := P#DB1.DBX2.0 BYTE 2  // Куда сохранить
);

7.4. Обработка ошибок

  • Если ERROR = TRUE, в STATUS будет код ошибки.
  • Типичные коды:
    • 0x19 (25 dec) — соединение не установлено (таймаут).
    • 0x0C (12 dec) — неверный адрес (адрес в LOGO! недоступен).
    • 0x87xx — специфические ошибки S7-коммуникации.

При обнаружении ошибки можно, например, установить флаг «Связь потеряна» и перевести процесс в безопасное состояние.

Важно: Функции PUT/GET не блокируют программу. Они выполняются асинхронно. DONE или ERROR устанавливаются на один цикл после завершения.

7.5. Диагностика обрыва связи

Теперь при отключении кабеля функции PUT/GET будут возвращать ERROR = TRUE с кодом 0x19. Вы можете отслеживать это и, например, через определённое время без успешного обмена выдавать сигнал аварии.


8. Сценарий 5: подключение HMI панелей к LOGO!

8.1. Встроенная панель TDE

  • Программируется в LSC.
  • Достаточно указать IP-адрес панели в свойствах LOGO!.
  • Панель автоматически получает данные через S7-коммуникацию, не занимая явно соединение, но фактически одно соединение резервируется.
  • Ограничение: можно подключить только одну TDE. Две панели будут показывать одинаковые данные, индивидуальная настройка невозможна.

8.2. Панели Basic/Comfort через TIA Portal

  1. В проекте HMI (TIA Portal) выберите протокол LOGO! при создании соединения.
  2. Укажите IP-адрес LOGO!.
  3. В переменных HMI выберите это соединение и укажите область (например, VW0, VW2).
  4. Выведите переменные на экран.

Важно: LOGO! не «знает» о подключении HMI. Соединение не отображается в LSC, но она занимает один из 8 слотов.

8.3. Проблемы с несколькими HMI

Если к LOGO! подключено более одной панели (например, Basic и Comfort), может возникнуть конкуренция за соединения. Панели имеют приоритет и могут «перехватывать» соединения, предназначенные для других устройств. В результате:

  • Связь с другими LOGO! или S7 может хаотично пропадать.
  • Визуализация может тормозить или выдавать неверные данные.

Рекомендация: При наличии HMI (включая TDE) всегда оставляйте одно свободное соединение из восьми. То есть планируйте не более 7 соединений с другими устройствами.


9. Расширенные темы и оптимизация

9.1. Как проверить занятость соединений в LOGO!

LOGO! не имеет встроенного интерфейса для просмотра занятых соединений. Косвенно:

  • В LSC в режиме онлайн можно посмотреть сетевые соединения (вкладка «Сеть»).
  • При попытке добавить новое соединение, если все 8 заняты, LSC выдаст предупреждение.

9.2. Совместное использование S7-коммуникации и Modbus TCP

LOGO! 8.3 поддерживает одновременно S7-коммуникацию и Modbus TCP (через функцию «Сетевой Modbus»). Эти протоколы используют разные механизмы и не конфликтуют по соединениям (Modbus TCP не ограничен 8 соединениями, но есть свои лимиты). Однако суммарная нагрузка на Ethernet-порт должна быть в разумных пределах.

9.3. Пример: распределённая система сбора данных

Предположим, у вас есть 4 LOGO! на линии, каждое собирает данные с датчиков. Центральный S7-1200 должен собирать эти данные. Используйте сценарий 4 (LOGO! как сервер, S7 как клиент) с функцией GET для каждого LOGO!. В S7 организовать циклический опрос по очереди или параллельно (если позволяет количество соединений). Каждый вызов GET должен иметь свой ID (своё соединение). Так можно создать распределённую систему мониторинга без дополнительных затрат на дорогие модули ввода-вывода.


10. Типичные ошибки и их устранение

10.1. «Ждём установки соединения от активного участника» (Waiting for connection from active partner)

Симптом: В TIA Portal в онлайн-режиме соединение отображается красным, статус — «Waiting for connection from active partner».

Причины:

  • На стороне LOGO! не настроено серверное соединение с правильным TSAP.
  • Активное установление соединения включено на обеих сторонах (должно быть включено только у клиента).
  • Брандмауэр или сетевые настройки блокируют порт (102).

Решение:

  • Проверьте, что LOGO! имеет активное серверное соединение с TSAP, соответствующим ожидаемому.
  • В S7-соединении снимите галочку «Активное установление соединения», если S7 — сервер.
  • Убедитесь, что в свойствах CPU разрешены S7-соединения.

10.2. Не передаются данные, хотя соединение зелёное

Симптом: Соединение установлено, но данные не обновляются.

Причины:

  • Неправильно указаны области передачи (например, несовпадение длины).
  • Использование оптимизированного DB в S7.
  • Конфликт V-области (например, аналоговая и цифровая переменные перекрываются).

Решение:

  • Проверьте, что в S7 используется DB с отключённой оптимизацией.
  • Убедитесь, что адреса и длины совпадают с настройками в LSC.
  • Для передачи битов используйте MB, а не VM.

10.3. Панель HMI «выбивает» другие соединения

Симптом: При подключении панели оператора другие соединения (например, между LOGO! и S7) периодически теряются.

Причина: Панель использует одно из 8 соединений, и если все 8 заняты, она может принудительно закрывать другие соединения.

Решение: Оставьте минимум одно свободное соединение. Если используется TDE, она уже занимает одну, поэтому планируйте не более 6–7 соединений с другими устройствами.

10.4. Проблемы с оптимизированными DB в S7

Симптом: Данные не обновляются, хотя соединение установлено.

Причина: S7-коммуникация не поддерживает оптимизированные блоки данных. Переменные должны быть расположены в памяти по фиксированным адресам.

Решение: Создайте DB с отключённой оптимизацией (свойства → Attributes → снять галочку «Optimized block access»).


11. Заключение и дальнейшие шаги

Мы детально рассмотрели все основные варианты использования S7-коммуникации с LOGO! — от простого расширения I/O до интеграции с контроллерами S7 и панелями HMI. Правильное понимание механизмов TSAP, соединений и областей памяти позволяет строить надёжные распределённые системы автоматизации с минимальными затратами.

Что можно сделать дальше:

  • Организовать резервирование связи, используя два независимых Ethernet-канала (LOGO! не поддерживает, но можно на уровне S7 переключаться между двумя соединениями).
  • Интегрировать LOGO! в систему SCADA через OPC-сервер, используя S7-коммуникацию.
  • Создать гибридную сеть с использованием S7-коммуникации для высокоприоритетных данных и Modbus TCP для сторонних устройств.

Menu