На одном складе работа была организована так, что сотрудники с навыками работы на ПК все время пребывали в режиме "аврал". При отгрузке заказов толпа комплектовщиков стояла в очереди за сверкой и сканированием штрих-кодов. Естественно, поломка одного из двух операторских компьютеров превращала весь процесс в сплошные мучения для самих операторов и радость для остальных (о, чайку можно попить!).
В статье расскажу, как мы испортили людям отдых с помощью бесшовного Wi-Fi.
Для разгрузки операторов установили несколько стационарных терминалов, с которыми смогут справится даже не владеющие магией 1С сотрудники. Но склад еще регулярно навещали ревизоры с беспроводными терминалами сбора данных. Их беда была в том, что приходилось ловить беспроводную сеть лишь в одном складском углу… да-да, именно там, где народу и так было с избытком. В общем, решили заодно опутать весь склад сетями бесшовного Wi-Fi. Именно эта часть проекта получилась любопытнее всего.
Котики-Микротики
Как известно, сейчас в моде минимализм. В том числе и проводной, поэтому оборудование искали с поддержкой PoE (Power Over Ethernet).
Для покрытия всего склада беспроводной сетью понадобились:
Точки доступа, умеющие работать с управляющим контроллером и PoE-in;
Контроллер для управления точками доступа;
- Коммутатор с поддержкой PoE-out.
Решения Cisco, Zyxel и D-link в бюджет явно не пролезали, поэтому остались Ubiquity UniFi и MikroTik.
Семейство Unifi с программными контроллерами хорошо запомнилось еще по прошлым проектам своей нестабильной связью при перемещениях клиентов между точками. К тому же, у местных админов нашелся MikroTik RB951Ui-2HnD, потерявший два порта после удара молнии. Что ж, это явно судьба, поэтому "инвалиду" решили дать новую жизнь в качестве контроллера Wi-Fi.
В качестве точек доступа изначально планировали MikroTik mAP lite, которые подкупали стоимостью и поддержкой работы с Wi-Fi контроллером – Controlled Access Point system Manager (CAPsMAN) в терминологии MikroTik. Правда, смущало неудобное магнитное крепление на стену, ответная часть которого крепилась на не внушающий доверия скотч. В итоге, купили MikroTik mAP 2nD без всяких магнитов, из-за которых у mAP lite бывают проблемы с сетью при включении.
Заказали всего 9 точек и коммутатор D-link DES-1018MP с поддержкой PoE. Такого набора оказалось достаточно для уверенного приема на всей территории склада.
Кроме использования по назначению, из такой точки можно сделать сетевой тестер. Еще в комплекте нашлись кабели micro-usb OTG, которые мигом разошлись по ИТ-отделу.
Вторая часть квеста
Напомню, что основной проблемой склада была неправильная организация операторских рабочих мест. Поэтому нужно было не только увеличить их количество, но и оптимизировать для использования не искушенными в компьютерах сотрудниками склада. Решили ставить терминалы с сенсорным экраном и сканером штрих-кодов. При максимально упрощенном интерфейсе 1С и отсутствии стандартной оболочки Windows выходило довольно наглядно.
В качестве рабочих станций рассматривали тонких клиентов, моноблоки и даже Raspberry Pi под Linux. Но c Linux у местных специалистов дела шли не так радужно, поэтому все же вернулись к Windows. В конце-концов, там меньше проблем с совместимостью оборудования.
Кстати, вместо моноблока с креплением на стену нашелся INTEL Compute Stick размером с ладонь – подходящая модель выпускается как Lenovo IdeaCentre Stick 300:
32 ГБ места на диске;
2 ГБ оперативной памяти;
Windows 8.1 with Bing;
- Цена вопроса – менее 6 000 ?.
Выглядит как решение всех проблем. Конечно, было некоторое недоверие к самому формату "флешки с виндой" – особенно смущали перспективы перегрева и вопрос быстродействия. Но пробная “флешка” выдержала все проверки без особых проблем, поэтому махнули рукой и закупили остальные.
К терминалу еще нужен был беспроводной сканер, база которого работала бы по USB с эмуляцией COM – просьба заказчика.
Получился такой набор:
Наименование | Модель | Количество | Цена, шт |
Точка доступа | MikroTik mAP 2nD | 9 | 2 800 ? |
Компьютер | Lenovo IdeaCentre Stick 300 | 9 | 5 900 ? |
Монитор | Viewsonic TD2220-2 | 9 | 17 000 ? |
Переходник | HDMI BURO DVI-D(m) — HDMI19 (f) | 9 | 590 ? |
Сканер ШК | Honeywell 1202g | 9 | 21 150 ? |
Коммутатор | D-link DES-1018MP | 1 | 15 700 ? |
Итого | 442 660 ? |
Цены указаны на лето 2016
Примечательно, что сама сеть Wi-Fi стоила менее 50 000 ?, даже с учетом контроллера.
Часть третья, в которой появляется гик-порно
Про настройку CAPsMAN на MikroTik уже достаточно материала, поэтому больше расскажу о нюансах.
Сеть делали вещью в себе, без лишних пересечений с офисной. От использования VLAN пришлось отказаться, так как сетевое оборудование уже было нагружено сверх меры. На контроллере Wi-Fi подняли NAT с сетевым экраном, за которым разместили точки доступа с клиентами.
В процессе тестирования решения обнаружились несколько проблем:
Если точки и клиенты находились в одном сегменте сети, то при подключении клиента контроллер ругался на появление петли и отключал его. Обойти проблему можно было сегментированием сети или явным включением точки доступа в bridge на контроллере. Я выбрал первый вариант, как наиболее простой:
/interface bridge add name=bridge-wifi /caps-man configuration set [find comment="warehouse"] datapath.bridge=bridge-wifi #настройка адресации и DHCP на bridge-wifi
- Если на точке доступа явно не указать IP-адрес контроллера, то при подключении к сети трех и более точек лишь одна регистрировалась. Решилось указанием адреса контроллера в настройках CAP:
/interface wireless cap set caps-man-addresses=Адрес_контроллера discovery-interfaces=bridge-local enabled=yes interfaces=wlan2
- Некорректно работало разрешение имен офисных серверов и, как следствие, не запускалась база 1С. Настроили выдачу правильного DNS-суффикса службой DHCP на MikroTik:
#Добавляем опцию 15. содержимое - сконвертированый в HEX суффикс. /ip dhcp-server option add code=15 name=dns value=0x57687920616c6c207468697320736869743f #Добавляем опцию к DHCP-серверу для клиентов. /ip dhcp-server network set [find comment="wi-fi client dhcp"] dhcp-option=dns
Схема получившейся сети с двумя бриджами
Интерфейс, который не даст выстрелить в ногу
Новые пользователи не очень дружны с компьютерами, поэтому лишние "соблазны" нужно было убрать. В системе появилась новая учетная запись пользователя с ограниченными правами и автоматическим входом в систему. Кроме того, при загрузке оболочка explorer.exe менялась на скрипт запуска 1С.
Нужно всего лишь создать в реестре строковый параметр с именем "Shell" в ветке HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon, а в его значении прописать путь запуска альтернативной оболочки. Для запуска VBS-скрипта это выглядело так:
cscript.exe "Путь к скрипту"
Чтоб не менять скрипт для каждого компьютера, я назвал пользователей в 1С аналогично именам компьютеров.
Скрипт с комментариями предоставляю на ваш суд:
strComputer = "."
strServer="Имя сервера 1С"
strBase="название базы 1С"
Set objShell = CreateObject("Wscript.Shell")
‘ Получаем имя компьютера в переменную
strUsername= objShell.ExpandEnvironmentStrings("%computername%")
‘ Проверяем сервер на доступность несколько раз, на случай поздней инициализации сети.
For iCounter = 1 to 5
If Ping(StrServer) then
Exit For
end If
WScript.Sleep 1000
Next
If iCounter =5 Then
MsgBox ("Сервер не обнаружен, обратитесь в IT-отдел")
objShell.Run("shutdown -s -t 0")
else
‘ Запускаем 1С
objShell.Run("""C:\Program Files\1cv8\common\1cestart.exe"" enterprise /s"+strServer+"\"+strBase+" /N"""+strUsername+"""")
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = '1cv8.exe'")
‘ Ждем появления основного процесса 1С
Do While colProcesses.Count = 0
Set colProcesses = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = '1cv8.exe'")
WScript.Sleep 1000
Loop
‘ Ждем завершения процесса 1С
Do While colProcesses.Count > 0
Set colProcesses = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = '1cv8.exe'")
WScript.Sleep 1000
Loop
objShell.Run("shutdown -s -t 0")
end if
Function Ping( myHostName )
Dim colPingResults, objPingResult, strQuery
strQuery = "SELECT * FROM Win32_PingStatus WHERE Address = '" & myHostName & "'"
Set colPingResults = GetObject("winmgmts://./root/cimv2").ExecQuery( strQuery )
For Each objPingResult In colPingResults
If Not IsObject( objPingResult ) Then
Ping = False
ElseIf objPingResult.StatusCode = 0 Then
Ping = True
Else
Ping = False
End If
Next
Set colPingResults = Nothing
End Function
Через некоторое время терминалам добавили Bluetooth-колонки, через которые приятный женский голос сообщает об ошибках в работе при помощи Windows Speech.
А теперь про обещанные увольнения
Тестирование роуминга заказчик проводил так: сотрудник отдела ИТ с софтфона на мобильном звонил мне и гулял по складу. Обрывов связи и "заиканий" не было – точки доступа исправно передавали смартфон друг другу.
Позже мне рассказали, что после внедрения новой системы работники склада устроили настоящий саботаж, с возгласами "Так работать невозможно!" и демонстративной работой по-старинке. Видимо, смекнули, что придется работать вместо обсуждения рыбалки в очередях и за чаем. Но пришел большой босс и все наладил волшебной силой убеждения.
Э, насяльнике, помоги! Вайвай поставиль, байтик бегаэт, адинэс считаэт, работник бешельме-мешельме нехочэт
Наша оптимизация для людей имела и побочный эффект. Оказалось, что такая орава на складе не нужна – на волне кризиса в стране это натолкнуло начальство на идею сокращения штата. Теперь изображать бурную деятельность на том складе непросто.
А у вас когда-нибудь случалось так, что внедрение во благо людям оборачивалось неприятностями для них же?
Комментарии (32)
CTPAHHblU
24.11.2016 11:42Насколько известно сканеры штрих-кодов под 1С с линуксом не особо дружат при применении эмуляции com порта. Если как-то смогли побороть, очень буду благодарен за информацию (гугл два месяца назад не помог).
avelor
24.11.2016 12:23изучал этот вопрос… два варианта — или делать прослойку с помощью xvkbd (будет ком-сканер изображать клавиатурный) или использовать библиотеку от 1С, в частности драйвер 1С: Сканеры штрих-кода (NativeAPI).
paxlo
24.11.2016 13:20Если точки и клиенты находились в одном сегменте сети, то при подключении клиента контроллер ругался на появление петли и отключал его.
Это из-за того что wlan интерфейс который управляется capsman'ом висит с езернетом на одном мосту. Просто убираете на всех точках его оттуда.
maxyc_webber
24.11.2016 15:04+1Работал в далеком 2000 в одной компании. Понятия CRM тогда еще не особо было слышно. Сделал систему учета финансов в холдинге на 6 компаний. Программа сама брала выписки из банков, все рассчитывала, складывала по нужным папкам, делала кучу графиков. в конце даже научилась определять кто когда пришел на работу и научилась сама начислять зарплату людям. Итог был такой — уволено было 8 бухгалтеров. Оставили главбуха с помощницей и фин дира. а потом и я ушел ) хз как сейчас там все работает.
miss_dead
24.11.2016 22:27-4Как мы сокращали персонал… А людей вам не жалко? Они-то ничего сделать не могут и зависят от того, как организуют их труд специально обученные люди. Так что гордиться вам здесь особо не чем.
dimskiy
24.11.2016 22:29Все верно, гордиться нечем. Но это был скорее сарказм, чем гордость… ИТ-персонал просто улучшил условия труда и решил реальную проблему бизнеса, а сокращение при этом — увы, побочный эффект.
miss_dead
24.11.2016 22:33К сожалению, такой факт имеет место — мы лишь инструменты в руках людей, принимающих решения…
avelor
24.11.2016 23:05+2Технологическая безработица имеет место быть с изобретения колеса. тут ничего не попишешь — или прогресс и луддиты, или стагнация. В идеальном мире автоматизация не влияет на трудоустройство — сотрудники просто пьют чай с плюшками, а зряплата капает. но у нас капитализм и издержки сокращаются. людей можно жалеть — а можно радоваться, что они не загнивают в теплом местечке, а идут дальше.
miss_dead
25.11.2016 02:31-2а дальше… это куда? Развиваться умственно, карьерно и духовно? А потом спасибо сказать за «вывод из зоны комфорта» или что-то типа «волшебный пинок»? В данном контексте они идут на три буквы.
Vilyx
25.11.2016 17:10Когда-то ткацкий станок лишил работы орду ткачей. Вы предпочтёте покупать ткань по современным ценам или по ценам изделий ручного труда? Прогресс он такой, может показаться что он лишает людей работы, но на самом деле удешевляет выпускаемую продукцию. Так же и с едой, сравните цены на картофель выкопанный лопатой и комбайном.
miss_dead
25.11.2016 17:54-3Не видите в упор очевидного. Видимо, Вы тупой, а может не хотите признавать очевидного. Все погрязли в кредитах, от простых людей до предприятий. Даже все государства имеют непосильные долги. Уровень жизни ухудшился, пенсионный возраст увеличился, долги передаются по наследству, забастовки, мировые кризисы… а качество продукции ухудшилось, планета загрязняется и превращается в помойку, ее ресурсы истощаются… Но нет, мы это не видим, «это может лишь показаться»… Вы что, совсем дурак?
Vilyx
25.11.2016 18:16-1Смелое заявление от дегенерата, который предпочитает бегать с голой задницей прогрессу.
DenMMM
25.11.2016 19:08Объективно полезный прогресс губится алчностью бизнеса.
Цель — делать бабки любой ценой, — смерть для человечества.dmbarsukov
25.11.2016 21:25+1кормить дармоедов, которые вместо работы пьют чай и трындят в больших количествах — вот смерть прогрессу. А тем более, если не хотят ничему учиться. Сколько-то работников оставили же на складе? Значит они нужны.
Mozart
25.11.2016 00:14Когда вы будете банкротиться, и вам надо будет платить по кредитам еще 3 года, вас никто не будет жалеть, ваши работники просто уйдут. Ну история чисто же экономическая, при чем тут жалость? )
Scf
25.11.2016 12:46+1Вот такая вот у нас профессия — большая часть IT-шных проектов запускается с целью кого-нибудь сократить.
С другой стороны, после внедрения автоматизации эффективность, а значит и прибыль, предприятия повышается, оно расширяется и набирает новых людей. Но — с более высокими требованиями, для работы с более сложной техникой.
Те, кто не может или не хочет учиться, остаются на обочине. В 19 веке в Англии их отправляли на каторгу как бродяг, в 21 веке им светит минимальный паек. Увы, СССР с его правом на труд для каждого "не взлетел".
sergarcada
25.11.2016 19:25Для работы с более сложной техникой — это вряд ли. Автоматизация для того и нужна, чтобы любая обезьяна могла справиться. Тем более, что совсем не обязательно расширяться. Зачем расширяться, если можно сократить издержки?
sutasu
24.11.2016 23:28+4Внедряли MES-систему на некоем химическом производстве. Курьезов было множество. Например, потоки готовой продукции — сколько продукта на склад ушло, столько должно выйти. По документам и бухгалтерии — все так. А по физической модели в системе — болтается где-то тонны две с половиной лишних, хоть тресни. Все проверяем по сто раз, софт, сервера, сигналы… А выяснилось, что это технолог заначку держит для того, чтоб удобнее отгружать было на случай перебоев производства. И не афиширует ее особо, видимо, чтоб план не портить. )
DenMMM
25.11.2016 10:38Хочу побрюзжать из-за ComputeStick: вы думали сколько это чудо проживет на складе с мааленьким вентилятором внтури? Стационарные ПК даже в офисе раз в год чистить приходится, а тут казявка такая…
dimskiy
25.11.2016 10:39Ну склад все же не советского типа — там поддерживается нормальная температура и вентиляция, так что у него есть все шансы.
overmind88
25.11.2016 14:58А можно узнать площадь склада и как располагали точки доступа?
dimskiy
25.11.2016 17:15Конечно :) Площадь склада — 2000м2 и мезонин в виде металлической решетки, работающий как клетка фарадея. Точки доступа распологали на опорах.
Месторасположение и количество рассчитывали рисуя на плане склада примерное покрытие одной точки.
Rost_admin
30.11.2016 14:38«Решили ставить терминалы с сенсорным экраном» — как понять эту фразу, модель терминалов можно услышать?
Xalium
02.12.2016 06:40«модель» терминалов описана ниже этой фразы в таблице. В качестве экрана с сенсором использовался моник Viewsonic TD2220-2.
Klukonin
04.12.2016 20:49Псссс, ребята. На самом деле, для полноценно быстрого и бесшовного роуминга совершенно нет нужды использовать контроллер.
AVX
У вас хоть не сами работники склада это всё проектировали и разворачивали. У нас — мы сами придумываем решения, которые в конечном итоге приводят к «оптимизации». Сами себе яму и копаем. А ведь и отказаться нельзя.