วิธีการใช้ Modbus บน xLogic Micro PLCs: การตั้งค่า RS485 และ TCP สำหรับ SCADA

Modbus มีอายุสี่สิบปีและยังคงทำงานในครึ่งหนึ่งของโลกอุตสาหกรรม มีเหตุผล: มันง่าย มันเปิดกว้าง และมันทำงานบนสายสองเส้นและการอธิษฐาน เมื่อ SCADA ของคุณต้องการอ่านMicro PLC, Modbus คือภาษาที่คุณจะพูด — และครอบครัว xLogic พูดมันใน RTU, ASCII และ TCP, ในฐานะมาสเตอร์หรือสเลฟ

นี่คือเส้นทางการตั้งค่า พร้อมรายละเอียดที่หน้าแผ่นข้อมูลไม่เคยพิมพ์

อนุกรมก่อน: RS485 และ Modbus RTU

พอร์ต RS485 พูด Modbus RTU หรือ ASCII กับอุปกรณ์ใด ๆ ที่มีพอร์ต RS485 มาตรฐาน — VFDs, มิเตอร์พลังงาน, HMIs, PLC อื่น ๆ ต่อมันผ่านพอร์ตในตัว หรือเพิ่มโมดูล SR-RS485 สำหรับ CPU ที่ไม่มีเทอร์มินัล RS485 ในตัว สาย PRO-RS485 เปลี่ยนพอร์ตการเขียนโปรแกรมให้เป็นพอร์ต RS485 ที่แยกออกเมื่อคุณอยู่ในสถานการณ์ที่ต้องการ

อัตราบอด: 9600 เป็นค่าเริ่มต้นและปลอดภัยที่สุด ต้องการ 19200? เปลี่ยนด้าน CPU ก่อน จากนั้นด้าน SCADA — คู่มือชัดเจน และโหมดความล้มเหลว (การหมดเวลาเงียบ) จะทำให้คุณเสียเวลาช่วงบ่ายหากคุณทำผิด

การกำหนดที่อยู่มีความสำคัญมากกว่าความเร็ว อุปกรณ์แต่ละตัวในบัสจะได้รับที่อยู่ที่ไม่ซ้ำกัน และคำเตือนในคู่มือมีค่าที่จะอ้างอิงจากความจำ: ที่อยู่ซ้ำทำให้การสื่อสารทำงานผิดปกติ ในทางปฏิบัตินั่นหมายถึงการเสียหายของข้อมูล ไม่ใช่ข้อความแสดงข้อผิดพลาดที่สุภาพ

Ethernet: Modbus TCP สำหรับโรงงานสมัยใหม่

ใน CPU ที่รองรับ Ethernet, Modbus TCP เป็นเส้นทางมาตรฐาน: PLC ทำหน้าที่เป็นเซิร์ฟเวอร์, SCADA หรือ HMI สอบถามรีจิสเตอร์ผ่าน LAN ไม่มีเกตเวย์ ไม่มีตัวแปลงโปรโตคอล และแผนที่รีจิสเตอร์เดียวกันทำงานผ่านเครือข่ายเช่นเดียวกับผ่านพอร์ตอนุกรม IP สถิตบนตัวควบคุม พอร์ตที่เข้าถึงได้ผ่านเราเตอร์ และสำนักงานของคุณสามารถเห็นเครื่องจักร

มีสองสไตล์การเชื่อมต่อสำหรับการทำงานระยะไกล — CPU เป็นเซิร์ฟเวอร์ (ตรงไปตรงมา ต้องการ IP ที่เข้าถึงได้) หรือ CPU เป็นไคลเอนต์ที่โทรออกไปยังเซิร์ฟเวอร์ (สำหรับไซต์ที่ NAT-ed และเคลื่อนที่) รู้ว่าคุณต้องการแบบไหนก่อนที่คุณจะตั้งค่า เพราะพวกเขาถูกตั้งค่าแตกต่างกันและการสับสนระหว่างกันเป็นปริศนาสามชั่วโมงคลาสสิก

การตั้งค่าที่แท้จริง: สถานีปั๊มเข้าสู่ easySCADA

สถานีปั๊มสองปั๊มที่มีระดับ ความดัน และค่าการไหล: CPU รันลอจิกการสลับ และ PC ในสำนักงานรันแพ็คเกจฟรี easySCADA ทดสอบอนุกรมก่อน — CPU บน RS485 ที่อยู่สถานี 1, 9600 บอด, รีจิสเตอร์ระดับที่แมพไว้ เมื่อค่าปรากฏบนหน้าจอ easyMonitor โครงการเดียวกันเปลี่ยนไปที่ Ethernet ด้วยการเปลี่ยนพอร์ตและ PC ในสำนักงานเห็นรีจิสเตอร์เดียวกัน

เวลาการกำหนดค่ารวม: หนึ่งช่วงบ่าย รวมถึงกาแฟ โปรโตคอลไม่ต่อสู้กลับเพราะเราปฏิบัติตามที่อยู่และกฎบอดอย่างเคร่งครัด

ด้าน SCADA

easySCADA พูด Modbus RTU และ TCP เท่านั้น — ไม่มี MQTT ไม่มี OPC-UA และนั่นก็ไม่เป็นไร เพราะ Modbus คือสิ่งที่โลก SCADA ยังคงไว้วางใจสำหรับประเภทของตัวควบคุมนี้ แมพบล็อกรีจิสเตอร์ในแท็บข้อมูล: อินพุต เอาต์พุต ธง ธงอนาล็อก รีจิสเตอร์ พร้อมความสำคัญในการสอบถามสูง/กลาง/ต่ำ ความสำคัญมีความสำคัญมากกว่าที่คนคิด — ธงเตือนควรสอบถามอย่างรวดเร็ว ค่าตัวแปรอนาล็อกสามารถรอได้

อีกหนึ่งบันทึกภาคสนาม: RS485 ต้องการกราวด์ร่วมและการสิ้นสุดที่ทั้งสองด้านของบัส โปรโตคอลนั้นให้อภัย; ชั้นไฟฟ้าไม่ใช่ คู่สายบิด, ขั้วบวกที่ถูกต้อง, กราวด์อ้างอิงหนึ่ง — นั่นคือความลับทั้งหมด และมันไม่เคยเปลี่ยน

วินัยแผนที่รีจิสเตอร์

ผู้ฆ่าที่เงียบของโครงการ Modbus ไม่ใช่การเดินสายหรืออัตราบอด มันคือแผนที่รีจิสเตอร์ — โดยเฉพาะช่วงเวลาที่มันมีอยู่ในหัวของใครบางคนเท่านั้น ฉันได้ดีบักระบบที่ SCADA อ่านรีจิสเตอร์ผิดเป็นเวลาสองสัปดาห์เพราะการอัปเดตโปรแกรมเปลี่ยนที่อยู่และไม่มีใครอัปเดตแผนที่ ค่าดูเหมือนจะน่าเชื่อถือ นั่นคือกับดัก: ข้อมูลผิดที่ดูเหมือนถูกต้องแย่กว่าข้อมูลไม่มี

เขียนแผนที่ลงในวันที่คุณสร้างมัน คอลัมน์: ที่อยู่ PLC, หมายเลขรีจิสเตอร์, ประเภทข้อมูล, การปรับขนาด, หน่วย และจุด SCADA ใดที่อ่านมัน เก็บไว้ในโฟลเดอร์โครงการ เวอร์ชันเหมือนโค้ด และอัปเดตในคอมมิตเดียวกับโปรแกรม สิบห้านาทีที่ใช้จะช่วยคุณประหยัดสุดสัปดาห์ของความสับสนภายในปีแรก — รับประกัน

ออกแบบแผนที่ให้มีที่ว่างสำหรับการเติบโต ทิ้งช่องว่างระหว่างกลุ่มฟังก์ชัน: อินพุตที่ 100-120, เอาต์พุตที่ 150-160, อนาล็อกที่ 200-240, ธงที่ 300-320 เมื่อผู้ใช้ขอค่าที่ใหม่ — พวกเขามักจะทำ — มันจะลงในช่องว่างโดยไม่ต้องเปลี่ยนหมายเลขทุกอย่างและทำให้หน้าจอ SCADA เสียหาย การวางแผนล่วงหน้านั้นคือความแตกต่างระหว่างระบบที่พัฒนาและระบบที่ต้องการโครงการการปรับปรุงใหม่ทุกครั้งที่มีคนเพิ่มเซนเซอร์

และใช้ประเภทข้อมูลอย่างตั้งใจ บิตที่แยกสำหรับการเตือน 16 บิตสำหรับการนับ จุดลอยที่มีความแม่นยำ easySCADA's แท็บข้อมูลให้คุณเลือกประเภท — ไบต์ คำ รีจิสเตอร์ ธง — และฟิลด์ความสำคัญสำหรับการสอบถาม ความสำคัญสูงสำหรับการเตือน ค่าต่ำสำหรับค่าที่ช้า SCADA สอบถามสิ่งที่คุณบอกให้มันสอบถาม ตามลำดับที่คุณให้ความสำคัญ และแผนที่ที่ออกแบบมาอย่างดีทำให้ทั้งระบบเร็วขึ้น

การแก้ไขปัญหาบัสเงียบ

เมื่อหน้าจอ SCADA แข็งตัว ให้ทำงานจากรายการที่ถูกที่สุดไปหาที่แพงที่สุด ก่อนอื่น: PC อยู่ในเครือข่ายที่ถูกต้องหรือไม่? การไม่ตรงกันของซับเน็ตดูเหมือนจะเป็นบัสที่ตายและใช้เวลาเพียงสิบวินาทีในการตรวจสอบ ประการที่สอง: ที่อยู่ พิมพ์หมายเลขรีจิสเตอร์ลงในการวินิจฉัย SCADA หากมี — ที่อยู่ผิดสอบถามได้สะอาดแต่ไม่มีการตอบกลับ ประการที่สาม: อัตราบอด การไม่ตรงกันระหว่าง CPU และ PC ทำให้เกิดความเงียบ และกฎของคู่มือ — เปลี่ยนด้าน CPU ก่อน — มีอยู่เพราะความล้มเหลวนี้เกิดขึ้นบ่อย

ประการที่สี่ และนี่คือสิ่งที่ทำให้ทุกคนถ่อมตัว: ชั้นไฟฟ้า RS485 ต้องการกราวด์ร่วมข้ามอุปกรณ์ทั้งหมดและตัวต้านทานการสิ้นสุดที่ปลายทางกายภาพของบัส กราวด์ลอยทำให้เกิดการเสียหายเป็นระยะที่มาพร้อมกับโหลดในตู้ ฉันได้เห็นวิศวกรเปลี่ยนอุปกรณ์สามตัวไล่ตามผีที่กลายเป็นสายกราวด์ที่ขาดหายไป มัลติมิเตอร์ออก ตรวจสอบความต้านทานระหว่างกราวด์ ก่อนที่คุณจะเปลี่ยนฮาร์ดแวร์

เก็บสำเนาแผนที่รีจิสเตอร์ในแผง ป้องกันด้วยพลาสติก อยู่หลังประตู ข้างแผนภาพการเดินสาย วิศวกรคนถัดไป — อาจจะเป็นคุณในอีกสิบแปดเดือน — จะขอบคุณชื่อของคุณ

Modbus ไม่ได้ดูหรูหรา มันเป็นเพียงสิ่งที่เชื่อถือได้ที่สุดในตู้ และเมื่อมันถูกเดินสายอย่างถูกต้อง มันจะอยู่ถูกต้องเป็นเวลาหลายปี