Как передаются данные по шине данных

Глава 1. Компьютер. Программное и аппаратное обеспечение

Магистраль: шина данных шина адреса и шина управления. Шины периферийных устройств

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

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

Северный мост обеспечивает обмен информацией между процессором и оперативной памятью по системной шине. В процессоре используется внутреннее умножение частоты, поэтому частота процессора в несколько раз больше, чем частота системной шины. В современных компьютерах частота процессора может превышать частоту системной шины в 10 раз (например, частота процессора 1 ГГц, а частота шины — 100 МГц).

К северному мосту подключается шина PCI ( Peripherial Component Interconnect bus — шина взаимодействия периферийных устройств), которая обеспечивает обмен информацией с контроллерами периферийных устройств. Частота контроллеров меньше частоты системной шины, например, если частота системной шины составляет 100 МГц, то частота шины PCI обычно в три раза меньше — 33 МГц. Контроллеры периферийных устройств (звуковая плата, сетевая плата, SCSI -контроллер, внутренний модем) устанавливаются в слоты расширения системной платы.

По мере увеличения разрешающей способности монитора и глубины цвета требования к быстродействию шины, связывающей видеоплату с процессором и оперативной памятью, возрастают. В настоящее время для подключения видеоплаты обычно используется специальная шина AGP ( Accelerated Graphic Port — ускоренный графический порт), соединенная с северным мостом и имеющая частоту, в несколько раз большую, чем шина PCI .

Южный мост обеспечивает обмен информацией между се­верным мостом и портами для подключения периферийного оборудования.

Устройства хранения информации (жесткие диски, CD — ROM , DVD — ROM ) подключаются к южному мосту по шине UDMA ( Ultra Direct Memory Access — прямое подключение к памяти).

Мышь и внешний модем подключаются к южному мосту с помощью последовательных портов, которые передают элек­трические импульсы, несущие информацию в машинном коде, последовательно один за другим. Обозначаются после­довательные порты как СОМ1 и COM2, а аппаратно реализуются с помощью 25-контактного и 9-контактного разъемов, которые выведены на заднюю панель системного блока.

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

Для подключения сканеров и цифровых камер обычно используется порт USB ( Universal Serial Bus — универсальная последовательная шина), который обеспечивает высокоскоростное подключение к компьютеру сразу нескольких периферийных устройств.

Клавиатура подключается обычно с помощью порта PS/2 или USB .

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

Рассмотрим структуру магистрали (системной шины), т.к. модульная организация системы опирается на магистральный (шинный) принцип обмена информации.

Магистраль

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

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

Обмен информацией между отдельными устройствами ЭВМ производится по трем многоразрядным шинам, соединяющим все модули, —

  • шине данных,
  • шине адресов ;
  • шине управления .

Шины представляют собой многопроводные линии. Тип системных шин, применяемых в компьютерах с невысокой производительностью — ISA. Это дешевая но «малоинтеллектуальная» шина. Она может обеспечивать обмен с клавиатурой, дисплеем (алфавитно-цифровым), дисководами для гибких дискет, принтерами и модемами. Однако ее возможностей не достаточно для работы с дисководами для жестких дисков, видеоконтроллерами, адаптерами локальных сетей и т.п.

Шина MCA — более производительная, но не совместима с ISA, поэтому не нашла широкого применения.

Шина EISA — совместима с ISA , значительно дороже, чем ISA и не всегда обеспечивая нужную скорость обмена.

Шина VESA (VL) — более дешевая шина, используется в сочетании с ISA или с EISA.

Шина PCI — конкурент шины VESA , используется в PENTIUM в сочетании с ISA или EISA.

Как передаются данные по шине данных

Рис 2. Магистрально-модульный принцип

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

Шина данных

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

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

За 25 лет, со времени создания первого персонального компьютера (1975г.), разрядность шины данных увеличилась с 8 до 64 бит.

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

Шина адреса

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

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

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

N =2 I , где I — разрядность шины адреса.

Каждой шине соответствует свое адресное пространство, т. е. максимальный объем адресуемой памяти:

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

N == 2 32 = 4 294 967 296 = 4 Гб

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

Аппаратно на системных платах реализуются шины различных типов. В компьютерах РС/286 использовалась шина ISA (Industry Standard Architecture), имевшая 16-разрядную шину данных и 24-разрядную шину адреса. В компьютерах РС/386 и РС/486 используется шина EISA (Extended Industry Standard Architecture), имеющая 32-разрядные шины данных и адреса. В компьютерах PC/ Pentium используется шина PCI (Peripheral Component Interconnect), имеющая 64-разрядную шину данных и 32-разрядную шину адреса.

Шина управления

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

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

Как передаются данные по шине данных

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

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

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

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

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

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

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

Шины и протоколы в промышленной автоматике: как всё это работает

Как передаются данные по шине данных

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

Наверняка вам было интересно, как всё это работает с точки зрения аппаратной и программной части, и какие там используются протоколы передачи данных. В этой статье мы разберемся, как различные данные попадают на ГЩУ, как подаются команды на оборудование, и что вообще нужно, чтобы управлять компрессорной станцией, установкой производства пропана, линией сборки автомобиля или даже канализационно-насосной установкой.

Нижний уровень или полевая шина — то, с чего всё начинается

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

Под устройствами управления мы подразумеваем ПЛК, т.е. программируемые логические контроллеры (англ. PLC), или ПКА, т.е. программируемые контроллеры автоматизации (англ. PAC). Между ПЛК и ПКА есть некоторые различия, однако, в рамках данной статьи они не существенны, поэтому для упрощения будем использовать общий термин «контроллер».

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

«Поле» — это глубокий профессиональный термин, обозначающий тот факт, что некое оборудование (например, датчики или исполнительные механизмы), с которым взаимодействует контроллер, находятся где-то далеко-далеко, на улице, в полях, под покровом ночи. И неважно, что датчик может быть расположен в полуметре от контроллера и измерять, допустим, температуру в шкафу автоматики, все равно считается, что он находится «в поле». Чаще всего сигналы с датчиков, приходящие в модули ввода-вывода все-таки преодолевают расстояния от десятков до сотен метров (а иногда и больше), собирая информацию с удаленных площадок или оборудования. Собственно, поэтому шина обмена, по которой контроллер получает значения с этих самых датчиков, называется обычно полевой шиной или реже шиной нижнего уровня или промышленной шиной.

Тут следует отметить, что в Европе и США полевым уровнем считаются только сами устройства, расположенные «в поле», но не среда передачи данных. В российских реалиях термин «полевая шина» или «шина нижнего уровня», пожалуй, слегка размыт и обозначает способ передачи данных от модулей ввода-вывода к контроллеру и наоборот.

Как передаются данные по шине данных

Общая схема автоматизации промышленного объекта

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

Верхний уровень: от гирлянды до целой рабочей станции

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

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

Как передаются данные по шине данных

Ну и, наконец, аттракцион невиданной щедрости — рабочая станция (а то и несколько дублирующих), представляющая собой обычный персональный компьютер.

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

Оборудование верхнего уровня обязано взаимодействовать неким образом с контроллером (иначе зачем оно нужно?). Для такого взаимодействия используются протоколы верхнего уровня и некая технология передачи, например, Ethernet или UART. В случае с «ёлкой» таких изощрений, конечно, не нужно, лампочки зажигаются с использованием обычных физических линий, никаких мудреных интерфейсов и протоколов там нет.

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

«Древние» протоколы передачи данных: Modbus и HART

Мало кто знает, но на седьмой день создания мира Бог не отдыхал, а создавал Modbus. Наравне с HART-протоколом, Modbus, пожалуй, самый старый промышленный протокол передачи данных, он появился аж в 1979 году.

В качестве среды для передачи изначально использовался последовательный интерфейс, затем Modbus реализовали поверх TCP/IP. Это синхронный протокол по схеме «мастер-слейв» (главный-подчиненный), в котором используется принцип «запрос-ответ». Протокол довольно тяжеловесный и медленный, скорость обмена зависит от характеристик приемника и передатчика, но обычно счет идет чуть ли не на сотни миллисекунд, особенно в реализации через последовательный интерфейс.

Более того, регистр передачи данных Modbus является 16-битным, что сразу же накладывает ограничения на передачу типов real и double. Они передаются либо по частям, либо с потерей точности. Хотя Modbus до сих пор повсеместно используется в случаях, когда не нужна высокая скорость обмена и потеря передаваемых данных не критична. Многие производители различных устройств любят расширять протокол Modbus своим исключительным и очень оригинальным образом, добавляя нестандартные функции. Поэтому данный протокол имеет множество мутаций и отклонений от нормы, но все же до сих пор успешно живет в современном мире.
Протокол HART тоже существует с восьмидесятых годов, это промышленный протокол обмена поверх двухпроводной линии токовой петли, в которую напрямую включаются датчики 4-20 мА и другие приборы с поддержкой протокола HART.

Для коммутации линий HART используются специальные устройства, так называемые HART-модемы. Также существуют преобразователи, которые на выходе предоставляют пользователю уже, допустим, протокол Modbus.

Примечателен HART, пожалуй, тем, что помимо аналоговых сигналов датчиков 4-20 мА в цепи передается и цифровой сигнал самого протокола, это позволяет соединить цифровую и аналоговую часть в одной кабельной линии. Современные HART-модемы могут подключаться в USB-порт контроллера, соединяться по Bluetooth, либо же старинным способом через последовательный порт. Десяток лет назад по аналогии с Wi-Fi появился и беспроводной стандарт WirelessHART, работающий в диапазоне ISM.

Второе поколение протоколов или не совсем промышленные шины ISA, PCI(e) и VME

На смену протоколам Modbus и HART пришли не совсем промышленные шины, такие как ISA (MicroPC, PC/104) или PCI/PCIe (CompactPCI, CompactPCI Serial, StacPC), а также VME.

Настала эра вычислителей, имеющих в своем распоряжении универсальную шину передачи данных, куда можно подключать различные платы (модули) для обработки некоего унифицированного сигнала. Как правило, в этом случае процессорный модуль (вычислитель) вставляется в так называемый каркас, который обеспечивает взаимодействие по шине с другими устройствами. Каркас, или, как его любят называть трушные автоматизаторы, «крейт», дополняется необходимыми платами ввода-вывода: аналоговыми, дискретными, интерфейсными и т.д., либо все это слепливается в виде бутерброда без каркаса — одна плата над другой. После чего это многообразие на шине (ISA, PCI, etc.) обменивается данными с процессорным модулем, который таким образом получает информацию с датчиков и реализовывает некую логику.

Как передаются данные по шине данных

Контроллер и модули ввода-вывода в каркасе PXI на шине PCI. Источник: National Instruments Corporation

Все бы ничего с этими шинами ISA, PCI(e) и VME, особенно для тех времен: и скорость обмена не огорчает, и расположены компоненты системы в едином каркасе, компактно и удобно, горячей замены плат ввода-вывода может и не быть, но пока еще и не очень хочется.

Но есть ложка дегтя, и не одна. Распределенную систему довольно сложно построить в такой конфигурации, шина обмена локальная, нужно что-то придумывать для обмена данными с другими подчиненными или равноправными узлами, тот же Modbus поверх TCP/IP или какой другой протокол, в общем, удобств маловато. Ну и вторая не очень приятная штука: платы ввода-вывода обычно ждут на вход какой-то унифицированный сигнал, и гальванической развязки с полевым оборудованием у них нет, поэтому нужно городить огород из различных модулей преобразования и промежуточной схемотехники, что сильно усложняет элементную базу.

Как передаются данные по шине данных

Промежуточные модули преобразования сигнала с гальванической развязкой. Источник: DataForth Corporation

«А что с протоколом обмена по промышленной шине?» — спросите вы. А ничего. Нет его в такой реализации. По кабельным линиям сигнал попадает с датчиков на преобразователи сигналов, преобразователи выдают напряжение на дискретную или аналоговую плату ввода-вывода, а данные с платы уже читаются через порты ввода/вывода, средствами ОС. И никаких специализированных протоколов.

Как работают современные промышленные шины и протоколы

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

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

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

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

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

Популярные поставщики оборудования предлагают собственные реализации промышленных протоколов: например, всем известная компания Siemens разрабатывает свою серию протоколов Profinet и Profibus, компании B&R — протокол Powerlink, Rockwell Automation — протокол EtherNet/IP. Отечественное решение в этом списке примеров: версия протокола FBUS от российской компании Fastwel.

Есть и более универсальные решения, которые не привязаны к конкретному производителю, такие как EtherCAT и CAN. Мы подробно разберем эти протоколы в продолжении статьи и разберемся, какие из них лучше подходят для конкретных применений: автомобильной и аэрокосмической промышленности, производства электроники, систем позиционирования и робототехники. Оставайтесь на связи!

Источник