เชื่อมโยงข้อมูล Database กับ PLC แบบ Real-time ด้วย DataWorX

DataWorX เป็นหนึ่งในโมดูลของ GENESIS32 มีความสามารถหลายประการดังนี้

1. Data Bridge : เชื่อใโยง แลกเปลี่ยนข้อมูลระหว่าง Source หลากหลายแบบ เช่น Controller กับ Controller ต่างยี่ห้อกัน, Database กับ Database และ Controller กับ Database สามารถประมวลสัญญาณก่อนเชื่อมโยง เช่นเข้าสูตรบวกลบคุณหารต่าง ๆ ก่อนรับส่ง

2. Redundancy สำรองระบบ SCADA เพื่อป้องกัน Downtime จาก OPC Server, PC หรือแม้แต่ Controller

3. Data Agregation ป้องกันปัญหา OPC Server ส่งข้อมูลให้กับ Client จำนวนมากไม่ทัน (เกิดอาการอืด)

4. Data Tunneling เปิดทางให้ Client ระหว่างเครือข่ายสามารถติดต่อ OPC Server ที่อยู่ต่างเครื่องได้อย่างง่ายดาย

วันนี้เราพูดถึง Data Bridge เพื่อเชื่อมโยงข้อมูลแบบ Real time ครับ โดยเมื่อข้อมูลจาก Controller หรือ PLC เปลี่ยนแปลงก็ให้ฟิลด์ในฐานข้อมูลเปลี่ยนแปลงตามด้วย เรียกว่าการทำ Data Bridge เพื่อให้ฐานข้อมูลที่เราต้องการมีข้อมูลที่ตรงกันกับ PLC หรือข้อมูลการทำงานจริงของระบบควบคุม ประโยชน์ของการทำงานแบบนี้มีหลายประการครับ เช่น เราสามารถให้ผู้ใช้งานดูข้อมูลผ่านเว็บได้ โดยไม่ต้องติดตั้งโปรแกรม SCADA อาจเพราะหน้าที่รับผิดชอบของผู้ใช้เหล่านั้นอยู่ในระดับที่ต้องดูการเปลี่ยนแปลงเท่านั้น หรือเมื่อเราต้องการนำข้อมูลจากฐานข้อมูลนั้นให้หน่วยงานอื่นที่ต้องการนำไปประมวลผลต่อหรือไปควบคุมงานอย่างอื่นต่อโดยอาศัย Database เป็นตัวเก็บข้อมูลหลัก หรือเป็น Broker หลัก

ในบางงานที่ต้องดูข้อมูลผ่านเว็บโดยอุปกรณ์โมบายเช่น PDA หรือโทรศัพท์มือถือ แต่ไม่ต้องการซื้อโมดูลที่เกี่ยวกับเว็บเพิ่มเติม เพราะมีความต้องการเพียงต้องการมอนิเตอร์ค่าพารามิเตอร์เท่านั้น ก็สามารถใช้เทคนิคนี้ได้โดยไม่ต้องเสียค่าใช้จ่ายเพิ่ม (แต่หากต้องการควบคุมและใช้งานผ่านเว็บเป็น SCADA Client อย่างสมบูรณ์เช่นเดียวกับ GENESIS32โดยผ่านInternet ก็ต้องใช้ Add-on คือ WebHMI ครับ) (รูปด้านล่างนี้นานแล้วครับต้องขออภัย แต่หลักการไม่เปลี่ยนแปลง)

clip_image001

รูปที่ 1 ดูข้อมูล SCADA ผ่านมือถือแบบ Real-time ดูผ่านเว็บโดยไม่ต้องใช้ WebHMI หรือ Mobile HMI แต่ใช้เทคนิคของ DataWorX

จากรูปที่ 1 นั้นผมใช้โทรศัพท์มือถือติดตามการเปลี่ยนแปลงของระบบควบคุม โดยผมเปิดเว็บในโทรศัพท์มือถือไปยังเครื่อง SCADA ที่ติดตั้ง GENESIS32 อยู่โดยไม่เสียค่า GPRS เลยเพราะติดต่อผ่าน Blurtooth นอกจากนั้นเรายังสามารถใช้ PDA หรือ Pocket PC ต่าง ๆ ได้อีกด้วย โดยติดต่อผ่าน Wireless LAN ก็ได้ครับ และยังสามารถดูผ่าน Internet Explorer บน PC ที่ติดต่อกับ Network นี้ได้อีกด้วย

ประเด็นสำคัญอยู่ที่

– ใช้ DataWorX ใน GENESIS32 อัพเดทข้อมูลใน Database ที่ต้องการ ให้ข้อมูลเปลี่ยนตาม OPC Server (ซึ่งก็คือข้อมูลจาก PLC ต่าง ๆ นั่นเอง)

– ใช้ภาษาโปรแกรมต่าง ๆ เช่น ASP, ASP.Net, Java, PHP เพื่อดึงข้อมูลไปแสดงบนเว็บ

เท่านี้ท่านก็สามารถแสดงข้อมูลผ่านเว็บได้โดยไม่ต้องเสียค่าใช้จ่ายใด ๆ เพิ่ม

แต่ถ้าหากสนใจที่ง่ายกว่านี้และสมบูรณ์กว่าทั้งการมอนิเตอร์ ควบคุม และจัดการเช่นเดียวกับบน GENESIS32 แต่ผ่านทางเว็บ ก็ควรจะใช้ WebHMI ควบคู่กับ GENESIS32 ครับ ไม่ต้องเขียนโปรแกรมใด ๆ แต่มีความสามารถทุกประการที่ SCADA บน GENESIS32 ทำได้

* ขอเรียนครับว่าบทความนี้เขียนเพื่อเป็นแนวทางให้ท่านที่มีพื้นฐานโปรแกรมมิ่งเกี่ยวกับเว็บและฐานข้อมูลใช้พัฒนาการติดต่อกับ SCADA ผ่านเว็บครับ ท่านที่ต้องการจะใช้ WebHMI ไม่จำเป็นต้องทำเช่นนี้เลยครับ เพราะ WebHMI มีความสามารถที่เหนือกว่าบทความนี้มากและไม่จำเป็นต้องเขียนโปรแกรมใด ๆ เลย

การแลกเปลี่ยนข้อมูลกับ Database ด้วย DataWorX

วิธีการเบื้องต้นในการติดต่อ Database กับ SCADA

1. เตรียมฐานข้อมูลที่ต้องการเชื่อมโยงกับ SCADA เช่นฐานข้อมูลที่มีอยู่แล้วของฝ่ายซ่อมบำรุง ฝ่ายสต็อกเป็นต้น หรือสร้างขึ้นใหม่ ในรูปที่ 2 เป็นตัวอย่างตารางข้อมูลตารางหนึ่ง สมมุติตารางนี้ชื่อตาราง broker

clip_image002

รูปที่ 2 ตารางข้อมูลตัวอย่าง

2. สร้างส่วนเชื่อมโยงกับฐานข้อมูลด้วย Data Mining Configurator ซึ่งเป็นเครื่องมือตัวหนึ่งใน GENESIS32 เพื่อบอกให้ทราบว่าฐานข้อมูลที่เราจะติดต่อชื่ออะไร มีคอลัมน์ข้อมูลอะไรบ้าง และใช้คอลัมน์ใดเป็นคีย์ในการค้นข้อมูล จากรูปที่ 2 เราจะใช้คอลัมน์ id เป็นคีย์ในการค้นข้อมูล พูดแบบบ้าน ๆ ก็เช่นบุรุษไปรษณีย์ใช้เลขที่บ้านในการส่งจดหมายฉันใด ก็ฉันนั้นครับ เราจะสามารถระบุได้ว่าจะให้คอลัมน์ value ที่อยู่แถวเดียวกับ id= 2 มีการเปลี่ยนแปลงตาม OPC tag ตัวที่ต้องการ

ให้เปิด Data Mining Configurator จาก

    Start > Program > ICONICS Tools (หรือ ICONICS GENESIS32 > Tools ในเวอร์ชั่น 8) > Data Mining Configurator

เมื่อเปิด Data Mining Configurator ขึ้นมาแล้วให้ทำการสร้างจุดเชื่อมโยงชี้ไปยังฐานข้อมูลที่เราเก็บข้อมูลของตาราง broker ไว้ เช่นในตัวอย่างนี้ผมเก็บไว้ใน MSDE

ให้คลิ้กขวาที่กิ่ง

Database > เลือก New > Database Connection ดังรูปที่ 3

clip_image003

รูปที่ 3 สร้างจุดเชื่อมโยง Database ใหม่ใน Data Mining Configurator

ตั้งชื่อจุดเชื่อมโยงในช่องที่ 1 ใส่ Description คือคำอธิบายสั้น ๆ ในช่องที่ 2 เลือกประเภทของฐานข้อมูลในช่องที่ 3 ในกรณีนี้ผมติดต่อกับ MSDE ซึ่งเป็น SQL Server ดังนั้นในช่องที่ 4 ผมต้องระบุชื่อของ MSDE หรือ SQL Server ด้วย ส่วนช่องที่ 5 ให้ใส่ชื่อของ Database ใน MSDE ที่เก็บตาราง broker ไว้

clip_image004

รูปที่ 4 กำหนดรายละเอียดของจุดเชื่อมโยง

เมื่อสร้างจุดเชื่อมโยงแล้ว ให้สร้าง Datasource ใหม่ภายใต้จุดเชื่อมโยง MSDEBroker โดย

คลิ้กขวาที่ MSDEBroker > เลือก New  > Datasource ดังรูปที่ 5

clip_image005

รูปที่ 5 สร้าง Datasource

กำหนดรายละเอียดของ Datasource ดังรูปที่ 6

clip_image007

รูปที่ 6 กำหนดรายละเอียดของ Datasource

ในรูปที่ 6 นี้ในช่องที่ 1 ให้คลิ้กปุ่ม … เพื่อไปเลือกตารางชื่อ broker ในฐานข้อมูลของ MSDE ที่เรากำหนดไว้ในตอนแลก (รูปที่ 4)

เมื่อเลือกตารางและ OK ออกมาแล้ว ให้คลิ้กปุ่ม Add ในช่องที่ 1 เพื่อเลือกว่าจะใช้คอลัมน์ใดของตาราง broker เพื่อใช้เป็นคีย์ในการค้นข้อมูล โปรแกรมจะแสดงคอลัมน์ทั้งหมดออกมา ให้ท่านเลือกคอลัมน์ชื่อ id แล้วคลิ้ก OK คอลัมน์ id จะปรากฏอยู่ในส่วน Table Parameters ของรูปที่ 6

เมื่อกำหนดดังรูปที่ 6 เรียบร้อยแล้วให้คลิ้กปุ่ม Apply แล้วปิดโปรแกรม Data Mining Configurator ไปเลย

3. ใช้ DataWorX กำหนดว่าจะแลกเปลี่ยน OPC tag ตัวไหนกับฟิลด์ใดของฐานข้อมูล

เปิดDataWorX ขึ้นมาโดยเลือก

    Start > Program > ICONICS GENESIS32 > DataWorX32

(ในเวอร์ชั่น 8 จะเป็น Start > Program > ICONICS GENESIS32 > Tools > DataWorX)

จากนั้นสร้าง Register ขึ้นมาใหม่โดย

คลิ้กขวาที่กิ่ง Address Space > เลือก New > Register

ดังรูปที่ 7

clip_image008

รูปที่ 7 สร้าง Register ใหม่

กำหนดรายละเอียดของ Register ดังรูปที่ 8 (Register คือ tag ที่ใช้เป็นตัวแลกเปลี่ยนข้อมูลระหว่าง Source ต่าง ๆ ที่เราต้องการ)

clip_image009

รูปที่ 8 Properties ของ Register ที่สร้างขึ้น

เลือก Input คือสัญญาณจาก OPC Server ที่ต้องการนำเข้า (เพื่อนำไปเขียนไว้ในฐานข้อมูล) เราสามารถคลิ้กปุ่ม … ข้างช่อง Input OPC Point เพื่อไปเลือก OPC Tag ที่เราต้องการ ดังรูปที่ 10 (สังเกตุว่าเราสามารถปรับ Scan Rate ของ Input ได้ หน่วยเป็นมิลลิวินาที ในตัวอย่างคือ 5 วินาที หมายถึงทุก 5 วินาทีให้เขียนค่าลงในฐานข้อมูล Output)

clip_image010

รูปที่ 9

clip_image011

รูปที่ 10

เมื่อเลือก OPC tag แล้วคลิ้ก OK

ให้เลือกแท็ป OPC Outputs แล้วคลิ้กปุ่ม “Add OPC Outputs” เพื่อเลือกไปยังฐานข้อมูลที่ต้องการเขียนค่า Input ลงไป โดยจะปรากฏหน้าต่างดังรูปที่ 11 ให้เราเลือก ให้เลือกแท็ป Database Access (เพราะเป็นฐานข้อมูล)

จากนั้นเลือกตาราง tbroker ใต้ MSDEBroker ดังรูปที่ 11 เลือก “@@Column” ในช่องขวามือ จะปรากฏชื่อ Tag สมบูรณ์ในส่วนหัวของหน้าต่าง ให้ท่านเปลี่ยน id เป็น 1 และ Column เป็น value ดังรูปที่ 11 (หมายถึงเลือกคอลัมน์ value ที่แถว id มีค่าเป็น 1)

clip_image012

รูปที่ 11

คลิ้ก OK เป็นอันเสร็จเรียบร้อยการเชื่อมโยงข้อมูลระหว่าง OPC และ Database

ทดสอบรัน DataWorX โดยเลือกเมนูรูปไฟจราจรให้เป็นสีเขียว

clip_image013

รูปที่ 12 ทดสอบรัน DataWorX

* หากไอคอนรูปสายฟ้า (ที่ 4 จากขวา Enable อยู่ ให้คลิ้กให้เป็นสีเทาเพื่อ Update rumtime ที่กำลังทำงานอยู่)

การเริ่มการทำงานของ DataWorX เราสามารถให้ทำงา่นอัตโนมัติพร้อมระบบปฏิบัติการวินโดวส์ได้ ไม่ต้องมารันเอง ทั้งนี้สามารถติดตามในบทความที่เกี่ยวข้องกับ Genesis Tool Tray ครับ)

ในตัวอย่างนี้ผมได้ทำเพิ่มเป็น 3 Register เพื่อเชื่อมโยง OPC tag 3 ตัวกับฟิลด์ของ Database ที่ id=1, 2 และ 3 ตามลำดับ

เมื่อข้อมมูลของ OPC tag ที่กำหนดนั้นเปลี่ยนแปลง จะส่งผลให้ข้อมูลในฐานข้อมูล Update ตามไปด้วยครับ ท่านสามารถใช้เทคนิคนี้ได้กับฐานข้อมูลประเภทต่าง ๆ เช่น MS SQL Server 2000/2005/2005 Express/2008/2008 Express/ MSDE, MS Access, MS Excel, SAP, Oracle, MySQL, … เป็นต้น


บทความโดย : EDA Support Team

สอบถามข้อสงสัยได้ที่ scada@eda.co.th

clip_image014

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 )

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s