หน้าเว็บ

วันอังคารที่ 7 เมษายน พ.ศ. 2558

ตัวอย่างโปรเจ็คC#สร้างSCADAด้วยCOPC DLL: ตรวจจับเมื่อOPC Serverไม่มีการเปลี่ยนแปลง

ตัวอย่างโปรเจ็คVisual Studio Express 2010เขียนด้วยภาษาC# ใช้COPC DLL ตรวจสอบว่าOPC Serverที่ติดต่ออยู่นั้นไม่เกิดการเปลี่ยนแปลงใด ๆ ซึ่งอาจเกิดความขัดข้องหรือหลุดไปแล้ว ถ้านิ่งเกินระยะเวลาที่กำหนดให้ Reconnect หรือทำสิ่งอื่นเพิ่มเติมเช่นเปลี่ยนไปติดต่อOPC Serverสำรอง

 

 

VDO/บทความที่ควรชมก่อน :

ไฟล์ที่ต้องใช้(ถ้ายังไม่มี)

 

ส่วนสำคัญ

ในโค้ดมีการบวกเพิ่มตัวแปร n1 ในSubของTimer ดังนั้นทุก ๆ รอบบของTimer ค่าของn1จะถูกบวกเพิ่ม แต่ถ้าค่าของOPC tagมีการอัพเดทค่าของn1ก็จะถูกรีเซ็ตให้เป็น 0 ที่Sub copc1_datChange แต่ถ้าไม่มีการเปลี่ยนแปลงของOPC Serverเลยค่าn1จะถูกบวกเพิ่มไปเรื่อย ๆ เนื่องจากcopc1_datChangeไม่มีการทำงาน(Subนี้จะทำงานเมื่อมีการเปลี่ยนแปลงของtagทั้งหลายที่COPCติดต่ออยู่) จนในที่สุดเกินค่าที่เรากำหนดเช่นในตัวอย่างคือ5 ก็สั่งให้Reconnect ดังโค้ดที่อยู่ในTimerดังนี้

n1 = n1 + 1;
label3.Text = n1.ToString();

if (n1 > 5)
{
reconnect();

}

โต้ดในSubชื่อ reconnectจะสั่งให้พยายามติดต่อOPC Serverใหม่

private void reconnect()
{
    try
       {

          copc1.connectng();

       }
    catch
       {
       }

}

การทำงานเช่นนี้จะช่วยให้มีการติดต่อOPC Serverใหม่เมื่อเกิดหลุดเนื่องจากความขัดข้องเช่นระบบเครือข่ายล่มทำให้OPC Serverในระบบเครือข่ายติดต่อไม่ได้เป็นต้น ซึ่งสสามารถปรับปรุงการทำงานตามต้องการเช่นถ้าn1เพิ่มเกินกว่าที่กำหนดก็ให้เปลี่ยนชื่อOPC ServerไปยังOPC Serverสำรองก่อนconnectใหม่ก็ได้ ทั้งนี้เราควรใช้OPC tagที่มีการเปลี่ยนแปลงอยู่ตลอดในCOPCDLLด้วยเช่นสัญญาณเวลาในกลุ่ม _SystemของICONICS OPC UA/Kepwareเป็นต้น

image

 

การทดสอบ

เมื่อติดตั้ง ICONICS OPC UA, COPC DLL และ Visual Studio 2010 ขึ้นไปทั้งExpressหรือProแล้ว ให้เปิดโปรแกรม ICONICS OPC UA Server ให้เปิดไฟล์คอนฟิกOPCที่ดาวน์โหลดไปพร้อมไฟล์C#ตัวอย่าง

image

จากนั้นเปิดไฟล์C#ตัวอย่างแล้วAdd ReferenceของCOPC DLLเข้ามาในโปรเจ็คเพื่อความแน่ใจ แล้วคลิ้กปุ่มRunบนVisual Studioได้เลยครับ

COPC DLL เป็นActiveX Controlเพื่อเป็นตัวอ่านเขียนข้อมูลกับOPC ServerสามารถทำงานบนC#, VB, VB.Net, Excel และSCADAที่ใช้ActiveXได้ ไม่จำกัดจำนวนIO tagราคาเพียง8,500บาท (เวอร์ชั่นDemoใช้งานได้30วัน)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น