Menu
Modbus TCP срещу Modbus RTU: Старият протокол все още управлява половината от машините ви

Modbus TCP срещу Modbus RTU: Старият протокол все още управлява половината от машините ви

Modbus TCP срещу RTU — обяснение: регистри, окабеляване, скорост и защо този протокол, използван от десетилетия, все още е най-евтиният и надежден начин за събиране на OEE данни от машини.
Modbus TCP срещу Modbus RTU: Старият протокол все още управлява половината от машините ви

Modbus е прост, отворен сериен и Ethernet протокол, който позволява на контролер да чете и записва номерани местоположения за данни (регистри) вътре в промишлени устройства, а двата му доминиращи варианта са Modbus RTU (серийно, върху RS-485) и Modbus TCP (същият модел на данните опакован в Ethernet/IP пакети). Пуснат от Modicon през 1979 г., той е по-стар от повечето устройства на производствения ви под, и въпреки това все още, тихо, е начинът, по който голяма част от ПЛК, задвижвания, измервателни уреди и сензори комуникират. Не е бляскав. Няма вградена сигурност, няма самоопис и модел на данните, който да не изглежда остарял. Но е безплатен за имплементиране, тривиален за отстраняване на грешки и се поддържа от почти всичко — точно затова остава първият практичен избор за евтин и надежден запис на машинни данни.

Двата варианта накратко

И двата варианта споделят идентичен application слой. Същите кодове на функции и същата карта на регистрите работят, независимо дали байтовете пътуват по усукана двойка меден проводник или през Ethernet суич. Различава се транспортният слой под тях.

  • Modbus RTU работи върху сериен RS-485 (понакога RS-232). Това е мастър/слейв шина: един мастер осъществява опит за четене, до 247 слейв устройства отговарят и само едно устройство говори в даден момент. Фреймирането е компактно бинарно с 16-битов CRC за проверка на грешки. Типичните скорости са 9600 или 19200 бита в секунда, макар окабеляването да поддържа по-високи скорости.
  • Modbus TCP работи върху стандартен Ethernet на TCP порт 502. CRC-то се премахва (TCP вече гарантира доставката) и се заменя с кратък MBAP хедър. Няколко клиента могат да запитват един и същи сървър едновременно и получавате целия набор от мрежови инструменти: суичове, рутери, VLAN-и и дълги кабелни трасета.

Накратко: RTU е евтин, здрав и бавен по споделена линия; TCP е по-бърз, конкурентен и използва съществуващата ви фабрична мрежа, но изисква устройство с Ethernet възможности или шлюз.

Регистри: моделът на данните, който трябва да разберете

Modbus не изпраща именувани тагове. Той изпраща съдържанието на номерани местоположения и има точно четири таблици:

  • Coils (четене/запис на единични битове) за изходи като реле или команда за пуск.
  • Discrete inputs (само за четене битове) за неща като краен изключвател или флаг за грешка.
  • Input registers (само за четене 16-битови думи) за измервани стойности като температура или брояч.
  • Holding registers (четене/запис 16-битови думи) за зададени стойности, конфигурация и повечето неща, които всъщност ще проверявате.

Тъй като регистърът е само 16 бита, стойност по-голяма от 65535 (например 32-битов производствен брояч или плаваща скорост) се разделя върху два последователни регистъра. Ето класическата клопка: редът на байтовете и думите не е стандартизиран. 32-битов брой на произведени части равен на 1,000,000 може да пристигне като двойка думи (15, 16960) в едно устройство и (16960, 15) в друго. Ако броячът ви чете безсмислици, разменете реда на думите преди да обвинявате окабеляването. Винаги потвърждавайте картата на регистрите и ендиянността в ръководството на устройството, а не по догадки.

Пример: четене на производствен брояч за OEE

Да кажем, че искате броя на годните изделия от преса, за да го използвате в изчисление на наличност и производителност. Ръководството казва, че текущият общ брой се намира в задържащите регистри 40001 и 40002 като 32-битов беззнаков запис, високата дума първо.

  1. Издавате код на функция 03 (четене на задържащи регистри), начален адрес 0, количество 2. (Адрес 40001 се мапва към протоколен офсет 0; номерирането 4xxxx е човешка конвенция, по шината се използват нулево-базирани офсети.)
  2. Устройството връща две думи: 0x000F и 0x4240.
  3. Комбинирате ги: 0x000F4240 = 1,000,000 части.
  4. Проверявате пак след 60 секунди и четете 1,000,450. Делтата е 450 части за минута.

Съпоставете тази скорост с идеалното време за цикъл на машината и имате моментна производителност; добавете планирано време и спирания и получавате общата ефективност на оборудването (OEE). Това е цялата магия. Четене на два регистра, веднъж в секунда, превръща тиха преса в източник на данни и не струва нищо освен една заявка. Комбинирайте същия поток с проследяване на пропускателна способност и процент брак и ще видите загуби, които докладът на смяната никога не е уловил.

RTU срещу TCP: как да изберете

Решението обикновено се свежда до това какво устройството вече поддържа и колко далеч трябва да пътуват данните.

  • Изберете RTU когато устройството има само сериен порт, когато трасетата са в рамките на машина или клетка и когато верижите свързват няколко евтини измервателни уреда на една шина. RS-485 търпи добре електрически шум и не изисква суич.
  • Изберете TCP когато устройството има Ethernet порт, когато ви трябват няколко системи да четат едни и същи данни или когато разстоянията и управлението на кабели по сериен автобус станат болезнени. Самата възможност за едновременен достъп често решава избора.
  • Използвайте шлюз когато имате наследствени RTU устройства, но искате да ги свържете към мрежата. Modbus RTU‑to‑TCP шлюзът е малка, евтина кутийка, която свързва двете, и ви позволява да модернизирате събирането на данни, без да пипате машината.

Нито един от вариантите не е контролна система. Modbus е протокол за обмен на данни, не е SCADA и не е слой за безопасност, затова го дръжте извън всякакви пътища, които изискват гарантирано време или сигурност.

Клопката: бюджети за заявки и липса на сигурност

RTU е полудуплекс по споделена шина, така че времето на заявките има значение. Ако един мастер опитва да прочете 20 слейвa на 9600 бод и всяка транзакция (заявка плюс отговор плюс превключване) отнема приблизително 30 до 50 милисекунди, пълно обхождане на всичките 20 устройства отнема около секунда. Добавете още устройства или по-ниска скорост и данните ви остаряват. Когато има значение подсекундно разрешение, разпределете товара през няколко серийни порта или преместете натоварените устройства към TCP.

Сигурността е другият честен предупредителен момент. Класическият Modbus няма удостоверяване и няма криптиране; всеки на шината може да чете или записва всеки регистър. Дръжте го в изолирани OT мрежи или VLAN-и, никога не отваряйте порт 502 към интернет и третирайте правата за запис като привилегировани. Тази същата основа на данните захранва метрики за надеждност като MTBF и MTTR и подкрепя преминаване към поддръжка, базирана на състоянието, но само ако тръбата, която ги пренася, е проектирана с тези ограничения в mind.

Къде се вписва Fabrico

Fabrico е реално-времева основа за данни, която превръща тези сурови Modbus четения в решения. Тя улавя текущото производство и OEE от машинните данни, които вече имате, независимо дали стойностите пристигат през RTU, TCP или през шлюз помежду им. Когато машина няма ПЛК или не излага нищо полезно по шината, Fabrico може да чете състоянието визуално с компютърно зрение, така че да не сте блокирани от стара линия. Отгоре на мониторинга стои полеви готов CMMS за работни поръчки, активи, превантивно планиране и резервни части, което означава, че същият сигнал, който измерва спиране, може да задейства отговора на него. Fabrico е изградено в ЕС с място за съхранение на данните в ЕС — реален фактор, когато вашите производствени данни напускат пода на завода. За страната на поддръжката в този цикъл вижте как тя подкрепя преминаването от реактивна към проактивна поддръжка.

Често задавани въпроси

Дали Modbus е остарял?

Не. Той е стар (1979) и технически ограничен, но е отворен, безплатен за имплементиране и поддържан от огромна инсталирана база от ПЛК, задвижвания и измервателни уреди. За директни четения на регистри, което е повечето от задачите за мониторинг на машини, по-новите протоколи добавят комплексност без реална полза. Modbus остава прагматичният избор точно защото е навсякъде и е лесен за отстраняване на грешки.

Могат ли Modbus RTU и Modbus TCP да комуникират помежду си?

Не директно, защото използват различни физически носители, но те споделят същия application слой, така че Modbus шлюз превежда между тях безпроблемно. Картите на регистрите и кодовете на функциите са идентични от двете страни, което е причината мостът да е проста, евтина кутия, а не цялостно препроектиране.

Защо моята 32-битова стойност се чете неправилно през Modbus?

Почти винаги става дума за реда на думите или байтовете. 32-битовото число обхваща два 16-битови регистра и Modbus никога не е стандартизирал коя дума идва първа, така че стойността може да пристигне високата дума първо или ниската дума първо в зависимост от производителя. Проверете ръководството на устройството за реда на байтовете и думите и после коригирайте парсинга си. Рядко проблемът е в окабеляването.

Стар протокол, съвременна прозорливост: ако машините ви вече говорят Modbus, сте на една заявка от жив OEE. Запазете демонстрация на Fabrico, за да видите как реалните ви машинни данни се превръщат в решения.

Последно от блога

COSHH Explained: Controlling Substances Hazardous to Health
Прочетете сега
Начертайте вашата пътна карта за надеждност
Изчислете потенциалната възвръщаемост: запазете час за демонстрация
Начертайте вашата пътна карта за надеждност
Като натиснете бутона Приемам, вие давате съгласието си за използването на `бисквитки`, докато ползвате до този уебсайт. За да научите повече за това как `бисквитките` се използват и управляват, моля, вижте нашата Политика за поверителност и Декларация за Бисквитките