Electrical

มารู้จักกับมาตรฐาน IEC61850 GOOSE (ตอนที่ 2)

พิชิต จินตโกศลวิทย์  

pichitor@yahoo.com

 

 

 

          หนึ่งในคุณสมบัติที่ IEC61850 ประยุกต์ใช้ คือ การทำให้การส่งข้อมูลเป็นเรียลไทม์ โดยการใช้วิธีการจัดระดับความสำคัญของเมสเซจข้อมูล ระบบงาน หรือ วงจรควบคุมป้องกันที่เชื่อมต่อระหว่างกันโดยใช้สายทองแดง หรือฮาร์ดไวร์ หรือ ใช้การสื่อสารข้อมูลโดยมีวิธีการจำเพาะ เช่น การประยุกต์ใช้เมสเซจ GOOSE (Generic Object Oriented Substation Event) ที่มีความเร็วในการส่งข้อมูลสูง

 

 

          จากละเอียดข้างต้นสำหรับฟิลด์ที่มีค่าคงที่ในโครงสร้าง GOOSE นั้นง่ายในการตรวจสอบและวิเคราะห์ ถ้ามีความผิดพลาดไม่ว่าจากการทำคอนฟิก หรือหรืออุปกรณ์ชำรุดก็สามารถเห็นได้ชัด อย่างไรก็ตาม มีอีกหลายฟิลด์ที่ต่อจากฟิลด์ที่มีค่าคงที่ ที่ต้องทำความเข้าใจเนื่องจากฟิลด์เหล่านั้นจะเปลี่ยนแปลงขนาดและลำดับตามการทำคอนฟิก ดังแสดงตามรูปที่ 11 ในส่วนของ goosePDU ( GOOSE Data Protocol Unit) ซึ่งเป็นส่วนที่บรรจุข้อมูลจริงที่ต้องการส่งปลายทางซึ่งจะเริ่มต้นด้วย 2 ไบต์ (0x61, 0x68) ผลจากการศึกษาและวิเคราะห์พบว่ามาตรฐาน IEC61850 ได้นำมาตรฐาน ASN/BER (Abtract Systax Notation One/Basic Encoding Rules) ซึ่งมาตรฐานที่ใช้ระบบเครือข่ายแบบเปิด เช่น TCP/IP มาใช้ในการเข้ารหัสข้อมูลใน goosePDU เช่นกัน ดังนั้นการจัดเรียงลำดับใน goosePDU ก็จะเริ่มด้วยฟิลด์แท็ก (Tag) และฟิลด์ความยาว (Length) เสมอ โดยตัวอย่างจะแสดงในรูปที่ 12

 

 

รูปที่ 11 แสดงสองไบต์ที่มีการจองไว้สำหรับความต้องการใหม่ในอนาคตก่อนเริ่มส่วน goosePDU

 

          โครงสร้างของเมสเซจที่มีค่าไม่คงที่จะเริ่มที่ฟิลด์ความยาวของ APDU หรือ goosePDU (เนื่องจากส่วนของ GOOSE เปรียบเสมือนชั้นแอพพลิเคชั่น) จนถึงส่วนท้ายของเมสเซจ ดังแสดงในรูปที่ 13 ฟิลด์ความยาวของ APDU จะมีขนาด 2 ไบต์โดยมีการเพิ่มขนาดพิเศษอีก 1 ไบต์ สำหรับตัวอย่างนี้ขนาดของ goosePDU จะมีขนาด 104 ไบต์ ขนาดของส่วน gocbRef (GOOSE Control Block Reference) มีขนาด 21 ไบต์ ฟิลด์ timeAllowedtoLive จะมีขนาด 2 ไบต์ และดาต้าเซตของโลจิคอลโหนดซีโร่ (Logical Node 0) จะมีขนาด 26 ไบต์ สำหรับฟิลด์ goID (GOOSE ID) จะมีขนาด 7 ไบต์ ฟิลด์ไทม์ (t: Time) มีขนาด 8 ไบต์ สำหรับฟิลด์รหัสสถานะ (stNum:Status Number), หมายเลขลำดับ (sqNum:Sequence Number), สถานะทดสอบ (Test Bit), หมายเลขปรับปรุงคอนฟิก (ConfRev:Configuration Revision), สถานะต้องการทดสอบคอมมิสชั่นนิง (ndsCom:Needs Commissioning) และจำนวนข้อมูลในดาต้าเซต (numDatSetEntries) ทั้งหมดนี้จะขนาด 1 ไบต์ ทุก ๆ ฟิลด์และหน้าที่ของมันจะถูกอธิบายในเอกสาร IEC61850-8-1 หน้า 114-116 สิ่งที่สำคัญที่เราได้ทราบก็คือ แต่ละฟิลด์ข้อมูลที่ใช้จริงจะมีฟิลด์แท็ก และฟิลด์ขนาดความยาวนำหน้าเสมอ

 

 

รูปที่ 12 แสดงแท็ก, เลนจ์ และข้อมูล อันดับแรกของ goosePDU

 

          สำหรับส่วนสุดท้ายของเมสเซจ GOOSE คือ ส่วนข้อมูลผู้ใช้กำหนด (User-defined Data) ซึ่งจะอยู่ในดาต้าเซตตามมาตรฐาน IEC61850 ดังรูปที่ 14 สำหรับส่วนข้อมูลผู้ใช้กำหนดจะประกอบด้วยข้อมูล 3 ประเภทคือ ข้อมูลประเภทบูลีน (Boolean) ขนาด 1 ไบต์, ข้อมูลประเภทอินทีเจอร์ขนาด 1 ไบต์ และข้อมูลประเภทแถวบิต หรือ บิตสตริง (Bit-string) ขนาด 2 ไบต์ ซึ่งถูกระบุในเอกสาร IEC61850-7-2 หน้า 116

 

 

รูปที่ 13 แสดงส่วนที่ไม่คงที่ของเมสเซจ GOOSE ที่มีการจัดเรียงข้อมูลตามมาตรฐาน ASN.1

 

APDU และ ASN1/BER

 

          ข้อมูลภายในเมสเซจ GOOSE จะถูกบรรจุภายในส่วนที่เรียกทางเทคนิคว่า goosePDU (Protocol Application Unit) และจะถูกเข้ารหัสด้วยมาตรฐาน ASN.1 (Abstract Syntax Notation One) ซึ่งใช้สำหรับการส่งข้อมูลข้ามเครือข่ายแบบระบบเปิด อ้างอิงตามเอกสาร IEC61850-8-1 หน้า 111 ซึ่งระบุว่าเมสเซจ GOOSE ใช้มาตรฐาน ASN.1/BER (ASN.1 Encoding Rule X.690-0207) แต่อันที่จริงแล้วการเข้ารหัสข้อมูลของเมสเซจ GOOSE ไม่ได้ไปตามมาตรฐาน ASN.1/BER แบบเต็มตัว แต่ได้มีการปรับเปลี่ยนบางวิธีการแต่ก็สามารถทำการอ้างอิงหรือทำความเข้าใจได้ง่าย หนึ่งในคุณสมบัติที่มีการปรับเปลี่ยน คือ ค่าอินทีเจอร์แบบมีเครื่องหมายซึ่งมาตรฐาน ASN.1 แบบต้นฉบับไม่มี

 

 

รูปที่ 14 แสดงดาต้าเซตที่ผู้ใช้กำหนดบนโครงสร้างเมสเซจ GOOSE

 

          จุดประสงค์ของ ASN.1 ก็เพื่อกำหนดวิธีการเข้าและถอดรหัสข้อมูลมาตรฐานเพื่อให้สามารถส่งข้ามแพลตฟอร์ม หรือ ระบบเครือข่าย โดยเนื้อหาตามมาตรฐาน (ISO/IEC 8824 และ 8825) นั้นจะมีการกำหนดประเภทฟิลด์ 3 ประเภทที่ใช้ในการนำเสนอข้อมูลแบบเป็นกลาง (Neutral Representation) ซึ่งเป็นวิธีการที่ทุกแพลตฟอร์ม หรือทุกระบบสามารถเข้าใจได้ง่าย นั้นคือ ฟิลด์แท็ก (Tag), ฟิลด์เลนจ์ (Length) และฟิลด์ดาต้า (Data/Content) ดังรูปที่ 15 ดังนั้นจะสังเกตได้ว่าการเรียงข้อมูลใน APDU หรือ goosePDU ของเมสเซจ GOOSE ก็จะประกอบด้วย 3 ประเภทฟิลด์ตาม ASN.1

 

 

รูปที่ 15 แสดงฟอร์แมตในการเข้ารหัสตามมาตรฐาน ASN.1 ของ goosePDU

 

          ฟิลด์แท็กของ ASN.1 จะอธิบายชนิดข้อมูลที่ใช้อ้างอิงภายในเฟรมตามที่กำหนดไว้ที่ชั้นแอพพลิเคชั่น ส่วนฟิลด์เลนจ์มีขนาดหนึ่งไบต์ใช้ในการบอกจำนวนไบต์ หรือ ออคเตต (Octet) ของข้อมูลที่ส่งตามหลังมา สำหรับฟิลด์เลนจ์จะมีความหมายพิเศษ คือ ถ้าความยาวของข้อมูลที่ต่อท้ายน้อยกว่า 128 ไบต์ บิตตำแหน่ง MSB จะมีค่าเป็นศูนย์ แต่ถ้าความยาวนั้นมากกว่า 128 แล้วบิต MSB จะมีค่าเท่ากับหนึ่ง ที่เหลืออีก 7 บิตจะใช้แสดงจำนวนไบต์ สำหรับฟิลด์ดาต้า หรือ ฟิลด์แวลู อันที่จริงก็คือ ข้อมูลที่แท้จริงที่ต้องการส่งไปในเฟรม ค่าภายในฟิลด์ดาต้าจะถูกตีความหมายตามฟิลด์แท็ก ยกตัวอย่าง ถ้าชนิดของฟิลด์เป็นสตริง (String) แต่ละออคเตตจะถูกตีความเป็นตัวอักษร แต่ถ้าเป็นอินทีเจอร์ ออดเตตนั้นจะถูกคำนวณให้เป็นค่าตัวเลข สำหรับส่วน PDU ของเมสเซจ GOOSE จะเริ่มต้นด้วยฟิลด์แท็ก (Identical Octet) ซึ่งจะประกอบด้วยข้อมูลชนิดคลาส หรือ ชนิดของแท็ก และหมายเลขของแท็ก

 

 

รูปที่ 16 แสดงแท็กส่วนหัวของ goosePDU

 

          จากรูปที่ 11 และ 12 และรูปที่ 16 ทำให้เข้าใจชัดเจนยิ่งขึ้นว่าสองไบต์จะใช้อ้างอิงชนิดคลาส PDU และขนาดของเมสเซจ GOOSE ลักษณะเดียวกันกับแท็กที่ใช้ในส่วนต่าง ๆ ของ PDU ของเฟรมซึ่งแสดงตัวอย่างในตารางก็แสดงในรูปที่ 17 และ 18 ทั้งความหมายค่าแท็ก, เลนจ์ และแวลู สำหรับภายใน goosePdu ที่ได้จากการดักจับเมสเซจข้างต้น

 

รูปที่ 17 แสดงแต่ละแท็กของ goosePDU ในเมสเซจตัวอย่าง

 

รูปที่ 17 แสดงแต่ละแท็กของ goosePDU ในเมสเซจตัวอย่าง (ต่อ)

 

การวิเคราะห์ด้วย IEDScout, Wiresharks ร่วมกับ IEC61850 Configurator

 

          อย่างที่ได้กล่าวไปแล้วข้างต้นว่าเครื่องมือในการวิเคราะห์ที่ดีนั้น ทำให้ง่ายต่อการวิเคราะห์เพื่อช่วยในงานติดตั้งและบำรุงรักษาโดยเครื่องมือที่แนะนำว่าผู้ที่ต้องทำงานในระบบที่เกี่ยวเนื่องกับมาตรฐาน IEC61850 ต้องศึกษา คือ IEDScout ของบริษัท Omicron และ Wireshark ซึ่งเป็นฟรีแวร์คุณภาพสูง และในที่นี้จะใช้ IEC61850 Configuration ของบริษัท Siemens ร่วมในการศึกษา ตัวอย่างที่นำเสนอ คือ การดักจับเมสเซจ GOOSE จากรีเลย์ป้องกัน 2 ชนิด คือ SIEMENS 7UT61 และ SCHNIEDERS P132 โดย 7UT61 ถูกตั้งชื่อว่า IED250 และ P132 ถูกตั้งชื่อว่า IED251 การตรวจสอบเมสเซจ GOOSE นั้นมักจะเริ่มจากมีเหตุการณ์ทำงานไม่ปกติ สิ่งแรกที่ต้องการทราบก็คือ สัญญาณอะไรที่ต้องการตรวจสอบ วิธีการคือเปิด IEC61850 Configurator แล้วหาสัญญาณที่ต้องตรวจสอบว่าอยู่ใน GOOSE ID ใด ดังรูปที่ 18 และ 23 หลังจากนั้นให้เปิดค่าพารามิเตอร์ที่ตั้งค่าไว้ในเมสเซจ GOOSE ที่บรรจุสัญญาณที่ต้องการตรวจสอบมาเปรียบค่าพารามิเตอร์ของเมสเซจที่ดักจับด้วยเครื่องมือต่าง ๆ โดยค่าพารามิเตอร์ที่สำคัญที่ต้องเทียบก็แสดงในรูปที่ 19 และ 24 การตรวจสอบพารามิเตอร์จากรีเลย์โดยตรงด้วย IEDScout และ Wireshark มี 3 วิธี โดยวิธีที่หนึ่งคือ การใช้โปรโตคอล MMS บราวส์ (Browse) เข้าไปตรวจสอบในตัวรีเลย์ป้องกันซึ่งวิธีนี้การหาค่าจะเจาะเข้าไปโดยตรงไม่มีเมสเซจอื่นมารบกวน ดังรูปที่ 20 และ 25 สำหรับวิธีที่สองคือ การฟังก์ชั่น Sniffer ของ IEDScout ดักจับแล้วเปิดดูค่าพารามิเตอร์ตามเมสเซจที่เราต้องการซึ่งวิธีการนี้จะดีกว่าวิธีการที่หนึ่งเนื่องจากดักจับเมสเซจ GOOSE จริงแต่วิธีนี้มีเมสเซจ อื่น ๆ ที่ไม่ต้องการมาเสริมทำให้ต้องใช้ความชำนาญเพิ่มขึ้น ดังรูปที่ 21 และ 26 สำหรับวิธีการสุดท้ายคือ การใช้ Wireshark ดังรูปที่ 22 และ 27 ซึ่งเป็นวิธีการที่ดีที่สุดเนื่องดักจับข้อมูลทุกประเภทหรือทุกความผิดพลาดซึ่งบางกรณี IEDScout ไม่สามารถดักจับได้ แต่อย่างไรก็ตามการใช้ Wireshark ต้องการความชำนาญจากผู้ใช้มากที่สุดเนื่องจากต้องใช้ฟังก์ชั่นการ กรองให้เหลือแต่เมสเซจที่เราต้องการ

 

 

รูปที่ 18 แสดงการหาสัญญาณที่ต้องการตรวจสอบใน 7UT61

 

 

รูปที่ 19 แสดงพารามิเตอร์ของเมสเซจ GOOSE ที่มีสัญญาณที่ต้องการตรวจสอบใน 7UT61

 

 

รูปที่ 20 แสดงการตรวจสอบพารามิเตอร์และค่าสัญญาณภายในของเมสเซจ GOOSE ด้วย MMS บน 7UT61

 

 

รูปที่ 21แสดงการตรวจสอบพารามิเตอร์และค่าสัญญาณภายในของเมสเซจ GOOSE ด้วย Sniffer บน 7UT61

 

 

รูปที่ 22 แสดงการตรวจสอบพารามิเตอร์และค่าสัญญาณภายในของเมสเซจ GOOSE ด้วย Wireshark บน 7UT61

 

 

รูปที่ 23 แสดงการหาสัญญาณที่ต้องการตรวจสอบใน P132

 

 

รูปที่ 24 แสดงพารามิเตอร์ของเมสเซจ GOOSE ที่มีสัญญาณที่ต้องการตรวจสอบใน P132

 

 

รูปที่ 25 แสดงการตรวจสอบพารามิเตอร์และค่าสัญญาณภายในของเมสเซจ GOOSE ด้วย MMS บน P132

 

 

รูปที่ 26 แสดงการตรวจสอบพารามิเตอร์และค่าสัญญาณภายในของเมสเซจ GOOSE ด้วย Sniffer บน P132

 

 

รูปที่ 27 แสดงการตรวจสอบพารามิเตอร์และค่าสัญญาณภายในของเมสเซจ GOOSE ด้วย Wireshark บน P132

 

เอกสารอ้างอิง

1. K.Budka, J.Deshpande, T.Doumi, M. Madden, T.Mew: Communication Network Architecture and design principles for Smart Grid, Bell Labs Tech., 2010.

2. J.Fulcher, An Introduction to Microcomputer Systems: Architecture and Interfacing. Addison-Wesley, Sydney, 1989.

3. S.Mackay, E.Wright, D.Reynders and .J Park, Practical Industrial Data Network: Design, Installation and Troubleshooting. IDC Technologies, Perth, 2004.

4. International Electrotechnical Commision. IEC60870-5 Telecontrol equipment and systems. Part 5: Transmission protocols.

5. K.Brand, V.Lohmann, and W.Wimmer, “Substation Automation Handbook”, Utility Automation Consulting Lohmann, Bremgaten, Switzerland, 2003.

6. Natural Resources Defense Council: Renewable Energy for America, NRDC.

7. C.Kriger, S.Behardien, and J.Reonda-Modiya, A Detailed Analysis of the GOOSE Message Structure in an IEC61850 Standard-Based Substation Automation System, 2013.

 

สงวนลิขสิทธิ์ ตามพระราชบัญญัติลิขสิทธิ์ พ.ศ. 2539 www.thailandindustry.com
Copyright (C) 2009 www.thailandindustry.com All rights reserved.

ขอสงวนสิทธิ์ ข้อมูล เนื้อหา บทความ และรูปภาพ (ในส่วนที่ทำขึ้นเอง) ทั้งหมดที่ปรากฎอยู่ในเว็บไซต์ www.thailandindustry.com ห้ามมิให้บุคคลใด คัดลอก หรือ ทำสำเนา หรือ ดัดแปลง ข้อความหรือบทความใดๆ ของเว็บไซต์ หากผู้ใดละเมิด ไม่ว่าการลอกเลียน หรือนำส่วนหนึ่งส่วนใดของบทความนี้ไปใช้ ดัดแปลง โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร จะถูกดำเนินคดี ตามที่กฏหมายบัญญัติไว้สูงสุด