วันศุกร์ที่ 8 กุมภาพันธ์ พ.ศ. 2556

SCADA

SCADA คืออะไร
SCADA นั้นย่อมาจากคำว่า Supervisory Control And Data Acquisition เป็นระบบตรวจสอบและวิเคราะห์ข้อมูลแบบ Real-time ใช้ในการตรวจสอบสถานะตลอดจนถึงควบคุมการทำงานของระบบควบคุมในอุตสาหกรรมและงานวิศวกรรมต่าง ๆ เช่น งานด้านโทรคมนาคมสื่อสาร การประปา การบำบัดน้ำเสีย การจัดการด้านพลังงาน อุตสาหกรรมการกลั่นน้ำมันและก็าซ อุตสาหกรรมเคมี อุตสาหกรรมประกอบรถยนต์ การขนส่ง กระบวนการนิวเคลียร์ในโรงไฟฟ้าเป็นต้น  ตัวอย่างการใช้งานเช่นใช้ SCADAตรวจสอบข้อมูลเช่นการรั่วไหลของของเหลวที่เกิดขึ้นในท่อขนส่งจากตัวตรวจจับแล้วส่งสัญญาณแจ้งเตือนให้พนักงานทราบ โดยส่งข้อมูลสู่ส่วนกลางของระบบ SCADA เป็นต้น นอกจากนั้น SCADA อาจทำหน้าที่คำนวนและประมวลผลข้อมูลที่ได้จากฮาร์ดแวร์ต่าง ๆ เช่น PLC, Controller, DCS, RTU แล้วแสดงข้อมูลทางหน้าจอ หรือส่งสัญญาณควบคุมฮาร์ดแวร์ดังกล่าว เช่นหากอุณหภูมิของอุปกรณ์สูงเกินพิกัด ให้ทำการปิดอุปกรณ์นั้นเป็นต้น โดยสั่งงานผ่าน PLC หรือController ที่ติดต่ออยู่ ทั้งนี้ SCADA สามารถเก็บรวบรวมข้อมูลที่ได้จากระบบควบคุมทั้งหมดไว้ในฐานข้อมูลเพื่อให้พนักงานหรือโปรแกรมอื่น ๆ สามารถนำไปใช้งานได้ SCADA นั้นเข้าไปมีส่วนในงานควบคุมทั้งเล็กและใหญ่ที่ต้องการแสดงผล แลกเปลี่ยนข้อมูล หรือควบคุมระบบต่าง ๆ จากส่วนกลาง เพื่อการทำงานของระบบรวมที่สัมพันธ์กัน มองเห็นภาพรวมได้อย่างชัดเจนและมีความรวดเร็วต่อเหตุการณ์ต่าง ๆ ที่เกิดขึ้น ระบบ SCADA ในปัจจุบันมีความสามารถในการสื่อสาร ควบคุม และประมวลผลข้อมูลจาก I/O ของอุปกรณ์เช่น PLC, DCS, RTU ได้ถึงระดับที่เกินหนึ่งแสน I/O แล้ว และได้รับการพัฒนาให้มีความสามารถรองรับความต้องการใหม่ ๆ ของผู้ใช้งานอย่างต่อเนื่องตลอดมา
           SCADA เริ่มใช้งานในคอมพิวเตอร์ตั้งแต่ระบบปฏิบัติการ DOS, VMS และ UNIX จนมาถึงระบบปฏิบัติการWindows NT, XP, Server 2003 และ LINUX
                 ในที่นี้จะแสดงลักษณะสำคัญของ SCADA ตามโครงสร้าง (Architecture) หน้าที่การทำงาน(Functionality) และ การพัฒนาโปรเจ็ค (Application Development) เพื่อให้คุณผู้อ่านได้เข้าใจส่วนสำคัญของSCADA ได้อย่างละเอียด
     
        โครงสร้างของ SCADA (Architecture)

      โครงสร้างด้านฮาร์ดแวร์ (Hardware Architecture)

                    SCADA แบ่งตามโครงสร้างฮาร์ดแวร์ได้สองระดับคือ Client และ Data Server หรือเรียกสั้น ๆ ว่าServer โดยที่ Client คือคอมพิวเตอร์ที่รับและส่งข้อมูลไปยัง Data Server โดยฝั่ง Client นี้จะแสดงผลการทำงานของระบบควบคุมเช่น แสดงเป็นกราฟิก กราฟแบบต่อเนื่อง หรือระบบแจ้งเตือนเมื่อเกิดเหตุการณ์ฉุกเฉินหรือต้องการแจ้งเตือน เป็นต้น ฝั่ง Client สามารถสั่งงานควบคุมไปยัง Data Server เพื่อส่งสัญญาณไปยัง PLC, DCS หรือ Controller อีกทอดหนึ่ง ส่วน Data Server จะทำหน้าที่ติดต่อกับ PLC, DCS, Controller หรือ RTU ต่าง ๆ เพื่อรับสัญญาณและส่งสัญญาณไปยัง Client และรับการร้องขอจาก Client เพื่อควบคุมอุปกรณ์ PLCและ Controller ต่าง ๆ   Client และ Data Server ส่วนใหญ่ติดต่อกันผ่านระบบเครือข่าย Ethernet ดังรูปที่ 1-01
รูปที่ 1-01 แสดงโครงสร้างแบบฮาร์ดแวร์ของระบบ SCADA
จากรูปที่ 1-01 นั้น Controller จะติดต่อกับอุปกรณ์ Field Instrument ต่าง ๆ เช่นเซ็นเซอร์ รีเลย์ เป็นต้นเพื่อนำสัญญาณมาให้กับ Data Server
   โครงสร้างด้านซอร์ฟแวร์ (Software Architecture)
         โครงสร้างด้านซอร์ฟแวร์ของระบบ SCADA นั้นมีข้อที่ต้องทราบคือ SCADA ใช้เทคโนโลยีในการสื่อสารกับฮาร์แวร์ (เช่น PLC, DCS) ต่าง ๆ กันไปตามผู้ผลิต เช่นการใช้ Driver เฉพาะของผู้ผลิต SCADA เพื่อสื่อสารกับ PLC, DCS เป็นต้น ซึ่งในปัจจุบันมีการกำหนดมาตรฐานกลางคือ OPC ขึ้นมาเพื่อยุติปัญหาการใช้เทคโนโลยีเฉพาะด้านในการสื่อสาร นอกจากนั้นยังมีความสามารถในการบริการข้อมูลให้กับ Client ที่รวดเร็วและมีเสถียรภาพ  โครงสร้างด้านซอร์ฟแวร์ของ SCADA แสดงได้ดังรูปที่ 1-02
จากรูป 1-02 จะพบว่าในส่วนของ SCADA Server นั้น การติดต่อกับ PLC หรือ Controller นั้น ทำได้ทั้งผ่าน Driver หรือOPC โดยที่ OPC และ Driver สามารถรับคำสั่งแบบ Read / Write เพื่ออ่านข้อมูลจาก PLC หรือ เขียนข้อมูลเพื่อสั่งงานไปยัง PLC ได้
          SCADA Server จะทำหน้าที่จัดการข้อมูล RTDB (Real Time Data Base) ที่ได้จาก PLC แล้วส่งให้กับSCADA Client โดยที่ SCADA Server บางประเภทจะติดต่อกับ SCADA Client ผ่าน DDE Server ซึ่งทำให้สามารถนำเข้าข้อมูลจาก PLC เข้าสู่โปรแกรมเช่น MS Excel หรือ โปแกรม Client อื่น ๆ ที่ติดต่อกับ DDE Server ได้
         SCADA บางตัวจะออกแบบให้ SCADA Server ทำหน้าที่ตรวจจับ Alarm และเก็บไว้ใน Alarm DB หรือเก็บข้อมูลที่เป็น Historian ไว้ใน Log DB เป็นต้นเพื่อส่งให้ Alarm Display และ Log Display ทางฝั่ง SCADA Client ต่อไป
          สำหรับส่วน Development Environment นั้นจะขึ้นอยู่กับการออกแบบของ SCADA ซอร์ฟแวร์นั้น ๆ ซึ่งโดยทั่วไปก็จะมีเครื่องมือในการสร้างและจัดการกราฟิก (Graphic Editor) เครื่องมือในการจัดการโปรเจ็คที่สร้างขึ้นมา (Project Editor) มีเครื่องมือในการนำเข้าและส่งออก Text file ที่เก็บค่าคอนฟิกูเรชั่นของการติดต่อกับ Driver หรือ OPC Serverไว้
     โครงสร้างด้านการสื่อสาร (Communications) 
         การสื่อสารระหว่าง Client-Server จะสื่อสารผ่านโปรโตคอลโดยทั่วไปเช่น TCP/IP โดย Client จะติดต่อกับพารามิเตอร์หรือ Tag ภายใน Server ที่บริการข้อมูลด้วยรูปแบบที่แตกต่างกันไปตามผู้ผลิต เช่นมีการส่งค่าจาก Server เมื่อค่าของ I/O ของ PLC มีการเปลี่ยนแปลง เป็นต้น
         การสื่อสารกับอุปกรณ์นั้น Server จะทำการตรวจสอบค่าจากอุปกรณ์ตามช่วงเวลาที่ผู้ใช้งานกำหนดไว้ (Defined polling rate) โดยอาจจะต่างกันไปตามพารามิเตอร์ประเภทต่าง ๆ โดยตัว Controller จะส่งค่าพารามิเตอร์ตามที่ถูกร้องขอให้กับ Data Server พร้อมค่าเวลาขณะนั้น (Time Stamp) การสื่อสารกับอุปกรณ์ของ Data Server นั้นอาจเป็นการสื่อสารแบบ Modbus, Profibus, CAN bus เป็นต้น ขึ้นอยู่กับมาตรฐานการสื่อสารของอุปกรณ์นั้น ๆ ว่าเป็นแบบใด ในปัจจุบันมีการสร้าง OPC Server ที่สนับสนุนการติดต่อด้วยมาตรฐานต่างๆเพิ่มขึ้นมากมายจนครอบคลุมอุปกรณ์ทุกประเภท และมีการพัฒนาให้ทั่วถึงไปยังอุปกรณ์ใหม่ ๆ อย่างต่อเนื่อง
      โครงสร้างอินเทอร์เฟส (Interface)
            การติดต่อระหว่าง Data Server กับอุปกรณ์หรือระหว่าง Data Server และ Data Server และกับ Client นั้น มีการผลิตเป็น Driver ออกมามากมายตามเทคนิคเฉพาะของแต่ละผู้ผลิต ต่อมาจึงมีการกำหนดมาตรฐานของอินเทอร์เฟสขึ้นมาเป็น OPC (OLE for Process Control) ซึ่งมีความรวดเร็วในการสื่อสารและบริการข้อมูลโดยมีการจัดตั้ง OPC Foundation ขึ้นเป็นองค์กรณ์หลักในการกำหนดมาตรฐานและถ่ายทอดเทคโนโลยีให้แก่สมาชิก OPC จึงเป็นมาตรฐานกลางที่เปิดกว้างมากที่สุด         การติดต่อกับฐานข้อมูลภายนอกของ SCADA Software นั้น มีการสร้างให้สามารถติดต่อได้ผ่าน ODBC (Open Data Base Connectivity), OLEDB (Linking and Embedding Data Base), DDE (Dynamic Data Exchange) เป็นต้น เพื่อให้สามารถแลกเปลี่ยนข้อมูลหรือทำการเก็บข้อมูลไว้ในฐานข้อมูลรูปแบบต่าง ๆ ในปัจจุบันมีการพัฒนาให้สามารถติดต่อกับโปรแกรม ERP ต่าง ๆ เช่น SAP เป็นต้นได้ด้วย
       โครงสร้างความสามารถในการขยายระบบ (Scalability) 

             Scalability คือความสามารถในการรองรับและต่อขยายระบบ SCADA กับส่วนต่าง ๆ เช่น I/O ของอุปกรณ์Controller และจำนนเครื่อง SCADA Client ที่เพิ่มขึ้น หรือการต่อพ่วงกับระบบ SCADA ของยี่ห้ออื่น ๆ เป็นต้น ถ้าหากData Server เป็นแบบ Driver ที่สร้างด้วยเทคโนโลยีเฉพาะในการติดต่อกับอุปกรณ์ ก็เป็นเรื่องลำบากในการต่อขยาย เพราะDriver บางประเภทสามารถติดต่อได้เฉพาะ SCADA Software บางยี่ห้อเท่านั้น ปัญหานี้เป็นที่วิพากวิจารณ์กันอย่างกว้างขวาง ซึ่งปัจจุบันได้หันมาใช้มาตรฐานกลางคือ OPC เพื่อแก้ไขปัญหานี้
          โครงสร้างการสำรองระบบ (Redundancy) 
              SCADA Software ส่วนใหญ่มีความสามารถในการทำสำรองระบบของ Data Server โดยที่เมื่อ Data Server เกิดความขัดข้องก็จะสั่งงานให้ Data Server อีกตัวหนึ่งทำงานแทนที่ โดยจะมีการกำหนดคอนฟิกูเรชั่นไว้ที่ Clientว่าจะให้เลือกติดต่อกับ Data Server ตัวไหนเมื่อเกิดความขัดข้องเกิดขึ้น
             ในบางครั้งโมดูลที่ทำหน้าที่จัดการด้าน Redundancy นี้อาจจะทำหน้าที่อีกประการหนึ่งคือเป็นจุดพักข้อมูลที่รับมาจาก Data Server เพื่อนำไปส่งให้กับ Client ต่าง ๆ เพราะในกรณีที่มี Client จำนวนมากติดต่ออยู่กับ Data Server ตัวเดียวนั้นอาจมีความล่าช้าในการบริการข้อมูลของ Data Server เพราะต้องให้บริการข้อมูล Client ให้ครบจำนวนก่อนที่จะไปรับข้อมูลใหม่จากอุปกรณ์มาได้ ดังนั้นโมดูลที่ทำหน้าที่ Redundant จึงทำหน้าที่เป็นจุดรับข้อมูลแล้วช่วยส่งต่อให้ Clientต่างๆ  อีกทอดหนึ่ง Data Server จะได้ทำหน้าที่บริการข้อมูลให้แก่โหนดเพียงจุดเดียว จึงมีความรวดเร็วในการบริการข้อมูล
      หน้าที่การทำงาน (Functionality)
     การเข้าถึงพารามิเตอร์ของอุปกรณ์             หมายถึงความสามารถในการเข้าถึงกลุ่มของพารามิเตอร์ในอุปกรณ์เช่น I/O ของ PLC เป็นต้น ความสามารถของData Server ในการกำหนดว่าพารามิเตอร์ใด อ่านได้อย่างเดียว เขียนได้อย่างเดียว หรือทั้งอ่านทั้งเขียน เป็นต้น
    ระบบแสดงผลแบบ MMI (Man Machine Interface)
            คือความสามารถในการแสดงผลการทำงานของอุปกรณ์ในรูปแบบ กราฟิก ข้อความ สัญลักษณ์ แผนภาพ เป็นต้น โดยสามารถเชื่อมโยงลักษณะการเปลี่ยนแปลงของกราฟิกเหล่านี้กับพารามิเตอร์จาก Data Serverได้ ความสามารถในการสั่งงานผ่านระบบกราฟิกเช่น การปิด/เปิด สวิทซ์บนจอมอนิเตอร์ส่งผลไปยัง I/O ของ PLC เป็นต้น
               ความสามารถในการจัดการกราฟิกเช่น การย่อ ขยาย การกำหนดการเคลื่อนไหวแบบต่าง ๆ เช่น การหมุน การเคลื่อนที่แบบซิกแซกตามสัญญาณของ Data Server การแสดงผลสัญญาณในรูปแบบมิเตอร์และเกจวัดแบบต่าง ๆ การนำเข้ากราฟิกประเภทต่างๆ การจัดแบ่งเลเยอร์ เป็นต้น เหล่านี้เป็นข้อเปรียบเทียบความสามารถของ SCADA Software ทั้งสิ้น
     ระบบแสดงกราฟสัญญาณแบบต่อเนื่อง (Trending)
             Trending เป็นความสามารถในการพล็อตกราฟต่อเนื่องกันไปบนจอภาพเพื่อแสดงค่าสัญญาณจาก Data Serverโดยอาจจะสามารถพล็อตสัญญาณได้หลายสัญญาณเช่น 8 – 24 
สัญญาณ พร้อมกันในหน้าต่างเดียว เพื่อให้สามารถเปรียบเทียบสัญญาณที่พล็อตได้ และไม่จำกัดว่าจะสร้างหน้าต่างพล็อตจำนวนเท่าใด
                
Trending อาจมีความสามารถในการ ซูมสัญญาณที่พล็อต และหยุดการพล็อตเพื่อเลื่อนดูค่าที่พล็อตในแต่ละช่วงเวลาได้ด้วยตัวของผู้ใช้งานเอง นอกจากนั้นการพล็อตอาจสามารถเลือกได้ว่าจะให้เป็นการพล็อตแบบใดเช่น Time plot, Logarithmic plot, Strip Chart, Bar Chart, Circular, X-Y plot เป็นต้น นอกจากนั้นบางผู้ผลิตยังสามารถนำค่าHistorian หรือข้อมูลสัญญาณที่เก็บไว้ในฐานข้อมูลออกมาพล็อต ได้อีกด้วย
            โดย Trending Module นี้อาจเป็นแบบ ActiveX Control คือสามารถนำไปใช้งานในแอปลิเคชั่นอื่นที่สนับสนุนการนำเข้า ActiveX ได้
    ระบบแจ้งเตือน (Alarm)
            SCADA Software ส่วนใหญ่มีระบบแจ้งเตือนโดย Alarm Display จะรับสัญญาณมาจาก Alarm DB ในฝั่งSCADA Server โดย Alarm DB สามารถที่จะทำการกำหนดคอนฟิกูเรชั่นว่าจะนำสัญญาณตัวใดมาเป็นตัวพารามิเตอร์ในการแจ้งเตือนบ้าง และมีการแบ่งระดับของ Priority, Limit อย่างไร เป็นต้น
            ระบบแจ้งเตือนยังสามารถที่จะเก็บข้อมูลการแจ้งเตือนไว้ในฐานข้อมูลประเภทต่าง ๆ ได้เช่น 
MS SQL Server, MS Access, Oracle, MS Excel เป็นต้น และบางยี่ห้อสามารถแสดงออกมาเป็นรายงานในรูปแบบตารางหรือ แผนภูมิได้อีกด้วย
    การทำงานแบบ Automation
            เป็นความสามารถที่ SCADA ทำหน้าที่ต่าง ๆ ตามที่กำหนด เช่น ส่งอีเมล์ แสดงข้อความแบบ Instance Messageบนหน้าจอ เปิดไปยังหน้าจออื่น ๆ เก็บข้อมูลลงฐานข้อมูล เปิดโปรแกรม หรือรันคำสั่งสคริปต์ เป็นต้น ตามสัญญาณที่ได้รับจาก Data Server และข้อกำหนดที่สร้างขึ้น
           
    การสร้างและพัฒนา (Application Development)
     การกำหนดคอนฟิกูเรชั่น
             การกำหนดคอนฟิกูเรชั่น ขั้นแรกต้องมีการกำหนดว่าจะติดต่อกับพารามิเตอร์หรือ 
Tag ใดบ้างจาก Data Serverดังนั้นจะต้องทำการ Define หรือสร้าง Tag ที่ Data Server ก่อนว่า Tag แต่ละตัวหมายถึง Address ที่เท่าใดของอุปกรณ์ (PLC, DCS, RTU, Controller ต่างๆ) โดยทั่วไปสามารถทำการนำเข้าคอนฟิกูเรชั่นไฟล์ที่สร้างไว้ก่อนเข้ามาได้ และสามารถ Export ไปยัง Data Server อื่น ๆ ได้ จากนั้นโปรแกรมย่อยอื่น ๆ ของ SCADA Software ฝั่งไคลเอนท์ จึงทำคอนฟิกูเรชั่นตามหน้าที่การทำงานของตนเอง เช่น โมดูลที่มีหน้าที่แสดงผลกราฟิกก็ต้องกำหนดว่ากราฟิกนั้น ๆ จะเชื่อมโยงกับ Tag ใดจาก Data Server ส่วนโมดูลที่ทำหน้าที่แจ้งเตือนก็ต้องทำคอนฟิกูเรชั่นว่าจะนำ Tag ใด มาเป็นสัญญาณแจ้งเตือน และกำหนดระดับสัญญาณ Limit เป็นต้น
     เครื่องมือในการพัฒนา (Development Tool)  
            เครื่องมือในการสร้างและพัฒนาระบบ SCADA โดยทั่วไปจะประกอบด้วย
          -     เครื่องมือในการสร้างระบบกราฟิก ที่ประกอบด้วยเครื่องมือวาดภาพ เครื่องมือกำหนดเอ็ฟเฟ็คพิเศษต่าง ๆ ไลบรารี่ของกราฟิกสำเร็จรูปในอุตสาหกรรมด้านต่าง ๆ 
         -     เครื่องมือในการสร้าง Trending
         -     เครื่องมือในการสร้างระบบAlarm
         -     เครื่องมือในการกำหนดการติดต่อกับฐานข้อมูลเพื่อทำการเก็บรวบรวมข้อมูลของ Trending และ Alarm ลงไว้ในฐานข้อมูล
         -     เครื่องมือในการช่วยสร้าง Script เช่น Java script, VB Script 
         -     เครื่องมือจัดการด้านความปลอดภัย การแบ่งระดับ User และขอบเขตการใช้งานของ User
         -    เครื่องมือในการสร้าง Web application เพื่อให้สามารถควบคุมและตรวจสอบระบบควบคุมผ่าน Web browser ได้
     ที่กล่าวมาทั้งหมดนี้เป็นลักษณะของ SCADA และ SCADA Software ส่วนใหญ่ ทั้งนี้คุณผู้อ่านก็คงจะพอเห็นภาพว่าSCADA นั้นสามารถเป็นศูนย์กลางของระบบควบคุมทั้งหมดขององค์กร และมีส่วนช่วยในการตรวจสอบการทำงานของระบบให้เป็นไปตามปกติได้อย่างมีประสิทธิภาพและทั่วถึง ภายในเวลาอันรวดเร็ว มีส่วนช่วยในการตัดสินใจในการดำเนินงานจากข้อมูลต่าง ๆ ที่ได้รับจากระบบ SCADA นอกจากนี้เรายังสามารถเชื่อมโยงข้อมูลที่ได้จาก SCADA เข้ากับข้อมูลทางธุรกิจอื่น ๆ เพื่อประมวลผลร่วมกัน เช่น ข้อมูลจำนวนของเสียเป็นกิโลกรัมที่ตรวจสอบได้จาก SCADA ถูกนำมาคำนวนร่วมกับค่าใช้จ่ายอื่น ๆ แบบ Real time เพื่อสรุปเป็นรายงานค่าใช้จ่ายประจำวันเป็นต้นได้อย่างรวดเร็ว