ModbusMaster
แอพ Windows แบบสแตนด์อโลนที่รองรับโปรโตคอล Modbus RTU
, TCP
, UDP
, RTUoverTCP
, RTUoverUDP
, ASCIIoverRTU
, ASCIIoverTCP
และ ASCIIoverUDP
รวมไปถึงเวอร์ชัน Mono สำหรับ Linux และ Mac OS X ซึ่งเป็นเวอร์ชัน VB Net ดังนั้น:
- สำหรับ Linux คุณจะต้องติดตั้งแพ็คเกจ
mono-complete
และ mono-vbnc
- Mac อาจแตกต่างกันไปขึ้นอยู่กับเวอร์ชันของ OS X อาจติดตั้งแพ็คเกจ
mono
และ mono-basic
หากเปิดใช้งานไฟร์วอลล์ ระบบอาจแจ้งให้คุณอนุญาตให้แอปนี้สื่อสารบนเครือข่าย:
- โดยปกติควรได้รับอนุญาตให้สื่อสารบนเครือข่ายส่วนตัว ไม่เช่นนั้นอาจทำงานไม่ถูกต้อง
- อย่าอนุญาตให้สาธารณะเข้าถึงได้เว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่
- เมื่อการทดสอบเสร็จสิ้น อย่าลืมลบแอปนี้ออกจากรายการแอปที่อนุญาตของไฟร์วอลล์
แอปได้รับการออกแบบมาเพื่อให้สามารถเรียกใช้แอปหลายอินสแตนซ์พร้อมกันได้ เช่น:
- ใช้โปรโตคอลเดียวกันสำหรับแต่ละอินสแตนซ์ แต่มีหมายเลขพอร์ตต่างกัน คล้ายกับ:
- IP 127.0.0.1 พอร์ต TCP 501 และ IP 127.0.0.1 พอร์ต TCP 502
- ใช้โปรโตคอลที่แตกต่างกันผสมผสานกับความช่วยเหลือของเครื่องมืออื่นๆ (เช่น com0com สำหรับโปรโตคอล RTU บน Windows)
ทั้งหมดนี้อิงจากไลบรารี nModbus .NET 3.5 ที่ได้รับการแก้ไข ลิขสิทธิ์ (c) 2006 Scott Alexander:
- สิ่งเหล่านี้รวมไว้เป็นทรัพยากรสำหรับเวอร์ชัน Windows แต่แยกจากกันสำหรับเวอร์ชัน Mono
มีวัตถุประสงค์เพื่อใช้เป็นเครื่องมือทดสอบอย่างรวดเร็ว:
- สามารถทดสอบกับ ModbusSlaveSimulation ที่เป็นคู่กัน (ตรวจสอบวิดีโอเพิ่มเติมด้านล่าง)
ทางเลือกที่ใช้งานง่ายแทนคือซอฟต์แวร์ AdvancedHMI เนื่องจากมีฟังก์ชันการทำงานสูงและฟรี
ภาพหน้าจอ
ฟังก์ชั่นการทำงาน
- อ่านความคิดเห็นภายในแบบฟอร์มและวางเมาส์ไว้เหนือป้ายกำกับเพื่อดูคำแนะนำ
- ไม่มีที่อยู่ออฟเซ็ต (โดยที่ xxxxx เปลี่ยนจาก 00000 ถึง 65534):
- คอยส์ = 0xxxxx
- อินพุตแยก = 1xxxxx
- อินพุตรีจิสเตอร์ = 3xxxx
- ทะเบียนการถือครอง = 4xxxx
- นอกเหนือจาก
Int16
ซึ่งเป็นที่อยู่ลงทะเบียนเท่านั้นโดยไม่มีตัวแก้ไข แอปนี้ยังรองรับ:- ตัวดัดแปลง
U
, F
, L
, UL
และ S
(ซึ่งใช้สำหรับ UInt16
, Float32
, Int32
, UInt32
, String
)
- มีการเพิ่มการรองรับค่า 64 บิต - Float64, Integer64 ที่ลงนามและไม่ได้ลงนาม:
- ใช้ตัวดัดแปลง
FQ
, LQ
และ UQ
(โดยที่ Q
ย่อมาจาก Quad Word)
- มีการเพิ่มการสนับสนุนการทดลองสำหรับค่า 128 บิต - Integer128 ที่ลงนามและไม่ได้ลงนาม:
- ใช้ตัวดัดแปลง
LO
และ UO
(โดยที่ O
ย่อมาจาก Octa Word)
- นอกจากนี้ยังรองรับการอ่าน/การเขียนบิต/อักขระ:
- เลือกบิต/อักขระที่ต่อเนื่องกันภายในองค์ประกอบเดียวหรือบิต/อักขระแต่ละตัวที่แน่นอนจากแต่ละองค์ประกอบหลาย ๆ
- จะต้องระบุค่าเดียวหรือจำนวนที่แน่นอนของค่าที่คั่นด้วยเครื่องหมายจุลภาคในการเขียนหากหมายเลข
Points
> 1
- สำหรับโปรโตคอลที่ใช้ RTU บนพีซีเครื่องเดียว แอปนี้สามารถใช้ความช่วยเหลือจาก:
- โปรแกรม com0com Windows เพื่อให้คู่พอร์ตอนุกรมเสมือน
- กล่องข้อความเพิ่มเติมอนุญาตให้ป้อนข้อมูลพอร์ตอนุกรมด้วยตนเองซึ่งมีไว้สำหรับ Linux เพื่อให้สามารถเข้าถึงคู่พอร์ตเสมือน tty0tty เช่น
/dev/tnt0
<=> /dev/tnt1
ได้- กล่องนี้ถูกลบออกในเวอร์ชัน Mac Mono
- ไลบรารี่รองรับ
Masked Bit Write
, โค้ดฟังก์ชัน 22 (0x16H หรือ FC22) - แอปนี้ยังมีโค้ดในตัวสำหรับอุปกรณ์ทาสที่ไม่รองรับ
FC22
:- สิ่งนี้เกี่ยวข้องกับกระบวนการ
read-modify-write
ซึ่งอาจใช้เวลาเล็กน้อยและอาจเขียนทับค่าที่เปลี่ยนแปลงระหว่างการทำงาน
สิ่งสำคัญ: ใช้ความระมัดระวังเมื่อพยายามเขียนค่าใดๆ ไปยัง PLC
การใช้งาน
-> สำหรับวินโดวส์
- ใช้ไฟล์ปฏิบัติการ Windows จากโฟลเดอร์
exe
หรือทำตามคำแนะนำด้านล่างเพื่อสร้างไฟล์ด้วยตนเอง:- ดาวน์โหลดและติดตั้ง Visual Studio community edition (ควรเป็นปี 2019)
- ดาวน์โหลดและแตกไฟล์ zip ของโปรเจ็กต์นี้
- เปิดสิ่งนี้เป็นโครงการที่มีอยู่ใน Visual Studio และบนเมนูให้ทำ:
- สร้าง/สร้างโซลูชัน (หรือกด Ctrl-Shift-B)
- ดีบัก/เริ่มดีบัก (หรือกด F5) เพื่อเรียกใช้แอป
- ค้นหาไฟล์ EXE ที่สร้างขึ้นในโฟลเดอร์
/bin/Debug
และคัดลอกไปยังโฟลเดอร์ที่คุณต้องการหรือเดสก์ท็อป
-> สำหรับโมโน
- ตรวจสอบให้แน่ใจว่าได้ติดตั้ง Mono บนคอมพิวเตอร์ของคุณแล้ว:
- ทั้งแพ็คเกจ
mono-complete
และ mono-vbnc
สำหรับ Linux - สำหรับ Mac คุณอาจต้องทดลอง อาจติดตั้งแพ็คเกจ
mono
และ mono-basic
- ดาวน์โหลดและแตกไฟล์ zip ของโปรเจ็กต์นี้ และค้นหาไฟล์ zip โมโนในโฟลเดอร์
Mono
- แตกไฟล์ 4 ไฟล์และอาจเปลี่ยนชื่อโฟลเดอร์และ/หรือไฟล์ exe ที่สร้างขึ้นใหม่ให้สั้นลงได้หากต้องการ เพียงเพื่อทำให้การนำทางเทอร์มินัลเร็วขึ้น
- เปิดเทอร์มินัลนำทางไปยังโฟลเดอร์และพิมพ์:
sudo mono ModbusMaster.exe
:- บน Mac คุณอาจต้องเปลี่ยนไปใช้บัญชี superuser
su
- สำหรับการทดสอบโปรโตคอล RTU บน Linux คุณสามารถติดตั้งและใช้คู่พอร์ตเสมือน tty0tty ในขณะที่บน Mac OS X เวอร์ชันใหม่กว่าดูเหมือนจะมีเทอร์มินัลหลอก - คู่ของอุปกรณ์เช่น
/dev/ptyp3
<=> /dev/ttyp3
หมายเหตุสำหรับผู้ใช้ Mac: สิ่งนี้ได้รับการทดสอบบนคอมพิวเตอร์ iMac G5 PowerPC รุ่นเก่าที่มี Mono v2.10.2 มีพฤติกรรมแปลก ๆ เกิดขึ้นในแง่ที่ว่าแอปสูญเสียโฟกัส จึงรบกวนการสื่อสาร TCP ในโหมดอ่านอัตโนมัติ มีกล่องข้อความที่มีเครื่องหมาย X สีแดงซึ่งคุณสามารถคลิกเพื่อพยายามรักษาโฟกัสไว้ได้ (หากคุณทำอย่างอื่นหลังจากนั้น ให้คลิกอีกครั้ง) เนื่องจากฉันไม่สามารถทดสอบด้วยวิธีอื่นได้ ดังนั้นจึงเหลือให้คุณทดลอง
วีดีโอ
Modbus.TCP.Communication.mp4
ใบอนุญาต
ได้รับอนุญาตภายใต้ใบอนุญาต MIT - ดูไฟล์ README.txt ภายในโฟลเดอร์ Resources
เครื่องหมายการค้า
เครื่องหมายการค้าใดๆ และทั้งหมด ไม่ว่าจะกล่าวถึงโดยตรงหรือโดยอ้อมในโครงการนี้เป็นของเจ้าของที่เกี่ยวข้อง
ทรัพยากรที่เป็นประโยชน์
ฟอรัมเว็บไซต์ AdvancedHMI ซึ่งเป็นอีกหนึ่งโครงการโอเพ่นซอร์ส