Home
เอาค่าเวลามาใช้แบบOPC tagในGENESIS32 SCADA PDF Print E-mail
Written by Administrator   
Thursday, 20 December 2018 05:00

วิธีที่ง่ายที่สุดที่จะเอาค่าวันที่และเวลามาใช้แบบOPC tagก็คือใช้จากKepwareซึ่งไม่ต้องซื้อไลเซนส์ก็ได้(ถ้าใช้เฉพาะค่าวันที่และเวลา หรือกระทั่งค่าสัญญาณแบบSimulateเช่นเอาไว้เก็บค่าที่ได้จากSCADA) แต่ถ้าไม่ต้องการติดตั้งKepwareเราก็ยังมีวิธีอื่นโดยใช้ค่าวันที่เวลาที่มีอยู่ในGENESIS32 SCADA

ถ้าต้องการแสดงผลวันที่เวลาบนหน้าแสดงผล

ถ้าต้องการแค่แสดงผล ไม่ได้เอาไปใช้งานอย่างอื่น GENESIS32มีตัวTime/Dateให้เอามาใช้แสดงผลได้เลยดังรูป

image

เมื่อเอามาวางในหน้าแสดงผลก็สามารถเลือกว่าจะแสดงแบบใดเช่น เวลาอย่าเดียว วันที่อย่างเดียว หรือทั้งวันที่และเวลา รวมทั้งรูปแบบของเวลาและวันที่

image

แต่ถ้าต้องการการค่าที่สามารถใช้งานแบบOPC Tagได้เพื่อประโยชน์ เช่น เพื่อส่งไปให้PLCหรือเอาไว้ใช้เปรียบเทียบในExpressionเราก็ต้องใช้วิธีอื่นดังต่อไปนี้

ค่าวันที่เวลาแบบครบถ้วน

ลองทดสอบเอาProcessPointมาวางในGraphWorXแล้วเลือกสัญญาณจาก Unified Data Browserในแท็ปย่อยLicensingดังรูปล่าง จะพบสัญญาณCurrentTime

image

และอย่าลืมเลือกการแสดงผลแบบString

image

ผลลัพธ์เมื่อเข้าสู่Runtimeคือ

image

ถ้าต้องการเฉพาะวันที่

ใช้ Expression ดังนี้

x=  substring({{lic:Status.CurrentTime}},0, indexof({{lic:Status.CurrentTime}},” “,0) )

ผลลัพธ์เช่น 12/19/2018 (ขึ้นอยู่กับ Date Time formatที่ตั้งไว้ในWindows)

ถ้าต้องการเฉพาะเวลา

x=  substring({{lic:Status.CurrentTime}},indexof({{lic:Status.CurrentTime}}," ",0) + 1,
len({{lic:Status.CurrentTime}})- indexof({{lic:Status.CurrentTime}}," ",0)-1 )

ถ้าต้องต้องการเฉพาะชั่วโมง

x=  substring({{lic:Status.CurrentTime}},indexof({{lic:Status.CurrentTime}}," ",0) + 1,
indexof({{lic:Status.CurrentTime}},":",0) - indexof({{lic:Status.CurrentTime}}," ",0) - 1
)

ถ้าต้องการเฉพาะนาที

x=  substring({{lic:Status.CurrentTime}},indexof({{lic:Status.CurrentTime}},":",0) + 1,
indexof({{lic:Status.CurrentTime}},":",indexof({{lic:Status.CurrentTime}},":",0) + 1) - 
indexof({{lic:Status.CurrentTime}},":",0) - 1
)

ถ้าต้องการเฉพาะวินาที

x=  substring({{lic:Status.CurrentTime}},
indexof({{lic:Status.CurrentTime}},":",indexof({{lic:Status.CurrentTime}},":",0) + 1) + 1,
2
)

ข้อแนะนำเพิ่มเติม: ควรสร้างเป็นGlobal ExpressionในUDMแล้วนำไปใช้งานจะสะดวกมากเวลาต้องใช้หลายๆที่ แก้ไขที่เดียว

ดาวน์โหลดตัวอย่างไฟล์GraphWorXแสดงค่าเวลาแบบOPC Tag

 

สิ่งที่น่าสนใจ

**สงวนลิขสิทธิ์ทั้งหมด โดย EDA International LTD.
สงวนลิขสิทธิ์ทั้งหมด ทุกข้อความ รูปภาพ งานกราฟฟิค และภาพเคลื่อนไหว ที่ปรากฎอยู่บนหน้าเว็บไซต์ อยู่ภายใต้การสงวนลิขสิทธิ์และได้รับการคุ้มครองตามกฎหมาย ไม่อนุญาต ให้ทำซ้ำ คัดลอก ดัดแปลง ส่วนหนึ่งส่วนใดหรือทั้งหมด โดยมิได้รับอนุญาตเป็นลายลักษณ์อักษรจากบริษัทฯ