เนื้อหาวันที่ : 2011-06-30 13:55:30 จำนวนผู้เข้าชมแล้ว : 4305 views

ประยุกต์ MS Excel ให้เป็น SCADA ด้วย COPC32

ActiveX Control ที่ใช้สร้าง SCADA ร่วมกับภาษาโปรแกรมแบบ VB, VB.net, C# และ VBA

การประยุกต์ MS Excel ให้เป็น SCADA ด้วย COPC32

          COPC32 คือ ActiveX Control ที่ใช้สร้าง SCADA ร่วมกับภาษาโปรแกรมแบบ VB, VB.net, C# และ VBA (เช่น MS Excel และแอพลิเคชั่นอื่น ๆ ที่ใช้ VBA ได้) ดังนั้นจึงสามารถนำมาใช้บน MS Excel ได้และทำให้เป็น SCADA ได้ ซึ่ง COPC32 จะทำหน้าที่ตัวกลางอ่านและเขียนข้อมูลระหว่างภาษาโปรแกรมกับ OPC Server นั่นเอง COPC32 ทำให้เราสามารถสร้าง SCADA ติดต่อ OPC tag ได้ไม่จำกัดจำนวนและจำนวนโค้ดโปรแกรมได้เป็นจำนวนมาก ใช้งานง่าย

          เราสามารถดาวน์โหลด COPC32 เวอร์ชั่นทดลองใช้งานได้จาก www.eda.co.th สามารถติดต่อ OPC tag ได้ไม่จำกัดจำนวนแต่ใช้งานได้ 2 ชั่วโมงต่อการใช้งานแต่ละครั้ง

ขั้นตอนการประยุกต์ใช้ MS Excel ให้เป็น SCADA ด้วย COPC32
          ขั้นที่1 : การใช้งาน COPC32 เพื่อทำให้ MS Excel เป็น SCADA ได้นั้น ก่อนอื่นเราต้องอนุญาตให้มีการเปิดใช้งานมาโครและ ActiveX Control บน MS Excel เสียก่อน โดยใน MS Excel2010 (ใช้ได้กับ MS Excel ตั้งแต่เวอร์ชั่น XP/2003 แต่ในที่นี้ขอยกตัวอย่าง 2010) โดยการเปิดใช้งานมาโครนั้น เราต้องแสดงแท็ป Developer ของ MS Excel เสียก่อน โดยเลือก File > Options จากนั้นเลือก Customize Ribbon จากหน้าต่าง Excel Option แล้วใส่เครื่องหมายถูกใน Developer ในกลุ่มของ Main Tabs ซึ่งเลือกได้จากดร็อปดาวน์ลิสต์ชื่อ Customize the Ribbon:

รูปที่ 1 แสดงการเปิดใช้งานมาโครและ ActiveX Control บน MS Excel

          ขั้นที่2 : เมื่อกำหนด Option ดังกล่าวแล้ว เราจะพบแท็ปที่ชื่อ Developer บนทูลบาร์ของ Excel 2010 ให้เราสามารถกำหนดใช้มาโครได้ดังนี้ ที่แท็ป Developer ให้คลิ้ก Macro Security แล้วจะพบหน้าต่าง Trust Center ให้เลือก Enable all macros … จากกลุ่ม Macro Settings

รูปที่ 2 แสดงขั้นตอนการ Settings Marco

          ขั้นที่3 : ให้เลือก Enable all controls … จากกลุ่ม ActiveX Settings ด้วย แล้วคลิ้ก OK

รูปที่ 3 แสดงขั้นตอนการ Settings ActiveX

          ขั้นที่4 : หลังจากได้ทำการอนุญาตให้มีการใช้งานมาโครและ ActiveX Control แล้วเราก็สามารถนำเข้า COPC32 ได้ (โดยเราต้องติดตั้ง COPC32 ที่ดาวน์โหลดมาก่อน) การนำเข้า COPC32 ให้เลือก Insert จะพบ Form Controls ปรากฏขึ้นมา ให้เราคลิ้กไอคอน More Controls แล้วเลือก COPC32.copc

รูปที่ 4 แสดงวิธีการนำ COPC32 เข้าใน Excel

          ขั้นที่5 : เคอร์เซอร์ของเมาส์จะเปลี่ยนเป็นเครื่องหมาย + ให้ลากเพื่อวาง COPC32 บน Excel Worksheet

รูปที่ 5 แสดงวิธีการวาง COPC32 บน Excel Worksheet

          ขั้นที่6 : หลังจากวาง COPC32 แล้วให้เข้าไปกำหนดว่าจะต่อ OPC Server และ OPC tag ใดบ้าง ด้วยความเร็ว Scan rate เท่าใด โดยคลิ้กขวาที่ COPC32 ที่วางใน Excel แล้วเลือก COPC32.copc Object > Properties

รูปที่ 6 แสดงวิธีการเชื่อมต่อ COPC32 ให้เข้ากับ OPC Server

          ขั้นที่7 : จะพบกับหน้าต่าง COPC32.copc Properties ในการเลือก OPC Server ให้เลือกแท็ป OPC Server คลิ้กที่ปุ่มข้างช่อง svrname จพบหน้าต่าง OPC Server ให้ทำการเลือก OPC Server ที่ค้นหาเจอในคอมพิวเตอร์ปัจจุบัน (กรณี OPC Server อยู่ต่างคอมพิวเตอร์ให้ระบ IP Address ในช่อง nodname ก่อน และทำการคอนฟิก DCOM ด้วย รายละเอียดอ่านเพิ่มที่ www.eda.co.th ) แล้วคลิ้ก OK

รูปที่ 7 แสดงวิธีการเลือก OPC Server

          ขั้นที่8 : หลังจากเลือก OPC Server แล้ว ให้เลือก OPC tag โดยเลือกแท็ป OPC Tag จากนั้นคลิ้กปุ่ม … เพื่อเข้าไปเลือก OPC tag ที่ต้องการ

รูปที่ 8 แสดงวิธีการเลือก OPC tag

          ขั้นที่9 : จากรูปที่ 8 สังเกตุด้วยว่าแต่ละช่องที่มีให้เลือก OPC tag นั้นจะมีชื่อกำกับหน้าช่องข้อความว่า itm0, itm1,…, itm59 รวม 60ตัว ซึ่งเป็นหมายเลข Index ใช้อ้างอิง OPC tag ที่เราเลือก เช่นตัวแรกก็มี Index number เป็น 0 OPC tag ตัวที่สองเป็น 1 เรื่อยไปจนถึง 59 ซึ่งเราจะอ้างอิงได้เมื่อเขียนโค้ด อีกประการเราจะพบว่า COPC32 จำนวน หนึ่งตัวนั้นติดต่อ OPC tag ได้ 60 ตัว ถ้าต้องการมากกว่านั้นก็เพียงแต่เพิ่ม COPC32 เข้ามาอีกได้เรื่อย ๆ
เมื่อเลือก OPC tag ครบแล้ว ให้คลิ้ก OK ออกจากหน้า COPC32.copc Properties

          เราจะเขียนโค้ดให้เชื่อมต่อ OPC Server ขณะที่ผู้ใช้งานเปิดไฟล์ Excel ขึ้นมาเลย ให้คลิ้ก Alt + F11 บนแป้นพิมพ์เพื่อเปิดโค้ด VBA จากนั้นดับเบิ้ลคลิ้กที่ This Workbook แล้วเลือก Workbook จากดร็อปดาวน์ และเลือก Open จากรายการอีเวนต์แล้วเขียนโค้ดเข้าไปตามรูป คือ Sheet1.copc1.cnnec จะทำให้ COPC32 เชื่อมต่อ OPC  Server เมื่อมีการเปิดใช้ไฟล์ Excel นี้

รูปที่ 9 แสดงวิธีการทำให้ COPC32 เชื่อมต่อ OPC  Server

          ขั้นที่10 : จากรูปที่ 9 เราสั่งให้ COPC32 ตัวที่เรานำไปวางใน Excel ซึ่งจะมีชื่อเป็น copc1 โดยอัตโนมัติ ทำการติดต่อไปยัง OPC Server จากนั้นเราต้องเขียนโค้ดให้ยกเลิกการเชื่อมต่อ OPC Server เมื่อผู้ใช้ปิดไฟล์ Excel นี้ด้วย โดยเลือกอีเวนต์ BeforeClose จากดร็อปดาวน์ แล้วเขียนโค้ดในอีเวนต์นี้ว่า sheet1.copc1.discnn

รูปที่ 10 แสดงวิธียกเลิกการเชื่อมต่อ OPC Server

          ขั้นที่11 : หลังจากเขียนโค้ดกำหนดการติดต่อและยกเลิกการติดต่อ OPC Server แล้ว ต่อไปจะเขียนโค้ดแสดงข้อมูลจาก OPC tag มาแสดงใน MS Excel โดยให้เลือก copc1 จากรายการคอนโทรล แล้วเลือกอีเวนต์ datChange ซึ่งเป็นอีเวนต์ของ COPC32 ด้วย ซึ่งอีเวนต์นี้จะทำงานเมื่อ OPC tag มีการเปลี่ยนแปลงเกิดขึ้นจากนั้นเขียนโค้ดนำข้อมูลที่อ่านได้มาแสดง เช่นในที่นี้ ให้แสดงข้อมูลของ OPC tag ตัวที่มี Index Number = 0 มาแสดงในเซลล์ B2 ก็เขียนโค้ดดังรูป

รูปที่ 11 แสดงวิธีเขียนโค้ดแสดงข้อมูลจาก OPC tag มาแสดงใน MS Excel

          ขั้นที่12 : ทั้งนี้เรายังสามารถเขียนโค้ดต่างจากรูปที่ 11 ได้ซึ่งให้ผลเดียวกันคือ Sheet1.Range("B2") = copc1.getVl(0)

          จากนั้นทำการบันทึกไฟล์ Excel ในรูปแบบ Macro enabled โดยเลือก Save As แล้วเลือก Excel Macro-Enabled Workbook จากรายการ Save as type : แล้วปิดไฟล์ Excel นี้ไปก่อน

รูปที่ 12 แสดงการบันทึกไฟล์ Excel ในรูปแบบ Macro enabled

          ขั้นที่13 : ทำการทดสอบโดยเปิดไฟล์ Excel ที่บันทึกเป็นแบบ Macro-Enabled ดังกล่าวขึ้นมาจะพบว่ามีการแสดงข้อมูลบน MS Excel ที่เซลล์ B2 แบบ Real time ตลอดเวลา

รูปที่ 13 แสดงการทดสอบของข้อมูลบน MS Excel แบบ Real time

          จากตัวอย่างเบื้องต้นจะเห็นถึงความง่ายในการใช้งาน COPC32 บน MS Excel การใช้งานบน VB, VB.net สามารถนำไปประยุกต์ใช้งานได้ เพื่อเพิ่มขีดความสามารถและประสิทธิภาพให้แก่ COPC32 อีกทั้งยังช่วยลดต้นทุนค่า Software SCADA ที่มีราคาค่อนข้างสูงได้อีกด้วย นอกจากนี้ท่านที่สนใจศึกษาหาข้อมูลอื่น ๆ เพิ่มเติมสามารถอ่านได้บนเว็บ www.eda.co.th

บริษัท อิดิเอ อินเตอร์เนชั่นแนล จำกัด
41/35 ถนนวัชรพล แขวงท่าแร้ง เขตบางเขน กรุงเทพฯ 10220
Tel :+66(0)2793-8787 Fax:+66(0)2793-8799
URL: www.eda.co.th, E-mail :info@eda.co.th