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 ดังนี้

 

image

รูปที่ 1

 

image

รูปที่ 2

 

คลิ้ก OK

 

image

รูปที่ 3

 

image

รูปที่ 4

 

 

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

 

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

 

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

 

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

image

 

เปิดไฟล์ 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

image

 

ตั้งชื่อเช่น 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

 

image

 

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

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

 

image

 

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

image

 

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

 

image

 

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

 

image

 

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

image

 

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

 

image

 

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

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

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

image

 

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

 

image

 

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

โดยเลือก BeforeClose

image

 

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

 

image

 

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

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

image

 

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

image

 

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

image

 

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

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

 

image

 

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

image

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

image

 

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

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