อยากเก็บค่าไว้ใน OPC ที่รีสตาร์ทแล้วข้อมูลไม่หาย

ถ้าเราเก็บค่าข้อมูลไว้ใน 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

image

โปรแกรมจะให้เลือก ODBC DSN ที่อยู่ในคอมพิวเตอร์ของเรา ให้เลือกจากรายการ Data Source แต่ถ้าเรายังไม่ได้สร้าง DSN ไว้ในคลิ้ก Configure DSN เพื่อเข้าไปสร้าง

image

ถ้าเราคลิ้กปุ่ม Configure DSN จะพบหน้า ODBC Data Source Administrator ให้สร้างหรือแก้ไข DSN ที่มีอยู่ก็ได้เพื่อให้ลิงค์ไปยัง ฐานข้อมูลที่ต้องการเช่น MS Access, MS SQL, My SQL ฯลฯ ถ้าต้องการแก้ไขให้เลือก DSN นั้นแล้วคลิ้ก Configure…

image

ในตัวอย่างนี้จะติดต่อกับฐานข้อมูลจาก DSN ชื่อ TWXLog5 ซึ่งติดต่อกับ MS SQL Server โดยผมจะติดต่อกับตารางชื่อ table1 ซึ่งมีข้อมูลภายในดังรูป

image

หลังจากที่เราเลือก Data source แล้ว คลิ้ก Next, Next, Finish

สร้าง Device ขึ้นมาโดยคลิ้กที่ Click to add a device ตั้งชื่อ Device แล้วคลิ้ก Next จากนั้นเลือก Device Model ว่าเป็น Generic หรือ MySQL แล้วคลิ้ก Next

image

เลือกรูปแบบการค้นหาเพื่อนำเข้าข้อมูลจากฐานข้อมูล เช่น Fixed table คือสามารถระบุชื่อตารางได้แบบตายตัว Dynamic Table คือสามารถเปลี่ยนตารางที่ต้องการติดต่อ หรือ Query/Store Procedure ที่ใช้ SQL Command ในการติดต่อข้อมูล

image

ในที่นี้เลือก Fixed table แล้วคลิ้ก Next

image

เลือกคอลัมน์ที่เราต้องการ และเลือก Set write access … เพื่อให้แก้ไขค่าข้อมูลในฐานข้อมูลได้ แล้วคลิ้ก Next

image

ระบุเวลาการอัพเดทข้อมูลเช่น 250msec แล้วคลิ้ก Next, Finish จะได้ OPC tag ที่โปรแกรมสร้างให้ดังรูป ซึ่งชื่อ tag จะอยู่ในรูปแบบชื่อตาราง_ลำดับแถว_ชื่อคอลัมน์ ถ้าเราอยากจะเปลี่ยนชื่อก็เปลี่ยนได้

image

ทดสอบติดต่อและเขียนค่าโดยคลิ้กที่ Quick Client

image

คลิ้กขวาที่ OPC tag ที่ต้องการ เลือกAsynchronous 2.0 Write

image

ป้อนค่าเข้าไป แล้วคลิ้ก Apply

image

ข้อมูลในฐานข้อมูลก็จะเปลี่ยนตามด้วย

image

เท่านี้เราก็สามารถใช้ OPC Server เก็บข้อมูลโดยถาวร ข้อมูลไม่หายไปเมื่อมีการเริ่มทำงานของคอมพิวเตอร์ใหม่อีกครั้ง จะเอาไปใช้กับ SCADA หลาย ๆ โหนดให้ติดต่อเข้ามาผ่านระบบเครือข่ายก็ได้ครับ

หมายเหตุ

Driver ที่ใช้คือ ODBC Client ตัวนี้ถ้าเป็นของ ICONICS OPC UA จะรวมกับ Driver อื่น ๆ ที่เป็นมาตรฐาน ไม่ต้องซื้อเพิ่ม แต่ถ้าเป็น KEPServerEx เราต้องระบุว่าจะซื้อ Driver ตัวนี้ เพราะDriverของKEPServerEx จะต้องซื้อเป็นตัว ๆ ไป

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s