Согласованная синхронизация данных с S7. Связь между несколькими подстанциями и одним головным ПЛК

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

 
Система SCADA для одной станции ПЛК.

На рисунке ниже представлен обзор задачи автоматизации.

Описание задачи автоматизации

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

Требования к задаче автоматизации

Следующие требования предъявляются к заявке.
• Синхронизация должна выполняться последовательно.
• Синхронизация записи происходит по событию из пользовательской программы.
• Синхронизация чтения от серверов (подстанций) к клиенту (головной станции) происходит циклически.
• Связь происходит через Ethernet с использованием связи S7.
• Изменение количественных рамок программы (количество серверов, размер и положение отправляемых или получаемых объемов данных) должно быть максимально простым.
• Должно быть возможным использовать S7-CPU S7-300 / 400 и S7-1500 в качестве клиентов (головные станции).
• В приложении центральные процессоры S7-1200 используются в качестве серверов (подстанций).
• Программирование желательно выполнять в SCL

Решение

На следующем рисунке представлен схематический обзор наиболее важных компонентов решения:

Структура

Структура отображает систему автоматизации с одной головной станцией и несколькими подстанциями, которые в этом примере приложения описаны как клиент (головная станция) и сервер (подстанция).
Пример компонента состоит из
• одна головная станция (S7-1500 или, альтернативно, S7-300)
• четыре подстанции (S7-1200).

Преимущества

Представленное здесь решение предлагает вам следующие преимущества:
• Конфигурируемый размер и место хранения областей данных для синхронизации.
• Масштабируемый проект для применения более или менее четырех подстанций (зависит только от максимального количества соединений S7, доступных на головной станции).
• Модульная настройка программы. Оба направления синхронизации могут использоваться в ваших приложениях независимо друг от друга.

Это приложение не включает
• описание протокола S7.
• введение в программирование с помощью STEP 7

Это приложение действительно для
• STEP 7 с V15.1
• SIMATIC S7-300
• SIMATIC S7-1200
• SIMATIC S7-1500

Необходимые аппаратные и программные компоненты

Запрос стоимость комплекта

Если используется оборудование, отличное от используемого в примере проекта, его необходимо соответствующим образом изменить!

Производительность

Параметры скорости синхронизации

Измерения производительности были выполнены для обзора производительности примера приложения.

Измеренные сценарии отличаются в следующих точках:
• Тип головной станции
• Количество подстанций
• загрузка программы

Была измерена синхронизация записи от головной станции (клиента) к нескольким подстанциям (серверам) с параллельной выполненной синхронизацией чтения. Время начала измерения является входящим триггером для синхронизации. Измерение прекращается после того, как все подстанции были синхронизированы один раз.

Примечание

Следующие наблюдения могут быть получены исходя из измерений:

• S7-1500 синхронизирует серверы быстрее, чем S7-300 (для программной нагрузки 50 мс и 14 подстанций, подлежащих синхронизации, разница составляет приблизительно одну секунду).
• Время цикла увеличивается приблизительно линейно с количеством подстанций.
• При более низкой загрузке программы время синхронизации не становится больше одной секунды даже для 14 подстанций.

Количество подстанций

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

Альтернатива

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

Дифференцирование

  • При использовании связи S7 осуществляется доступ к настроенным соединениям, которые статически назначают резервы связи партнеров по связи.
  • При использовании открытого обмена данными (TCP / IP, ISOonTCP) соединения могут быть запрограммированы и установлены или прерваны в пользовательской программе.
  • Если вы хотите синхронизировать больше узлов, чем параллельных соединений, которые может установить ЦП, то вам необходимо установить и разорвать соединения через открытое соединение («мультиплексирование»). В отличие от связи S7, открытая связь предоставляет эту возможность.

Пример применения
Пример приложения «Синхронизация данных по открытой связи между несколькими полевыми устройствами (S7-1200) и головным ПЛК (S7-1200 / S7-300 / WinAC)» осуществляет синхронизацию данных с открытой связью.

Быстрый запрос поддержки

Функциональные механизмы применения

По запросу приложение синхронизирует области памяти клиента (S7-300 или S7-1500) с четырьмя серверами.
Данные циклически записываются с четырех серверов в области памяти клиента.
В следующих разделах представлен обзор процесса синхронизации записи и чтения.
Записать последовательность синхронизации (головной → подстанция)
На следующем рисунке показана схема процесса синхронизации записи пользовательских данных с клиента, имеющего только один сервер.

Последовательность синхронизации (подстанция → головной)
На следующем рисунке показана схема процесса синхронизации чтения только с одним сервером.

Процессоры в проекте
Следующие S7-CPU были настроены в проекте STEP 7 (TIA Portal):
• CPU 1516-3 PN / DP (клиент)
• CPU 315-2 PN / DP (клиент)
• 4 CPU 1212 DC / DC / DC (сервер)

Оба клиента имеют одинаковую функциональность и могут использоваться как головная станция.

Функции клиента
В качестве активной части центральный клиент (станция S7-1500 или станция S7-300) осуществляет синхронизацию областей данных с серверами. Синхронизация делится на запись (см. Рисунок 3-1) и чтение (см. Рисунок 3-2).
Для обоих типов синхронизации пользователь может указать разные области данных отдельно для каждого сервера.
Синхронизация записи также используется для синхронизации часов с серверами.

Функции сервера
В качестве пассивной части сервер (ы) (одна или несколько станций S7-1200) реагируют на задания синхронизации клиента.
Чтобы серверная программа реагировала на действия клиента, а также для обеспечения согласованности данных, необходимо знать, какие области данных должны быть синхронизированы.

Быстрый запрос поддержки

Описание программы головной станции

В клиенте реализованы следующие функции:
• по запросу: запишите синхронизацию один раз с областями данных всех серверов.
• Циклическая синхронизация чтения областей данных.
• по запросу: синхронизация часов клиента с серверами.

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

Системные блоки PUT и GET используются для чтения и записи данных.

Блоки и инструкции клиента

Блоки данных БД Client2Serv_orders и БД Serv2Client_orders состоят из типов данных ПЛК.

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

FB Sync_Client2Serv (FB111): синхронизация записи

FB Sync_Client2Serv (FB111) осуществляет синхронизацию записи указанных областей данных на серверах S7 (подстанциях).

По запросу FB выполняет
• чтение и оценка координационного байта области данных назначения.
• запись новых данных на сервер.
В примере синхронизация максимально возможных 160 байт пользовательских данных.

Для синхронизации записи указанная длина синхронизируемой области данных должна быть одинаковой для всех серверов!

Выходной параметр STATUS

Внутренние последовательности в FB Sync_Client2Serv (FB111)
Задача синхронизации в FB Sync_Client2Serv (FB111) реализована как конечный автомат.

FB Sync_Serv2Client осуществляет синхронизацию циклического чтения указанных областей данных с серверами S7.
Следующие отдельные функции выполняются клиентом циклически:

• чтение и оценка координационного байта на сервере.
• выборка данных с сервера при появлении новых данных.
• показать серверу, что данные были получены.

Параметры FB Sync_Serv2Client (FB222)

Выходной параметр STATUS

Внутренние процессы в FB Sync_Serv2Client (FB222)
Задача синхронизации в FB Sync_ Serv2Client (FB222) реализована как конечный автомат.

Описание программы подстанции

Сервер только пассивно реагирует на синхронизацию через клиента. Блоки PUT / GET вызываются только на клиенте (головной станции), и только клиент может определить окончание процесса записи / чтения.

Пассивный сервер не содержит активных блоков связи и должен контролировать координацию доступа через пользовательскую программу.
В пользовательской программе сервера (подстанции) реализованы следующие функции:
• Координация утилизации данных клиентом (запись синхронизации с подстанцией).
• Координация подачи данных клиенту (синхронизация чтения с подстанции).
• Установка системного времени для задания синхронизации времени.

FB Sync_Server (FB111). Обзор

FB Sync_Server (FB111) реагирует на изменения координационного байта и обеспечивает плавную синхронизацию с клиентом.
Для изменений и корректировок в пользовательской программе, пожалуйста, обратите внимание на главу 6.

Параметры FB Sync_Server (FB111)

Реакция на синхронизацию записи

Реакция на чтение синхронизации

Согласованность данных на сервере

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

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

Действия
Доступ в пользовательской программе контролируется «координационным байтом».

Типы данных ПЛК

Следующие типы данных ПЛК используются в пользовательской программе клиента (головной станции):
• «Order»
• «Client2Serv»
• «Serv2Client»
• «Any_struct»

Тип данных ПЛК «заказ»

На рисунке показана структура типа данных ПЛК «порядок». Тип данных ПЛК используется типом данных ПЛК Serv2Client, а также Client2Serv и сопоставляет задание синхронизации с сервером.

PUT и GET не могут получить доступ к оптимизированным блокам данных!

 

Тип данных ПЛК «Client2Serv»
Тип данных ПЛК «Client2Serv» содержит всю необходимую для клиента информацию о синхронизации записи с серверами.

В ЦПУ S7-1500 блок данных может быть сгенерирован непосредственно из типа данных ПЛК «Client2Serv» и затем соединен на входе «Orders» FB Sync_Client2Serv.

Тип данных ПЛК «Serv2Client»
Тип данных ПЛК «Client2Serv» содержит всю необходимую для клиента информацию о синхронизации чтения с серверами.

Типы данных ПЛК
S7 Связь через Ethernet Entry-ID: 40556214, V2.1, 08/2019 30
Copyright © Siemens AG 2019 Все права защищены. В ЦПУ S7-1500 блок данных может быть сгенерирован непосредственно из типа данных ПЛК «Serv2Client» и затем подключен к входу «Orders» FB Sync_Serv2Client.
В ЦПУ S7-300 тип данных ПЛК вставляется в блок данных и затем соединяется на входе «Orders» FB Sync_Serv2Client. Прямое соединение всей базы данных, как в процессоре S7-1500, невозможно для процессора S7-300.

Тип данных ПЛК «Any_struct»

Тип данных ПЛК «Any_struct» отображает структуру anypointer и используется в проекте как конструкция AT для ЛЮБЫХ переменных.
Это позволяет более удобно назначать или изменять любой указатель.

Различия в типах данных ПЛК с ЦПУ S7-300 в качестве клиента
1. S7-300 не использует тип данных CONN_PRG, но INT
2. В ЦПУ S7-300 тип данных ПЛК вставляется в блок данных и затем соединяется на входе «Orders» FB Sync_Client2Serv. Прямое соединение всей базы данных, как в процессоре S7-1500, невозможно для процессора S7-300.

 


25 Ноя

Siemens S7-1200 / 1500 (Ethernet: ISO через TCP / IP) Адресация

Тип памяти Диапазон Описание Читай пиши Тип данных я я 0,00 - 65535,7 Входная память R / W Немного IB 0 -...

20 Ноя

Коммуникационные возможности S7-1200. Соединение S7-1200 с OPC-сервером SIMATIC NET.

  Коммуникационные возможности SIMATIC S7-1200 Современный контроллер, должен уметь, не только обмениваться данными с подобными устройствами в сети, но и иметь возможность...