เหตุผลที่ควรกำหนด Data Type ของ Local Variable ใน GENESIS32

เวลาเราใช้งาน Local Variable ใน GENESIS32 เราควรกำหนด Data Type ด้วยเพื่อความถูกต้องของข้อมูลที่แสดงผลใน SCADA ยกตัวอย่างเช่นถ้าเราใช้ Local Variable เพื่อเก็บค่า String เมื่อเราป้อนค่า String บางอย่างลงไป เราอาจเห็นค่าที่แสดงผลบน SCADA เป็น 0 เอ๊ะทำไม?

image

จากรูปตัวอย่างแบบ Statefield ซึ่งมีการกำหนดค่าของ State แบบ String เพื่อป้อนให้ Local Variable แต่ทำไมค่าที่แสดงเมื่อเอาเมาส์ไปชี้จึงเป็น 0 ทั้ง ๆ ที่ค่าใน Statefield เราก็กำหนดเป็นค่าStringดังรูป

image

จากรูปจะเห็นว่าตัวแปร Local Variable ชื่อ DAY ถูกป้อนค่าด้วย Statefield ที่มีรายการให้ผู้ใช้เลือก ซึ่ง Statefield จะมี Value เป็นแบบตัวเลข/Bit/String ก็ได้ ซึ่งจากตัวอย่างเราใช้ Value แบบ String คือวันจักรีและวันเสาร์ แต่เมื่อใช้งานกลับได้ค่าที่ SCADA เป็น 0

เหตุที่เป็นเช่นนั้นเนื่องจาก Data Type ที่เป็น Default ของ Local Variable นั้นเป็น Double ดังนั้นเมื่อเราใช้งานLocal Variableใดๆ ก็ตามที่ไม่ได้กำหนดData Type ตัวโปรแกรมจะกำหนดให้เป็น Double โดยปริยาย ทั้งนี้เราสามารถดูได้จากเมนู Dynamics > Edit Local Variables…

image

จะพบว่าตัวแปรLocal Variable มี Data Type เป็น Double และ Initial Value เป็น 0

image

ดังนั้นหากต้องการใช้ String เราก็ต้องเปลี่ยน Data Type เป็น String ให้ถูกต้อง โดยจะกำหนดค่าเริ่มต้น(Initial Value) หรือไม่ก็ได้

image

เมื่อเราใช้งานอีกครั้งจะได้ค่าที่ถูกต้องดังรูป จะเห็นว่าเมื่อเอาเมาส์ไปชี้ที่ Process Point ก็จะได้ค่าเป็นแบบ String ต่างกับตอนแรกที่ค่าเป็น 0

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