Размер шрифта:
Способ связать разные компьютеры в одну сеть
Play

Способ связать разные компьютеры в одну сеть

Существует несколько способов связать компьютеры в одну сеть. Например, VPN. В указанном случае неудобно то, что придётся перелопатить прошивку промышленного компьютера, или вмешаться в логику работы АРМа. В первом случае — перепрошивать совсем не хочется, да и нет необходимых средств/навыков, затраты на изучение платформы нерационально велики. Вмешательство в логику работы АРМа(SCADA InTuch) — также приведёт к потери гарантии. Ко всему прочему, довольно важно обеспечивать работу АРМа в режиме реального времени, а это гарантия мгновенной реакции системы на управляющее воздействие. Ни много, ни мало, а кому-то это спасёт жизнь.

Что ещё у нас есть? Ну например, SSH. Не подходит по аналогичным причинам. Хотя уровень требуемой безопасности вполне соответствует, но сложность переделок загоняет в тупик.

Приемлемое решение задачи

Итак, во внутренности работающих систем не лезем. Система обеспечивает вполне доступные средства обмена информацией в простых формах простыми средствами. Как правило, это текст с временными метками, указанием на уровень предупреждающих сообщений, отчёт о исполнении команд.

Ничто не мешает брать эти данные с машины под управлением АРМа, и на отдельной машине дальше с ними работать. Так как машина для связи является отдельной — можно не опасаться за подвисания, сбои и падения в самый неудобный момент времени. Впрочем, такое поведение будет говорить о плохой постановке вопроса, и как следствие — плохом решении. Ко всему прочему, машина может не находиться физически на опасном промышленном объекте (ОПО, обязателен к регистрации в органах Ростехнадзора), зачастую на объекте не предусмотрено место под дополнительное оборудование, а если предусмотрено, то потребуется провести проектные мероприятия, лицензирование, перерегистрацию и т. д. В конечном итоге, это тоже дорого и долго. А каналы связи, как правило, закладываются заблаговременно, и являются штатными средствами.

Сам способ связи компьютеров, очевидно, не должен базироваться на DNS, TCP\IP, UDP непосредственно.

Выбор технологии

Вполне понятно, что создавать средства связи с чистого листа крайне накладно. Опираться на низкоуровневые средства также невыгодно из-за жёсткой привязки. Очевидно это будет высокоуровневый протокол, с опорой на уже существующие наработки.

Особенности любой SCADA-системы в том, что объём передаваемых данных совсем не велик, но в тоже время, должна быть оперативность. Понятно, что при попытки связать SCADA на PC и мобильный телефон (с Java), необходимо обеспечить оперативность доставки информации. Т. о. из указанных высокоуровневых протоколов исключаются эл. почта, сильно ограничен ftp и др. средства рассчитанные на длительные промежутки времени.

Наиболее подходящим типом связи будет являться протокол, основанный на передаче коротких сообщений. В качестве основы, теоретически, можно рассматривать какие угодно интернет-пейджеры: ICQ, mail.ru, MSN, jabber и ещё с десяток других. Практически, из всего разнообразия, остаётся всего пару штук. Так например, ICQ — закрытый протокол, и в любой момент может измениться. Ко всему прочему, если копирайтер вычислит, что его протокол используется «не по назначению», — возникнут проблемы более чем финансового характера. По тем же причинам отпадают все коммерческие или закрытые протоколы. Малораспространённые, протоколы либо не имеют нормальной поддержки, либо не обеспечивают приемлемое качество связи. В конечном итоге, благодаря открытости, наличию массы библиотек, транспортов и расширений, вот он наш победитель — jabber.

Эффект рычага

Технически, можно устроить чехарду с манипуляцией окнами — в одном месте данные прочитал из файла/сокета, послал окну сообщение всплыть на передний план, эмулировать нажатие клавиш, для вставки нужного сообщения, и далее эмулировать нажатие кнопки «отправить», со сворачиванием окна. Этот инверсно-ректальный метод вполне имеет право на существование. Именно так, уже более трёх лет функционирует АРМ диспетчера вагонного депо, из-за того, что какой-то умник решил, что принтер обязательно подключен к com-порту, и подсистема печати де-факто и де-юро в Windows отсутствует. (были перепробованы практически все способы решения проблемы, в т. ч. с виртуальными DOS-принтерами).

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

Jabber обладает как большой группой пользователей, так и развитыми средствами взаимодействия. Децентрализованная сеть, возможность на вполне законных основаниях поднять свой сервер, и связать с другими — приятно завершает перспективу. Впрочем, серверов в интернете более чем достаточно, и необходимость в собственном сервере возникает более чем редко. Ещё раз следует повторить: передавать большие объёмы данных возможно, но не следует злоупотреблять добротой тех, кто содержит сервера.

Средства производства

В качестве языка программирования выбран Python. Вполне легковесный, «батарейки идут в комплекте», не ограничен лицензированием, есть подо все платформы, переносим. Этого вполне достаточно для обоснования выбора.

В комплект к Python всё-таки придётся добавить одну «батарейку» — xmpppy. Это дополнительная библиотека, специально разработанная для работы по протоколу XMPP/jabber. Она не развивается официально, но сообщество чуть ли не ежедневно добавляет что-либо в неё (официальных релизов уже не было давно). На просторах рунета лежит несколько примеров её использования, они легко ищутся, ссылки будут приведены в случае необходимости). Итак, код с комментариями, достаточный для обеспечения связи компьютер-компьютер/мобильник/смартфон/тачпад. Подразумевается, что информация приходит на jabber-клиент.

Приведённый код достаточно прокомментирован, чтобы решить в дальнейшем 99,5% задач. В промышленных целях крайней не рекомендуется использовать операционные системы семейства Windows. Это не очередной виток холивар, это печальный опыт применения в промышленности. ко всему прочему, возможность связки внешнего оборудования и программной начинки PC — сильно ограничено, по сравнению с конкурентами. При сильном желании и избыточном количестве денег и эта проблема может быть решена, но если «брюки выглядят одинаково, зачем платить больше»?

📎📎📎📎📎📎📎📎📎📎