No Image
No Image

สอนใช้ GENESIS SCADA

หนังสือSCADA 

  

สินค้าออนไลน์ 

GENESIS32 TIPS

สร้าง SCADA ด้วย COPC32


 
ขอราคาที่ EDA Internationalขอราคาที่ EDA International

Advertisement

ABB ERP


 


 


เทอร์มินัลราคาถูก
Power Meter with ModbusPower Meterคุณภาพสูง

Remote IO R6

Remote IO 

 


 

ABB ERP

 

No Image

สร้างSCADAบนVisual C# 

สร้างSCADAด้วยภาษาโปรแกรมC#ในVisual Studio 2010ขึ้นไปทั้งเวอร์ชั่น ExpressและProโดยใช้COPC DLLเป็นตัวกลางติดต่อกับOPC Server


จะใช้ COPC32 บันทึกค่าสัญญาณจาก PLC, Controller ลงใน SQL Server อย่างไร? PDF พิมพ์ อีเมล์
จันทร์, 08 สิงหาคม 2011

 การบันทึกข้อมูลจาก 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)”

image

รูปที่ 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 ก็ได้ เช่น

ดาวน์โหลดโค้ด

 
< ก่อนหน้า   ถัดไป >

No Image
No Image No Image No Image

แหล่งความรู้ SCADA

Recommend


ซื้อ OPC Server จาก OPC Techs ได้ที่ EDA วันนี้พร้อมHardlock
No Image
© 2017 scadaclub - SCADA and Automation Community
Joomla! is Free Software released under the GNU/GPL License.
No Image