Insertข้อมูลจากGENESIS32 SCADAไปยังMySQL

การป้อนค่าจากGENESIS32 SCADAไปยังMySQL

image

เราสามารถใช้GENESIS32 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. สร้างการติดต่อMySQLกับData Mining ConfiguratorของGENESIS32

image

สร้างData Sourceเพื่อติดต่อตารางtmp โดยเลือกคอลัมน์idเป็นพารามิเตอร์ค้นข้อมูล

image

สร้างData Itemลิงค์กับแต่ละคอลัมน์ของตารางtmp และระบุIDของแถวที่ต้องการจัดการ(ในตัวอย่างนี้เรามีแถวเดียวที่ID=1)
image

image

รูปบน ID1_UDPลิงค์กับคอลัมน์udp รูปล่างID1_V1ลิงค์กับคอลัมน์ v1 (ลิงค์ให้ครบทั้ง v2, v3 ด้วย)

image

 

การใช้งาน

ใช้Genesis32 ป้อนค่าไปยังData Item คือ ID1_v1, ID1_v2,ID1_v3 เมื่อป้อนเสร็จแล้วให้สั่ง udpให้เป็น1 ก็จะเป็นการส่งข้อมูลไปไว้ในตารางt2 จากรูปเป็นการลิงค์ProcesspointกับID1_V1 ให้นำProcessPointมาลิงค์กับID1_V2และID1_V3 ด้วยให้ครบ

image

สร้างปุ่มSubmitโดยใช้Download Valueเพื่อเขียนค่า 1 ไปยังID1_UDPเพื่อให้เกิดการเพิ่มข้อมูลในตารางt2 (Triggerที่สร้างไว้จะทำหน้าที่นี้)

image

เข้าสู่RuntimeของGENESIS32เพื่อทดสอบ

image

ผลลัพธ์ในMySQLที่ตารางt2

image

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a comment