4.1.1.2.5.9. Клиент Siemens S7

 
 
Модуль Siemens S7 Client – коммуникационный модуль, предназначенный для обмена данными между Astra.Server и программируемым контроллером Siemens S7 PLC (ПЛК) по протоколу S7.
 
Функции модуля Siemens S7 Client:
сбор данных - получение значений переменных с ПЛК и сохранение полученных значений в сигналы Astra.Server;
подача команд управления - отправка значений сигналов Astra.Server в ПЛК.
 

Информация о ПЛК

 
ПЛК имеет один или два канала связи (основной и резервный), по которым устанавливается подключение. Для подключения к ПЛК используются параметры:
IP-адрес;
номер стойки (Rack number);
номер слота (Slot number).
 
Переменные в ПЛК располагаются в областях данных (Areas):
Область DB (Data Blocks). Областей DB в ПЛК множество. Каждая из областей имеет свой номер - адрес области данных (AreaAddress).
Область MB (Merkers);
Область EB (Process Inputs);
Область AB (Process Outputs);
Область TM (Timers);
Область CT (Counters).
 
Каждая область данных содержит множество участков памяти размером 1 байт. Каждый участок памяти имеет свой адрес - смещение в области данных ПЛК (ValueAddress).
 
Для чтения или записи значения переменной ПЛК необходима информация о переменной:
область данных, в которой располагается переменная;
адрес области данных (для переменных Области DB);
смещение относительно начала области данных;
тип переменной.
 

Обмен данными с ПЛК

 
Обмен данными между модулем Siemens S7 Client и ПЛК основан на архитектуре Клиент - Сервер. Модуль Siemens S7 Client является клиентом, а ПЛК - сервером. Модуль Siemens S7 Client может обмениваться данными одновременно с несколькими ПЛК, в том числе и резервируемыми ПЛК.
 
 
Обмен данными выполняется по сети Ethernet (протокол TCP) в режиме запрос-ответ. Инициатором запроса является модуль Siemens S7 Client. Самостоятельно ПЛК данные не передаёт.
 
Запросы и ответы представляют собой кадры данных. Для модуля Siemens S7 Client запрос, отправляемый в ПЛК, является исходящим кадром, а ответ, полученный от ПЛК – входящим кадром.
 
Модуль Siemens S7 Client при обмене данными с ПЛК:
получает значения переменных ПЛК и записывает полученные данные в сигналы Astra.Server;
отправляет значения сигналов Astra.Server в ПЛК.
 
При этом сигналы Astra.Server должны иметь типы, соответствующие типам переменных ПЛК. Соответствие типов данных ПЛК и типов данных Astra.Server приведено в приложении.
 
Сигналы, в которые записываются полученные значения переменных ПЛК, называются входящими. Сигналы, значения которых отправляются в переменные ПЛК, называются исходящими.
 
 

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

 
Модуль Siemens S7 Client получает значения переменных путём опроса ПЛК. Опрос может выполняться:
периодически через заданный промежуток времени;
по команде путем изменения значения служебного сигнала.
 
Способ выполнения опроса задаётся в настройках категории данных, к которой относится входящий сигнал.
 
Категория данных - это группа сигналов, значения которых обновляются с одинаковой частотой. Категории данных позволяют запрашивать значения сигналов с частотой их обновления периодически или только по запросу.
 
Порядок получения значений переменных ПЛК:
 
1. Модуль Siemens S7 Client формирует запрос на чтение, содержащий данные запрашиваемых переменных: область данных, адрес области данных (для Области DB), смещение в области данных ПЛК, количество байт в зависимости от типа соответствующего сигнала в Astra.Server.
 
2. Сформированный запрос на чтение отправляется в ПЛК в виде исходящего кадра.
 
3. Проверяется ответ, полученный от ПЛК: если при обмене данными произошла ошибка, то в журнал приложений и журнал работы модуля запишутся сообщения с расшифровкой текста ошибки. Если ошибок нет, то ответ обрабатывается далее.
 
4. Из полученного входящего кадра извлекается значение переменной.
 
5. В сигнал Astra.Server записывается полученное значение переменной, а значение качества и метки времени модуль Siemens S7 Client устанавливает самостоятельно.
 

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

 
Порядок отправки значений сигналов в ПЛК:
1. При изменении значения исходящего сигнала Astra.Server, модуль Siemens S7 Client формирует запрос на запись значения в ПЛК, содержащий данные записываемой переменной - область данных, адрес области данных (для Области DB), смещение в области данных ПЛК, а также значение сигнала, преобразованное в массив байт. Качество и метка времени не передаются.
 
2. Сформированный запрос на запись отправляется в ПЛК в виде исходящего кадра.
 
3. Проверяется ответ, полученный от ПЛК: если при обмене данными произошла ошибка, то в журнал приложений и журнал работы модуля запишутся сообщения с расшифровкой текста ошибки. Если ошибок нет - реакции модуля не последует.
 

Качество и метка времени

 
ПЛК предоставляет и принимает только значение переменной. Качество и метка времени при обмене данными не передаются.
 
Модуль Siemens S7 Client самостоятельно устанавливает метку времени и качество полученным от ПЛК значениям. В метку времени устанавливается время приёма данных, а качество - GOOD (192).
 
Во время отсутствии связи с источниками данных входящим сигналам устанавливается качество QUALITY_COMM_FAILURE (24).
 

Выбор ПЛК при обмене данными с резервируемыми ПЛК

 
При обмене данными с резервируемыми ПЛК модуль Siemens S7 Client выбирает ПЛК для установки соединения в следующем порядке:
1. По умолчанию для обмена данными используется основной ПЛК и его основной канал связи.
 
2. Если по основному каналу не удалось установить соединение, то происходит переключение на резервный канал (при его наличии) основного ПЛК.
 
3. Если в процессе обмена данными удалось восстановить соединение по основному каналу связи, то обмен данными будет продолжен по основному каналу.
 
4. Если ни по одному из каналов основного ПЛК не удалось установить соединение, то происходит переключение на резервный ПЛК. Выбор канала связи резервного ПЛК выполняется аналогично выбору канала связи основного ПЛК.
 
5. Если в процессе обмена данными удалось восстановить соединение с основным ПЛК по одному из его каналов связи, то обмен данными будет продолжен с основным ПЛК.
 

Работа модуля в резерве

 
В режиме РЕЗЕРВ модуль Siemens S7 Client не отправляет данные в ПЛК, но может вести опрос источников, поддерживать соединение с ПЛК не опрашивая его, либо разрывать соединение с ПЛК. Работа модуля в РЕЗЕРВЕ настраивается в параметрах модуля.