การสร้าง switch พื้นฐานบน WinCC 7.x

การสร้าง switch พื้นฐานบน WinCC 7.x

การสร้างปุ่มกดนั้น ต้องถือว่าเป็นพาร์ทพื้นฐานของการเขียนหน้าจอทุกแบบ แต่การใช้งาน WinCC 7.x นั้นมีความแตกต่างจาก WinCC Professional พอสมควร ดังนั้นผู้ที่คุ้นเคยกับการใช้งานบน platform TIA มาก่อน อาจจะสับสนในการใช้งานบ้าง

ตัวอย่างในบทความนี้จะแสดงการใช้งานปุ่มกดในรูปแบบที่จะได้ใช้งานบ่อยๆทั้ง 4 แบบคือ ปุ่มกดแบบ Set, ปุ่มกดแบบ Reset, ปุ่มกดแบบกดติดปล่อยดับ และปุ่มกดแบบกดติดกดดับ ซึ่งอาจจะมีการประยุกต์ด้วยการเขียน Script บ้าง แต่จะไม่ได้ยากมากเกินไปนัก และช่วยให้ผู้ใช้งานเข้าใจการเขียน Script ได้ดีขึ้นด้วย

– สร้าง tag เพื่อทดสอบการใช้งาน โดยตั้งชื่อว่า Switch1 มีชนิดแบบ Binary Tag
Switch_01

– วางปุ่มกด 4 ปุ่มเพื่อแทนการกดปุ่มแบบ Set, Reset, Momentary (กดติดปล่อยดับ) และ Invert (กดติดกดดับ)
Switch_02

– ในส่วนของรูปมอเตอร์สามารถหาได้จาก Library -> Siemens HMI Symbol Library
Switch_03

– ตั้งค่า Control Properties ของมอเตอร์ให้ SymbolAppearance เป็นแบบ Shaded -1 เพื่อให้สามารถเปลี่ยนสีได้
Switch_04

– Link tag เพื่อเปลี่ยนสีให้กับมอเตอร์ โดยคลิกขวาที่ ForeColor -> Dynamic Dialog…
Switch04_2

– แล้วตั้งสีในกรณีที่ tag Switch1 เป็นจริงและเป็นเท็จ ตามต้องการ
Switch04_3

– สร้าง switch แบบ Set ด้วยการสร้าง Event ให้ปุ่มกด แล้วใส่ Constant = 1 ให้กับ tag Switch1
Switch_05

– สร้าง switch แบบ Reset ด้วยการสร้าง Event ให้ปุ่มกด แล้วใส่ Constant = 0  ให้กับ tag Switch1
Switch_06

– สำหรับการสร้างปุ่มแบบกดติดปล่อยดับนั้น ให้เราทำ Event 2 ครั้งคือตอนกด ให้นำ Constant=1 ใส่ใน tag Switch1
Switch_07

และตอนปล่อยให้นำ Constant=0 ใส่ใน tag Switch1
Switch_08

– ส่วนปุ่มกดติดกดดับนั้น อาจจะต้องมีการเขียน Script เพิ่มเติม โดยจะยกตัวอย่างทั้ง C และ VBS แล้วแต่ความถนัดในการใช้งานของแต่ละคน
ตัวอย่าง C Script เพื่อทำปุ่มกดติดกดดับ
Switch_09

โดยเนื้อหาของ C Script ประกอบด้วย

SHORT S7;
S7 = GetTagBit(“Switch1”);
S7 = 1-S7;
SetTagBit(“Switch1”,S7);

ตัวอย่าง VB Script เพื่อทำปุ่มกดติดกดดับ
Switch_10

Dim S7
Set S7 = HMIRuntime.Tags(“Switch1”)
S7.Read
S7.Value = 1 – S7.Value
S7.Write

– เมื่อทดสอบด้วย WinCC Runtime ก็จะได้ปุ่มกดทั้ง 4 แบบตามต้องการ
Switch_11

NOTE:

1. กรณีที่รู้สึกว่าการเปลี่ยนสีของมอเตอร์ค่อนข้างช้า เราสามารถตั้งค่า Trigger ให้เร็วขึ้นได้ เพราะค่า Update ปกติของโปรแกรมคือ 2s
Switch_12

แล้วเปลี่ยนส่วนของ Standard cycle ให้เร็วขึ้น เช่นจาก 2s เป็น 250ms เป็นต้น
Switch_13

2. อีกวิธีหนึ่งที่สามารถเปลี่ยนสีมอเตอร์ได้ ก็คือการทำ Animation ซึ่งการทำ Animation โดยเลือก Add Property ของ ForeColor มาผูกกับ Data type แบบ Bool ของ tag “Switch1” นั่นเอง ซึ่งก็ให้ผลไม่ต่างกับการตั้งค่าใน Dynamic Dialog เลย
Switch_14

Leave a comment