COPC DLL : Importชื่อOPC tag ไม่ต้องกำหนดชื่อเองอย่างไร

ท่านที่สร้างSCADAด้วยCOPC DLLบนVisual Studio/Visual Studio Expressเป็นต้น ทั้งVBและC# เมื่อมีจำนวนOPC tagที่ต้องใช้จำนวนมากแล้วต้องการนำเข้าOPC tagที่ExportจากOPC Serverโดยตรง กล่าวคือไม่ต้องการพิมพ์ชื่อOPC tagเองในโค้ดเพื่อความสะดวกและไม่ให้โค้ดยาว บทความนี้จะแสดงวิธีการนั้นครับ

ก่อนอื่นให้Exportชื่อOPC tagจากOPC Serverเสียก่อน

เช่นจากKepware ให้เปิดOPC Quick Client (1) แล้วคลิ้กขวาที่กลุ่มของOPC tag (2) จากนั้นเลือกExport CSV (3)

image

 

บันทึกไว้ในไดเรกทอรี่ที่เราต้องการ เช่นG:\

image

เปิดไฟล์CSVด้วยExcelแล้วลบคอลัมน์และแถวที่ไม่ใช่ชื่อOPC tagทิ้งไป

image

image

ผลลัพธ์ของไฟล์เมื่อเปิดด้วยNotepadจะได้ดังนี้

image

 

เมื่อExportและจัดรูปแบบเสร็จแล้วให้ไปเขียนโค้ดนำเข้าข้อมูลจากไฟล์CSVข้างต้น

ในตัวอย่างนี้จะแสดงวิธีการสำหรับC#

เราจะใช้System.IOดังนั้นให้เพิ่มSystem.IOเข้าไปในโค้ดบนสุดในส่วนUsingดังนี้

 

using System.IO;

 

ในส่วนการกำหนดคุณสมบัติของCOPCว่าจะให้ติดต่อOPC Server/OPC Tagอะไร แทนที่จะกำหนดชื่อOPC tagโดยตรงให้นำเข้าจากไฟล์ดังนี้

จากโค้ดเราอ่านข้อมูลจากไฟล์csvเข้ามา(ใช้ไฟล์txtก็ได้) จากนั้นวนลูปเซ็ตค่าให้COPC DLLรู้ว่าจะติดต่อOPC tagชื่ออะไรบ้างด้วยโค้ดในบรรทัด

foreach (string line in lines)
            {
                copc1.setItm(i, line);
                i++;
            }

โค้ดเต็มจะเป็นดังนี้

public partial class Form1 : Form
    {
        copcClass copc1;

        public Form1()
        {
            InitializeComponent();
            copc1 = new copcClass();
            copc1.datChange += Copc1_datChange;
            copc1.svrName = "Kepware.KEPServerEX.V6";

            string[] lines = System.IO.File.ReadAllLines (@"G:\Channel1.Device1.csv");

            copc1.tagAmount = Convert.ToInt16(lines.Length);



            short i = 0;

            foreach (string line in lines)
            {
                copc1.setItm(i, line);
                i++;
            }


            copc1.UpdateRate = 1000;

            try
            {
                copc1.connectng();
            }
            catch(Exception err)
            {

            }

        }

จำนวนของtagและหมายเลขลำดับtagจะยึดตามข้อมูลที่นำเข้ามาจากไฟล์ เช่นจากไฟล์ข้างต้นมี6บรรทัด ก็จะมีจำนวนtagของCOPC 6 ตัวตั้งแต่ itm 0 จนถึง itm 5 ดังนั้นถ้าเราจะอ้างอิงถึงtagไหนก็ดูในไฟล์ข้อมูลว่าเป็นตัวที่เท่าไหร่หรือเปิดในExcelจะมีหมายเลขแถวช่วยให้เราสังเกตุได้สะดวก itm 5 จะอยู่แถวที่6เป็นต้น

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