GENESIS64 Note: เก็บข้อมูลลงMySQL

ราสามารถใช้GENESIS64 SCADAป้อนค่าไปยังMySQLได้โดยใช้ขั้นตอนดังนี้

 

1. สร้างตารางรับค่าชั่วคราว

เพื่อพักข้อมูล และมีคอลัมน์รับคำสั่งUpdate(udp)จากผู้ใช้ ในตัวอย่างนี้ตั้งชื่อว่าตาราง tmp ส่วนตารางเป้าหมายคือ t2

image

โครงสร้างของตารางtmpและt2

image

image

2. สร้างTrigger

(Triggerในตัวอย่างนี้ชื่อdata_update)เมื่อข้อมูลในคอลัมน์udpของตาราง tmp มีค่าเป็น1ให้เอาข้อมูลจากตาราง tmp ไปInsertเพิ่มในตารางเป้าหมาย(ในตัวอย่างนี้ตารางเป้าหมายคือตาราง t2)

ตารางtmpจะมีคอลัมน์udpดังรูป ปกติมีค่าว่างหรือ0

image

คำสั่งสร้างTrigger

DROP TRIGGER IF EXISTS `mydb`.`data_update`;
DELIMITER $$
CREATE
TRIGGER `mydb`.`data_update` BEFORE UPDATE 
ON `mydb`.`tmp` 
FOR EACH ROW 
	BEGIN
		IF (New.udp = 1) Then
                
			INSERT INTO t2 (date_time, v1,v2,v3) 
            VALUES (Now(),NEW.v1,NEW.v2,NEW.v3);
                
			SET NEW.udp = 0;
		END IF;
	END$$
DELIMITER ;

จากคำสั่งส่วนนี้ในTrigger ถ้าคอลัมน์udpถูกเปลี่ยนเป็น1(โดยSCADA)เมื่อไหร่ ก็ให้นำข้อมูลทั้งหมดไปInsertในตารางt2 จากนั้นจะเปลี่ยนค่าudpเป็น0

IF (New.udp = 1) Then
            INSERT INTO t2 (date_time, v1,v2,v3)
            VALUES (Now(),NEW.v1,NEW.v2,NEW.v3);
            SET NEW.udp = 0;
END IF;

3. สร้างODBCติดต่อกับMySQLที่ฐานข้อมูลที่ต้องการ

image

4. ใช้GridWorX ServerในGENESIS64ติดต่อกับMySQL

เปิดWorkbenchแล้วสร้างODBC Connection

image

ตั้งชื่อConnection เช่น MySQL Connection

เลือกODBC Data Sourceที่เราสร้างไว้แล้ว และใส่User name/Password แล้วคลิ้กOK

image

คลิ้กขวาที่MySQL ConnectionเลือกAdd Data Source

image

ตั้งชื่อ Data Source เช่น TMP แล้วคลิ้ก Configure Command

image

เลือก Select Command Source เป็นตาราง tmp

image

จะได้ผลลัพธ์เป็นดังรูป ให้คลิ้กOK

image

เลือกแท็ปData Modification เลือกEnable UPDATE แล้วคลิ้กConfigure Commandเพื่อเลือกตารางtmp

image

กำหนดRefresh Period

image

คลิ้กOK คลิ้แApply

 

5. ทดสอบติดต่อและแก้ไขด้วยGraphWorX64

image

กำหนดให้ Data Entry เป็น True

image

แล้วเข้าโหมดRuntime

image

เมื่อคอลัมน์udpถูกเซตค่าเท่ากับ1จะทำให้Triggerทำงานแล้วInsertข้อมูลเข้าสู่ตารางt2 เมื่อดูข้อมูลในตารางt2จะมีพบข้อมูลดังรูป

image

หากต้องการให้มีการInsertข้อมูลอัตโนมัติทุกช่วงเวลาให้ดำเนินการดังนี้

ให้สร้างRegisterตามจำนวนคอลัมน์ของตารางtmp เช่น v1, v2, v3, upd ยกเว้นคอลัมน์IDไม่ต้องสร้าง

กำหนดInput Tagของแต่ละRegisterเช่น v1รับค่าจากOPC tagที่จะเก็บในคอลัมน์v1

image

กำหนดOutput Tagเป็นitemในGridWorX Server คือคอลัมน์ v1 เพื่อให้ส่งค่าOPC tagไปไว้ในคอลัน์v1

image

image

คลิ้กApply

ทำเช่นนี้จนครบ v1, v2, v3 โดยกำหนดInput/Output Tagตามต้องการ

ส่วนRegisterชื่อudpให้กำหนดค่า 1 เพื่อส่งให้คอลัมน์udpในMySQL และกำหนดให้Refresh outputทุกเวลาที่ต้องการเช่น 3 วินาที เพื่อให้TriggerในMySQLเก็บข้อมูล

image

คลิ้ก Apply

ผลลัพธ์ก็คือจะมีข้อมูลเพิ่มในตารางt2ทุก 3 วินาที ซึ่งเป็นข้อมูลจากOPC tag ทั้งหมดที่เรากำหนดไว้

image

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