ถ้าเราต้องการเช็คว่าOPC Serverที่ติดต่ออยู่นั้นติดต่อได้อยู่หรือไม่ก็สามารถใช้QualityของOPC Tagเป็นตัวบอกได้ครับ
ในICONICS OPC UA ServerหรือKepwareจะมีtagในกลุ่มSystemจำนวนมากที่ไม่เกี่ยวกับสัญญาณในHardwareซึ่งถ้าคอมพิวเตอร์เครื่องนั้นยังสามารถเชื่อมต่อได้Qualityของสัญญาณก็ตจะเป็นGoodหรือเท่ากับ192 เราสามารถเอาค่านี้มาแสดงสถานะของOPC Serverได้
ตัวอย่างโค้ดการแสดงสถานะของOPC ServerในC#โดยใช้COPC Dllอ่านค่าQualityของสัญญารในกลุมSystemมา
private void timer1_Tick(object sender, EventArgs e)
{
int qty=0;
try
{
qty = int.Parse(copc1.GetQuality(0).ToString());
}
catch (Exception err)
{
}
if (qty == 192)
{
label2.Text = "Good" + qty.ToString();
}
else
{
label2.Text = "Bad" + qty.ToString();
}
}
จากโค้ดข้างต้นเป็นการให้COPCอ่านQualityของOPC Tagตัวที่ต้องการ ในตัวอย่างนี้ใช้ตัวแรก จึงระบุหมายเลขในฟังก์ชั่นGetQualityเป็น 0 (เราต้องไปกำหนดก่อนว่าOPC tagที่ต้องการใช้งานนั้นชื่ออะไร ดูตัวอย่างในVDOเรื่อง ใช้COPC DLLบนC# 2010 ) ถ้าQualityไม่ใช่192แสดงว่าเกิดปัญหาขึ้นให้แสดงคำว่าBadในlabel2พร้อมต่อท้ายด้วยค่าQuality ถ้าเป็น192ก็แสดงGood
การนำไปใช้ประโยชน์
เราสามารถนำสถานะของOPC Serverไปใช้ประโยชน์เช่น ในการแจ้งเตือน หรือใรนการทำRedundant เช่นถ้าQualityเป็น BADให้เปลี่ยนไปติดต่อOPC Serverสำรอง ในกรณีเช่นนี้เราให้OPC Serverทั้งสองชุดในคอมพิวเตอร์นั้นๆมีการคอนฟิกและtagต่าง ๆ ที่เหมือนกันและติดต่อกับPLCชุดเดียวกัน(Ethernet Communication) ส่วนในโปรแกรมC#ที่เราเขียนโดยใช้COPCนั้นเราก็มีOPC tagที่ติดต่ออยู่ชุดเดียว เมื่อOPC ServerตัวแรกBAD ก็เขียนเงื่อนไขให้เปลี่ยนIP AddressจากOPC Server ตัวแรกไปยัง OPC Server ตัวที่สองแทนโดยใช้คำสั่งกำหนดnodeNameเช่น
copc1.disconnec();
copc1.nodeName = “192.168.1.25”;
copc1.connectng();
ซึ่งเป็นการระบุุให้ติดต่อกับIPที่ต้องการ โดยเราจะต้องDisconnectกับการเชื่อมต่อปัจจุบันก่อน ซึ่งอาจจะต้องมีTimerตรวจสอบว่าฺBadกี่ครั้งติดกันแล้วค่อยเปลี่ยนIPเพื่อความแน่นอนและมีการกำหนดIntervalของTimerให้เหมาะสมไม่เร็วเกินไป นอกจากนั้นฟังกชั่นการเปลี่ยนIPนี้ต้องแยกจากหน้าที่การแสดงผลหรือสั่งการปกติเช่นเขียนแยกในTimerตัวอื่นต่างหากเพราะมันต้องมีช่วงเวลาการรอระหว่างConnectไปยังIPใหม่
หมายเหตุ: COPC dllเวอร์ชั่นเดโมใช้งานได้ต่อเนื่อง30วันเท่านั้น และสามารถสั่งซื้อได้ที่นี่
ไม่มีความคิดเห็น:
แสดงความคิดเห็น