หน้าเว็บ

วันจันทร์ที่ 21 เมษายน พ.ศ. 2557

COPC32 : ใช้ ICONICS OPC UA เป็น Timer ใน Excel

สำหรับท่านที่ต้องการใช้ Excel เป็น SCADAนั้น เนื่องจากใน Excel ไม่มี Timerให้ใช้ บางครั้งเราใช้สคริปต์เพื่อทำงานเป็นTimerเช่นในตัวอย่างนี้ แต่ทราบหรือไม่ครับว่าเราสามารถใช้สัญญาณจาก ICONICS OPC UA มาทำหน้าที่ Timer ได้ ด้วยเทคนิคง่าย ๆ ดังนี้

หลักการ

ICONICS OPC UA มี Driver แบบ Simulator ที่สร้างสัญาณจำลองขึ้นมา เช่นสัญญาณ Ramp, Random เป็นต้น โดยสามารถกำหนด Update rate ของสัญญาณได้ เราสามารถใช้ COPC32 ติดต่อกับสัญญาณเหล่านี้ซึ่งจะเปลี่ยนแปลงตลอดตามค่า Update Rate เมื่อสัญญาณเปลี่ยนแปลงจะทำให้ Event ชื่อ datChange ของ COPC32 ทำงาน หากมีสคริปต์ใน Event ดังกล่าวก็จะทำให้สคริปต์นั้นทำงานไปด้วยทุกครั้งที่สัญญาณดังกล่าวเปลี่ยนแปลง จึงเป็นการทำงานตามUpdate Rate ของสัญญาณSimulateใน ICONICS OPC UA ด้วยประการฉะนี้

ความต้องการระบบ

1. ติดตั้ง COPC32 แล้ว ดาวนโหลดจาก www.scadaclub.com

2. มี MS Excel 2010

3. ICONICS OPC UA KEPServerEx ดาวน์โหลดจาก www.scadaclub.com ทำการติดตั้งให้เรียบร้อย

4. ทำการ Enable Macro และ ActiveX control ด้วยขั้นตอนดังนี้

เปิด MS Excel แล้วทำการอนุญาตให้มีการใช้ Macro และ Active X Control ดังนี้

clip_image001

รูปที่ 1

clip_image002

รูปที่ 2

คลิ้ก OK

clip_image003

รูปที่ 3

clip_image004

รูปที่ 4

การใช้งาน/ไฟล์ตัวอย่าง

หากไม่ต้องการทำตามขั้นตอนเหล่านี้สามารถ ดาวน์โหลดไฟล์ตัวอย่าง OPC Server และ Excel ได้ที่นี่

แล้วนำไปเปิดด้วย ICONICS OPC UA และ Excel ตามลำดับ หลังเปิดด้วย ICONICS OPC UA ให้เลือก Runtime Connect เพื่อทำการอัพเดท Runtime ให้ใช้ไฟล์ opf ที่ดาวน์โหลดมา

เปิด ICONICS OPC Server 5 Configuration ขึ้นมา

clip_image005

เปิดไฟล์ simdemo โดยเลือก File > Open ไปที่ C:\Program Files (x86) หรือ Program Files\ICONICS\ICONICS OPC Server Suite 5\Projects เลือกไฟล์ simdemo.opf คลิ้ก open

สร้าง OPC tag ที่จำลองสัญญาณ Random ขึ้นมา โดยคลิ้กขวาที่ Device1 > New Tag

clip_image006

ตั้งชื่อเช่น R1 แล้วกำหนด Address เป็น RANDOM(500,0,10) ซึ่งหมายถึงให้สุ่มค่า 1 ถึง 10 ออกมาทุก 500 msec (0.5 วินาที) ดังนั้นถ้าเราต้องการให้ Timer มีIntervalเท่าใดก็กำหนดเวลาตรงนี้ให้ตรงกัน เช่นถ้าต้องการ 1 วินาทีก็ใช้ RANDOM(1000,0,10) เป็นต้น แล้วคลิ้ก OK

ทำการ Save

ถ้ามีถามว่าจะ Update runtime ไหมให้ตอบ Update

เลือก Runtime > Connect ตอบ Yes

clip_image007

ต่อไปเป็นการนำ COPC32 มาใช้ใน Excel

เปิด Excel แล้วไปที่ Developer Tab คลิ้กทลบาร์ Insert > ไอคอนรูปค้อน+ประแจ

clip_image008

เลือก copc32 จากรายการ (จะพบก็ต่อเมื่อติดตั้ง COPC32 แล้ว) คลิ้ก OK

clip_image009

เคอร์เซอร์ของเมาส์จะกลายเป็นเครื่องหมาย + ให้ลากวางบนชีตของ Excel จะเป็นการวาง COPC32 ลงไป

clip_image010

คลิ้กขวาที่ COPC32 เลือก COPC32.copc Object > Properties เพื่อกำหนดว่าจะติดต่อกับ OPC Server และ OPC tag ตัวไหนบ้าง

clip_image011

ที่แท็ป OPC Server ให้คลิ้กปุ่ม … แล้วเลือก ICONICS.IconicsOPCUAServer.V5 จากรายการ แล้วกำหนด Update Rate เป็น 500 msec ตรงตามสัญญาณ Random ข้างต้น คลิ้ก OK

clip_image012

ที่แท็ป OPC Tag เลือก OPC tag ชื่อ R1 ที่สร้างไว้ข้างต้น แล้วคลิ้ก OK, OK

clip_image013

สร้างสคริปต์เพื่อ Connect OPC Server โดยกดปุ่ม Alt + F11

ดับเบิ้ลคลิ้กที่ ThisWorkbook ในหน้าต่างด้านซ้าย

แล้วเลือก Workbook จากรายการดังรูป

clip_image014

เขียนสคริปต์ Connect COPC32 ไปยัง OPC Server ดังรูป (ดังนั้นเมื่อ Excel ไฟล์นี้ถูกเปิดขึ้นมาจะทำให้ COPC32 สั่ง Connect ไปยัง OPC Server, ถ้าเราไม่ต้องการแบบอัตโนมัตินี้ก็สามารถสร้างปุ่มสั่ง Connect แทนก็ได้)

clip_image015

สร้างสคริปต์ Disconnect เมื่อปิด Workbook เพื่อให้ Disconnect จาก OPC Server ก่อนจะปิดไฟล์ Excel นี้

โดยเลือก BeforeClose

clip_image016

Excel จะสร้าง Sub Workbook_BeforeClose ขึ้นมาให้ ให้เขียนสคริปต์ Disconnect ดังรูป

clip_image017

กลับไปยังหน้า Excel ปกติ

ทำการเขียนโค้ดที่ต้องการเมื่อถึงเวลาที่ Timer ทำงาน โดยคลิ้กขวาที่ COPC32 Control แล้วเลือก View Code

clip_image018

Excel จะสร้าง Sub ชื่อ copc1_datChange() ขึ้นมา ให้เขียนโค้ดที่ต้องการเมื่อ Timer ทำงาน เช่นจากรูปเป็นการแสดงวันเวลาในเซลล์ H2 ของ Sheet1

clip_image019

ทำการ Save ไฟล์ เป็นแบบ Excel – Macro Enabled Workbook เพื่อให้รันสคริปต์ได้

clip_image020

ปิดไฟล์ Excel แล้วเปิดขึ้นมาใหม่เพื่อให้สคริปต์ Wookbook open ทำงานแล้วConnectไปยังOPC Serverอัตโนมัติ

ครั้งแรกของการเปิดไฟล์จะพบข้อความถามว่าจะให้ ActiveX ทำงานไหม(ในที่นี้คือCOPC32) ให้คลิ้ก Enable Content

clip_image021

จะพบค่าวันที่เวลาอย่างย่อในเซลล์ H2 ถ้าเรากำหนด Format เป็นวันเวลาโดยละเอียดก็จะพบว่ามีการเปลี่ยนไปโดยตลอด

clip_image022

เช่นเปลี่ยน Format เป็น Time

clip_image023

เราสามารถใช้หลักการนี้มาใช้เป็น Timer เพื่อสั่งงานสคริปต์ที่เราต้องการใน Excel ที่มีการใช้ COPC32 อยู่แล้วได้ โดยสามารถแยกCOPC32หลาย ๆ ตัวให้ทำหน้าที่ต่างกันเช่น บางตัวทำงานเป็น Timer ลิงค์กับสัญญาณ Simulate ข้างต้น บางตัว(วางCOPC32ลงบนExcelได้ตามที่ต้องการ)ทำงานเพื่อแสดงผลและควบคุม OPC tag

 

Technorati Tags: ,,,,

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

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