More Related Content More from MUTCHI Villatoro B. More from MUTCHI Villatoro B. (13) S7 inside beforeprint1. 1
ข้ อมูลที่เกียวข้ อง
่
โหมด Icon ต่างๆใน S7-GRAPH
Insert step and transition
Open alternative branch
Insert step and transition
Close alternative branch
Insert jump
Programming step actions
Insert > Action
S คือ set output
R คือ Reset output
N คือ Non holding: as long as the step is active, the signal state of address is 1
D คือ Time delay : the address is set to 1 after the defined time
L คือ Time limited
CALL คือ Block call
4. 4
วิเคราะห์ โจทย์
จากโจทย์คือไฟจราจร โดยใช้ S7-graph ในการเขียนโปรแกรม โดยจะมี state ในการทางานดังนี้
S1.ไฟจราจรไม่ทางาน
S2 คือ Red1 และ Red2 ทางานพร้อมกัน
S3 คือ Green1 และ Red2 ทางานพร้อมกัน
S4 คือ Yellow1 และ Red2 ทางานพร้อมกัน
S5 คือ Red1 และ Red2 ทางานพร้อมกัน
S6 คือ Red1 และ Green2 ทางานพร้อมกัน
S7 คือ Red1 และ Yellow2 ทางานพร้อมกัน
โดยในการทางานของ S7-graph นั้นจะทางานเรี ยง state โดยจะทางานที่ S1 ก่ อนแล้ว
เรี ยงลาดับไปเรื่ อยๆจนถึง S7 และเมื่อทางาน S7 เสร็ จแล้วจะเปลี่ยนไปทางานที่ S2 ใหม่แล้ว
ทางานซ้ าๆแบบนี้ไปเรื่ อยๆจนกว่าจะมีการปิ ด CPU ของเครื่ อง
ซึ่ งเมื่อทาการเขียนโปรแกรมพบว่า TIMER ของ S7-GRAPH นั้นจะจับเวลาในการ
ทางานของ State ใดๆมาเปรี ยบเทียบกับค่าที่ต้ งไว้ซ่ ึ งทาให้เมื่อทาการเปลี่ยน Mode เป็ น Mode
ั
ใดๆก็ตามก็จะทาการจับเวลาไปเรื่ อยๆจนกว่าจะข้าม State ไปทาอีก State หนึ่งซึ่ งไม่สามารถหา
วิธี Reset ค่าของการจับเวลาได้จึงทาการใช้ TIMER จากฟังก์ชนด้านนอกแล้วเรี ยกใช้ภายใน S7-
ั่
GRAPH จึงจะสามารถ Reset เวลาในการจับเวลาเพื่อให้เปลี่ยน State ได้และอีกปั ญหาที่พบคื อ
ใน S7-GRAPH นั้นไม่สามารถเรี ยกใช้งานคาสั่งตรวจจับขอบขาได้จึงจะต้องเรี ยกใช้จากฟังก์ชน
ั่
ภายนอกเหมือนกับ TIMER เช่นเดียวกัน
16. 16
สรุปผลการทดลอง
จากการทดลองพบว่าเราสามารถเรี ยกใช้งานฟั งก์ชนจากหน้าต่างของ MANAGER ได้
ั่
เพื่อใช้ในการช่วยเขียนโปรแกรมใน S7-Graph ซึ่ งจะเป็ นคาสั่งที่ใน S7-Graph นั้นไม่มี ดังนั้น
เราจึงสร้าง Function จากภายนอกมาใช้งานแต่ส่วนของ Output ต่างๆนั้นเราจะสามารถควบคุม
เป็ น State ได้ง่ายมากกว่าการเขียนโปรแกรมโดยใช้ LADDER หรื อภาษาอื่นๆ และในการทา
S7-Graph นั้นจะสามารถทาการแก้ไขโปรแกรมได้ง่ายหรื อสามารถอ่านให้เข้าใจได้ง่ายมากกว่า
ภาษา LADDER เนื่องจากจะมีการแบ่งการทางานเป็ น State ต่างๆและในการเปลี่ยนแปลง State
ใดๆนั้นเราจะสามารถดูได้ง่ายกว่าเนื่ องจากจะมี การแบ่ งช่ วงต่ างๆในการทางานเอาไว้อย่า ง
่
ชัดเจนและขณะที่มีการหยุดทางานนั้นจะสามารถรู ้ได้ดวยว่าขณะหยุดทางานนั้นค่างอยูที่ State
้
ใดในโปรแกรม