พื้นฐานบางอย่างเกี่ยวกับโปรโตคอล Modbus

Feb 22, 2025 ฝากข้อความ

การควบคุมอุตสาหกรรมได้ย้ายจากการควบคุมแบบสแตนด์อโลนไปสู่การตรวจสอบส่วนกลางและการควบคุมส่วนกลางและตอนนี้ได้เข้าสู่ยุคเครือข่ายตัวควบคุมอุตสาหกรรมที่เชื่อมต่อกับเครือข่ายยังให้การจัดการเครือข่ายที่สะดวก Modbus เป็นหนึ่งในโปรโตคอลเครือข่ายสำหรับตัวควบคุมอุตสาหกรรม


การแนะนำโปรโตคอลการสื่อสาร Modbus


Modbus Protocol ก่อนอื่นจากความเข้าใจที่แท้จริงนั้นรวมถึง MOD และ BUS สองส่วนแรกคือมันคือบัสนั่นคือโปรโตคอลบัสและ I2C, SPI ที่คล้ายกัน, รถบัสหมายความว่ามีโฮสต์มีทาสอุปกรณ์เหล่านี้บนรถบัสเดียวกัน

Modbus รองรับ Master Master เดียวทาสหลายตัวและอุปกรณ์ทาสสูงสุด 247 เครื่อง เกี่ยวกับ MOD เนื่องจากโปรโตคอลนี้ถูกใช้ครั้งแรกในคอนโทรลเลอร์ PLC ตัวควบคุม PLC ของ Modicon จะแน่นอนซึ่งเป็นที่มาของชื่อ Mod-Bus

ต่อมา Modicon ได้มาโดย Schneider (Schneider), Modbus Protocol ถูกนำมาใช้กันอย่างแพร่หลายในตัวควบคุมอุตสาหกรรม HMIs และเซ็นเซอร์และได้รับการยอมรับอย่างค่อยเป็นค่อยไปจากผู้ผลิตรายอื่นกลายเป็นโปรโตคอลการสื่อสารหลักสำหรับการสื่อสารกับอุปกรณ์ต่อพ่วง

 

Modbus เป็นของเลเยอร์แอปพลิเคชันที่เจ็ดในรูปแบบการอ้างอิง 7-} เลเยอร์ OSI และมีสองประเภทของเลเยอร์ข้อมูลลิงค์: ขึ้นอยู่กับโปรโตคอลอนุกรมมาตรฐานและโปรโตคอล TCP, ลวดทางกายภาพ 3- ลวด 232, 2- และสื่อการส่งอื่น ๆ

 

Modbus Protocol เป็นโหมดคำขอ/คำตอบของกระบวนการโต้ตอบโฮสต์เริ่มต้นคำขอการสื่อสารทาสตอบสนองต่อคำขอของโฮสต์ทาสจะไม่ส่งข้อมูลอย่างแข็งขันเมื่อไม่ได้รับคำขอของโฮสต์และทาสจะไม่สื่อสารกัน


คุณสมบัติของโปรโตคอลการสื่อสาร Modbus


(1) มาตรฐานเปิดผู้ใช้สามารถใช้โปรโตคอล Modbus ได้โดยไม่ต้องเสียค่าใช้จ่ายมั่นใจได้ว่าไม่จำเป็นต้องจ่ายค่าธรรมเนียมใบอนุญาตและจะไม่ละเมิดสิทธิ์ในทรัพย์สินทางปัญญา

(2) Modbus สามารถรองรับอินเทอร์เฟซไฟฟ้าที่หลากหลายเช่น Rs -232, Rs -485 ฯลฯ นอกจากนี้ยังสามารถส่งผ่านสื่อที่หลากหลายเช่นคู่บิดไฟเบอร์ออปติกไร้สายและอื่น ๆ

(3) รูปแบบเฟรมของ Modbus นั้นง่ายกะทัดรัดและเข้าใจง่าย เป็นเรื่องง่ายสำหรับผู้ใช้ที่จะใช้และง่ายสำหรับผู้ขายในการพัฒนา


ประเภทข้อมูล modbus 4


โปรโตคอล Modbus กำหนดว่าประเภทข้อมูลสำหรับการอ่านและการเขียนสามารถแบ่งออกเป็น 4 ประเภทต่อไปนี้ตามแอตทริบิวต์และประเภทการอ่านและประเภท:

1. อินพุตที่ไม่ต่อเนื่อง (อินพุต discretes):1 บิตอ่านอย่างเดียว

2. ขดลวด (ขดลวด):1- บิตอ่าน-เขียน

3. การลงทะเบียนอินพุต:16 บิตอ่านอย่างเดียว

4. การลงทะเบียนถือ:16 บิตอ่าน/เขียน

 

รุ่นโปรโตคอล Modbus


ปัจจุบันโปรโตคอล Modbus มีอยู่สำหรับอนุกรมอีเธอร์เน็ตและเครือข่ายอื่น ๆ ที่รองรับโปรโตคอลอินเทอร์เน็ต

อุปกรณ์ Modbus ส่วนใหญ่สื่อสารผ่านเลเยอร์ EIA แบบอนุกรม -485 ชั้นกายภาพ

สำหรับการเชื่อมต่อแบบอนุกรมมีสองตัวแปรที่แตกต่างกันเล็กน้อยในแง่ของการแสดงข้อมูลตัวเลขที่แตกต่างกันและรายละเอียดโปรโตคอล Modbus RTU เป็นตัวแทนขนาดกะทัดรัดของข้อมูลไบนารีและ Modbus ASCII เป็นตัวแทนของมนุษย์ ทั้งสองตัวแปรใช้การสื่อสารแบบอนุกรม รูปแบบ RTU ติดตามด้วยคำสั่ง/ข้อมูลที่มีการตรวจสอบความซ้ำซ้อนของวงจรในขณะที่รูปแบบ ASCII ใช้การตรวจสอบความซ้ำซ้อนตามยาว โหนดที่กำหนดค่าสำหรับตัวแปร RTU ไม่ได้สื่อสารกับโหนดที่กำหนดค่าสำหรับตัวแปร ASCII และในทางกลับกัน

สำหรับการเชื่อมต่อผ่าน TCP/IP (เช่น Ethernet) ที่มีตัวแปร Modbus/TCP หลายตัววิธีการนี้ไม่จำเป็นต้องมีการคำนวณการตรวจสอบ

สำหรับโปรโตคอลการสื่อสารทั้งสามแบบโมเดลข้อมูลและการเรียกใช้ฟังก์ชันจะเหมือนกันเฉพาะการห่อหุ้มจะแตกต่างกัน

Modbus มี ModbusPlus รุ่นขยาย (Modbus+ หรือ MB+) อย่างไรก็ตามโปรโตคอลนี้เป็นกรรมสิทธิ์ของ Modicon และแตกต่างจาก Modbus มันต้องใช้ตัวประมวลผลร่วมพิเศษเพื่อจัดการการหมุนโทเค็นความเร็วสูงคล้ายกับ HDLC มันใช้สายเคเบิลคู่บิด 1Mbit/s และมีการแยกการแปลงในแต่ละโหนดอุปกรณ์ที่ใช้การแปลง/การทริกเกอร์การแปลงแทนที่จะเป็นแรงดันไฟฟ้า/ระดับที่ทริกเกอร์ การเชื่อมต่อ Modbus Plus กับคอมพิวเตอร์ต้องใช้อินเทอร์เฟซพิเศษซึ่งมักจะเป็นบอร์ดที่รองรับ ISA (SA85), PCI หรือ PMCIA Bus

ดังนั้นเมื่อเราอ้างถึงโปรโตคอล Modbus มันเป็นสิ่งสำคัญที่จะต้องกำหนดว่ามันเป็นโหมดใดที่ยังคงมีความแตกต่างอย่างมากระหว่างโหมดที่แตกต่างกัน


รูปแบบเฟรมข้อมูล modbus


สิ่งแรกที่เราต้องรู้คือเฟรมข้อมูล modbus ปกติมีดังต่อไปนี้: ฟิลด์ที่อยู่ + รหัสฟังก์ชั่น + ข้อมูล + การตรวจสอบความผิดพลาดรวมทั้งรูปแบบเฟรม modbus นั้นเหมือนกันโดยไม่คำนึงถึงโปรโตคอลเวอร์ชันใดข้างต้น:


ส่วนใหญ่รวมถึง:


1. ฟิลด์ที่อยู่:นั่นคือที่อยู่ทาสที่จะเข้าถึงโดยต้นแบบช่วงของมัน 0 ~ 247

2. รหัสฟังก์ชั่น:เช่นการดำเนินการประเภทใดที่อาจารย์ต้องการแสดงบนทาส

3. ข้อมูล:หากคำขอของต้นแบบคือการอ่านข้อมูลแล้ว "ข้อมูล" ควรมีข้อมูลต่อไปนี้: จะเริ่มอ่านข้อมูล + ข้อมูลที่จะอ่านได้มากแค่ไหน หากคำขอของต้นแบบคือการเขียนข้อมูลไปยังทาสแล้ว "ข้อมูล" ควรมีข้อมูลต่อไปนี้: จะเริ่มเขียนข้อมูล + ข้อมูลจำนวนเท่าใดที่จะเขียน + ข้อมูลเฉพาะที่จะเขียน

4. ข้อผิดพลาดตรวจสอบ:เพื่อให้แน่ใจว่าความถูกต้องของการส่งข้อมูลโปรโตคอล Modbus จะเพิ่มการตรวจสอบข้อผิดพลาดสองไบต์ที่ส่วนท้ายของเฟรมข้อมูล


รหัสฟังก์ชัน modbus

รหัสฟังก์ชั่น Modbus ซึ่งเขียนไว้ในกรอบข้อมูลคำขอโฮสต์กำหนดว่าโฮสต์อ่านหรือเขียนไม่ว่าจะอ่านขดลวดปริมาณหรือลงทะเบียนไม่ว่าจะเป็นการลงทะเบียนเดียวหรือการลงทะเบียนหลายรายการ ฯลฯ และข้อมูลประเภทใดที่โฮสต์ร้องขอ


รหัสฟังก์ชันมีสามประเภทหลัก: รหัสฟังก์ชั่นสาธารณะรหัสฟังก์ชั่นที่ผู้ใช้กำหนดและรหัสฟังก์ชั่นที่สงวนไว้

1. รหัสฟังก์ชันสาธารณะ

-รหัสฟังก์ชั่นที่กำหนดไว้ดีกว่า

-มีความสามารถพิเศษ

-เปลี่ยนแปลงได้โดยองค์กร Modbus

-พิสูจน์ได้อย่างเปิดเผย

-มีการทดสอบความสอดคล้องที่ใช้งานได้

-พิสูจน์ใน MB IETF RFCS

-รหัสฟังก์ชั่นที่กำหนดสาธารณะที่กำหนดและรหัสฟังก์ชั่นที่ไม่ได้กำหนดไว้สำหรับการใช้งานในอนาคต


2. รหัสฟังก์ชั่นที่ผู้ใช้กำหนด

มีสองช่วงการกำหนดรหัสฟังก์ชั่นที่ผู้ใช้กำหนดคือ 65 ถึง 72 และทศนิยม 100 ถึง 110

-ผู้ใช้สามารถเลือกและใช้รหัสฟังก์ชั่นโดยไม่ได้รับการอนุมัติจากองค์กร Modbus

-การใช้รหัสฟังก์ชั่นที่เลือกไม่ได้รับประกันว่าจะไม่ซ้ำกัน

-หากผู้ใช้ต้องการรีเซ็ตฟังก์ชั่นเป็นรหัสฟังก์ชั่นสาธารณะจากนั้นผู้ใช้จะต้องเริ่ม RFC เพื่อแนะนำการเปลี่ยนแปลงในการจำแนกประเภทสาธารณะและกำหนดรหัสฟังก์ชั่นสาธารณะใหม่


3. รหัสฟังก์ชันที่สงวนไว้

-รหัสฟังก์ชั่นที่ใช้กันทั่วไปโดยบาง บริษัท สำหรับผลิตภัณฑ์ดั้งเดิมและไม่สามารถใช้งานสาธารณะได้

ที่ใช้กันจริงที่สุดคือรหัสฟังก์ชั่น 4 รหัสในรหัสฟังก์ชันสาธารณะ: 03/04/06/10

0 x03: อ่านการลงทะเบียนการถือครองหลายรายการ

0 x04: อ่านการลงทะเบียนอินพุต

0 x06: เขียนการลงทะเบียนการถือครองเดี่ยว

0 x10: เขียนการลงทะเบียนการถือครองหลายรายการ

เนื่องจาก PLC ส่วนใหญ่ควบคุมผู้ติดต่อรีเลย์ขดลวด (ขดลวด) จึงถูกอ่านและเขียนบน PLC บ่อยครั้ง ที่นี่จำเป็นต้องให้ความสนใจเป็นพิเศษกับจุดหนึ่งคือ: การลงทะเบียนถือการลงทะเบียนต้องแยกความแตกต่างระหว่าง {{0}} x 0 6 เขียนลงทะเบียนเดี่ยวและ 0x10 เขียนลงทะเบียนหลายครั้ง
 

ส่งคำถาม

whatsapp

โทรศัพท์

อีเมล

สอบถาม