ถ้าเราเก็บค่าข้อมูลไว้ใน OPC Server เราจะพบว่าถ้าต้องรีสตาร์ทพีซีใหม่อีกครั้งข้อมูลจะหายไป เนื่องจาก OPC Server ไม่ได้เก็บข้อมูลอย่างถาวร ต้องมีการ Initial ทุกครั้งที่เริ่มทำงาน ดังนั้นถ้าเราต้องการเก็บค่าไว้ใน OPC Server เราจึงต้องใช้ OPC Server ที่ลิงค์ PLC/Controller ที่ต้องทำงานอยู่ตลอดเวลา โดยเก็บค่าใน PLC/Controller เหล่านั้นซึ่งอาจเกินความจำเป็น ทางเลือกที่ดีที่สุดในกรณีที่ต้องการเก็บข้อมูลไว้ใน OPC Server เพื่อให้ SCADA โหนดอื่น ๆ เรียกใช้ได้ด้วยก็คือการใช้ OPC Server ที่ลิงค์กับฐานข้อมูลแทน PLC
OPC Server หลายยี่ห้อสามารถติดต่อกับฐานข้อมูลได้ เช่น KEPServerEx หรือ ICONICS OPC UA Server ซึ่งมีไดร์เวอร์ที่ติดต่อกับฐานข้อมูลผ่าน ODBC ได้ ในบทความนี้จะใช้ KEPServerEx เป็น OPC ตัวอย่าง
เมื่อเปิด KEPServerEx ขึ้นมา สร้าง Channel ใหม่โดยคลิ้กที่ Click to add a channel. จากนั้นตั้งชื่อ Channel แล้วคลิ้ก Next จะพบหน้าเลือก Driver ให้เลือก ODBC Client Driver จากนั้นคลิ้ก Next และ Next
โปรแกรมจะให้เลือก ODBC DSN ที่อยู่ในคอมพิวเตอร์ของเรา ให้เลือกจากรายการ Data Source แต่ถ้าเรายังไม่ได้สร้าง DSN ไว้ในคลิ้ก Configure DSN เพื่อเข้าไปสร้าง
ถ้าเราคลิ้กปุ่ม Configure DSN จะพบหน้า ODBC Data Source Administrator ให้สร้างหรือแก้ไข DSN ที่มีอยู่ก็ได้เพื่อให้ลิงค์ไปยัง ฐานข้อมูลที่ต้องการเช่น MS Access, MS SQL, My SQL ฯลฯ ถ้าต้องการแก้ไขให้เลือก DSN นั้นแล้วคลิ้ก Configure…
ในตัวอย่างนี้จะติดต่อกับฐานข้อมูลจาก DSN ชื่อ TWXLog5 ซึ่งติดต่อกับ MS SQL Server โดยผมจะติดต่อกับตารางชื่อ table1 ซึ่งมีข้อมูลภายในดังรูป
หลังจากที่เราเลือก Data source แล้ว คลิ้ก Next, Next, Finish
สร้าง Device ขึ้นมาโดยคลิ้กที่ Click to add a device ตั้งชื่อ Device แล้วคลิ้ก Next จากนั้นเลือก Device Model ว่าเป็น Generic หรือ MySQL แล้วคลิ้ก Next
เลือกรูปแบบการค้นหาเพื่อนำเข้าข้อมูลจากฐานข้อมูล เช่น Fixed table คือสามารถระบุชื่อตารางได้แบบตายตัว Dynamic Table คือสามารถเปลี่ยนตารางที่ต้องการติดต่อ หรือ Query/Store Procedure ที่ใช้ SQL Command ในการติดต่อข้อมูล
ในที่นี้เลือก Fixed table แล้วคลิ้ก Next
เลือกคอลัมน์ที่เราต้องการ และเลือก Set write access … เพื่อให้แก้ไขค่าข้อมูลในฐานข้อมูลได้ แล้วคลิ้ก Next
ระบุเวลาการอัพเดทข้อมูลเช่น 250msec แล้วคลิ้ก Next, Finish จะได้ OPC tag ที่โปรแกรมสร้างให้ดังรูป ซึ่งชื่อ tag จะอยู่ในรูปแบบชื่อตาราง_ลำดับแถว_ชื่อคอลัมน์ ถ้าเราอยากจะเปลี่ยนชื่อก็เปลี่ยนได้
ทดสอบติดต่อและเขียนค่าโดยคลิ้กที่ Quick Client
คลิ้กขวาที่ OPC tag ที่ต้องการ เลือกAsynchronous 2.0 Write
ป้อนค่าเข้าไป แล้วคลิ้ก Apply
ข้อมูลในฐานข้อมูลก็จะเปลี่ยนตามด้วย
เท่านี้เราก็สามารถใช้ OPC Server เก็บข้อมูลโดยถาวร ข้อมูลไม่หายไปเมื่อมีการเริ่มทำงานของคอมพิวเตอร์ใหม่อีกครั้ง จะเอาไปใช้กับ SCADA หลาย ๆ โหนดให้ติดต่อเข้ามาผ่านระบบเครือข่ายก็ได้ครับ
หมายเหตุ
Driver ที่ใช้คือ ODBC Client ตัวนี้ถ้าเป็นของ ICONICS OPC UA จะรวมกับ Driver อื่น ๆ ที่เป็นมาตรฐาน ไม่ต้องซื้อเพิ่ม แต่ถ้าเป็น KEPServerEx เราต้องระบุว่าจะซื้อ Driver ตัวนี้ เพราะDriverของKEPServerEx จะต้องซื้อเป็นตัว ๆ ไป
ผู้ใช้ GENESIS32 SCADA ไม่จำเป็นต้องใช้ OPC Server ตัวนี้เนื่องจากสามารถใช้ Data Mining แทนได้และทำหน้าที่เป็น OPC Server ได้อยู่แล้ว