Конструктор для сборки устройств автоматизации tibbo project system

Промышленный интернет. Виктор Поляков, Tibbo Systems

«Технологически, когда дело доходит до конкретных проектов, мы вполне можем соперничать с западными грандами, если не вмешивается политический фактор…Мы понимаем, что, если хотим дальше выживать и конкурировать на равных, мы должны иметь своим рынком весь мир.

Если мы замкнемся здесь, никогда не хватит денег национальных заказчиков на достойный R&D. А в R&D надо вкладывать сейчас очень много…Если брать нишевые продукты, на каждом из рынков, где мы работаем, – средние первые два раунда в США – около $150-200 млн.

Если брать по IoT-платформам, например, GE Predixтобыло вложено около 7 млрд долларов. Поэтому 10 млн рублей ситуацию особо не спасут. Для нас это уже пройденный этап» – в студии JSON.

TV Виктор Поляков, генеральный директор компании Tibbo Systems.

См. видео интервью с Виктором Поляковым на JSON.TV.

Компания J`son & Partners Consulting также выпустила отдельное исследование, посвященное теме IIoT. С его Содержанием можете ознакомиться здесь: «Мировой опыт и перспективы развития Индустриального (Промышленного) Интернета Вещей в России».

Полная расшифровка интервью:

Михаил Шеховцов: Здравствуйте. Сегодня у нас в гостях Виктор Поляков, генеральный директор компании Tibbo Systems. Мы поговорим о развитии интернета вещей в России, в мире и об опыте Tibbo Systems на этом рынке. Расскажите вкратце о компании Tibbo Systems, чем она занимается.

Виктор Поляков: Здравствуйте. Tibbo Systems является частью бренда Tibbo. В него также входит вторая компания – тайваньская компания Tibbo Technology. Мы делим этот бренд, мы не аффилированы друг с другом, не владеем тайваньской компанией, она не владеет нами.

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

Соответственно, мы как российская компания занимаемся также полным циклом производства, но уже софта, программного обеспечения. И, по сути, у нас единственный основной продукт – наша платформа AggreGate, которую мы называем интеграционной платформой для интернета вещей.

Обе компании работают по всему миру, мы не ориентированы только на внутренний рынок, кроме того, он имеет свойство быстро меняться. Мы, как и тайваньская компания, продаем по всему миру.

Сами мы практически никогда наши решения не внедряем, мы стараемся, чтобы это делали наши партнеры – это и инжиниринговые компании, и системные интеграторы, а зачастую и производители, делающие ребрендинг платформы под свое решение.

Михаил Шеховцов: А тайваньская компания имеет отношение к России, какие-то российские корни?

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

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

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

Михаил Шеховцов: А международное развитие идет совместно тайваньской и российской компаниями или какая-то имеет приоритет? Кто двигает проект на международных рынках?

Виктор Поляков: Мы все делаем совместно. Какое-то время назад мы существовали достаточно автономно. Они делали свои железки, продавали их через свой канал. Мы параллельно строили свою дистрибьюторскую сеть, искали партнеров по всему миру. В последнее время у нас появляется все больше точек пересечения.

Связано это в основном с тем, что тайваньская компания начала делать новый продукт, который сейчас стал основным. Он называется Tibbo Project System. Это такой аппаратный конструктор, состоящий из небольшой платы, на которую ставятся маленькие модули, каждый из которых решает одну маленькую задачку.

Это могут быть цифровые или аналоговые входы и выходы, реле, кнопочки, датчики, различные виды connectivity: Wi-Fi и т. д. Все это опционально упаковывается в модульный корпус, и на выходе получается промышленный ПЛК.

Он может использоваться и для прототипирования, но в основном это тиражируемый продукт для Industrial IoT- решений. Недавно мы запустили версию этого аппаратного продукта, которая работает на операционной системе Linux. По сути, это обычный промышленный компьютер.

И с этого момента наша платформа, над которой мы работаем уже порядка 15 лет, стала работать на нашем железе. В этот момент наш бизнес по факту объединился.

Мы берем все, что сделали мы за эти годы, объединяем с тем, что делают наши тайваньские партнеры, и получаем некое достаточно сложное и модельное решение, состоящее из двух конструкторов: это аппаратный конструктор Tibbo Project System и программный конструктор Tibbo AggreGate.

Михаил Шеховцов: Понятно. Давайте погорим более подробно о рынке, на котором вы работаете. Вы упомянули рынок промышленного интернета.

Я начал разговор с того, что тема нашей беседы – интернет вещей. Как все-таки правильно называть тот рынок, на котором вы работаете: это интернет вещей, промышленный интернета вещей. Все же это новое понятие.

Что для вас этот рынок и какую нишу на этом рынке вы занимаете?

Виктор Поляков: Прекрасный вопрос, который не первый раз слышу и люблю на него отвечать. Если говорит об интернете вещей, нас можно назвать пионерами. Мы делали решение, которое сейчас идеально попадает под понятие IoT, начав его за много лет до появления термина IoT.

Раньше мы называли это М2М-платформой, оно попадало чуть меньше, но мы начали еще раньше и, как и предшественники из компании PTC, называли это device management framework, remote service platform, то есть у нас были такие словечки, которые описывали то, что мы делаем, но рынок их не очень понимал.

Когда появился IoT, мы поняли: вот оно! Наконец придумали название для того, что мы делаем.

Михаил Шеховцов: Описали рынок, на котором вы работаете. Не было такого с точки зрения маркетинга…

Виктор Поляков: Да, рынок вдруг появился. Все эти годы мы делали различные нишевые решения. Что касается оборудования, это устройства для контроля физического доступа и подобные.

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

Мы, по сути, в одной платформе нашли общий знаменатель для различных классов и вертикальных решений. И именно в этом я вижу суть IoT. Для меня IoT придумали маркетологи, они вдруг решили: раз так все глобализуется, давайте все это называть неким общим термином. Термин всем понравился, и все крупные компании вдруг стали тоже IoT.

Наверно, как и мы. Я имею в виду тех, у кого было что-то похожее. А потом, когда рынок стал развиваться, это понятие попало в тренд, появились новые вендоры, которые изначально ориентируются на это понятие.

На самом деле мы всего лишь нашли общий знаменатель для всех этих проектов.

Что объединяет, допустим, систему управления IT-инфраструктурой, систему автоматизации технологических процессов и систему мониторинга транспорта? Это серверное ПО, у него есть хранилище данных, есть сonnectivity, то есть сбор данных с различных источников, есть отчетность, есть различные модульные пользовательские UI, различные карты, мнемосхемы, формы ввода данных и подобные компоненты UI-модуля. Есть инструменты для обработки данных, различные бизнес-правила, встроенные языки и т. д. И всего лишь маленькая часть, 10-15 %, отличается от индустрии к индустрии. Это какие-то модули, которые решают задачи конкретно, допустим, учета топлива, пробега транспортных средств, трафика в сети либо качества работы промышленной установки и ее эффективности. То есть 90 % задач и, соответственно, 90 % модулей общие. Это и есть IoT-платформа.

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

Виктор Поляков: Если начинать с устройств, устройства у нас играют в основном на рынке промышленного IoT.

По сути, наши устройства, gateway являются неким нижним уровнем всей этой экосистемы, к которой мы можем напрямую подключать датчики, исполнительные устройства и менее умные, простенькие контроллеры.

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

Михаил Шеховцов: Правильно ли я понимаю, что с точки зрения промышленного интернета ваша платформа играет роль шлюза для различных устройств сбора информации?

Виктор Поляков: Да, так и есть. Это можно назвать gateway, это одна из ролей.

Михаил Шеховцов: А на следующем этапе какие дополнительные услуги вы оказываете в этой цепочке?

Виктор Поляков: Дальше мы берем платформу. Если речь идет о классической инсталляции, то это сервер, который ставится в облаке, в ЦОДе любого оператора, и в данном случае платформа может работать с абсолютно любыми устройствами. Можно взять наши gateway, можно взять промышленные gateway или ПЛК любых производителей.

Михаил Шеховцов: Эта платформа – ваша?

Виктор Поляков: Да. Мы писали и продолжаем разрабатывть ее с нуля. И она не основана на каких-то внешних технологиях, ни на каком open-source. Это наше основное ноу-хау, нам теперь придется сражаться с большими западными компаниями.

Михаил Шеховцов: Насколько уникально данное решение? Есть ли российкие аналоги или ваши основные конкуренты – это мировые гранды?

Виктор Поляков: Наверно, неправильно было бы говорить, что российских аналогов нет, но мы видим, что компании, делающие что-то похожее, появились сейчас, когда уже появился термин IoT.

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

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

Михаил Шеховцов: Это экспертиза, которую можно проверить на практике.

Виктор Поляков: Да, совершенно верно. Последние годы мы наблюдаем такую интересную картину: мы выпускаем новые версии, вроде бы мы даже не можем сказать каких-то громких слов, что мы сделали новые классные модули.

Это развивается изнутри, появляются миллионы внутренних инструментов, о необходимости которых мы раньше не задумывались.

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

Часто речь идет о том, чтобы вписать в дорожные карты какие-то громкие слова, такие как Machine Learning, алгоритмы анализа больших данных, которые все сами поймут о том, что сломалось. А на самом деле нужно тратить миллионы долларов и десятки человеко-лет, чтобы написать какие-то банальные алгоритмы: обработка событий, структурированное хранение больших объемов данных. Все эти простые инструменты обработки данных…

Михаил Шеховцов: Есть уже составные специфические части этих больших понятий Machine Learning.

Виктор Поляков: Да. И если говорить о том, с кем нам в первую очередь приходится конкурировать в нынешней обстановке, это огромные компании – AmazonMicrosoftPTC.

В какой-то степени мы пересекаемся с SAP, но у них решения большие направлены на обработку данных, уровень BI, немного выше. GE, конечно, с платформой Predix.Это крупные западные вендоры. Мы понимаем, что, если хотим дальше выживать и конкурировать на равных, мы должны иметь своим рынком весь мир.

Если мы замкнемся здесь, никогда не хватит денег национальных заказчиков на достойный R&D. А в R&D надо вкладывать сейчас очень много.

Михаил Шеховцов: А в чем принципиальные отличия ваших платформ от международных конкурентов, аналогов, есть ли вообще принципиальные отличия или только технические? Или не хватает пока опыта? Или хватает и все динамично развивается?

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

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

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

Конечно, в некоторых случаях мы теряем, мы не можем иметь доступ ко всему объему данных, которые собирают наши платформы, но зато мы имеем возможность договариваться.

Второе отличие в том, что у нас изначально есть множество продуктов. Наши вертикальные решения, которые мы сами строим на платформе и которые являются нашими основными инвестициями, – это коробочные продукты: SCADA-системы, системы управления IT-инфраструктурами, системы мониторинга ЦОД и еще несколько продуктов.

Это именно коробки, то, что конкурирует уже не с IT-платформами, а с конкретными нишевыми продуктами на своих рынках. Допустим, SCADA конкурирует с Wonderwear от Schneider и т. д. Там свои ниши, свое ценообразование, не имеющее общего с классикой IoT.

Михаил Шеховцов: Это своего рода преимущество, потому что если на формировавшихся международных рынках есть более узкая специализация, то вы сейчас захватываете сразу различные ниши: и платформенные решения, и нишевые, и нишевые продукты. То есть вы смотрите на рынок в целом.

Виктор Поляков: Да. Собственно, в этом ключ . Когда мы приходим на новый рынок, допустим, управление IT-инфраструктурами, это очень конкурентный рынок. Там новые классические продукты не нужны.

Поэтому мы приходим и говорим: да, управление IT, мониторинг сетей, мониторинг и моделирование бизнес-сервисов, но на общей платформы, которая будучи один раз внедренной, позволит вам решить целый спектр задач.

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

Михаил Шеховцов: То есть одновременно работаете и как системный интегратор, и как консультант, анализирующий проблему, предоставляете комплексное решение и технологически, и с точки зрения бизнес-процессов, как сервис?

Виктор Поляков: Когда мы создаем коробку, мы, конечно, вникаем в рынок, у нас свои аналитики, они проводят некий анализ рынка, и мы приходим с коробочным продуктом. Что касается проектов, мы стараемся отдать их.

Михаил Шеховцов: Мы забыли еще об одном аналоге вашей компании, похожем на комплексные решения, в том числе консультант, это IBM, когда и консультирует, и внедряет.

Виктор Поляков: Поведение IBM с точки зрения бизнес-модели очень похоже. Насколько я знаю, проектный офис IBM

Источник: http://json.tv/ict_news_read/promyshlennyy-internet-viktor-polyakov-tibbo-systems-tehnologicheski-kogda-delo-dohodit-do-konkretnyh-proektov-my-vpolne-mojem-sopernichat-s-zapadnymi-grandami-20161004055519

Производители

Microsoft

Операционные системы, устройства, серверные приложения, бизнес-приложения и офисные приложения для конечных пользователей, облачные решения

Партнерский статус:  Gold Software Asset Management, Gold Volume Licensing, Silver Learning, Gold Datacenter, Silver Collaboration and Content

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

Партнерский статус:  Platinum Partner

Программы системы “1С:Предприятие”, продукты для образовательной сферы

Партнерский статус:  1С:Франчайзи, 1С:Центр ERP (статус Кандидат), Центр компетенции по бюджетному учету, Центр сертифицированного обучения

VMware

Программное обеспечение для виртуализации вычислительных ресурсов для ЦОД, облака и мобильных устройств

Партнерский статус:  Enterprise Solution Provider + Academic Specialization, Mobility Management

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

Oracle

Системы управления базами данных, связующее программное обеспечение, бизнес-приложения, серверное оборудование, средства виртуализации, сетевые продукты и продукты для центров обработки данных

Партнерский статус:  Gold Partner

Citrix

Решения для виртуализации, управления мобильностью, обмена данными по сети и решения SaaS

Партнерский статус:  уровень Silver в программе Citrix Solution Advisor

Autodesk

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

Партнерский статус:  Авторизованный реселлер, Authorized Training Center

Решения для автоматизации инженерной деятельности и управления производством – CAD/AEC/PLM

Партнерский статус:  Авторизованный учебный центр

McAfee

Решения для обеспечения контроля угроз и защиты от вредоносных программ, включая комплексную защиту систем, конечных точек, сетей, баз данных и данных, а также «облачную» защиту

Партнерский статус:  Security Solution Provider Gold

Eset

Комплексные решения ESET NOD32 для защиты корпоративной сети

Партнерский статус:  Corporate Premier Partner

Symantec

Решения для обеспечения безопасности, хранения данных и управления системами

Партнерский статус:  Silver Partner

Adobe

Программное обеспечение для графического дизайна, публикации, веб-приложений и печатной продукции

Партнерский статус:  Зарегистрированный Партнер

Графическое и офисное программное обеспечение, цифровое мультимедийное ПО, программы для работы с фотографиями, видеозаписями и DVD

Партнерский статус:  Silver Partner

Acronis

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

Партнерский статус:  Authorised Partner

Аладдин

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

Партнерский статус:  Платиновый Партнер

Huawei

Оборудование беспроводных сетей и базовой сети, сетевые устройства, серверы, системы хранения, коммутаторы, системы телеприсутствия и видеоконференцсвязи, решения для унифицированных коммуникаций

Партнерский статус:  Enterprise Authorized Partner

Lenovo

Ноутбуки, планшеты, персональные компьютеры, серверы, компьютерная периферия, мобильные телефоны, мониторы, видеопроекторы

Партнерский статус:  Business Partner

Dell

Персональные компьютеры, планшетные компьютеры, серверы, устройства хранения данных, сетевое оборудование, компьютерная периферия (мониторы, принтеры, видеокамеры), телевизоры

Партнерский статус:  Registered Reseller

IBM

Программное обеспечение для управления базами данных и групповой работы, офисные пакеты, компьютеры и устройства 

Партнерский статус:  Silver Partner с авторизациями Messaging & Collaboration, Predictive Analytics, Power Systems, Security.

Источник: http://www.usk.ru/services/software/dev/tibbo/

Сборка устройства на TPS

Под общей концепцией Tibbo Project System выпускается несколько печатных плат с микроконтроллером (Tibbo Project PCB – TPP), модули ввода/вывода (tibbits) и корпуса (Tibbo Project Box – TPB). Платы снабжены необходимым набором обвязки для нормальной работы микроконтроллера.

Конструктив

Tibbo Project System спроектирована таким образом, чтобы при необходимости функционал можно было расширять, добавляя в устройство новые компоненты. Для этого, плата выполнена в виде посадочных площадок, а модули расширения имеют унифицированные штыревые разъемы, т.е. монтаж производится без пайки.

При этом производитель предусматривает использование собственных корпусов, выполненных таким образом, что внутри может быть размещена любая стандартная сборка плат TPP и модулей ввода/вывода. С целью более надежной фиксации съемных компонент возможно использование пластины виброзащиты.

Для собранного устройства предусмотрены два типа монтажа: настенный и на DIN рейку.

Платы и микроконтроллер.

На данный момент выпускается два типа плат: средняя TPP2 и большая TPP3. Отличия между ними заключается в разном количестве посадочных мест для модулей ввода/вывода, а также возможность работы с дисплеем и клавиатурой (последнюю возможность поддерживает только плата TPP2).

Платы основаны на высокопроизводительном микроконтроллере T1000, на котором запущенна собственная адаптированная операционная система TiOS[2]. Доступ к TiOS, а также внутренней архитектуре закрыт производителем. Пользовательские приложения выполняются поверх TiOS в режиме интерпретации, позволяя обрабатывать сценарии пользователя.

TiOS также содержит сетевой загрузчик, что позволяет отлаживать программу и проводить прошивку через сеть Ethernet. Аппаратный загрузчик завязан на UART.

Характеристики плат:

  • Основаны на высокопроизводительном чипе T1000 с частотой 88MГц
  • Порт 10/100BaseT Ethernet с функцией auto-MDIX
  • Разъем для подключения модема Wi-Fi
  • 1024 Кб флэш-памяти под прошивку, приложения и данные
  • 2 КБ EEPROM памяти для хранения данных.
  • Часы Реального Времени (RTC) с резервным суперконденсатором (1Ф)
  • Восемь Светодиодных индикаторов (статуса, ethernet и для индикации Wi-Fi сигнала)
  • Звуковой индикатор
  • Программно-аппаратный PLL
  • Схема сброса при подачи питания/падении напряжения.
  • Прошивка обновляется через последовательный порт или по сети.
  • 4 посадочных места с UART
    • Скорость передачи данных до 921,600bps;
    • Режимы четности None/even/odd/mark/space;
    • 7/8 битные/символьные режимы;
    • Дуплексный режим с опцией управления потоком;
    • Полу-дуплексный режим управления направлением;
    • Кодирование и декодирование Wiegand и часов/потоков данных
  • Питание: 300 мА при 5В (режим 100BaseT, PLL включен, все светодиодные индикаторы выключены)
  • TPP3: Размеры: 165×94 мм.
  • TPP3:  7 секций (14 посадочных мест под модули ввода/вывода, 14 посадочных мест под разъемы, 47 линий управления):
    • Восемь посадочных мест с функцией прерывания;
    • Одно посадочное место с возможностью использования PoE.
  • TPP2: Размеры: 94×94 мм.
  • TPP2: Разъемы для подключения LCD и 4-х кнопочной сенсорной клавиатуры.
  • TPP2  3 секции (6 посадочных мест под модули ввода/вывода, 6 посадочных мест под разъемы, 24 линий управления):
    • Шесть посадочных мест с функцией прерывания
    • Одно посадочное место с возможностью использования PoE.

Модули ввода/вывода

Официальное название – Tibbits (англ. tibbo bits). Это отдельные блоки, которые состоят из печатных плат с необходимой обвязкой для работы внутренних микросхем, штыревыми унифицированными выводами, корпусами и светодиодами для индикации режима работы.

Тиббиты делятся на функциональные, разъемы (DB9, 9-клеммный разъем и т.д.) и датчики. Функциональные модули имеют с одной стороны выводы для коммуникации с платой по КМОП логике, с другой стороны «внешние» выводы, для связи с разъемами.

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

Например, датчик атмосферного давления имеет перфорированную переднюю стенку.

Функциональные тиббиты делятся на модули ввода (Дискретный вход, ЦАП и т.д.), модули вывода (реле, ШИМ, АЦП и т.д.), модули ввода/вывода (порт RS232, модем GPRS, Wiegand, Pic сопроцессор и т.д.).

Тиббиты могут использоваться и с другими микроконтроллерами.

Корпуса

На данный момент для Tibbo Project System производится 3 типа пластиковых корпусов: TPB2 – подходит для проектов на основе платы TPP2, TPB2L – корпус с LCD и 4-х кнопочной клавиатурой, подходит для проектов на основе платы TPP2, TPB3 – для проектов на основе платы TPP3.

Корпуса выполнены в виде нижней и верхней крышек, боковых стенок и заглушек. Верхняя крышка имеет тонированное прозрачное окно для наблюдения за статусными светодиодами модулей ввода/вывода. Корпус TPB2L снабжается графическим дисплеем и сенсорными клавишами, что позволяет создавать графический интерфейс пользователя (панель оператора).

Источник: https://db0nus869y26v.cloudfront.net/ru/Tibbo_Project_System

Конструктор для сборки устройств автоматизации Tibbo Project System

Прежде чем выяснить что же за зверь платформа Tibbo Project System (а это всего лишь конструктор «Лего», только для людей постарше и с уклоном в электронику), давайте определимся что мы будем называть устройством автоматизации.

Устройства автоматизации

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

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

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

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

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

В нашей прохладной комнате такой прибор мог бы работать так: получить сигнал с датчика температуры и сравнить его с заданным значением. При наличии рассогласования обработать его с помощью ПИД-алгоритма и выдать корректирующее воздействие в виде мощности на обогреватель. В таком режиме работы в комнате всегда будет поддерживаться комфортная температура.

Именно по такому принципу работают современные кондиционеры и промышленные печи.

Теперь, мы можем выделить неформальные требования к устройствам автоматизации:

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

Существует множество подобных устройств, от простых термостатов до промышленных ПЛК. Но они обладают рядом недостатков:

  • Высокая стоимость ограничивает применение в бюджетных проектах и любителями электроники;
  • Отсутствие «свободного программирования» затрудняет реализацию нестандартных задач;
  • Возможно отсутствие контроллеров с уникальными комбинациями линий ввода/вывода. Например, сложно найти устройство с 4 каналами АЦП, 6 входами, 2 релейными выходами, интерфейсом Wiegand и ШИМ модулятором;
  • Часто отсутствуют современные интерфейсы связи, такие как Ethernet, Wi-Fi, GPRS, что приводит к необходимости приобретения дополнительных устройств коммуникации;
  • Разработка собственных устройств автоматизации – это дорогой, длительный, ресурсоемкий процесс;
  • Ставшие популярными электронные платформы, такие как Arduino или Raspberry, могут обеспечить достаточную гибкость проекта. Но бескорпусное, построенное на «шилдах» решение вряд ли можно назвать полноценным устройством. А ведь любителям электроники хочется видеть свой продукт эстетичным. Для коммерческих низко-бюджетных проектов такой подход вообще выглядит сомнительно: стоимость производства штучных или мелко-серийных корпусов перекроет видимые преимущества;
  • Применение профессиональных решений и концепции электронных платформ, часто требует глубоких знаний в электронике и теории автоматического управления. Начинающие любители могут потратить месяцы, прежде чем научаться создавать полезные функциональные устройства.

Чтобы избежать подобных недостатков, инженеры компании Tibbo Technology предложили новую концепцию в создании устройств автоматики, которая предоставляет гибкость электронных платформ, корпуса для реализации готовых устройств, а разработку сможет осуществить даже новичок в электронике и программировании контроллеров.

TibboProjectSystem.

Tibbo Project System (в дальнейшем TPS) – это программируемый электронный конструктор, который позволяет быстро собирать собственные устройства автоматики. Давайте запишем формулу этой платформы и рассмотрим каждую ее составляющую.

Тиббиты

Проектирование любого устройства (или выбор ПЛК) начинается с определения его будущего функционала. Помимо прочего, на данном этапе определяются требования по каналам ввода/вывода.

В системе TPS за эти функции отвечают Тиббиты (англ. Tibbits) – это простые электронные схемы, выполненные в виде небольших корпусных блоков.

Внешне они напоминают кубики конструктора «Лего» для установки на печатной плате (именно установки, а не пайки).

Тиббит состоит из небольшой печатной платы с необходимыми микросхемами и электронной обвязкой для обеспечения их работы.

Нужен АЦП или дискретный вход? Может быть ШИМ или интерфейс RS232? Просто выбираем соответствующие тиббиты. Описание, внутренняя схема и программная библиотека каждого модуля размещены на сайте производителя.

Номенклатура постоянно расширяется для наиболее полного охвата возможностей ввода/вывода.

Тиббиты делятся на модули ввода (сухой контакт, опто-вход, АЦП и т.д.), модули вывода (реле, ШИМ, ЦАП и т.д.), модули ввода/вывода (RS232, Wiegand, GPRS, PIC-сопроцессор и т.д.), модули питания (стабилизатор 12В—5В, PoE и т.д.), датчики (температуры, давления, акселерометр и т. д.) и модули-разъемы (DB9, клеммы и т.д.). Для удобства восприятия каждая группа выделена своим цветом.

По форм-фактору тиббиты бывают одинарные (4 вывода), двойные (8 выводов) и гибридные, где функциональный модуль и разъем объединены в общий корпус.

Принцип действия очень прост. С одной стороны модуль имеет контакты для цифровой связи с микроконтроллером по КМОП (CMOS) логике. С другой стороны, вывод для коммуникации с внешними устройствами (например, линии Rx, Tx интерфейса RS232). Для удобства монтажа используются специальные разъемы.

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

Платы

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

В случае работы с готовыми ПЛК, приходится выбирать такую модель, которая максимально приближена к требованиям ввода/вывода и производительности. Но это не всегда возможно и приходится приобретать несколько дорогих устройств для покрытия области решения.

В концепции Tibbo Project System эта процедура предельно упрощена: нужно выбрать плату Tibbo Project PCB (в дальнейшем TPP), подходящую под выбранное количество тиббитов.

TPP представляет собой печатную плату, с установленным микроконтроллером, выводы которого реализованы в виде посадочных площадок для модулей ввода/вывода.

Чтобы получить готовый прототип контроллера – достаточно установить тиббиты и разъемы на соответствующие сокеты. При необходимости можно установить пластину виброзащиты.

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

Отладка приложений производится прямо через Ethernet, поэтому для начала работы нужно проделать несколько простых шагов:

  1. Подать питание на плату.

  2. Подключить ее к локальной сети, в которой находится ваш компьютер.

  3. Запустить бесплатную среду разработчика Tibbo IDE (Tide), которая автоматически найдет подключенные к сети устройства Tibbo и выбрать необходимое для начала работы с ним.

  4. Написать приложение и запустить в режиме отладки или релиза.

На данный момент существует две версии плат: средняя TPP2 и большая TPP3. Их отличие только в количестве посадочных сокетов.

Перечислим основные характеристики плат TPP:

  • Основана на чипе T1000 с частотой 88МГц
  • Порт 10/100BaseT Ethernet с функцией авто-определния подключенного кабеля.
  • Разъем для подключения Wi-Fi модема GA1000
  • Разъем для подключения LCD и 4-х сенсорных клавиш (только для модели TPP2)
  • Flash память 1MБ – используется для приложения и хранения данных
  • 2КБ EEPROM
  • Часы реального времени (RTC) с конденсатором (1Ф) для бэкап питания
  • Звуковой и светодиодные индикаторы
  • 4 порта UART
  • Возможность использования функции PoE (при подключении соответствующего тиббита)
  • До 8 линий прерывания
  • TPP2: 6 посадочных площадок
  • TPP3: 14 посадочных площадок.

Питание платы осуществляется от 5В постоянного тока. При этом, если использовать тиббиты питания, можно дополнительно установить стабилизаторы с 12В, 24В, 48В, а также использовать технологию PoE.

Корпуса

Итак, электронная начинка в сборе, остался последний штрих. Чтобы наша интеллектуальная разработка приобрела эстетичный вид и стала более практичной, необходим корпус. В предлагаемой концепции реализовано 3 типа универсальных корпусов TPB (Tibbo Project Box):

  • TPB3 – корпус для большой платы
  • TPB2 – корпус для средней платы
  • TPB2L – корпус с LCD для средней платы

В них можно разместить любую сборку из соответствующих плат и тиббитов.

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

Центральная часть верхней крышки корпуса выполнена в виде тонированного прозрачного пластика. Красиво… Это позволяет визуально наблюдать за светодиодами тиббитов, оценивая текущее состояние контроллера.

Для обозначения выводов, предусмотрены углубления под бумажные стикеры, которые прикрываются гибкой пластиковой пластиной (как на стационарных телефонах).

Модификация корпуса TPB2L – имеет в комплекте графический LCD дисплей и 4 сенсорные кнопки. Их использование позволяет реализовывать панель оператора и предоставлять пользователю графический интерфейс управления.

Программирование

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

Программистам предлагается на выбор два варианта: Tibbo Basic и Tibbo C – это языки с соответствующим синтаксисом, но адаптированные под железо Tibbo.

В качестве среды разработки используется бесплатная оболочка Tibbo IDE – удобная, полнофункциональная и легкая в изучении. Даже новички смогут освоить ее за несколько часов.

TIDE позволяет производить отладку приложений и перепрошивку прямо черзе сеть Ethernet.

Вне зависимости от выбора языка, после компиляции программа преобразуется в мнемокод, который загружается на плату и обрабатывается операционной системой микроконтроллера (TiOS) в режиме интерпретации.

TiOS следит за всеми важными процессами, происходящими на кристалле и дает в распоряжение разработчика события и объекты. Такой подход облегчает работу программиста, позволяя концентрироваться на логике, а не на низкоуровневых типовых задачах. Например, чтобы воспользоваться сокетом, мы обращаемся к свойствами объекта sock, настраивая его работу:

void on_sys_init(){
… net.ip=”192.168.1.10″ ; 'задаем ip-адрес контроллера sock.num = 0; 'выбор номера сокета sock.targetip=”192.168.1.11″; 'задаем ip-адресс внешнего устройства sock.localportlist=”100″; 'задаем TCP/IP порт для входящих соединений sock.targetport=”120″; 'задаем удаленный TCP/IP порт sock.protocol=PL_SOCK_PROTOCOL_TCP; 'выбираем протокол (tcp) sock.inconmode=PL_SOCK_INCONMODE_ANY_IP_ANY_PORT; 'задаем настройки для получаемых пакетов (принимать с любых адресов) sock.reconmode=PL_SOCK_RECONMODE_3; 'задаем режим для повторных подключений на заданный сокет sock.targetinterface=PL_SOCK_INTERFACE_NET; 'выбираем тип физического подключения (возможные варианты WiFi, GPRS); sock.httpmode=NO; 'указываем, что данный сокет не может использоваться с http (с веб-интерфейсом) sock.rxbuffrq(1); 'задаем объем памяти буферу приема sock.txbuffrq(1); 'задаем объем памяти буферу отправки sys.buffalloc; 'выделяем память под буферы

}

После такой инициализации сокета, мы можем в любом месте программы отправить данные в сеть следующей конструкцией:

void my_procedure(){

string s=”Hello World”; 'объявление переменной
sock.num=0; 'выбор сокета
sock.connect(); 'устанавливаем соединение
sock.setdata(s); 'помещаем данные в буфер отправки
sock.send(); 'отправляем данные из буфера в сеть
….
}

А за прием данных, отвечает событие on_sock_data_arrival(), которое генерируется, как только в буфере приема Ethernet появляются данные. Обработчик этого события мы пишем самостоятельно. Например, если на площадку S9 платы TPP2 разместить реле (тиббит 003), то мы можем включать и выключать его сетевыми командами:

void on_sock_data_arrival(){ 'Событие срабатывает, если на один из сокетов пришли данные

if (sock.num==0){ 'Если данные пришли на нужный нам сокет io.num=PL_IO_NUM_32; 'Выбираем линию ввода/вывода контроллера, на которую подключено реле io.enabled=YES; 'Устанавливаем линию I/O как выход string s=sock.getdata(sock.rxlen); 'Считываем данные из буфера приема switch(s){ case “0”: io.state=HIGH; 'Если пришла команда “0”, устанавливаем высокий уровень. Это деактивирует реле break; case “1”: io.state=LOW; 'Если пришла команда “1”, устанавливаем низкий уровень линии. Это активирует реле break; default: sock.setdata(“unknow command”); 'Если получили другую команду, отправляем сообщение об ошибке sock.send(); break; }

}

Таким образом, программирование является таким же простым, как и сборка аппаратной части, позволяя быстро написать рабочее приложение.

Применение

Резюмируя, написанное выше, мы можем дать определение. Tibbo Project System – это конструктор, позволяющий быстро и без пайки проектировать и создавать корпусные электронные устройства автоматики. Сферы применения платформы очень широки: от «домашнего» применения любителями электроники, до коммерческих профессиональных продуктов. Вот лишь некоторые области возможного применения:

  • Автоматизация зданий
  • Умный дом
  • Промышленная автоматизация
  • Автоматизация розничной торговли
  • Автоматизация лабораторий
  • Автоматизация отелей/гостиниц
  • Мониторинг окружающей среды
  • Сетевые датчики
  • Удаленный контроль
  • ИТ
  • Образование
  • ЖКХ
  • Интернет вещей (IoT)
  • Системы безопасности
  • Системы сохранности
  • Системы контроля доступа
  • Системы учета времени
  • Автоматические системы паркинга
  • Обработка платежей
  • Инвентаризация
  • Системы сбора данных
  • Информационные дисплеи
  • Контрольные панели 
  • Любители электроники

Преимущества

  • Не требует глубоких знаний электроники.
  • Максимально быстрый цикл «от концепции к решению»
  • Гибкость и масштабируемость решения
  • Современные интерфейсы связи, такие как Ethernet, Wi-Fi, GPRS.
  • Свободная логика программирования
  • Мощные возможности интеграции с другими подсистемами
  • Возможности «плотной» коммуникации с физическим миром (датчиками, исполнительными механизмами)
  • Бесплатные русскоязычная и англоязычная службы технической поддержки
  • Консультации от вендора при проектировании решений.
  • Лояльные цены
  • Снижает совокупные расходы проекта.
  • И многие другие.

В следующих статьях мы расскажем о некоторых практических реализациях платформы Tibbo Project System.

В сервисе ЖелеZona выставлена заявка на применение платформы Tibbo Project System. Тот, кто предложит и реализует наиболее интересную идею, получит любую конфигурацию платформы Tibbo Project System абсолютно бесплатно!

Источник: http://cxem.gq/promelectr/promelectr25.php

Tibbo

Международный холдинг Tibbo — лидер в области аппаратных и программных решений для Интернета вещей, управления ИТ-инфраструктурами, автоматизации производственных и технологических процессов, удаленного мониторинга и обслуживания, контроля физического доступа и комплексной автоматизации центров обработки данных. Две основные компании, входящие в Tibbo, это Tibbo Systems (Россия) и Tibbo Technology (Тайвань).

 

Компания Tibbo Systems — ведущий российский разработчик программного обеспечения для систем управления и мониторинга. Мы оказываем услуги по внедрению, сопровождению и доработке ПО и программно-аппаратных комплексов, созданных на основе платформы Tibbo AggreGate.

Основанная в 2002-м году, Tibbo Systems занимается разработкой как самой IoT платформы AggreGate, так и основанных на ней продуктов для различных вертикальных рынков.

Основа штата компании — профессиональные разработчики ПО и инженеры по ИТ-инфраструктурам, АСУ ТП и автоматизации зданий, системам физической безопасности и другим областям Интернета вещей.

 

Компания Tibbo Technology — производитель программируемых встраиваемых модулей и контроллеров для систем автоматизации.

Недавно предложенная нами модульная система управления Tibbo Project System (TPS), представляющая из себя конструктор на основе миниатюрных модулей ввода-вывода Tibbits, получила широкую огласку благодаря гибкости архитектуры и привлекательному внешнему виду. Последний заработал Компании награду на конкурсе дизайна RedDot.

 

Tibbo Technology является не только разработчиком и производителем аппаратных продуктов, но также поставляет удобные программные средства быстрого проектирования и отладки приложений для модулей и контроллеров Tibbo на языках Tibbo BASIC и Tibbo C.

 

Головной офис Tibbo Technology находится в Тайбэе (Тайвань). Одним из принципов компании является размещение производства исключительно на Тайване, что обеспечивает высокое и постоянное качество сборки.

 

В партнерскую сеть Tibbo входят дистрибуторы, OEM-производители и системные интеграторы из более чем 50 стран мира.

  • Бизнес-аналитик / Специалист по внедрению корпоративного ПО, от 30000 руб, Полная занятость, Тверь
  • Менеджер по персоналу в ИТ-компанию (IT HR), от 60000 руб, Полная занятость, Тверь
  • Менеджер по работе с ключевыми партнерами (IT/IoT/автоматизация), от 70000 до 140000 руб, Полная занятость, Тверь
  • Руководитель отдела digital-маркетинга и SEO/SMM, от 80000 руб, Полная занятость, Тверь

Источник: http://www.spravkaforme.ru/employer/555901

Introduction to the Tibbo Project System

Tibbo Project System (TPS) is a highly configurable, affordable, and innovative automation platform. It is ideal for home, building, warehouse, and production floor automation projects, as well as data collection, distributed control, industrial computing, and device connectivity applications.

Suppliers of traditional “control boxes” (embedded computers, PLCs, remote automation and I/O products, etc.) typically offer a wide variety of models differing in their I/O capabilities.

Four serial ports and six relays. Two serial ports and eight relays. One serial port, four relays, and two sensor inputs.

These lists go on and on, yet never seem to contain just the right mix of I/O functions you are looking for.

Rather than offering a large number of models, Tibbo Technology takes a different approach: Our Tibbo Project System (TPS) utilizes Tibbits® – miniature electronic blocks that implement specific I/O functions.

Need three RS232 ports? Plug in exactly three RS232 Tibbits! Need two relays? Use a relay Tibbit.

This module-based approach saves you money by allowing you to precisely define the features you want in your automation controller.

Here is a closer look at the process of building a custom Tibbo Project System.

Start With a Tibbo Project PCB (TPP)

A Tibbo Project PCB is the foundation of TPS devices.

Available in two sizes – medium and large – each board carries a CPU, memory, an Ethernet port, power input for +5V regulated power, and a number of sockets for Tibbit Modules and Connectors.

Add Tibbit® Blocks 

Tibbits (as in “Tibbo Bits”) are blocks of prepackaged I/O functionality housed in brightly colored rectangular shells. Tibbits are subdivided into Modules and Connectors.

Want an ADC? There is a Tibbit Module for this. 24V power supply? Got that! RS232/422/485 port? We have this, and many other Modules, too.

Same goes for Tibbit Connectors. DB9 Tibbit? Check. Terminal block? Check. Infrared receiver/transmitter? Got it. Temperature, humidity, and pressure sensors? On the list of available Tibbits, too.

Assemble Into a Tibbo Project Box (TPB)

Most projects require an enclosure. Designing one is a tough job. Making it beautiful is even tougher, and may also be prohibitively expensive. Finding or making the right housing is a perennial obstacle to completing low-volume and hobbyist projects.

Strangely, suppliers of popular platforms such as Arduino, Raspberry Pi, and BeagleBone do not bother with providing any enclosures, and available third-party offerings are primitive and flimsy.

Tibbo understands enclosure struggles and here is our solution: Your Tibbo Project System can optionally be ordered with a Tibbo Project Box (TPB) kit.

The ingenious feature of the TPB is that its top and bottom walls are formed by Tibbit Connectors. This eliminates a huge problem of any low-volume production operation – the necessity to drill holes and openings in an off-the-shelf enclosure.

The result is a neat, professionally looking housing every time, even for projects with the production quantity of one.

Источник: https://dzone.com/articles/tibbo-project-system-tps-from-tibbo-technology-tak-1

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}