На какво трябва да обърна внимание при изграждането на Modbus RTU мрежа?
Какво представлява комуникацията (RS485) Modbus RTU?
Modbus RTU е отворен сериен протокол, произлязъл от архитектурата master/slave (вече наричана клиент/сървър), първоначално разработен от Modicon (сега Schneider Electric). Той е широко приет протокол на серийно ниво поради своята лесна употреба и надеждност. Modbus RTU се използва масово в системи за управление на сгради (BMS) и системи за индустриална автоматизация (IAS). Съобщенията на Modbus RTU имат проста 16-битова структура с циклична проверка на грешките (CRC). Простотата на тези съобщения гарантира надеждност. Благодарение на тази простота, основната 16-битова регистърна структура на Modbus RTU може да се използва за пакетиране на числа с плаваща запетая (floating point), таблици, ASCII текст, опашки и други не свързани данни. Този протокол използва основно сериен интерфейс RS-232 или RS-485 за комуникация и се поддържа от всяка търговска SCADA система, HMI, OPC сървър и софтуер за събиране на данни на пазара. Това прави интегрирането на Modbus-съвместимо оборудване в нови или съществуващи приложения за мониторинг и контрол изключително лесно.
Modbus RTU е отворен сериен протокол, произлязъл от архитектурата master/slave (вече наричана клиент/сървър), първоначално разработен от Modicon (сега Schneider Electric). Той е широко приет протокол на серийно ниво поради своята лесна употреба и надеждност. Modbus RTU се използва масово в системи за управление на сгради (BMS) и системи за индустриална автоматизация (IAS). Съобщенията на Modbus RTU имат проста 16-битова структура с циклична проверка на грешките (CRC). Простотата на тези съобщения гарантира надеждност. Благодарение на тази простота, основната 16-битова регистърна структура на Modbus RTU може да се използва за пакетиране на числа с плаваща запетая (floating point), таблици, ASCII текст, опашки и други не свързани данни. Този протокол използва основно сериен интерфейс RS-232 или RS-485 за комуникация и се поддържа от всяка търговска SCADA система, HMI, OPC сървър и софтуер за събиране на данни на пазара. Това прави интегрирането на Modbus-съвместимо оборудване в нови или съществуващи приложения за мониторинг и контрол изключително лесно.
RS485 е протокол, подобен на RS232, който се използва за осъществяване на серийна комуникация на данни. Двата протокола използват различни електрически сигнали за предаване на данни. Една от причините интерфейсът RS485 да се прилага в индустриална среда е способността му да обслужва няколко устройства, свързани към една и съща шина (bus). Това елиминира нуждата от наличие на няколко интерфейса при запитване към множество устройства. Можете да направите това чрез използване на шинен терминатор (bus terminator), преместване на превключвател или чрез малък резистор, закрепен към клема. Трябва да се внимава за използването на правилния интерфейс, тъй като протоколите RS485 и RS232 не са напълно съвместими. Можете да изградите шлюз (gateway) между RS232 и RS485 интерфейси, но обикновено ще видите протокола RS485 да се свързва директно към USB или Ethernet портове. Този по-евтин подход премахва изискването за използване на допълнителни компоненти.
Устройствата, използващи RS485 портове, обикновено прилагат протокола Modbus и осигуряват полудуплексно (half-duplex) предаване по балансирана линия, покриваща разстояния до 1200 м. Полудуплексната система се състои от един или повече предаватели и приемници, където само един предавател може да бъде активен в даден момент. Комуникацията се задейства от предавател, който отправя заявка към конкретен приемник. След това предавателят изчаква предварително определен период от време за отговор или решава, че няма да постъпи отговор от приемника (timeout).
Мрежата RS485 е изградена на базата на рамката master/slave. Master устройството (господарят) изпълнява ролята на предавател, отправяйки заявки към определен slave (подчинен), който действа като приемник. Master-ът слуша за отговор и ако не бъде получен в подходящ времеви интервал, прекратява комуникацията. В една Modbus RS485 мрежа комуникацията започва, когато master устройството изпрати запитване към свързан slave. Slave устройството прекарва времето си в мониторинг на мрежата за запитвания, адресирани специално до него. Когато бъде получено запитване, то или ще извърши действие, или ще отговори на master-а. Запитванията се инициират само от master устройството.
Протоколът Modbus дава на master устройството избор да адресира съобщения до конкретни slave устройства или да комуникира с всички едновременно. Това става чрез използване на специален адрес за „разпръскване“ (Broadcast). Някои продукти, като тези от Integra и SPR, не поддържат използването на този broadcast адрес. Операциите за четене и запис се изпращат чрез Modbus съобщения с помощта на "coils" (бобини). Една бобина се състои от 16-битови думи и двоични регистри. Slave устройството може само да отговаря на получено съобщение и никога не инициира комуникация с master-а.
На всяко slave устройство, свързано паралелно към шината RS485, се присвоява уникален Modbus slave ID (идентификатор). Всяка Modbus комуникация започва с изпращане на slave ID – или за да подкани дадено устройство да приеме запитване, или за да информира master-а кое устройство е предоставило отговора. По същия начин, по който работи свързаността при RS232, slave и master устройствата трябва да бъдат конфигурирани правилно. Параметри като скорост (baud rate) и паритет (parity) трябва да бъдат синхронизирани в цялата мрежа.
Форматът на съобщенията, използван в Modbus комуникацията между master и slave, е дефиниран в протокола:
Modbus запитването се състои от адреса на устройството (или broadcast), функционален код, който дефинира исканото действие, данни, изпратени със заявката, и поле за проверка на грешки.
Modbus отговорът се състои от полета, които потвърждават, че исканото действие е предприето, данни, изпратени с отговора, и поле за проверка на грешки. Slave устройството ще създаде съобщение за грешка като свой отговор, ако не е в състояние да изпълни заявката или ако грешки са повлияли на приемането на съобщението.
Режимът Modbus RTU (Remote Terminal Unit) предава съобщения в различен формат. Тук едно 8-битово съобщение съдържа два 4-битови шестнадесетични (hexadecimal) знака. Данните, използващи този режим на предаване, трябва да се изпращат в непрекъснат поток, което позволява по-добра пропускателна способност при сравнима скорост в бодове (baud rate) в сравнение с режима ASCII.
Шинен терминатор на Modbus мрежа или NBT
Повечето комуникационни шини, които използваме, са специфицирани с мисъл за терминиране на мрежовата шина (Network Bus Termination - NBT), наричано още край на линията (End of Line - EoL). Това е резистор за терминиране на линията, използван за комуникационния кабел RS485/Modbus RTU. Отражението в предавателната линия е резултат от прекъсване на импеданса, което движещата се вълна вижда, докато се разпространява по линията. За да се минимизират отраженията от края на мрежовия кабел, е необходимо да се постави терминиращ резистор близо до всеки от двата края на шината. NBT трябва да бъде инсталиран на последното устройство в веригата. Някои устройства на Sentera предоставят вътрешен NBT джъмпер, а най-новите модели предлагат Modbus регистър (HR 9), чрез който NBT може да бъде активиран или не. В случай че джъмперът или софтуерният контрол не са налични, трябва да се постави резистор 120Ω 1/2 W между диференциалната двойка проводници.
Повечето комуникационни шини, които използваме, са специфицирани с мисъл за терминиране на мрежовата шина (Network Bus Termination - NBT), наричано още край на линията (End of Line - EoL). Това е резистор за терминиране на линията, използван за комуникационния кабел RS485/Modbus RTU. Отражението в предавателната линия е резултат от прекъсване на импеданса, което движещата се вълна вижда, докато се разпространява по линията. За да се минимизират отраженията от края на мрежовия кабел, е необходимо да се постави терминиращ резистор близо до всеки от двата края на шината. NBT трябва да бъде инсталиран на последното устройство в веригата. Някои устройства на Sentera предоставят вътрешен NBT джъмпер, а най-новите модели предлагат Modbus регистър (HR 9), чрез който NBT може да бъде активиран или не. В случай че джъмперът или софтуерният контрол не са налични, трябва да се постави резистор 120Ω 1/2 W между диференциалната двойка проводници.
Винаги ли са необходими шинни терминатори?
В практиката тези терминиращи елементи не винаги присъстват, особено при къси трасета. Нужни ли са ни? Има аналогия, която илюстрира защо са ни необходими: една шина се държи като въже, държано между двама души. Когато единият иска да „говори“, той изпраща импулси по въжето към партньора си. Другият чувства тези импулси и разшифрова съобщението. Тези импулси обаче не изчезват – те ще се отразят обратно към човека, който ги е изпратил. Те ще продължат да се отразяват напред-назад, ставайки малко по-слаби всеки път, докато загубите не ги погълнат. Тези отражения объркват и двамата души, които губят време в опити да разкодират това фалшиво съобщение отново и отново. Шина, терминирана и в двата края, е като въже, фиксирано от двете страни с пружини. Когато импулсите достигнат края, човекът там може да ги почувства и след това импулсите се абсорбират от пружините. Ако пружините са с подходящ размер, импулсите ще бъдат „напълно потушени“ и няма да има отражение обратно.
В практиката тези терминиращи елементи не винаги присъстват, особено при къси трасета. Нужни ли са ни? Има аналогия, която илюстрира защо са ни необходими: една шина се държи като въже, държано между двама души. Когато единият иска да „говори“, той изпраща импулси по въжето към партньора си. Другият чувства тези импулси и разшифрова съобщението. Тези импулси обаче не изчезват – те ще се отразят обратно към човека, който ги е изпратил. Те ще продължат да се отразяват напред-назад, ставайки малко по-слаби всеки път, докато загубите не ги погълнат. Тези отражения объркват и двамата души, които губят време в опити да разкодират това фалшиво съобщение отново и отново. Шина, терминирана и в двата края, е като въже, фиксирано от двете страни с пружини. Когато импулсите достигнат края, човекът там може да ги почувства и след това импулсите се абсорбират от пружините. Ако пружините са с подходящ размер, импулсите ще бъдат „напълно потушени“ и няма да има отражение обратно.
Тъй като обикновено използваме RS-485, терминирането се избира въз основа на т.нар. характеристичен импеданс на кабела, който използвате. Това е информация, която производителят отпечатва върху кутията на кабела. Обикновено използваме стойности около 108-120 ома. Не е необходимо да използвате точно тази стойност, но се старайте да бъдете близо до нея и не използвайте резистори с много по-ниско съпротивление!
Винаги ли се нуждаете от терминиране в края на линията? Не съвсем. Това зависи от две неща: скорост на комуникация (baud rate) и дължина на шината. Колкото по-ниска е скоростта, толкова по-малко значение ще има отражението. Колкото по-голямо е разстоянието, толкова по-критично става то. Високоскоростните шини са много по-чувствителни, защото всичко се случва в много по-кратки времеви интервали. Един бит, прехвърлен при 38400 bps, трае само 26 микросекунди. При 9600 bps той е 104 микросекунди. Пик в напрежението на грешното място, който трае колкото дължината на един бит, може да причини комуникационни грешки. По-дългите шини са по-чувствителни, тъй като всяко отражение ще има тенденция да затихва след няколко „пътувания“ напред-назад по шината. При по-дълга шина това разсейване отнема повече време. Ако тя е достатъчно дълга, контролерите могат да изпратят нови съобщения, докато старите отражения все още се движат по линията.
Насоки за окабеляване на Modbus мрежа
За правилното функциониране трябва да се спазват следните 9 златни правила:
1. Комуникационен порт
Всяко устройство има комуникационен порт с два сигнала, означени като A и /B. Тези два сигнала свързват комуникационния кабел така, че всички устройства, участващи в комуникацията, да бъдат свързани паралелно. Всички клеми „A“ трябва да бъдат свързани заедно, както и съответно всички клеми „/B“. За да се избегнат грешки при свързване на много устройства, трябва да се използват кабели с един и същ цвят за клемите А и кабели с друг еднакъв цвят за всички връзки към клемите
/B (напр. син или синьо-бял за A и зелен или зелено-бял за /B).
Забележка: Размяната на връзките „A“ и „/B“ на дадено устройство не само предотвратява неговата комуникация, но може да спре работата на цялата система поради неправилно напрежение на поляризация. Това улеснява идентифицирането на грешки в окабеляването.
2. Свързване между устройствата
За разлика от много системи от много системи за разпределение на енергия, начинът на паралелно свързване тук е от решаващо значение. Системата RS485, използвана за Modbus комуникация, предвижда основен кабел, към който всички устройства трябва да бъдат свързани с възможно най9къси разклонения.
Забележка: Общата дължина не трябва да надвишава 1200 м.! По-дългите комуникационни линии могат да причинят отражения на сигнала и да генерират смущения и последващи грешки при приемането на данни.
Забележка: Общата дължина не трябва да надвишава 1200 м.! По-дългите комуникационни линии могат да причинят отражения на сигнала и да генерират смущения и последващи грешки при приемането на данни.
3. Максимално разстояние и максимален брой устройства
Основният кабел не трябва да бъде по-дълъг от 700 м.! Това разстояние не включва разклоненията (които все пак трябва да са къси). Максималният брой устройства, които могат да бъдат свързани към един основен кабел, е 247, включително главното устройство.
Забележка: Имайте предвид максималната консумация на ток и броя на устройствата, когато се използва PoM (Power over Modbus). Винаги правете справка с техническия документ на използваните артикули.
4. Използване на повторители
За да се увеличи обхватът на Modbus мрежата, могат да се използват повторители - устройства за усилване и регенериране на сигнала с два комуникационни порта. Чрез повторител основният кабел се разделя на различни сегменти, катокъм всеки могат да се свържат до 32 устройства (включително повторителите). Максималният брой повторители, свързани последователно, трябва да бъде 3. По-голям брой води до прекомерни закъснения в комуникацията.
5. Тип на използвания кабел
Трябва да с еизползва екранирана усукана двойка, като кабел UTP cat 5e или cat6, но могат да се използват и други типове с еквивалентни характеристики. Усуканата двойка се състои от два проводника, усукани един около друг. Екранът може да бъде оплетка или фолио.
Забележка: Тази подредба подобрява устойчивостта на електромагнитни смущения, тъй като кабелът образува поредица от последователни намотки, всяка от които е в противоположна посока на следващата, което неутрализира магнитните полета от околната среда.
6. Свързване на устройствата
В някои страни е разрешено поставянето на два кабела в една и съща винтова клема. В този случай е възможно входящият и изходящият кабел да се свържат директно към клемите на устройството без разклонение. Ако обаче клемата приема само един кабел, трябва да с енаправи разклонение чрез помощни клеми. Консултирайте се с нашия търговски отдел за подходящи адаптери. При устройства с RJ45 конектори този проблем не съществува.
7. Заземяване на екрана
Екранът на кабела трябва да бъде заземен само в една точка. Обикновено тази връзка се прави в единия край на главния кабел.
8. Терминиращо съпротивление (шина)
За да се избегнат отражения на сигнала, в двата края на главния кабел трябва да се постави терминиращ резистор от 120 Ohm. Ако общата дължина на главния кабел е по-малка от 50 м, терминиращите съпротивления могат да бъдат избегнати.
9. Свързване към компютър или SenteraWeb
Ако се използва персонален компютър за управление или за проверка на окабеляването преди пускане в експлоатация, се използва USB към RS485 сериен конвертор (CNVT-USB-RS485-V2). В случай че е необходимо връзка с интернет, в мрежата може да се добави Internet Gateway, който служи като комуникационен мост към SenteraWeb. Тази опция ви дава пълна свобода за връзка с инсталираните устройства от всяко място.