ใช้ Web Service บน Excel สำคัญอย่างไร ทำอย่างไร

ทำไมการใช้ Web Service บน Excel ถึงมีความสำคัญต่อระบบ SCADA และทำอย่างไร

เนื่องจาก SCADA หรือ Hardware รุ่นใหม่ ๆ จะสามารถเรียกดูข้อมูลหรือสั่งงานผ่าน Web Service ได้ ทำให้เราสามารถดูข้อมูลบนเว็บ บนคอมพิวเตอร์ระบบปฏิบัติการต่าง ๆ ข้ามแพลตฟอร์มหรือ OS กันได้ เช่นแสดงข้อมูลจาก SCADA แบบ Windows บนเครื่องพีซีแบบ Linux หรือ Mac เป็นต้น

ส่วน Excel เป็นซอร์ฟแวร์พื้นฐานที่ใช้งานในองค์กร สามารถนำข้อมูลมาคำนวน ทำรายงาน เป็นต้นได้ ดังนั้นการใช้งาน Web Service บน Excel จึงเสมือนการนำข้อมูลมาใช้ได้อย่างหลากหลายวัตถุประสงค์ในต้นทุนที่ต่ำ เช่นเพื่อแสดงสถานะของระบบการผลิต คำนวนผลการทำงาน เป็นต้น โดยสามารถติดต่อนำข้อมูลมาจากซอร์ฟแวร์ SCADA รุ่นใหม่ ๆ ที่สามารถทำหน้าที่เป็น Web Service provider หรือเปิดช่องให้สามารถเรียกใช้ Web Service ได้ การใช้ Excel เป็นเครื่องมือจึงช่วยลดต้นทุนและเพิ่มศักยภาพขององค์กรได้

ทำอย่างไร?

ต้องเขียนโค้ด (อย่าเพิ่งถอดใจ เพราะเราเตรียมโค้ดไว้ให้แล้ว) โดยใช้ความสามารถของคอมโพเน็นท์ที่ชื่อ Microsoft Soap Type Library

ให้เปิด Excel แล้วคลิ้กปุ่ม Alt + F11 เพื่อเข้าดูโค้ด จากนั้นเพิ่ม Reference คือ Microsoft Soap Type Library เข้าไปโดยเลือก Tools > Reference

image

จากนั้นสร้าง Module ขึ้นมาแล้วคัดลอกโค้ดนี้วางลงไปใน Module

Public Function ReadOPC2() As Single

    Dim objSClient As MSSOAPLib30.SoapClient30      ' Remove the 30 if using an earlier version of SOAP
    Dim fResult As Single

    Set objSClient = New SoapClient30
    Call objSClient.MSSoapInit(par_WSDLFile:="http://toshiba:8080/GEN32Service/Service1.asmx?wsdl")

    fResult = objSClient.ReadOPC("ICONICS.Simulator.1\SimulatePLC.Sine")
    Set objSClient = Nothing

    ReadOPC2 = fResult

End Function

โค้ดดังกล่าวเป็นการเรียกใช้ Web Service ของ GENESIS32 SCADA ที่พัฒนาด้วย Visual Web Developer Express จาก URL  http://toshiba:8080/GEN32Service/Service1.asmx?wsdl

(ดูวิธีการพัฒนาได้ที่ VDO นี้) โดยเป็นการอ่านค่าจาก OPC tag คือ ICONICS.Simulator.1\SimulatePLC.Sine ด้วยเมธอดชื่อ ReadOPC ซึ่งเป็นเมธอดหนึ่งของ Web Service ดังกล่าวเพื่ออ่านค่าของ OPC tag

ตัวอย่างการเรียกใช้เมธอด ReadOPC2 นี้จาก Excel ก็อย่างเช่นการแสดงค่า OPC tag ในเซลล์ G1

Sheet1.Range("G1") = ReadOPC2()

ทั้งนี้เราสามารถปรับเปลี่ยนฟังก์ชั่น ReadOPC2 ตามความเหมาะสมเช่นเปลี่ยนให้รับค่า OPC tag name ได้แทนการกำหนดโดยตรงที่ Function เป็นต้น

จากรูปเป็นการนำโค้ดเรียก Function นี้ไปใช้ในปุ่มเพื่อแสดงค่า OPC tag ออกมาที่เซลล์ G1

image

การใช้ Web Service สามารถใช้ผ่านเครือข่ายทั้ง Intranet และ Internet ทำให้สะดวก ไม่ต้องคอนฟิก Communication ให้ยุ่งยาก

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