вторник, 15 декабря 2015 г.

Как соединить S7-1200 с панелью SMART. Часть 2


Панели оператора Smart - это специальная производственная линейка панелей операторов Siemens, предназначенная для использования на азиатском рынке вместе с контроллерами той же линейки S7-200 Smart, а также устаревших и снятых с производства в Германии контроллеров S7-200.

Панели сами по себе очень достойные, всего доступны 6 моделей: 7-дюймовые Smart 700, Smart 700IE V2, Smart 700IE V3 и 10-дюймовые Smart 1000, Smart 1000IE V2 и Smart 1000IE V3.
Модели с постфиксом IE полноцветные (16 бит цветов), работают через интерфейсы RS485 (PPI, Modicon Modbus RTU) и Ethernet, имеют ограничение в 800 тэгов, могут содержать до 200 дискретных аварий. Максимальное количество экранов - 100. У моделей без постфикса IE возможности поскромнее. У моделей IE V3 также есть USB-порт для создания/загрузки backup'ов. Программируются панели через WinCC Flexible CHINA SP4 или WinCC Flexible Smart V3. Обратите внимание, что выходные файлы этих программ имеют разный формат, формально WinCC Flexible Smart V3 умеет преобразовывать файлы *.hmi от WinCC Flexible CHINA в свой формат, но на практике это не всегда работает.
WinCC Flexible CHINA 2008 SP4 + Update 2 - качаем тут.
WinCC Flexible Smart V3 - качаем тут (поддерживаются только панели Smart)
Инструкцию к WinCC Flexible - качаем тут.
How to connect S7-1200 to Smart line panel?
Как соединить S7-1200, используя дополнительный контроллер S7-200 Smart, вы можете из первой части статьи.

Итак, пока я писал коммуникационную программу для S7-200 Smart, оказалось, что всё это "мартышкин труд", а китайцы уже всё давно придумали. Благодаря китайским поисковикам я отыскал такие устройства (называются они мультифункциональные коммутаторы - multifunctional switches) на их рынке и разослал предложения об их продаже на Aliexpress. Сегодня уже несколько продавцов на этой площадке торгуют такими устройствами, например, Starhead Production, у которых я сей девайс и приобрёл.

Представляет собой данное устройство коммутатор TP Link совмещенное с коммуникационным устройством (виртуальным S7-200) в одном корпусе. Всего у коммутатора 5 портов, но к пятому порту ничего подключить нельзя (залит клеем) ибо на нём висит то самое коммуникационное устройство (еще одна плата припаянная проводами к пятому порту) . Метод настройки устройства - через веб-интерфейс (т.е. по сути перед нами подобие управляемого коммутатора). Устройство лишь меняет сообщение запроса от панели к контроллеру, т.е. коммуникационного S7-200 как такого нет, об этом свидетельствует тот факт, что, в случае отсутствия S7-1200, на панели отображаются решётки. При наличии коммуникационного S7-200 панель бы всё равно принимала какие-то значения, поскольку ячейки памяти коммуникационного процессора были бы ей доступны.



Итак, коммуникационное устройство позволяет одновременно подключать три контроллера S7-1200/S7-1500/S7-300/S7-400 к, как заявлено, трём Smart-панелям. Не очень понятно, почему панелей три, по идее панелей может быть сколько угодно. Поскольку коммутатор TP Link самый обычный, то его можно расширить за счёт подключения дополнительных коммутаторов. Все контроллеры работают через коммуникационные порты со своими IP-адресами - по одному адресу для каждого подключаемого контроллера. По умолчанию это адреса 192.168.1.10, ...11, и ...12, через которые можно обращаться к контроллерам с адресами 192.168.1.20, ...21, и ...22 соответственно.
К областям памяти I, Q и M обращение происходит обычным методом. Под областью памяти V понимается расшаренный в настройках для этих целей дата-блок (от 1 до 7).

Настройка производится посредством веб-интерфейса по адресу 192.168.1.222


Как видим, мы можем изменить MAC-адрес нашего виртуального контроллера S7-200 и его начальный IP 192.168.1.10, остальные два IP будут заданы относительно него. В отличие от IP-адресов виртуального контроллера S7-200, IP-адреса реальных контроллеров не обязательно должны быть взаимосвязаны и задаются каждый отдельно.

В настройках имеется один "косяк", который продавцы мне обещались исправить в будущих версиях прошивки) - расшаренный блок данных задаётся числами от 0 до 6 (на приведённом выше скриншоте - от 0 до 5, видимо, модели немного различаются). Но в S7-1200 нельзя создать блок данных DB0, поскольку их нумерация начинается не с 0, а с 1. Так вот оказалось, что заданный в настройках коммутатора DB0 - это на самом деле DB1, а заданный DB1 - это на самом деле DB2 и т.д. Т.е. номер смещён на 1.


Преимущества такого подключения перед использованием дополнительно контроллера очевидны даже несмотря на высокую стоимость коммутатора (12 тыс. руб по состоянию на конец 2015 года). К сожалению, дороговизна оборудования делает общую цену на использование Smart-панелей вместе с S7-1200 неконкурентноспособным для бюджетных объектов, где дешевле будет установить панели Weintek, для которых к тому же нет необходимости все отображаемые на панели данные запихивать в один дата-блок.
Но если выбор заключается в использовании Smart-панелей и панелей Siemens других моделей, то применение мультифункционального свитча экономически полностью оправдано. 

Кроме того, Smart-панели поддерживают протокол Modbus RTU и, теоретически, можно использовать плату расширения для S7-1200 за 60 евро, чтобы организовать такое подключения через RS485. Но есть и минусы в этой схеме. Существует проблема с последовательностью старшего и младшего слова данных для 32-битных чисел. Дело в том, что протокол Modbus формально оговаривает лишь передачу 16-битных данных, а передача данных размером 32 бита реализуется производителями оборудования самостоятельно. И так получилось, что последовательность младшего и старшего 16-битного слова данных каждый производитель выбирает по собственному желанию. Так что использование стандартных функций для Modbus Slave в TIA Portal не дает возможности нормально передать 32-битное число в панель оператора Siemens (не только Smart, а вообще в любую). Т.е., например, число 1.9, которое в hex-формате представляет собой 16#3FF3_3333, будет считано панелью оператора как 16#3333_3FF3, ну, и соответственно, передача с панели на ПЛК приведет к такой же перестановке слов в вещественном 4-байтном числе. Менять это руками - нормальный вариант для небольших задач, но для крупных проектов всё это приведет к большим трудозатратам, особенно для тэгов, которые могут.быть изменены как на стороне ПЛК, так и оператором с панели. 
Можно пойти по пути многих производителей, которые вообще не используют 32-битные числа для Modbus, а используют целые числа, последняя цифра которой - это десятичная часть. В принципе, панели оператора поддерживают автоматическое смещение десятичного знака, вопрос только в том, будет ли достаточно диапазона такого числа и его точности для конкретной задачи и будет ли удобно производить вычисления с таким числом. 
Кроме того, неудобство представляет представление адресов в виде регистров Modbus в таблице тэгов (DB1.DBD12 гораздо удобнее выглядит как VD12 в представлении для S7-200, чем в виде регистра номер 4x40007 в представлении для Modbus).

По первому ощущению устройство работает нормально, глюков пока выявлено не было. Проверено на объекте с одним S7-1200 и двумя панелями Smart, опрос производился почти по 700 тегам. Пока единственным недостатком показалась его цена и реализация устройства в корпусе бытового коммутатора TP Link, более логичным было бы поместить устройство в корпус для крепления на DIN-рейке (опять-таки, учитывая цену этого устройства, сравнимую с ценой промышленного коммутатора).

суббота, 12 декабря 2015 г.

GIPENG или второе рождение для S7-200

Когда писалась эта статья, многие нюансы работы контроллеров Gipeng мне еще не были известны. Поэтому помимо прочтения текущей статьи обязательно ознакомьтесь с информацией в этих статьях:
Китайские поделки на тему S7-200
Проблемы совместимости S7-200 и китайских PLC: глюк с оператором JMP
Проблемы совместимости S7-200 и китайских PLC: глюк с оператором FOR

Вот уже 2 года как компания Siemens официально сняла с производства контроллеры линейки S7-200. Им на замену пришли новые S7-1200, имеющие в арсенале удобный язык программирования SCL (подобие языка высокого уровня Паскаль), меньшие габариты на DIN-рейке (примерно на треть), большее количество подключаемых модулей (3 коммуникационных + 8 обычных, итого 11, - против 7 у S7-200). В качестве штатного интерфейса используется Ethernet, что очень удобно, учитывая, что при желании можно не тратиться на промышленноекоммуникационное оборудование, а обойтись дешёвыми бытовыми коммутаторами, роутерами и т.п. (разницы по факту особой и нет).

Несмотря на явные преимущества контроллеров S7-1200 есть у них существенный недостаток - большая стоимость аналоговых модулей расширения. По сути 1 аналоговый модуль стоит примерно как контроллер 1214C, что делает невыгодным реализацию многих проектов на таком оборудовании.
Для азиатского рынка Siemens выпускает линейку S7-200 Smart на замену S7-200, но это и того хуже - модули для Smart контроллеров имеют максимум 4 аналоговых входа и 2 аналоговых выхода (см. табл.), а стоимость этих модулей также на уровне модулей для S7-1200.

Итак для задач, где требуется подключение большого количества аналоговых приборов всё ещё вполне возможно использовать S7-200. Кроме того, не стоит забывать о панелях оператора Smart - они напрямую поддерживают только S7-200 и S7-200 Smart, что позволяет в комплекте с S7-200 использовть недорогую сименовскую панель вместо разного рода китайского барахла. И если оригинального Siemens S7-200 уже нет в продаже, то его "суррогатами" завален весь Aliexpress. В общем и целом это всё те же S7-200, только менее качественной сборки, в остальном же их использование мало отличается от оригинала. Я бы обратил внимание только на три момента:

1. В продаже помимо контроллеров "а-ля Siemens" есть и другие, которые просто выпускаются в сименовских корпусах. Важно не путать их с S7-200. Особенно хотелось бы обратить внимание на контроллеры под маркой FONIN. У них и номера и контроллеры дублируют работу S7-200, а для программирования используется Step 7 Micro/WIN. Но это не S7-200, их модули и CPU с оригинальными S7-200 и китайскими подделками S7-200 несовместимы.

2. Существуют контроллеры частично совместимые с Simatic S7-200, например, от компании Co-Trust. Их контроллеры имеют свои номера по каталогу, отличающиеся от Siemens'а (см. тут), контроллеры имеют своё ПО а-ля "Step7 Micro/WIN" (MagicWorks PLC осн. ссылка, алт. ссылка V2.02), но модули и ПЛК совместимы с S7-200. Есть у них кстати, и панели оператора (см. программу MagicWorks HMI осн. ссылка, алт. ссылка V1.43). Этим интересным контроллерам будет посвещена отдельная статья.

3. Многие контроллеры имеют заказные номера, оканчивающиеся не на -0XB0, а на -0XB8. Такие номера раньше имели контроллеры S7-200CN, выпущенные на китайских заводах Siemens. Предназначились эти контроллеры только для азиатского рынка, поэтому их нельзя было программировать в обычной Step 7 Micro/WIN (чтоб никто не дай бог не купил дешёвых китайских ПЛК и не стал их устанавливать в богатой Европе, где всё можно продавать в тридорога!). Но со временем это всё перестало быть актуальным и стало достаточно поменять язык интерфейса в MicroWIN на китайский, чтобы можно было подключаться к S7-200CN. В любом случае, смена языка может доставить какие-то неприятности тем, кто будет подключаться к таким ПЛК (особенно, если вы их хотите перепродать кому-то, кто будет их программировать), поэтому на такое отличие S7-200CN от S7-200 следует обратить внимание.

4. Помимо разных китайских фабрик, выпускающих просто клоны S7-200, существует компания GIPENG, выпускающая свои модернизированные версии ПЛК. О них я и хотел рассказать подробнее.

ETHERNET БОЛЬШЕ НЕ ПРОБЛЕМА

Все помнят, что до недавнего времени Siemens крайне неохотно внедрял Profinet - протокол Siemens для промышленных Ethernet. Ну, оно и понятно. В отличие от интерфейса RS485, который в бытовой сфере мало используется, интерфейс Ethernet используется всеми - локальные сети, Internet, IP-видеонаблюдение... везде Ethernet. А какие возможности по передаче данных беспроводным путём или через тот же Internet. Любое бытовое сетевое оборудование есть в продаже. Оно ничем не отличается от промышленного на физическом уровне, сам так называемый "промышленный Ethernet" - это лишь более строгий контроль за качеством и приспособленность оборудования к работе в промышленных условиях (вибрации, пыль и т.д.). Ну и способ монтажа на DIN-рейки, конечно. Иных отличий нет.  Естественно, всё это можно сделать и без оборудования Siemens. Не удивительно, что до появления контроллеров S7-1200 и S7-200 Smart, заменивших S7-200, обзавестись Ethernet'ом на последнем можно было лишь приобретя специальный модуль, стоивший больше самого контроллера. Это в отличие от S7-300 и S7-400, где Ethernet был установлены на некоторых моделях изначально (ну, и цена соответствующая). Но, видимо, конкуренция даёт о себе знать, и, как ответ наступающим на пятки китайцам, Siemens таки перешёл на Ethernet: отныне он является штатным интерфейсом для всех S7-1200, S7-1500 (замена для S7-300) и S7-200 Smart.

Ну, а что S7-200? Итак, теперь есть возможность приобрести китайский S7-200 со встроенным Ethernet! И как меня заверили китайцы (сам не проверял), даже с учётом встроенного модуля CP243-1, к таким контроллерам можно подключить целых 7 модулей расширения (т.е. встроенный модуль за полноценный модуль не считается). Цена его мало отличается от обычного S7-200. Очень полезное внедрение! Такие контроллеры у них имеют аббревиатуру -IE в конце названия. (CPU 226-IE, например).



ПОДКЛЮЧЕНИЕ RS485 НА CPU224 ЧЕРЕЗ ОБЫЧНЫЕ КЛЕММЫ

Сразу скажу, что стандартная модель CPU224 у GIPENG имеется и называется GF-CPU224R-24. Но вряд ли вы её захотите покупать после того, что прочитаете дальше.

Итак, как не вспомнить любимую сименовскую забаву втюхивать дорогущие штекеры DB9 для подключения по RS-485. Забавно в этом всём то, что они всегда делали их универсальными, с переключателями между второй линией (для подключения следующего устройства в сети) и компенсационным резистором (терминатором). Всё так сложно и запутанно, притом, что большинство покупателей изначально знает, сколько будет промежуточных штекеров, а сколько терминальных, но зачем-то вынуждены покупать универсальные с переключателями, большинство из которых никогда переключать не станут.

Однако, GIPENG пошёл дальше этих разговоров. Он предложил нечто новое - это контроллер CPU224 в корпусе CPU224XP. Гениальное решение! Во-первых, у CPU224 всего один порт RS485. Здесь их МИНИМУМ два как и на CPU224XP. Мы знаем, что у CPU224XP имеются слева вверху клеммы для 2 аналоговых входов и 1 выхода (в этом его второе отличие от стандартного CPU224), то у GF-CPU224R+-24 эти клеммы используются для подключения RS485 параллельно с портами внизу, реализованными в виде разъёмов. По факту штекеры вообще больше не нужны.



RS232 И ТРЕТИЙ ПОРТ RS485 на CPU224! 

И если кажется, что предыдущего нововведения касательно RS485 мало, то вот вам ещё одна модель - GF-CPU224RH-24. Тут всё просто и вытекает из закономерного вопроса: если можно порты RS485 разместить параллельно на верхних клеммах, то почему бы верхние клеммы использовать не для параллельных разъёмов, а для дополнительных?
Короче говоря, на этом контроллере CPU224, также выпускаемом в корпусе CPU224XP, как и предыдущий, верхние клеммы от аналоговых входов/выходов используются для подключения дополнительного третьего порта RS485, причём в двух реализациях: непосредственно RS485 через клеммы и через встроенный преобразователь RS485 в RS232. Подключаем контроллер напрямую к RS232 COM-порт компьютера, запускаем WinCC Flexible Runtmine и забываем про все эти кабели или дополнительные платы.




Аналоговый модуль на 8 подключений со всеми входами 4..20 mA

В своё время фирма, в которой я работал, напарилась с аналоговым модулем для S7-200 Siemens на 8 аналоговых входов 6ES7 231-0HF22-0XA0. Дело в том, что русская документация Siemens содержала ошибку, а конкретно там был упущен чрезвычайно важный момент про то, что такие модули не поддерживают входные сигналы 4..20 мА для всех восьми входов, а лишь на первые два, остальные же шесть были в состоянии измерять только напряжение 0..10 В.

GIPENG выпустил модуль EM231-AI8C, поддерживающий измерение сигнала силы тока 4..20 ма на всех 8-ми каналах. Это не то, чтобы большое достижение, учитывая тот факт, что любой канал изменения 0..10 В превращается в 0..20 мА путём простой установки сопротивления 500 Ом между клеммами, тут скорее нюанс в ошибке сименовской русской документации, из-за чего можно не сразу понять как работает оригинальный модуль.



CPU226XP - CPU226 с аналоговыми входами и выходом как на CPU224XP

Ну, скажу сразу, на Aliexpress этого не продаётся. На мой запрос, продавцы ответили, что поставят такие контроллеры только при заказе не менее 50 штук. Но в теории они существуют, т.е. это контроллеры CPU224XP, но с бОльшим количеством штатных дискретных входов/выходов как на CPU226 или наоборот CPU226 со встроенными двумы аналоговыми входами и одним аналоговым выходом как у CPU224XP (кому как нравится).

Лично я не считаю данную разработку очень полезной, поскольку, на мой взгляд, полезной была бы разработка с двумя аналоговыми входами и двумя (а не одним) аналоговым выходом. Именно такие минимальные потребности чаще возникают при реализации задач, где используются аналоговые выходы. Один же выход мало что меняет, я думаю, это и является причиной того, что данный контроллер мало востребован у GIPENG и его производство приостановлено.