COPC32 : ใช้เป็น Data Logger เก็บข้อมูลแบบ SCADA

COPC32 เป็น ActiveX Control เพื่อสร้าง SCADA ใช้งานกับ Excel, VB,VB.NEt, C# และ SCADA ต่าง ๆ ได้ ในบทความนี้จะใช้ COPC32 กับ Excel เพื่อทำหน้าที่ Data Logger เก็บข้อมูลจาก OPC Server ไว้ในฐานข้อมูล MS SQL Server

ดาวน์โหลดไฟล์ตัวอย่าง Excel

การใช้งานไฟล์ตัวอย่าง

ท่านจำเป็นต้องมีโปรแกรม MS SQL Server เพื่อใช้กับตัวอย่างนี้ครับ จะเป็น MS SQL Server หรือ MS SQL Server Express ก็ได้ (ดาวน์โหลด MS SQL Server Express ได้ฟรี)

นอกจากนั้นท่านต้องทำการติดตั้ง COPC32 ในเครื่องด้วยครับ

 

1. สร้างตารางสำหรับเก็บข้อมูล

ให้สร้างตารางเก็บข้อมูลไว้ใน MS SQL Server เสียก่อน จากรูปได้สร้างตารางชื่อ test2 ไว้ในฐานข้อมูลชื่อ TWXLog โดยจะสร้างคอลัมน์ชื่ออะไรก็ได้แต่คอลัมน์แรกให้เป็นข้อมูลแบบ datetime และคอลัมน์อื่น ๆ จะเป็น Float หรือ int ก็ขึ้นอยู่กับข้อมูลที่จะเก็บ

image

 

2. ระบุชื่อ Server, ชื่อ Database, ชื่อตารางในไฟล์ Excel

จากไฟล์ Excel ที่ดาวน์โหลดมาให้เข้าไปแก้ไขโค้ดเพื่อระบุชื่อServer, ชื่อ Database, ชื่อตาราง โดยกดปุ่ม Alt + F11 บนแป้นพิมพ์เพื่อเปิดโค้ด VBA

ในโค้ดที่ปรากฏขึ้นมาให้เปลี่ยนชื่อในส่วนประกาศตัวแปรให้ตรงกับฐานข้อมูลของเรา เช่นเปลี่ยน (local)\SQLEXPRESS ให้ตรงกับชื่อเครื่อง\ชื่อSQLServer เช่น 192.168.1.23\SQLSERVER ถ้าหากเครื่องที่เราติดต่ออยู่ในวงแลนมี IP คือ 192.168.1.23 และ SQL Server ชื่อว่า SQLSERVER (แต่ถ้าเราใช้ SQL Server Express และติดตั้งในเครื่องของเราเองก็ไม่ต้องแก้ไข)

image

ส่วนชื่อ Database ก็แก้ไขให้ตรงกับที่ใช้จริงเช่นจากตัวอย่างเราเก็บข้อมูลไว้ในฐานข้อมูลชื่อ TWXLog

จากนั้นกำหนดชื่อตารางให้ตรงกับที่มีอยู่ ในที่นี้เก็บไว้ในตารางชื่อ test2

 

3. แก้โค้ดเพื่อเก็บสัญญาณ

ในบรรทัดที่ 44 จะเห็นโค้ด

(getdate()," & copc1.GetVl(0) & "," & copc1.GetVl(1) & "," & copc1.GetVl(2) & ")"

ซึ่งเป็นการส่งค่าวันเวลา(getdate) และค่าสัญญาณอีก 3 ค่า ( copc1.getvl(0) ถึง (2) )

image

ดังนั้นถ้าเราเก็บค่าที่มากหรือน้อยกว่า 3 ค่าก็ต้องเพิ่มหรือตัดออกให้เท่ากับที่มีอยู่จริง เช่นถ้ามีอยู่ 4 สัญญาณก็จะเป็น

(getdate()," & copc1.GetVl(0) & "," & copc1.GetVl(1) & "," & copc1.GetVl(2) & ","

& copc1.GetVl(3) & ")"  

ให้เพิ่มการอ้างอิงไลบรารี่ของ ADO เข้ามาโดยเลือก Tools > References แล้วเลือก Microsoft Activex Data Objects 2.8 Library (ถ้ามีเวอร์ชั่นสูงหรือต่ำกว่านี้ก็ใช้ได้) แล้วคลิ้ก OK

image

 

4. เลือก OPC tag

เลือก OPC tag เข้ามา เลือก OPC tag ใน Property ของ COPC32 ให้ครบ โดยในแท็ป Developer ของ Excel ให้คลิ้กไอคอน Design Mode เพื่อเข้าโหมด Design จากนั้นคลิ้กขวาที่ COPC32 เลือก Property เข้าไปกำหนด OPC Server ที่จะใช้ในแท็ป OPC_Server และเลือก OPC tag ในแท็ป OPC Tag

image

กำหนดระยะเวลาความถี่ของการเก็บ เช่นในตัวอย่างนี้คือ 1000 มิลลิวินาที (1 วินาที)

image

คลิ้ก OK

 

ทดสอบการทำงานโดยออกจากโหมด Design แล้วคลิ้กปุ่ม Start Log จะมีการอ่านข้อมูลจาก OPC Server แล้วเก็บใน MS SQL Server

image

ที่เซลล์ G1 จะมีสถานะการ INSERT ข้อมูลใน MS SQL Server แสดง ถ้าต้องการหยุดการเก็บข้อมูลให้คลิ้กปุ่ม Stop

เมื่อเปิดดูข้อูมูลด้วยเครื่องมือเช่น MS SQL Management Studio Express จะพบข้อมูลที่เก็บดังรูป

image

นอกจากนี้หากเราต้องการให้การเก็บข้อมูลทำงานอัตโนมัติเมื่อเปิดไฟล์ Excel นี้ขึ้นมาก็ให้คัดลอกโค้ดของปุ่ม Command Button1 ไปไว้ในโค้ดของ ThisWorkbook เพื่อให้ทำงานอัตโนมัติและหยุดทำงานเมื่อปิดไฟล์

image

 

พบข้อสงสัยทิ้งข้อความไว้ได้ครับ

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