ลำดับไบต์ของมิเตอร์ไฟฟ้า Power meter Modbus กำหนดว่าข้อมูลที่ได้รับมานั้นจะกลายเป็นการวัดที่ใช้งานได้อย่างไร เริ่มจากแผนที่ลงทะเบียนมิเตอร์ที่แม่นยำ ระบุประเภทข้อมูลและจำนวนลงทะเบียน จากนั้นแยกแยะลำดับไบต์ภายในแต่ละลงทะเบียนจากลำดับของหลายลงทะเบียน ถอดรหัสการตอบสนองที่บันทึกไว้ก่อนนำไปใช้หน่วยวิศวกรรมหรือการปรับสเกล CT การตอบสนองการสื่อสารที่ถูกต้องยังสามารถให้ค่าที่ไม่ถูกต้องได้เมื่อขั้นตอนเหล่านี้ถูกรวมกัน ตรวจสอบผลลัพธ์กับเอกสารอ้างอิงที่บันทึกไว้ในจุดปฏิบัติการมากกว่าหนึ่งจุด และเก็บรักษาไบต์ต้นฉบับไว้เพื่อให้นักวิศวกรคนอื่นสามารถทำซ้ำการแปลความหมายได้.
คู่มือนี้กล่าวถึงการถอดรหัสหลังจากการเชื่อมต่อการสื่อสารสำเร็จแล้ว สำหรับที่อยู่ การตั้งค่าซีเรียล และการอ่านข้อมูลสำเร็จครั้งแรก เริ่มต้นด้วย คู่มือการตั้งค่า Modbus สำหรับมิเตอร์วัดกำลังไฟฟ้า. ตัวอย่างด้านล่างเป็นตัวอย่างโปรโตคอลสังเคราะห์ ไม่ใช่ที่อยู่ลงทะเบียน BY194 หรือฟังก์ชันผลิตภัณฑ์ที่อ้างสิทธิ์.
รับรหัสคำสั่งครบถ้วนของเครื่องมือ ตัวเลือกการสื่อสาร เวอร์ชันแผนที่ลงทะเบียนที่ใช้ได้ และข้อมูลเฟิร์มแวร์ที่มีอยู่ การมีหน้าจอหน้าต่างหน้าจอที่คุ้นเคยไม่ได้แสดงว่าสินค้านั้นรองรับการสื่อสารหรือไม่ หรือแผนที่ของมันตรงกับรุ่นอื่นหรือไม่ คำว่า CNBYG BY194 คือกลุ่มผลิตภัณฑ์ที่เกี่ยวข้อง; ขอเอกสารประกอบสำหรับการกำหนดค่าที่ให้มา ก่อนที่จะรวมเข้าด้วยกัน.
สำหรับปริมาณที่ต้องการทุกชนิด บันทึกฟังก์ชันที่รองรับ ที่อยู่ที่บันทึกไว้ จำนวนลงทะเบียน การแสดงผล ลำดับไบต์และคำ การใช้หน่วยวิศวกรรม สเกล และแนวทางเครื่องหมาย นอกจากนี้ยังบันทึกว่าค่าที่ส่งมานั้นได้รับการปรับให้เป็นปริมาณหลักแล้วหรือไม่ ข้อมูลเหล่านี้เป็นข้อตกลงการถอดรหัสหนึ่งๆ การพิจารณาเฉพาะที่อยู่เป็นอย่างเดียวอาจเปิดโอกาสให้เกิดการอ่านผิดพลาดที่เป็นไปได้หลายแบบ.
แยกเอกสารต้นทางออกจากการตั้งค่าซอฟต์แวร์ที่ใช้ในการดำเนินการ ตัวเลือกไดรเวอร์ที่เรียกว่าลิตเติลเอ็นดี้อาจหมายถึงรายการสี่ไบต์ทั้งหมด ในขณะที่แอปพลิเคชันอื่นใช้ชื่อเดียวกันสำหรับแลกเปลี่ยนคำสองคำขนาดสิบหกบิต คงรักษาตัวอย่างไบต์ที่เป็นรูปธรรมควบคู่ไปกับชื่อทางเลือกเพื่อให้การกำหนดค่ายังคงเข้าใจได้หลังจากการอัปเกรดซอฟต์แวร์.
เดอะ คำอธิบายโปรโตคอลการใช้งาน Modbus อธิบายการแสดงผลแบบ Big-endian สำหรับที่อยู่และรายการข้อมูล: ไบต์ที่สำคัญที่สุดของรายการหลายไบต์จะถูกส่งก่อน กำลังเก็บข้อมูลหรือรีจิสเตอร์อินพุตประกอบด้วยสิบหกบิต กฎโปรโตคอลนี้ไม่ควรถูกสับสนกับคำจำกัดความสากลของวิธีที่ผู้ผลิตแมปการวัดแบบลอยตัว 32 บิตข้ามสองรีจิสเตอร์.
ผู้ผลิตสามารถบันทึกคำที่มีความสำคัญมากกว่าของสิบหกบิตแรกหรือสุดท้ายสำหรับค่าหลายรีจิสเตอร์ ลูกค้าต้องปฏิบัติตามการแมปนั้น รีจิสเตอร์ยังสามารถบรรจุจำนวนเต็มที่ปรับสเกลแล้ว บิตฟิลด์ หรือการแสดงผลอื่นที่ได้รับการบันทึกไว้ รีจิสเตอร์ที่อยู่ติดกันสองตัวไม่ได้เป็นจำนวนลอยตัว IEEE อัตโนมัติ แม้ว่าการตีความแบบนั้นจะให้ค่าที่อยู่ในช่วงที่คาดหวังไว้ก็ตาม.
การส่งข้อมูลบิตแบบอนุกรมเป็นชั้นเพิ่มเติม ลำดับที่ตัวควบคุมอนุกรมส่งบิตภายในตัวอักษรไม่ได้บอกแอปพลิเคชันให้กลับลำดับไบต์ของรีจิสเตอร์ ให้การจัดการ framing เป็นหน้าที่ของ stack การสื่อสาร งานถอดรหัสเริ่มต้นด้วยข้อมูลการตอบสนองที่ได้รับการตรวจสอบแล้วและการแมปของผู้ผลิต แทนที่จะเป็นการเดาแบบภาพเกี่ยวกับคลื่นไฟฟ้า.

สำหรับค่าบายน์รีของ IEEE 754 แบบ binary32 ที่เป็นสังเคราะห์ ค่าที่เป็นปกติคือ 1.0 การแสดงผลไบต์แบบ Big-endian ทั่วไปคือเลขฐานสิบหก 3F 80 00 00 ให้ฉลากไบต์เหล่านั้นเป็น A, B, C และ D ตามลำดับ ฉลากเหล่านี้ระบุตำแหน่งในตัวอย่างนี้; พวกมันไม่ใช่ฉลากที่อยู่ของ Modbus หรือคำมั่นสัญญาเกี่ยวกับแผนที่ของเครื่องมือใดๆ.
| ลำดับตัวอย่าง | ไบต์ที่นำเสนอให้กับตัวถอดรหัส | การแปลความหมายเพื่อยืนยัน |
|---|---|---|
| ABCD | 3F 80 00 00 | การแทนค่าบายน์รี่32 แบบใหญ่-เอนเดียนดั้งเดิม |
| CDAB | 00 00 3F 80 | คำสั่งสองคำที่มีความยาว 16 บิตถูกแลกเปลี่ยน |
| BADC | 80 3F 00 00 | ไบต์ที่แลกเปลี่ยนภายในแต่ละคำ |
| DCBA | 00 00 80 3F | ลำดับสี่ไบต์ทั้งหมดถูกย้อนกลับ |
ตารางแสดงการแปลงข้อมูล ไม่ใช่การตั้งค่าที่ถูกต้องเท่ากันสี่แบบสำหรับมิเตอร์ แผนที่ที่ได้รับการอนุมัติจะกำหนดว่าการแปลงใด หากจำเป็น ต้องใช้ เอกสารประกอบ Python struct ให้ข้อมูลอ้างอิงอิสระสำหรับลำดับไบต์ที่ชัดเจนและรูปแบบข้อมูลไบนารี ตัวถอดรหัสต้องระบุรูปแบบที่ตั้งใจไว้ แทนที่จะพึ่งพาการจัดวางหน่วยความจำตามธรรมชาติของคอมพิวเตอร์.
การวัดค่าศูนย์เป็นการทดสอบแรกที่ไม่ดี เพราะการเปลี่ยนตำแหน่งของศูนย์หลายแบบยังคงเป็นศูนย์ ควรเลือกการวัดค่าที่เสถียรและไม่เป็นศูนย์ตามเอกสาร เมื่อเป็นไปได้ แล้วตรวจสอบค่าที่สองด้วยไบต์ที่แตกต่างกัน หลีกเลี่ยงการเปลี่ยนแปลงสภาพไฟฟ้าขณะทำงานโดยเจตนาเพื่อสร้างค่าทดสอบที่สะดวก ใช้การสังเกตการทำงานที่ได้รับการอนุมัติ ตัวจำลองที่บันทึกไว้ หรือการจัดเตรียมการทดสอบที่ได้รับอนุญาต.
ยืนยันฟังก์ชันและแนวทางการอ้างอิงของที่อยู่ก่อนเป็นอันดับแรก ความผิดพลาดในการเลื่อนตำแหน่งอาจส่งผลให้รีจิสเตอร์ข้างเคียงผิดพลาดในขณะที่การตอบสนองยังคงถูกต้อง กำหนดว่าสคริปต์ซอฟต์แวร์คาดหวังโปรโตคอลเลื่อนตำแหน่งหรืออ้างอิงที่อ่านได้ด้วยมนุษย์ บันทึกทั้งคำอธิบายของคู่มือและคำขอจริงเพื่อไม่ให้การแก้ไข plus-one ที่ไม่อธิบายได้แพร่กระจายไปในรายการแท็ก.
ถัดไปตรวจสอบความยาวของการตอบสนองและดึงเฉพาะไบต์ที่เป็นของปริมาณที่ตั้งใจไว้ เก็บเฟรมเต็มไว้แยกต่างหากสำหรับการวิเคราะห์ แต่ไม่รวมที่อยู่ของอุปกรณ์ ฟังก์ชัน จำนวนไบต์ และช่องตรวจสอบข้อผิดพลาดจากข้อมูลเชิงตัวเลข ยืนยันจำนวนรีจิสเตอร์ที่ต้องการ แทนที่จะเติมข้อมูลให้สั้นหรือทิ้งข้อมูลที่ไม่คาดคิดโดยเงียบๆ.
ใช้ลำดับรีจิสเตอร์และการแทนค่าที่บันทึกไว้เท่านั้น หลังจากการถอดรหัสเชิงตัวเลขถูกต้องแล้ว ควรนำสเกลวิศวกรรมและการแปลงหน่วยที่ตั้งค่าไว้ไปใช้ สุดท้ายประเมินว่าการวัดเป็นสเกลหลักหรือไม่ การแยกการดำเนินการเหล่านี้ออกจากกันทำให้ความผิดพลาดสามารถติดตามได้ไปยังการตัดสินใจเฉพาะเจาะจง แทนที่จะซ่อนข้อผิดพลาดหลายอย่างภายในตัวคูณเดียว.
ปัจจัยที่ผิดพลาดอย่างต่อเนื่องอาจบ่งชี้ปัญหาเกี่ยวกับการแปลงหน่วยหรืออัตราส่วนหลัก แต่ไม่ได้พิสูจน์อย่างแน่นอน การเปลี่ยนแปลงบิตบางอย่างอาจให้ค่าที่สมเหตุสมผลในช่วงการทำงานจำกัด การวินิจฉัยโดยอาศัยหลักฐานดิบแทนที่จะสมมติว่าทุกจำนวนมหาศาลคือ endianness หรือความผิดพลาดเล็กน้อยคือการสอบเทียบ.
สำหรับค่าที่ไม่เสถียร เป็นช่วงเวลาที่สุดขีดเป็นครั้งคราว หรือไม่ใช่จำนวนจำกัด ให้ตรวจสอบการแทนค่าขอบเขตของรีจิสเตอร์ ความสอดคล้องของภาพถ่ายช็อต และความสอดคล้องของภาพถ่าย หากแผนที่ไม่ได้สัญญาว่าจะอ่านข้อมูลแบบอะตอมมิกในรีจิสเตอร์ที่เลือก ให้ถามว่าควรได้ค่าจากหลายรีจิสเตอร์อย่างไร การอ่านรีจิสเตอร์ที่อยู่ติดกันในคำขอเดียวช่วยลดธุรกรรมที่ไม่จำเป็น แต่ไม่ได้พิสูจน์พฤติกรรมการอัปเดตภายในของอุปกรณ์เอง.
สำหรับความผิดพลาดของอัตราส่วนคงที่ ให้ตรวจสอบหน่วยและ คู่มืออัตราแรงดันไฟฟ้าแปลง. ตรวจสอบ คู่มือการเลือก CT และสายวัดในสายวัด ก่อนที่จะใช้ตัวคูณกระแสอีกครั้ง ข้อมูลบิตที่ถอดรหัสอย่างถูกต้องไม่สามารถชดเชยอัตราส่วนเซ็นเซอร์ผิดหรือการกำหนดเฟสผิดในติดตั้งทางกายภาพได้.
รีจิสเตอร์ขนาดสิบหกบิตสามารถแทนจำนวนเต็มที่ไม่ลงนาม, จำนวนเต็มที่ลงนาม หรือชุดบิตสถานะได้ รูปแบบบิตเดียวกันมีความหมายต่างกันภายใต้การตีความเหล่านั้น ใช้คำจำกัดความของผู้ผลิตแทนที่จะสันนิษฐานประเภทจากว่าค่าปัจจุบันเป็นบวกหรือไม่ รีจิสเตอร์พลังงานและพลังงานเชิงทิศทางต้องระวังเป็นพิเศษเพราะเครื่องหมายสามารถมีความหมายเชิงปฏิบัติการได้.
ยืนยันว่าการวัดที่ไม่สามารถใช้งานได้หรือไม่ถูกต้องถูกแทนด้วยวิธีใด คำสัญญาณที่บันทึกไว้, สัญญาณสถานะ หรือค่าลอยตัวพิเศษ ควรกลายเป็นเงื่อนไขคุณภาพที่ชัดเจนในระบบรับข้อมูล การแทนที่โดยเงียบด้วยศูนย์ทำให้ปัญหาเครื่องมือดูเหมือนเป็นการขาดโหลดจริง ซึ่งอาจทำให้รายงานพลังงานและการวิเคราะห์ผิดพลาด.
แยกตัวนับสะสมออกจากการวัดแบบทันที ความกว้าง, หน่วย, พฤติกรรมการรีเซ็ต และกฎ rollover อาจแตกต่างจากรีจิสเตอร์พลังงานที่อยู่ใกล้เคียง คู่มือการหมุนซ้ำของนับพลังงาน อธิบายการตรวจสอบความต่อเนื่องหลังจากการถอดรหัสได้รับการตั้งค่าแล้ว การแก้ไขการหมุนซ้ำไม่ควรใช้เพื่อปกปิดข้อผิดพลาดในการแปลความหมายที่ยังไม่ได้รับการแก้ไข.
เกตเวย์อาจถอดรหัสทะเบียนซีเรียลและเผยแพร่ค่าทางวิศวกรรม หรืออาจส่งต่อทะเบียนโดยไม่เปลี่ยนแปลง ตรวจสอบพฤติกรรมที่ใช้ก่อนที่จะกำหนดค่าตัวถอดรหัสตัวที่สองด้านล่าง การสลับที่ไม่จำเป็นในทั้งสองชั้นอาจดูเหมือนจะแก้ไขค่าได้ในขณะที่ปล่อยให้การตั้งค่าที่เปราะบางซึ่งจะพังเมื่อชั้นใดชั้นหนึ่งเปลี่ยนแปลง.
บันทึกบันทึกการทดสอบการติดตั้งที่ประกอบด้วยตัวตนของอุปกรณ์ เวอร์ชันแผนที่ คำขอและคำตอบดิบ การแสดงผลในท้องถิ่นที่สังเกตได้ เวลาที่บันทึก ค่ากลางที่ถอดรหัส ค่าทางวิศวกรรมสุดท้าย และสถานะคุณภาพ รวมถึงเวอร์ชันไดรเวอร์และการตั้งค่าการแปลงอย่างแม่นยำ บันทึกนี้มีประโยชน์มากกว่าการจับภาพหน้าจอของแดชบอร์ดที่ดูเหมือนถูกต้อง เพราะอธิบายว่าค่าในแดชบอร์ดนั้นได้มาอย่างไร.

หลังจากการเปลี่ยนแปลงเฟิร์มแวร์ เกตเวย์ หรือไดรเวอร์ ให้เล่นซ้ำตัวอย่างที่บันทึกไว้ที่ได้รับการอนุมัติแบบออฟไลน์เท่าที่เป็นไปได้และเปรียบเทียบการสังเกตสดผ่านขั้นตอนที่ได้รับอนุญาต ทดสอบอย่างน้อยหนึ่งค่าที่ไม่ใช่ศูนย์ ค่าที่ต้องลงนามตามความจำเป็น สภาวะที่ไม่ถูกต้องตามเอกสาร และข้อมูลนับตัวอย่างที่เป็นตัวแทน การตรวจสอบควรมุ่งเป้าไปที่การแทนค่าที่ใช้อยู่จริง แทนที่จะเป็นทุกการจัดเรียงไบต์ที่เป็นไปได้ตามทฤษฎี.
กำหนดการรับรองโดยรอบการวัดที่เป็นเอกสารและความทนทานของโครงการ อย่าแต่งเปอร์เซ็นต์ความแตกต่างระหว่างค่าที่แสดงผลและค่าการควบคุมแบบสากล: การตั้งเวลาการอัปเดต การปัดเศษบนหน้าจอ และข้อกำหนดของเครื่องมือมีผลต่อการเปรียบเทียบ บันทึกว่าสังเกตการณ์นั้นเกิดขึ้นพร้อมกันเพียงพอที่จะสนับสนุนข้อสรุป โดยเฉพาะเมื่อโหลดเปลี่ยนแปลงอย่างรวดเร็ว.
รักษาการตรวจสอบเบื้องต้นในโหมดอ่านอย่างเดียว การแก้ไขปัญหาไดรเวอร์ไม่อนุญาตให้เขียนการตั้งค่าเครื่องมือ ฟังก์ชันป้องกัน หรือข้อมูลการสอบเทียบ หากจำเป็นต้องเปลี่ยนแปลงการตั้งค่า ให้รับขั้นตอนที่เกี่ยวข้อง รักษาการตั้งค่าก่อนหน้า และตรวจสอบผลลัพธ์แยกต่างหากจากการทดสอบการสื่อสาร.
การส่งมอบทางวิศวกรรมควรระบุว่าชั้นใดเป็นเจ้าของการแปลงแต่ละรายการ ตัวอย่างเช่น ไดรเวอร์อาจประกอบคำที่บันทึกไว้, คำจำกัดความแท็กอาจแปลงวัตต์เป็นกิโลวัตต์ และมิเตอร์อาจใช้สัดส่วน CT อยู่แล้ว การเป็นเจ้าของที่ตั้งชื่อไว้ช่วยป้องกันไม่ให้นักบูรณะในภายหลังเพิ่มการแก้ไขอีก เนื่องจากการตั้งค่าดูเหมือนจะขาดหายไปในชั้นของตนเอง.
บทเรียนของ Computerphile อธิบายว่าความสำคัญของไบต์และการจัดลำดับหน่วยความจำเกี่ยวข้องกันอย่างไร มันสนับสนุนแนวคิดการถอดรหัสด้านบน ในขณะที่แผนที่มิเตอร์ที่แน่นอนยังคงเป็นอำนาจสำหรับการแทนค่าของทะเบียน วิดีโอไม่ได้กำหนดที่อยู่ทะเบียน BY194 หรือค่าเริ่มต้นใด ๆ.
ไม่ Protocol การแทนค่าของไบต์ไม่ได้แทนที่คำจำกัดความของผู้ผลิตเกี่ยวกับการวัดหลายทะเบียน ตรวจสอบประเภทข้อมูลและลำดับคำในเอกสารสำหรับแผนที่ที่แน่นอน.
ใช้การตอบสนองที่บันทึกไว้เพื่อการสืบสวน แต่ยอมรับการตั้งค่าก็ต่อเมื่อตรงกับแผนที่และการสังเกตอิสระ ตัวเลขที่เป็นไปได้ในจุดปฏิบัติการหนึ่งไม่เพียงพอเป็นหลักฐาน.
กำหนดว่าสะพานเชื่อมทำอะไรอยู่แล้ว หากมันได้ถอดรหัสค่ามาแล้ว การแปลงไบต์อีกครั้งโดยทั่วไปเป็นความผิดพลาดในการตั้งค่ามากกว่าจะเป็นขั้นตอนที่สองที่จำเป็น.
ไม่ใช่ มันตรวจสอบเพียงส่วนหนึ่งของการแปลข้อมูล การตั้งค่เซ็นเซอร์ การเดินสาย หน่วย การปรับสเกล เงื่อนไขการวัด และประสิทธิภาพของเครื่องมือยังคงต้องการการตรวจสอบของตนเอง.