การป้อนค่าจากGENESIS32 SCADAไปยังMySQL
เราสามารถใช้GENESIS32 SCADAป้อนค่าไปยังMySQLได้โดยใช้ขั้นตอนดังนี้
1. สร้างตารางรับค่าชั่วคราว
เพื่อพักข้อมูล และมีคอลัมน์รับคำสั่งUpdate(udp)จากผู้ใช้ ในตัวอย่างนี้ตั้งชื่อว่าตาราง tmp ส่วนตารางเป้าหมายคือ t2
โครงสร้างของตารางtmpและt2
2. สร้างTrigger
(Triggerในตัวอย่างนี้ชื่อdata_update)เมื่อข้อมูลในคอลัมน์udpของตาราง tmp มีค่าเป็น1ให้เอาข้อมูลจากตาราง tmp ไปInsertเพิ่มในตารางเป้าหมาย(ในตัวอย่างนี้ตารางเป้าหมายคือตาราง t2)
ตารางtmpจะมีคอลัมน์udpดังรูป ปกติมีค่าว่างหรือ0
คำสั่งสร้าง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ที่ฐานข้อมูลที่ต้องการ
4. สร้างการติดต่อMySQLกับData Mining ConfiguratorของGENESIS32
สร้างData Sourceเพื่อติดต่อตารางtmp โดยเลือกคอลัมน์idเป็นพารามิเตอร์ค้นข้อมูล
สร้างData Itemลิงค์กับแต่ละคอลัมน์ของตารางtmp และระบุIDของแถวที่ต้องการจัดการ(ในตัวอย่างนี้เรามีแถวเดียวที่ID=1)
รูปบน ID1_UDPลิงค์กับคอลัมน์udp รูปล่างID1_V1ลิงค์กับคอลัมน์ v1 (ลิงค์ให้ครบทั้ง v2, v3 ด้วย)
การใช้งาน
ใช้Genesis32 ป้อนค่าไปยังData Item คือ ID1_v1, ID1_v2,ID1_v3 เมื่อป้อนเสร็จแล้วให้สั่ง udpให้เป็น1 ก็จะเป็นการส่งข้อมูลไปไว้ในตารางt2 จากรูปเป็นการลิงค์ProcesspointกับID1_V1 ให้นำProcessPointมาลิงค์กับID1_V2และID1_V3 ด้วยให้ครบ
สร้างปุ่มSubmitโดยใช้Download Valueเพื่อเขียนค่า 1 ไปยังID1_UDPเพื่อให้เกิดการเพิ่มข้อมูลในตารางt2 (Triggerที่สร้างไว้จะทำหน้าที่นี้)
เข้าสู่RuntimeของGENESIS32เพื่อทดสอบ
ผลลัพธ์ในMySQLที่ตารางt2