image alt text


На одном складе работа была организована так, что сотрудники с навыками работы на ПК все время пребывали в режиме "аврал". При отгрузке заказов толпа комплектовщиков стояла в очереди за сверкой и сканированием штрих-кодов. Естественно, поломка одного из двух операторских компьютеров превращала весь процесс в сплошные мучения для самих операторов и радость для остальных (о, чайку можно попить!).


В статье расскажу, как мы испортили людям отдых с помощью бесшовного 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. Такого набора оказалось достаточно для уверенного приема на всей территории склада.


image alt text


Кроме использования по назначению, из такой точки можно сделать сетевой тестер. Еще в комплекте нашлись кабели 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 ?.

Выглядит как решение всех проблем. Конечно, было некоторое недоверие к самому формату "флешки с виндой" – особенно смущали перспективы перегрева и вопрос быстродействия. Но пробная “флешка” выдержала все проверки без особых проблем, поэтому махнули рукой и закупили остальные.


image alt text


К терминалу еще нужен был беспроводной сканер, база которого работала бы по 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

image alt text


Схема получившейся сети с двумя бриджами


Интерфейс, который не даст выстрелить в ногу


Новые пользователи не очень дружны с компьютерами, поэтому лишние "соблазны" нужно было убрать. В системе появилась новая учетная запись пользователя с ограниченными правами и автоматическим входом в систему. Кроме того, при загрузке оболочка 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.


А теперь про обещанные увольнения


Тестирование роуминга заказчик проводил так: сотрудник отдела ИТ с софтфона на мобильном звонил мне и гулял по складу. Обрывов связи и "заиканий" не было – точки доступа исправно передавали смартфон друг другу.


Позже мне рассказали, что после внедрения новой системы работники склада устроили настоящий саботаж, с возгласами "Так работать невозможно!" и демонстративной работой по-старинке. Видимо, смекнули, что придется работать вместо обсуждения рыбалки в очередях и за чаем. Но пришел большой босс и все наладил волшебной силой убеждения.


image alt text


Э, насяльнике, помоги! Вайвай поставиль, байтик бегаэт, адинэс считаэт, работник бешельме-мешельме нехочэт


Наша оптимизация для людей имела и побочный эффект. Оказалось, что такая орава на складе не нужна – на волне кризиса в стране это натолкнуло начальство на идею сокращения штата. Теперь изображать бурную деятельность на том складе непросто.


А у вас когда-нибудь случалось так, что внедрение во благо людям оборачивалось неприятностями для них же?

Поделиться с друзьями
-->

Комментарии (32)


  1. AVX
    24.11.2016 11:27

    У вас хоть не сами работники склада это всё проектировали и разворачивали. У нас — мы сами придумываем решения, которые в конечном итоге приводят к «оптимизации». Сами себе яму и копаем. А ведь и отказаться нельзя.


  1. CTPAHHblU
    24.11.2016 11:42

    Насколько известно сканеры штрих-кодов под 1С с линуксом не особо дружат при применении эмуляции com порта. Если как-то смогли побороть, очень буду благодарен за информацию (гугл два месяца назад не помог).


    1. avelor
      24.11.2016 12:23

      изучал этот вопрос… два варианта — или делать прослойку с помощью xvkbd (будет ком-сканер изображать клавиатурный) или использовать библиотеку от 1С, в частности драйвер 1С: Сканеры штрих-кода (NativeAPI).


  1. paxlo
    24.11.2016 13:20

    Если точки и клиенты находились в одном сегменте сети, то при подключении клиента контроллер ругался на появление петли и отключал его.

    Это из-за того что wlan интерфейс который управляется capsman'ом висит с езернетом на одном мосту. Просто убираете на всех точках его оттуда.


    1. dimskiy
      24.11.2016 13:20

      Любопытно, спасибо за наводку!


  1. maxyc_webber
    24.11.2016 15:04
    +1

    Работал в далеком 2000 в одной компании. Понятия CRM тогда еще не особо было слышно. Сделал систему учета финансов в холдинге на 6 компаний. Программа сама брала выписки из банков, все рассчитывала, складывала по нужным папкам, делала кучу графиков. в конце даже научилась определять кто когда пришел на работу и научилась сама начислять зарплату людям. Итог был такой — уволено было 8 бухгалтеров. Оставили главбуха с помощницей и фин дира. а потом и я ушел ) хз как сейчас там все работает.


    1. dimskiy
      24.11.2016 15:39

      Наглядная иллюстрация эфемерности добра и зла, как по мне :)


  1. miss_dead
    24.11.2016 22:27
    -4

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


    1. dimskiy
      24.11.2016 22:29

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


      1. miss_dead
        24.11.2016 22:33

        К сожалению, такой факт имеет место — мы лишь инструменты в руках людей, принимающих решения…


    1. avelor
      24.11.2016 23:05
      +2

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


      1. miss_dead
        25.11.2016 02:31
        -2

        а дальше… это куда? Развиваться умственно, карьерно и духовно? А потом спасибо сказать за «вывод из зоны комфорта» или что-то типа «волшебный пинок»? В данном контексте они идут на три буквы.


        1. Vilyx
          25.11.2016 17:10

          Когда-то ткацкий станок лишил работы орду ткачей. Вы предпочтёте покупать ткань по современным ценам или по ценам изделий ручного труда? Прогресс он такой, может показаться что он лишает людей работы, но на самом деле удешевляет выпускаемую продукцию. Так же и с едой, сравните цены на картофель выкопанный лопатой и комбайном.


          1. miss_dead
            25.11.2016 17:54
            -3

            Не видите в упор очевидного. Видимо, Вы тупой, а может не хотите признавать очевидного. Все погрязли в кредитах, от простых людей до предприятий. Даже все государства имеют непосильные долги. Уровень жизни ухудшился, пенсионный возраст увеличился, долги передаются по наследству, забастовки, мировые кризисы… а качество продукции ухудшилось, планета загрязняется и превращается в помойку, ее ресурсы истощаются… Но нет, мы это не видим, «это может лишь показаться»… Вы что, совсем дурак?


            1. Vilyx
              25.11.2016 18:16
              -1

              Смелое заявление от дегенерата, который предпочитает бегать с голой задницей прогрессу.


              1. DenMMM
                25.11.2016 19:08

                Объективно полезный прогресс губится алчностью бизнеса.
                Цель — делать бабки любой ценой, — смерть для человечества.


                1. dmbarsukov
                  25.11.2016 21:25
                  +1

                  кормить дармоедов, которые вместо работы пьют чай и трындят в больших количествах — вот смерть прогрессу. А тем более, если не хотят ничему учиться. Сколько-то работников оставили же на складе? Значит они нужны.


    1. Mozart
      25.11.2016 00:14

      Когда вы будете банкротиться, и вам надо будет платить по кредитам еще 3 года, вас никто не будет жалеть, ваши работники просто уйдут. Ну история чисто же экономическая, при чем тут жалость? )


      1. miss_dead
        25.11.2016 02:51

        а ты не бери кредиты и не банкроться, тогда и злорадствовать никто не будет


        1. vlreshet
          25.11.2016 09:34

          Иногда бизнесу просто необходим кредит. Стартовый капитал с воздуха не появляется


    1. Scf
      25.11.2016 12:46
      +1

      Вот такая вот у нас профессия — большая часть IT-шных проектов запускается с целью кого-нибудь сократить.


      С другой стороны, после внедрения автоматизации эффективность, а значит и прибыль, предприятия повышается, оно расширяется и набирает новых людей. Но — с более высокими требованиями, для работы с более сложной техникой.


      Те, кто не может или не хочет учиться, остаются на обочине. В 19 веке в Англии их отправляли на каторгу как бродяг, в 21 веке им светит минимальный паек. Увы, СССР с его правом на труд для каждого "не взлетел".


      1. sergarcada
        25.11.2016 19:25

        Для работы с более сложной техникой — это вряд ли. Автоматизация для того и нужна, чтобы любая обезьяна могла справиться. Тем более, что совсем не обязательно расширяться. Зачем расширяться, если можно сократить издержки?


  1. sutasu
    24.11.2016 23:28
    +4

    Внедряли MES-систему на некоем химическом производстве. Курьезов было множество. Например, потоки готовой продукции — сколько продукта на склад ушло, столько должно выйти. По документам и бухгалтерии — все так. А по физической модели в системе — болтается где-то тонны две с половиной лишних, хоть тресни. Все проверяем по сто раз, софт, сервера, сигналы… А выяснилось, что это технолог заначку держит для того, чтоб удобнее отгружать было на случай перебоев производства. И не афиширует ее особо, видимо, чтоб план не портить. )


  1. DenMMM
    25.11.2016 10:38

    Хочу побрюзжать из-за ComputeStick: вы думали сколько это чудо проживет на складе с мааленьким вентилятором внтури? Стационарные ПК даже в офисе раз в год чистить приходится, а тут казявка такая…


    1. dimskiy
      25.11.2016 10:39

      Ну склад все же не советского типа — там поддерживается нормальная температура и вентиляция, так что у него есть все шансы.


  1. overmind88
    25.11.2016 14:58

    А можно узнать площадь склада и как располагали точки доступа?


    1. dimskiy
      25.11.2016 17:15

      Конечно :) Площадь склада — 2000м2 и мезонин в виде металлической решетки, работающий как клетка фарадея. Точки доступа распологали на опорах.
      Месторасположение и количество рассчитывали рисуя на плане склада примерное покрытие одной точки.


  1. gizer
    25.11.2016 15:32

    Стабильно ли работают сканеры ШК? Я делал проброс по RDP. Иногда отваливается сканер и приходится перезагружать систему.


    1. dimskiy
      25.11.2016 19:24

      Да, стабильно. У них отдельное питание + сам сканер беспроводной.


  1. Rost_admin
    30.11.2016 14:38

    «Решили ставить терминалы с сенсорным экраном» — как понять эту фразу, модель терминалов можно услышать?


    1. Xalium
      02.12.2016 06:40

      «модель» терминалов описана ниже этой фразы в таблице. В качестве экрана с сенсором использовался моник Viewsonic TD2220-2.


  1. Klukonin
    04.12.2016 20:49

    Псссс, ребята. На самом деле, для полноценно быстрого и бесшовного роуминга совершенно нет нужды использовать контроллер.