การบันทึกข้อมูลจาก PLC ผ่าน OPC Server ด้วย COPC32 นั้นไม่ยากครับ ในที่นี้จะยกตัวอย่างโดยใช้ VB.Net 2008 Express ซึ่งดาวน์โหลดได้ฟรีที่ www.msdn.com นะครับ ในที่นี้จะสมมุติว่าเราเข้าใจการใช้งาน COPC32 มาแล้วนะครับ
เมื่อเราติดตั้ง VB.Net 2005 Express, COPC32 และมี OPC Server ที่เชื่อมต่อ PLC, RTU, Controller, ฯลฯ เรียบร้อยแล้ว ให้สร้าง Project ใหม่ใน VB.Net ขึ้นมา แล้วใช้งาน COPC32 ตามปกติ (ระบุ OPC Server, OPC tag และ Update rate ให้เรียบร้อย) เราจะเขียนโค้ดลงไปดังนี้ Private Sub Insert() Dim sql As String = ” INSERT INTO table3([Time_Date], [val1], [val2], [val3]) VALUES (@Time_Date, @val1, @val2, @val3)” Dim param(3) As SqlParameter param(0) = New SqlParameter(“@Time_Date”, SqlDbType.DateTime) param(0).Value = DateTime.Now param(1) = New SqlParameter(“@val1″, SqlDbType.Float) param(1).Value = Axcopc1.GetVl(0) param(2) = New SqlParameter(“@val2″, SqlDbType.Float) param(2).Value = Axcopc1.GetVl(1) param(3) = New SqlParameter(“@val3″, SqlDbType.Float) param(3).Value = Axcopc1.GetVl(2) Dim sConnection As New SqlConnection(“server=(local)\sqlexpress;uid=user;pwd=12345;database=TWXLog”) sConnection.Open() Dim command As SqlCommand = sConnection.CreateCommand() command.CommandText = sql command.Parameters.AddRange(param) Dim nResult As Integer = command.ExecuteNonQuery() sConnection.Close() command.Dispose() End Sub โค้ดดังกล่าวเป็นการสร้าง Sub ที่ชื่อ Insert ซึ่งจะนำค่าจาก COPC32 ไปเก็บใน SQL Server โดยมีข้อที่เป็นจุดสนใจดังนี้ 1. การกำหนดชื่อ SQL Server, Database รวมทั้ง user, password Dim sConnection As New SqlConnection(“server=(local)\sqlexpress;uid=user;pwd=12345;database=TWXLog”) ในที่นี้ชื่อ Server คือ (loacl)\sqlexpress และ Database คือ TWXLog 2. มีการเก็บข้อมููลในตารางชื่อ table3 ในคอลัมน์ Time_Date, val1, val2, val3 ผ่านพารามิเตอร์@Time_Date, @val1, @val2, @val3 ตามลำดับ Dim sql As String = ” INSERT INTO table3([Time_Date], [val1], [val2], [val3]) VALUES (@Time_Date, @val1, @val2, @val3)”  รูปที่ 1 แสดงประเภทตัวแปรข้อมูลของตาราง table3 ดังนั้นในโค้ดเราจึงต้องประกาศพารามิเตอร์ให้เป็นข้อมูลประเภทเดียวกับในตารางด้วยดังนี้ param(0) = New SqlParameter(“@Time_Date”, SqlDbType.DateTime) param(0).Value = DateTime.Now param(1) = New SqlParameter(“@val1″, SqlDbType.Float) param(1).Value = Axcopc1.GetVl(0) param(2) = New SqlParameter(“@val2″, SqlDbType.Float) param(2).Value = Axcopc1.GetVl(1) param(3) = New SqlParameter(“@val3″, SqlDbType.Float) param(3).Value = Axcopc1.GetVl(2) เพราะพารามิเตอร์เหล่านี้จะรับค่าจาก COPC32 ไปให้ SQL Server การใช้งาน Sub ที่เราสร้างขึ้นมานี้ สามารถเรียกใช้บน Timer หรือ Dat_Change ของ COPC32 ก็ได้ เช่น |