บทนำของโปรโตคอลจดหมายข่าว ModBus
โปรโตคอล Modbus เป็นโปรโตคอลการสื่อสารทั่วไปที่ใช้กันอย่างแพร่หลายในด้านการควบคุมอุตสาหกรรมในปัจจุบัน ด้วยโปรโตคอลนี้ คอนโทรลเลอร์สามารถสื่อสารระหว่างกัน หรือระหว่างคอนโทรลเลอร์ผ่านเครือข่าย (เช่น Ethernet) กับอุปกรณ์อื่น ๆ โปรโตคอล Modbus ใช้เทคโนโลยีการสื่อสารแบบ Master-Slave ซึ่งหมายความว่าอุปกรณ์หลักสอบถามและใช้งานอุปกรณ์ Slave อย่างแข็งขัน โดยทั่วไปจะเรียกโปรโตคอลที่ใช้โดยฝ่ายอุปกรณ์ควบคุมหลักว่า Modbus Master และโปรโตคอลที่ใช้จากฝ่ายอุปกรณ์เรียกว่า Modbus Slave อุปกรณ์หลักทั่วไปรวมถึงคอมพิวเตอร์อุตสาหกรรมและควบคุมอุตสาหกรรม ฯลฯ อุปกรณ์ทาสทั่วไปเช่นตัวควบคุมโปรแกรม PLC เป็นต้น อินเทอร์เฟซการสื่อสารทางกายภาพของ Modbus สามารถเลือกพอร์ตอนุกรม (รวมถึง RS232 และ RS485) หรือพอร์ตอีเธอร์เน็ต การสื่อสารเป็นไปตามกระบวนการต่อไปนี้:
●อุปกรณ์หลักส่งคำขอไปยังอุปกรณ์ทาส
●วิเคราะห์และจัดการกับคำขอของอุปกรณ์หลักจากอุปกรณ์และส่งผลลัพธ์ไปยังอุปกรณ์หลัก
●หากมีข้อผิดพลาดใด ๆ รหัสการทำงานที่ผิดปกติจะถูกส่งคืนจากอุปกรณ์
ข้อมูลผลิตภัณฑ์ของซอฟต์แวร์โปรโตคอลการสื่อสาร Yingchuang ModBus
ผลิตภัณฑ์ซอฟต์แวร์โปรโตคอลการสื่อสาร ModBus เปิดตัวโดย บริษัท Yingchuang ส่วนใหญ่จะใช้ในสภาพแวดล้อมเมนบอร์ดฝังตัว ARM9 ของ Yingchuang เมนบอร์ดควบคุมอุตสาหกรรมของ Yingchuang มีพอร์ตอนุกรมที่อุดมไปด้วยทรัพยากรเครือข่ายอินเทอร์เฟซ GPIO ทั่วไป ฯลฯ ในขณะเดียวกันก็มีความสามารถในการประมวลผลที่แข็งแกร่ง เมื่อรวมกับซอฟต์แวร์โปรโตคอลการสื่อสาร ModBus แล้วจะสามารถสร้างแพลตฟอร์มแอปพลิเคชันสําหรับการควบคุมหลัก (Master) และอุปกรณ์ (Slave) ที่สอดคล้องกับข้อกําหนดการสื่อสารของ ModBus ได้สะดวกมาก สําหรับคุณสมบัติของวิธีการหลักและทาสของการสื่อสาร ModBus แพ็คเกจโปรโตคอลการสื่อสาร ModBus ของ Yingchuang แบ่งออกเป็นสองส่วนที่สามารถใช้งานได้อย่างอิสระ ได้แก่ "ซอฟต์แวร์โปรโตคอลหลักของ ModBus" (เรียกย่อว่า modbus_Master) และ "ซอฟต์แวร์โปรโตคอลอุปกรณ์ ModBus" (เรียกย่อว่า modbus_Slave) ปัจจุบันซอฟต์แวร์โปรโตคอลการสื่อสาร Yingchuang ModBus กำลังทำงานภายใต้สภาพแวดล้อม WinCE ซึ่งทั้งหมดมีให้กับลูกค้าในรูปแบบของฟังก์ชัน C บวกไลบรารี LIB แบบคงที่ โดยมีลักษณะสำคัญดังนี้
●เหมาะสำหรับงานอุตสาหกรรมแบบเรียลไทม์
●สามารถรองรับแอ็พพลิเคชันโปรโตคอลการสื่อสาร ModBus โดยใช้พอร์ตอนุกรมหรือแอ็พพลิเคชันโปรโตคอลการสื่อสาร ModBus ของ TCP
●โหมดการส่ง RTU
●รองรับการทำงานของรหัสฟังก์ชั่น Modbus ส่วนใหญ่รวมถึงการทำงานบิตไปยังคอยล์อินพุตสวิตช์ไม่ต่อเนื่องและการทำงานไบต์ไปยังการลงทะเบียน
●รองรับการออกอากาศที่อยู่
●สามารถตั้งค่าการหมดเวลาของการสื่อสาร ModBus ได้อย่างยืดหยุ่น
●สามารถรับรายละเอียดของรหัสข้อผิดพลาดของโปรโตคอลการถ่ายโอนในจดหมายข่าว
แผนผังความสัมพันธ์จดหมายข่าวซอฟต์แวร์โปรโตคอล Yingchuang ModBus

รหัสฟังก์ชันที่รองรับโดยซอฟต์แวร์โปรโตคอล Yingchuang ModBus
รหัสฟังก์ชั่น |
คำอธิบาย |
1 |
อ่านขดลวดเดียว |
2 |
อ่านอินพุตปริมาณที่ไม่ต่อเนื่อง |
3 |
อ่านลงทะเบียนหลาย |
4 |
อ่าน Input Register |
5 |
เขียนขดลวดเดี่ยว |
6 |
เขียนการลงทะเบียนเดียว |
15 |
เขียนหลายม้วน |
16 |
เขียนลงทะเบียนหลาย |
22 |
ลงทะเบียนเขียนโล่ |
23 |
อ่าน / เขียนลงทะเบียน |
วิธีการใช้ซอฟต์แวร์ขั้นพื้นฐาน
เพื่อความสะดวกในการใช้งานแอปพลิเคชันการรักษารูปแบบรหัสที่สอดคล้องกันสำหรับสื่อการสื่อสารที่แตกต่างกันฟังก์ชัน API ในซอฟต์แวร์โปรโตคอล ModBus ที่จัดทำโดย Yingchuang (รวมถึง modbus_Master และ modbus_Slave) สามารถรองรับโปรโตคอล Modbus ที่ใช้พอร์ตอนุกรมและ TCP ในเวลาเดียวกันแอปพลิเคชันเพียงแค่ต้องแยกแยะความแตกต่างด้วยพารามิเตอร์ที่แตกต่างกันเมื่อเรียกฟังก์ชันเริ่มต้นโปรดดูไฟล์ส่วนหัวที่เกี่ยวข้องสำหรับคำแนะนำเกี่ยวกับพารามิเตอร์: modbus_Master.h และ modbus_slave.h
1 ใบสมัคร modbus_Master
การประยุกต์ใช้เป็นโหมดไคลเอ็นต์ Modbus ส่วนใหญ่เป็นการเตรียมคำขอและส่งคำขอไปยังอุปกรณ์เซิร์ฟเวอร์และรอการตอบสนองจากเซิร์ฟเวอร์ เมื่อทําการพัฒนาแอปพลิเคชันดังกล่าว ผู้ใช้สามารถอ้างอิงวรรณกรรมมาตรฐานของ Modbus และคู่มือข้อมูลอินเทอร์เฟซการสื่อสารของอุปกรณ์ที่ถูกกล่าวหาและเรียกแพ็คเกจซอฟต์แวร์ modbus_Master ที่จัดทําโดย Yingchuang โดยตรงเพื่อให้ฟังก์ชั่น API ปฏิบัติการที่สอดคล้องกันเพื่อเสร็จสิ้นการเข้าถึงและควบคุมอุปกรณ์เซิร์ฟเวอร์ เมื่อทำการพัฒนาแอปพลิเคชันดังกล่าวผู้ใช้จะต้องรวม modbus_master.h / modbus_master.lib เท่านั้น
2, การประยุกต์ใช้ modbus_Slave
ในฐานะที่เป็นแอปพลิเคชันของโหมดเซิร์ฟเวอร์ ModBus จําเป็นต้องใช้การวิเคราะห์และการตอบสนองของรายงานแอปพลิเคชัน ModBus เป็นหลัก แต่นี่เป็นเพียงส่วนหนึ่งของการสื่อสารทั้งหมดของ ModBus อีกส่วนหนึ่งคือต้องมีการเข้าถึงข้อมูลแอปพลิเคชัน เนื้อหาของส่วนนี้ต้องการให้ผู้ใช้กําหนดเอง เพื่อความสะดวกในการใช้งานของลูกค้าในแพคเกจ modbus_slave ในรูปแบบของตัวชี้ฟังก์ชั่นโหลดอัตโนมัติของฟังก์ชั่นอินเทอร์เฟซผู้ใช้เหล่านี้เชื่อมโยงการประมวลผลข้อมูลแอปพลิเคชันของผู้ใช้และการตอบสนองรายงานของแอปพลิเคชัน modbus ผู้ใช้เพียงแค่ต้องกำหนดฟังก์ชันอินเทอร์เฟซเหล่านี้ตามความต้องการเพื่อให้บรรลุฟังก์ชั่นที่สอดคล้องกันและคำจำกัดความเฉพาะของแต่ละฟังก์ชั่นสามารถทำได้ผ่านไฟล์ CPP เฉพาะ: DataProvider.cpp
สิ่งนี้แสดงให้เห็นว่าเมื่อพัฒนาแอปพลิเคชันประเภทนี้ จําเป็นต้องมีเนื้อหาสองส่วน ส่วนหนึ่งเป็นฟังก์ชัน API ที่กําหนดโดย modbus_slave.h/modbus_slave.lib อีกส่วนหนึ่งคือฟังก์ชันอินเทอร์เฟซข้อมูลผู้ใช้ที่กำหนดโดย DataProvider.h / DataProvider.cpp ซึ่งฟังก์ชันอินเทอร์เฟซต้องการให้ผู้ใช้ใช้งานเฉพาะใน DataProvider.h.cpp
เพื่อตอบสนองต่อกระดาษแอ็พพลิเคชัน ModBus ในเวลาที่เหมาะสมควรสังเกตว่าเมื่อออกแบบโปรแกรมควรออกแบบเธรดเพื่อเรียกฟังก์ชันการดำเนินการ modbus_slave ซ้ำ ๆ ซึ่งเป็นโหมดบล็อก
ยกตัวอย่างเช่น
(1) เริ่มต้นข้อตกลงฝ่ายอุปกรณ์ modbus
hPort = mbusSlave_StartupServer (_T('*'), 1, 10000, mbusSlave_Interface );
หรือ
hPort=mbusSlave_StartupServer(_T)'COM3: 9600-8-1-0'), 1,10000, mbusSlave_Interface );
(2) เรียกฟังก์ชั่นการดำเนินการ Serverloop ในการตอบสนองต่อการร้องขอในเธรด
ขณะที่( 1 )
{
//เรียกฟังก์ชันการดำเนินการสำหรับการวิเคราะห์และการตอบสนองต่อรายงานของ ModBus
ผลลัพธ์ = mbusSlave_ServerLoop( hPort );
ถ้า(ผลลัพธ์!=0)//ตรวจสอบว่าคืนข้อผิดพลาดหรือไม่
{
//การจัดการข้อผิดพลาด: ตัวอย่างนี้คือการรับและพิมพ์ข้อความของรหัสข้อผิดพลาด
wcscpy( szText, mbusSlave_GetErrorText( ผลลัพธ์) ;
i1 = wcslen( szText );
ถ้า( i1 > 0 )
{
wcstombs( strText, szText, i1 );
พิมพ์ (รหัสข้อผิดพลาด: %s! n'Stretex);
}
}
}
ซอฟต์แวร์โปรโตคอลการสื่อสาร ModBus ที่จัดทําโดย Yingchuang ก่อนหน้านี้ให้บริการแก่ลูกค้าในรูปแบบของฟังก์ชั่น C บวกไลบรารีแบบคงที่ (modbus.lib หรือไฟล์ libmodbus.a) เนื่องจากลูกค้ามีการใช้งานมากขึ้นเรื่อย ๆ Inchuang จึงติดตั้งโปรโตคอลการสื่อสาร ModBus โดยเฉพาะซอฟต์แวร์โปรโตคอลหลัก (modbus_Master) ในรูปแบบไลบรารีแบบไดนามิก (modbus_Master.dll หรือไฟล์ libbusmaster.so) ลงในระบบเคอร์เนลของเมนบอร์ดควบคุมอุตสาหกรรมฝังตัวของ Inchuang เพื่ออำนวยความสะดวกในการเรียกใช้งานของลูกค้า เมนบอร์ดควบคุมอุตสาหกรรมที่ติดตั้งโปรโตคอล Modbus ไว้ล่วงหน้าประกอบด้วยเมนบอร์ดทั้งหมดของซีรีย์ Yingchuang ESM (ESM6802, ESM6800, ESM335x, ESM928x ฯลฯ )
อ้างอิงที่เกี่ยวข้อง
| 4 ~ 20mA รูปแบบการประยุกต์ใช้แหวนปัจจุบัน | ซอฟต์แวร์โปรโตคอลการสื่อสารหลักของ Modbus ภายใต้ WinCE | |
| ซอฟต์แวร์ Modbus Device Party Protocol ภายใต้ WinCE | Ingchuang Embedded Linux เมนบอร์ดควบคุมอุตสาหกรรมสนับสนุนซอฟต์แวร์โปรโตคอลหลักของ Modbus | |
| การแนะนำซอฟต์แวร์ Modbus Device Party Protocol ภายใต้ Linux | ESM6802 สนับสนุนการพัฒนาโปรแกรม Qt MODBUS | |
| ติดตั้งโปรโตคอลการสื่อสาร Modbus ไว้ในเมนบอร์ด Yingchuang |
