วิธีเชื่อมต่อ xLogic Micro PLC กับ MQTT Broker สำหรับการตรวจสอบระยะไกล

ถามพนักงานขาย PLC เกี่ยวกับ MQTT แล้วคุณจะได้แผนที่: "ปีหน้า อาจจะ ในรุ่นพรีเมียม" จากนั้นคุณมองไปที่ตัวพิมพ์เล็กและพบเกตเวย์ ตัวแปลง หรือการสมัครสมาชิกคลาวด์ซ่อนอยู่เบื้องหลังฟีเจอร์นั้น การสนับสนุน MQTT บน xLogic Ethernet CPUs ไม่มีสิ่งเหล่านั้น — มันมีอยู่ในเฟิร์มแวร์ตั้งแต่การปรับปรุง 1.04 และมันเผยแพร่โดยตรงจากตัวควบคุม

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

ทำไมถึงใช้ MQTT สำหรับMicro PLC

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

โบรกเกอร์จัดการกับความยุ่งเหยิง PLC เพียงแค่เผยแพร่

สิ่งที่คุณกำหนดค่าได้จริง

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

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

กรณีจริง: การตรวจสอบโรงเรือนระยะไกล

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

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

เมื่อ MQTT เป็นคำตอบที่ผิด

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

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

รูปแบบที่ควรขโมย

การออกแบบหัวข้อที่สามารถขยายได้

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

ออกแบบลำดับชั้นก่อนการเผยแพร่ครั้งแรก รูปแบบที่ให้บริการฉันได้ดี:ไซต์/อุปกรณ์/หมวดหมู่/ค่า. ดังนั้นplant1/pump1/status/run, plant1/pump1/sensor/level, plant1/pump2/alarm/high-level. ผู้สมัครรับข้อมูลแบบไวลด์การ์ด — แดชบอร์ดสำหรับ plant1 หน้าเว็บสำหรับ pump1 ผู้ฟังเตือนภัยสำหรับทุกอย่าง — แต่ละคนสมัครรับข้อมูลในส่วนที่พวกเขาต้องการอย่างแม่นยำ อุปกรณ์ใหม่สามารถเสียบเข้าไปโดยไม่ต้องแตะต้องหัวข้อเก่า และเพย์โหลดยังคงมีขนาดเล็กและมีประเภท

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

กฎสุดท้ายคือกฎที่ผู้คนต่อต้าน: เวอร์ชันหัวข้อเมื่อรูปแบบเพย์โหลดเปลี่ยนplant1/pump1/status/v2. มันน่าเกลียด มันช่วยคุณจากการทำให้ผู้สมัครห้าคนในผลิตภัณฑ์พังทลายด้วยการเปลี่ยนแปลงครั้งเดียว หัวข้อที่น่าเกลียดที่ทำงานได้ดีกว่าหัวข้อที่สะอาดที่ระเบิด

ข้อมูลที่มีค่าต่อการเผยแพร่

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

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

และบันทึกสิ่งที่สำคัญในท้องถิ่นด้วย CPU's datalogging บวกกับข้อความที่เก็บรักษาของโบรกเกอร์ให้คุณสำเนาสองชุดของประวัติศาสตร์ที่สำคัญ เมื่อโบรกเกอร์มีวันที่ไม่ดี — พวกเขาทุกคนมี — บันทึกด้านเครื่องจักรคือแหล่งความจริง และการสนทนาในการกู้คืนจะสั้น

การควบคุมในท้องถิ่นบน CPU การมองเห็นในคลาวด์ผ่าน MQTT และทั้งสองไม่รบกวนกัน การแยกนี้คือสถาปัตยกรรมของการทำงานอัตโนมัติขนาดเล็กสมัยใหม่ และมันพอดีกับราง DIN แผนที่ของพนักงานขายไม่ได้มาถึง เฟิร์มแวร์ได้ถูกส่งไปแล้ว