1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Резервирование системы визуализации с помощью UNO Server

Новости АСУТП, анонсы, а также отчёты о выполненных работах
Ответить
Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 14:05
Имя: Миних Владимир Анатольевич
Страна: Россия
город/регион: Москва

Резервирование системы визуализации с помощью UNO Server

Сообщение minikh »

Изображение

Недавно один заказчик поставил нам такую задачу:
для небольшого производства, которое управляется ПЛК Siemens Simatic S7-400, необходимо реализовать резервирование системы визуализации. Обычное решение в таком случае – это поставить панель управления и по резервному каналу связи подключить к ПЛК:
Изображение
Рисунок 1. Классическая схема с панелями оператора.

Только вот ценник для такого решения получается довольно высокий: 2 панели 3000 евро + модуль Ethernet 2000 евро, да еще разработка софта. Допустим можно взять китайские панели, с ними, правда, могут возникнуть проблемы, но зато можно немного сэкономить.

И тут мы думаем, а для чего же мы писали наш UNO Server http://vmsystems.ru/unoserver.shtml? Ведь его можно подключить к контроллеру, и всю информацию выводить на планшет с Android или iOS? Вот как будет выглядеть такая система:
Изображение
Рисунок 2. Схема с планшетами вместо панелей оператора.

Так как имеется компьютер с WinCC 6.0, то можно будет сервером забирать с него теги и оправлять на планшеты с android/iOS по wifi.
Считаем: 2 планшета ~ 30000 руб. + wifi роутер 5000 руб. максимум.
Есть правда проблема, если не работает WinCC, то нет связи. Резервирование не получается. Но как оказалось у заказчика есть второй компьютер.

Изображение
Рисунок 3. Схема с двумя компьютерами.

Уже получается надежнее, но на полноценное резервирование не тянет. Попробуем организовать еще один канал связи с контроллером минуя WinCC:

Изображение
Рисунок 4. Схема с дополнительным каналом связи Ethernet.

У ПЛК имеется RS-485. Можно на нем поднять modbus и через преобразователь RS485 – Ethernet MOXA подключить к компьютеру. Сервер будет забирать информацию напрямую из ПЛК. Это прибавит к ценнику еще 15000 руб., а скорее 30000 (так как надо еще резерв заложить), и к тому же в цепочке все еще присутствуют компьютеры. Попытаемся еще больше упростить схему, выкинув и их.

Изображение
Рисунок 5. Схема с сервером внутри Android приложения.

Тут уже сервер переезжает в планшет. В случае Android планшета это не проблема, мы уже пробовали его там запускать. Java все-таки. На персональном компьютере сервер можно оставить, как дополнительный канал связи.

Если с modbus все уже отработано, то связь с WinCC необходимо было протестировать. В интернете нашлась интересная библиотека ODC_RW_Tags.dll http://wincc-specialist.ru/Samples.html. Эта библиотека позволяет получить доступ к тегам WinCC. Ну что, вперед.

Быстро строим прототип. Подключаем dll к Java через библиотеку JNA. Теги Real и Integer получилось прочитать сразу и даже записать в них значения. Но самая главная задача была передавать от контроллера текстовую информацию с рецептурами. Английские буквы тоже прочитались без проблем, а вот вместо русских были ромбики.

Изображение
Рисунок 6. Вместо слова «Привет» видим ромбики.

Оказывается в WinCC используется кодировка Cp1251, а в Java UTF-8. Стало немного грустно. После нескольких часов разборок с кодировками увидел в отладчике такую строчку

Изображение
Рисунок 7. Строка с указанием кодировки UTF-8.

Настроение сразу повысилось! Скачиваем исходные коды JNA и в классе Native.java находим такую строчку:
public static final String DEFAULT_ENCODING = "utf8";
меняем ее на такую:
public static final String DEFAULT_ENCODING = "cp1251";
Profit!!! Теперь можем наблюдать фразу «Привет World»

Изображение
Рисунок 8. Теперь видим «Привет World».

Звоним заказчику, и рассказываем решение. А он говорит: Мы будем менять компьютеры и на них будет Windows 7 и WinCC 7.0. Для WinCC 7.0 пришлось найти новую версию библиотеки ODC_RW_Tags.dll и установить 32 битную версию JRE.

После этого вставили данный прототип в наш UNO Server. Осталось сделать шифрование, авторизацию пользователей и доделать интерфейс для android.

Изображение
Рисунок 9. Пример интерфейса Android.

Пример использования библиотеки ODC_RW_Tags.dll и модифицированный JNA: WinCCTagLibrary https://github.com/minikh/WinCCTagLibrary
Библиотека должна находиться в system32.

Текст оригинальной статьи http://vmsystems.ru/unoserver-wincc.shtml

Всем спасибо за внимание! Если есть критика или пожелания - пишите, будем рады обсудить.
Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 13:45
Имя: :.О.N.Ф
Страна: Россия
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение Exactamente »

А что не так с безопасностью? Вайфай?
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 14:05
Имя: Миних Владимир Анатольевич
Страна: Россия
город/регион: Москва

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение minikh »

Шифрование будет между сервером и планшетом.

bdeas
здесь недавно
здесь недавно
Сообщения: 48
Зарегистрирован: 24 ноя 2012, 19:43
Имя: Толмачев Андрей Александрович
Страна: Германия

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение bdeas »

Вот сайт нашего российского партнера. По ссылке - система визуализации.http://dmdevelopment.ru/index.php/projects
Решение интересное. Внедрения в основом в Европе.

thekekc
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 21 окт 2014, 10:34
Имя: Меркурьев В. В.

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение thekekc »

BigDog писал(а):
Вайфай?
Не сам вайфай. Шифрование. На стороне ПЛК?
Думаю шифрование это вопрос, конечно, актуальный, но не самый важный, потому что даже у таких мэтров как Wondervare между клиентом и сервером (IAS) по сети гоняются незашифрованные данные. И опять же это сеть предприятия, которая должна быть отделена от всего мира, и шифрование имеет смысл только в случае взлома пароля WiFi, и только в случае если этот WiFi можно поймать за пределами предприятия.
Но какие тут есть варианты:
1) Использовать шифрование между сервером и клиентом (между компьютером и планшетом).
2) Не использовать WiFi, воткнуть в OTG-host сетевуху и забить на шифрование.
3) И как Вы написали, шифровать данные одним из алгоритмов на стороне ПЛК и потом расшифровывать на планшете. Но это повлияет на скорость передачи, и скорее всего увеличит цикл контроллера.
Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 13:45
Имя: :.О.N.Ф
Страна: Россия
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение Exactamente »

Почему вопрос безопасности не возникает касательно привычных промышленных протоколов, в которых также нет шифрования?
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17471
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 749 раз
Поблагодарили: 1277 раз

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение Jackson »

Exactamente писал(а):Почему вопрос безопасности не возникает касательно привычных промышленных протоколов, в которых также нет шифрования?
На этот вопрос уже отвечали (первый раз - лет эдак пять назад), например тут:
TEB писал(а):Кхм, кто-нибудь слышал о массовой атаке хакеров и взлом интерфейса RS-485 с протоколом скорее всего ModBUS, о котором мы тут говорим? :)
Такие интерфейсы эффективнее взламывать при помощи топора и молотка.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 13:45
Имя: :.О.N.Ф
Страна: Россия
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение Exactamente »

То есть проблема всё-таки в вайфае)
На самом деле, хакеры могут атаковать тот же вай-фай, и если им в том повезёт, взломать* скорее всего тот же модбас ТСР. Вы же не хотите сказать, что ни разу в проектах не внедряли беспроводные сети?

*Взломать = чудом узнать какое оборудование используется и раздобыть его карту регистров. Это не всегда тривиальная задача, даже если знаем, что за оборудование)
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».

Бондарев Михаил
почётный участник форума
почётный участник форума
Сообщения: 981
Зарегистрирован: 25 июл 2008, 23:23
Имя: Бондарев Михаил Владимирович
Страна: Россия
город/регион: Магнитогорск
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение Бондарев Михаил »

Потому и спросил. Я не знаю чем парировать их аргументы про шифрование модбаса и других, закрытых внутренних протоколов
WPA ?
Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 13:45
Имя: :.О.N.Ф
Страна: Россия
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение Exactamente »

Запароленный вайфай, фильтрация по МАС-адресам, отдельный vlan до сервера, ограниченные маршруты, порты и файрвол на рутерах, vpn между точкой доступа/сервером и беспроводным устройством? Как говаривал Будда, абсолютную защиту от проникновения обеспечить невозможно, нужно только сделать взлом невыгодным по времени и усилиям.
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 14:05
Имя: Миних Владимир Анатольевич
Страна: Россия
город/регион: Москва

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение minikh »

В нашей задаче заказчик хочет только получать новый рецепт на планшет/телефон и дальше использовать эту информацию как напоминания. По сути это будет система оповещений. Управления с планшета не планируется пока.. Но это пока. Аппетит, как известно, приходит во время еды. Так что про шифрование в любом случае реализовывать будем.

Бондарев Михаил
почётный участник форума
почётный участник форума
Сообщения: 981
Зарегистрирован: 25 июл 2008, 23:23
Имя: Бондарев Михаил Владимирович
Страна: Россия
город/регион: Магнитогорск
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение Бондарев Михаил »

О нет, гугль перстрит событиями о его взломах,
Да, я тоже видел, но там речь идет о хоум-системах и взломщик в половине случаев не знает о существовании альтернативных способов защиты, а во второй половине случаев использует лайв-СД с набором утилит от кулхацкера.
Решения с использование выделенного сервера авторизации, насколько я знаю очень устойчивы.
Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 14:05
Имя: Миних Владимир Анатольевич
Страна: Россия
город/регион: Москва

Re: Резервирование системы визуализации с помощью UNO Server

Сообщение minikh »

Кстати. В продолжении данной статьи. Переделали сервер, теперь он работает на Spring Framework. Вместо сокетов используем REST сервисы. Авторизация. И еще, теперь мы можем забирать из системы 1С заказы на производство и передавать их в планшет, а далее в контроллер.
Вместо ODC_RW_Tags.dll мы написали свою на Java используя WinCC ODK.
Получилась такая а-ля MES система: 1С Предприятие + наш сервер + Simatic S7.
Ответить

Вернуться в «Новости и отчётность»