GENESIS64 SCADA : Expression เวลาแรกของวัน
Q: ถ้าต้องการให้ได้เวลาแรกของวันที่เป็นอินพุตจะทำอย่างไร
A : สามารถใช้ Expression bday(วันเวลาอินพุต)ได้
เช่น bday({{:ServerLocalTime}}) ก็จะได้เวลาแรกของวันปัจจุบัน
bday({{:ServerLocalTime}})
เวลาอินพุตจะเป็นวันที่เวลาใดก็ได้ จะมาจากOPC หรือFunctionก็ได้ จะได้วันเดิมที่เวลาแรกสุดออกมาเสมอคือ 12:00:00AM (เวลาศูนย์นาฬิกา)
จะเห็นว่าไม่ว่าวันเวลาอินพุตจะมีเวลาเท่าใดก็ตามเมื่อใช้bday()ก็จะได้เวลาออกมาเป็นเวลาแรกของวันเสมอ ทำให้เราสามารถนำไปใช้ประโยชน์หลายอย่าง เช่นใช้เป็นค่าอ้างอิงในการเปรียบเทียบวันเวลาโดยเอาเวลาปัจจุบันมาเป็นอินพุต และสามารถบวกเวลาเข้าไปให้ได้เวลาที่ต้องการ เช่นหากต้องการเวลา 8:00:00 น. ก็บวกtimespanเข้าไป8ชม. ดังโค้ดด้านล่าง
bday({{:ServerLocalTime}}) + totimespan("8:00")
ก็จะได้ผลลัพวธ์คือวันที่ปัจจุบันที่เวลา8.00น.
ถ้าเราต้องการเมื่อวานที่เวลา 8.00 น. ก็ใช้โค้ด adddays เพื่อบวกหรือลบจำนวนวันจากวันเวลาอินพุต ในกรณีนี้ลบวันไป 1 วัน แล้วหาค่าเวลาแรกของวัน ก่อนที่จะบวกเวลาเพิ่มไป 8 ชม. เพื่อให้ได้เมื่อวานที่เวลา 8.00 น.
adddays(bday({{:ServerLocalTime}}),-1)
+ totimespan("8:00")