суббота, 27 февраля 2016 г.

Особенности коммуникации S7-1200 разных моделей с панелями оператора

Недавно я столкнулся с такой проблемой: на предприятии был установлен контроллер S7-1200 DC/DC/DC 214-1AG31-0XB0 и панель оператора KTP600 Basic Color PN. Контроллер вышел из строя. Но, поскольку периодически его можно было реанимировать (путём "разобрал-собрал"), мне удалось сделать Upload.

Сама программа была написана в TIA Portal V11 SP2, ею и была выгружена. Кстати, попытка выгрузить её через TIA Portal V12 (с помощью пустого проекта от TIA Portal V11, открытого в 12 версии без конвертации) успехов не принесла, несмотря на то, что данный метод везде описывается как универсальный.
TIA Portal V13 и вовсе не содержит никакого механизма для выгрузки программ, написанных в 11 версии. Ну, это в целом о подходе Siemens к вопросам совместимости оборудования и программного обеспечения.

Итак, неисправный контроллер 214-1AG31-0XB0 (снятый уже с производства) был заменён на 214-1AG40-0XB0, который, по идее, является его полноценной заменой, как утверждает Siemens. Каково было удивление, когда новый ПЛК, залитый через TIA Portal V13 SP1 (только эта версия на сегодняшний день поддерживает ПЛК 214-1AG40-0XB0 с версией прошивки 4.1), работать с панелью оператора отказался.

--------------------------------------------------------------------------------------------------------
Сначала экспериментальным путём было выяснено, что панель оператора KTP600 за время приобретения нового контроллера также вышла из строя. Для этого к ней был подключен имевшийся в наличии "дежурный" контроллер S7-1200 AC/DC/Relay 214-1BG31-0XB0 (ранее уже успешно подключавшийся к этой панели). Соединение с ним установить не удалось. Изменения параметров сетевого адаптера панели успехов не принесли. Что удивительно при этом, соединение между компьютером и KTP600 устанавливалось без проблем. Это позволило сделать BackUp (посредством Simatic ProSave). Связь с неисправным контроллером всё-таки можно было иногда установить, но где-то в одном случае из пяти, причём, чем больше времени проходило, тем меньше было таких случаев. Т.е. речь идёт о частичном и постепенном выходе из строя интегрированного сетевого адаптера панели оператора, который периодически работает с одними устройствами и совсем не работает с другими. Такие случаи описаны на форумах, где обсуждаются поломки сетевых карт. Поскольку печатная плата панели оператора многослойная, пробовать ремонтировать её не стали.
Однако, после замены панели оператора KTP600 и осуществления восстановления ПО из резервной копии на новую панель, проблема подключения контроллера 214-1AG40-0XB0 к панели осталась. При этом подключение "дежурного" контроллера старой модели 214-1BG31-0XB0 прошло успешно. Это означало, что поломка панели оператора была не единственной причиной того, что новые модели ПЛК не устанавливали с ней соединение.
--------------------------------------------------------------------------------------------------------

Попытка разобраться привела к беседе с техподдержкой Siemens +7 495 737-1737, где удалось получить ссылку вот на эту страницу.

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

1. Драйверы, работающие через команды передачи и приёма данных PUT/GET. Этот вариант используется драйвером "SIMATIC S7 300/400" в WinCC Flexible и тем же драйвером в WinCC (в TIA Portal). При этом WinCC Flexible иного варианта подключения к S7-1200 и не знает, поэтому проеты WInCC Flexible являются таким образом универсальными. Вариант с использованием команд PUT/GET использует также мультифункциональный китайский коммутатор для подключения S7-1200 к панелям Smart. Этот же вариант использовал я, когда подключал S7-200 Smart к S7-1200.
Такой вариант 100% всегда работает, и проблем с ним нет. Единственное неудобство в том заключается, что для использования команд PUT и GET необходимо знать адреса ячеек памяти, а это значит, что блоки данных, с которыми происходит работа, должны быть неоптимизированны. Для использования этого варианта для моделей с версией пошивки 4.х нужно обязательно установить разрешение на осуществление команд PUT/GET (поставить галочку Permit access with PUT/GET communication from remote partner (PLC, HMI, OPC, ...). В предыдущих моделях контроллеров S7-1200 данной настройки не было, команды GET/PUT были разрешены всегда.


2. Специальный драйвер "SIMATIC S7 1200" в составе WinCC в TIA Portal. А здесь и начинаются проблемы.


Эта таблица показывает, что драйвера S7-1200, содержащиеся в разных версиях WinCC в TIA Portal, имеют разную совместимость с разными прошивками контроллера. Буква "B" в этой таблице означает, что для соединения можно использовать только драйвер S7-300/400. Буква "A" означает, что соединяться можно и через драйвер S7-1200, и через драйвер S7-300/400.



Как видим, если у нас панель KTP600 (это первая строка - Basic Panels 1st generation) была запрограммирована в TIA Portal V11, то её соединить с контроллером с прошивкой 4.х можно только через драйвер S7-300/400, работающий через команды PUT/GET.
Естественно, постфактум поменять драйвер, зашитый в панель, возможности нет (если у вас, конечно, случайно нет под рукой проекта для панели оператора). Т.е. если программисты использовали TIA Portal V11 с драйвером S7-1200 для панели, то подключить панель с таким ПО к новым моделям контроллера уже нельзя. В таком случае остаётся только один вариант - покупать контроллер старой модели, снятый с поизводства в Германии, но производимый на фабриках Китая (aliexpress...).

Но и это еще не всё! В исходном проекте для TIA Portal, который нам всё же в итоге передали (причём, этот проект был уже в формате TIA Portal V13, т.е. мы его даже не конвертировали из V11) стояла еще старая модель контроллера (214-1AG31-0XB0). Я, эксперимента ради, сначала залил в панель оператора программу из этого проекта, не меняя модель ПЛК. Соединение ПЛК с панелью и в этом случае по-прежнему установить не удалось. А вот когда я поменял версию ПЛК на 214-1AG40-0XB0, тогда всё и заработало.

Это означает, что TIA Portal V13 записывает разные версии коммуникационных драйверов S7-1200 в панель оператора в зависимости от выбранной прошивки контроллера S7-1200. Об этом же свидетельствует вот это сообщение при изменении модели ПЛК:


Раньше при изменении модели контроллера S7-1200 или его прошивки таких сообщений не появлялось.

Соответственно, учитывая тот факт, что модель 214-1AG40-0XB0 поддерживается только версией TIA Portal 13 (а с прошивкой 4.1 - только 13 SP1), то версия драйвера S7-1200 в TIA Portal V12 чисто теоретически никак не может устанавливать связь с такими ПЛК. Значит, в представленной выше таблице совместимости есть ошибка, а вообще эта таблица должна  начинаться подобным образом (с указанием модели ПЛК в проекте):


Остается только пара вопросов:

1. Почему версия прошивки 1.0 не совместима с драйвером S7-1200 в TIA Portal V12? Т.е. в V11 всё нормально работало, а в V12 уже нет? Это выглядит странно. У меня на данный момент в V11 не установлен WinCC, поэтому подтвердить совместимость TIA Portal V11 и прошивку 1.0 я не могу, а вот несовместимость TIA Portal V12 и TIA Portal V13 с этой прошивкой подтверждается.

2. Если в TIA Portal V13 для правильной работы панели оператора чрезвычайно важно, какая версия контроллера и его прошивки выбрана, то для проектов, использующих один ПЛК S7-1200 всё, вроде бы, понятно:


А как быть с проектами, где несколько ПЛК S7-1200, или если панель соединяется с S7-1200, которых в проекте нет? Даже если добавить в проект все контроллеры S7-1200, то HMI Device Wizard в любом позволяет осуществить подключение только к одному контроллеру, остальные контроллеры добавляются вручную. Поэтому как правильно действовать в таком случае, пока не понятно.


При этом вариант с использованием драйвера S7-300/400 для подключения S7-1200 всегда остаётся. Данный вариант, учитывая сложившуюся ситуацию, можно назвать предпочтительным, поскольку он позволяет менять модели контроллеров S7-1200 с разными прошивками и при этом не волноваться насчёт их совместимости с уже установленными на предприятиях панелями операторов.

При соединении через драйвер S7-300/400 следует правильно устанавливать значение Expansion slot. По умолчанию почему-то стоит значение 2, нужно ставить 0.


Также для использования драйвера S7-300/400 следует не забывать убирать галочку с аттрибута Optimized block access в используемых на панели оператора DB и в настройках FB (для доступа к экземплярным DB):