Modbus қарапайым тілмен: протокол қалай жұмыс істейді
Сергей Юсупов · Atlas Scada инженері
Modbus — өнеркәсіптегі ең кең таралған байланыс протоколы. Ол арқылы контроллерлер, датчиктер, есептегіштер және SCADA деректермен алмасады. Егер жабдық «Modbus тілін білсе», оны диспетчерлеу жүйесіне әрдайым дерлік қосуға болады. Бұл мақалада Atlas Scada инженерлері Modbus қалай құрылғанын қарапайым тілмен түсіндіреді.
Modbus дегеніміз не
Бұл құрылғылар арасында «жетекші-бағынышты» (master-slave) қағидаты бойынша деректермен алмасуға арналған ашық протокол. Жетекші (мысалы, контроллер немесе SCADA) бағыныштыларды (датчиктер, аспаптар) сұрап, олардан мәндерді алады немесе командалар жібереді. Ашықтығы мен қарапайымдылығы Modbus-ты өнеркәсіптегі іс жүзіндегі стандартқа айналдырды.
Modbus RTU және Modbus TCP
- Modbus RTU — RS-485 тізбекті желісі арқылы беру (сирек RS-232). Үлкен қашықтықта арзан әрі сенімді, бірақ баяуырақ; құрылғылар шинаға қосылады.
- Modbus TCP — Ethernet пен TCP/IP желісінің үстіндегі дәл сол протокол. Жылдамырақ, серверлермен және SCADA-мен байланысуға ыңғайлы, әдеттегі желілік инфрақұрылымды пайдаланады.
Екі жағдайда да алмасу логикасы бірдей — «көлік» (транспорт) қана өзгешеленеді.
Алмасу қалай құрылған
Жетекші құрылғы адресі мен функция кодын (оқу немесе жазу) қамтитын сұраныс жібереді, бағынышты деректермен жауап береді. Шинадағы әрбір құрылғының өзіндік бірегей адресі бар. Егер құрылғы жауап бермесе, жетекші байланыс қатесін тіркейді.
Регистрлер мен катушкалар
Modbus-тағы деректер төрт аймаққа бөлінген
- Discrete Inputs — дискретті кірістер (тек оқу): «қосулы/өшірулі» күйі.
- Coils — катушкалар (оқу және жазу): дискретті шығыстар, командалар.
- Input Registers — кіріс регистрлері (тек оқу): аналогтық мәндер.
- Holding Registers — сақтау регистрлері (оқу және жазу): уставкалар мен параметрлер.
Мәнді дұрыс оқу үшін регистрдің адресін, түрін және деректер форматын (бүтін сан, жылжымалы нүктелі сан, көбейткіш) білу қажет — мұны аспаптың регистрлер картасынан (Modbus map) алады.
Жиі кездесетін мәселелер
- Құрылғының немесе регистрдің адресі қате — дерек жоқ немесе «қоқыс» келеді.
- RS-485-те жылдамдық/жұптылық баптаулары әртүрлі — байланыс жоқ.
- Деректер форматы (байттар реті, көбейткіш) ескерілмеген — мәндер қате болады.
- RS-485-тің ұзын желісінде сәйкестендіруші резисторлар жоқ — іркілістер.
Регистрлерді адрестеу
Жиі шатасу — регистрлердің нөмірленуі. Құжаттамада адрестер «бірден» (мысалы, 40001) және «нөлден» (0) басталуы мүмкін. Баптау кезінде аспап пен SCADA қандай адрестеуді пайдаланатынын түсіну маңызды, әйтпесе деректер дұрыс емес регистрлерден оқылады.
Modbus және қауіпсіздік
Modbus қорғаныс үшін емес, сенімділік үшін жасалған: онда шифрлау да, аутентификация да жоқ. Сондықтан Modbus желілерін сенімді сегментте ұстайды, ал қашықтан қол жеткізуді тікелей «сыртқа» емес, қорғалған арналар мен диспетчерлеу платформасы арқылы ұйымдастырады.
Modbus қайда қолданылады
Қазандықтар мен жылу пункттері, сорғы станциялары, желдету, энергоресурстар есептегіштері, жиілік түрлендіргіштері, оператор панельдері. Қазіргі заманғы кез келген өнеркәсіптік жабдық дерлік Modbus-ты қолдайды — сол себепті ол әртекті жүйелерді интеграциялауға ыңғайлы.
Ең бастысы туралы қысқаша
Modbus — әртүрлі өндірушілердің жабдықтарын «достастырудың» қарапайым әрі сенімді тәсілі. RTU RS-485 арқылы, TCP — Ethernet арқылы жұмыс істейді; деректер регистрлер мен катушкаларда сақталады, ал дұрыс оқу үшін аспаптың регистрлер картасы қажет. Atlas Scada контроллерлерді бағдарламалау және SCADA енгізу кезінде Modbus RTU/TCP бойынша алмасуды баптайды — жабдық диспетчерлеумен «сөйлесе» бастайды.
