วันพฤหัสบดีที่ 20 กรกฎาคม พ.ศ. 2560

การเขียนวงจร SFC (Mitsubishi)


SFC  programming
ภาษาSFC จะประกอบด้วย ladder block และSFC block, ladder block คือการเขียนวงจรแบบแลดเดอร์ ,SFC block คือการเขียนวงจรเป็นstate(สถานะ)จะแบ่งออกเป็นสองส่วนคือส่วนของstate relay และอีกส่วนคือวงจรภายในของแต่ละstep เช่นที่step0(state relay S0) ก็จะมีวงจรภายในโดยเขียนเป็นบิตเอาท์พุทY0
Picture1510
สัญลักษณ์ ของ initial state relay จะเป็นกล่องสี่เหลี่ยมโดยใช้เส้นสองชั้น ส่วนสัญลักษณ์ของstate relay จะเป็นกล่องสี่เหลี่ยมธรรมดา ตัวเลขด้านขวาที่กำกับแต่ละstep คือstate relay number ซึ่งเป็นหมายเลขของstate relay โดย0หมายถึงstate relay S0,10หมายถึงstate relay S10 เป็นต้น ในช่วงของแต่ละstepก็จะเป็น transfer condition ซึ่งเป็นเงื่อนไขการเปลี่ยนจากอีกstepไปยังอีกstep หมายเลขของtransfer condition ซอฟต์แวร์จะขึ้นให้โดยอัตโนมัติ
โปรแกรมSFCสามารถ เขียนได้จำนวน10 block ตามจำนวนของinitial state relayคือS0ถึงS9 stepแรกของแต่ละblockจะเริ่มต้นด้วยInitial state relay สามารถเลือกใช้ได้ตั้งแต่S0ถึงS9 ส่วนstep ถัดจากstepเริ่มต้นจะใช้ได้ตั้งแต่S10 ขึ้นไป การเลือกใช้state relay สามารถใช้หมายเลขอะไรก่อนก็ได้ เช่นจากรูปที่ 2 SFC block1สามารถใช้S10และข้ามไปที่S15ก็ได้
  โปรแกรมที่นับจากstepแรกและต่อเนื่องไปstepอื่นๆทั้งหมดก็คือโปรแกรมSFC ขนาด1 block การใช้state relayไม่สามารถใช้ซ้ำกันได้ เช่นจากรูปที่ 2  S10และS15ถูกใช้แล้วที่SFC block1 ดังนั้นไม่สามารถใช้ซ้ำได้อีกไม่ว่าจะใช้ที่SFC block1หรือblock อื่นๆ
Picture1511
โปรแกรมSFCขนาด1block สามารถเขียนวงจรได้หลายๆวงจร(circuit) จำนวนวงจรของSFC จะนับจากเส้นในแนวตั้ง ซึ่งจำนวน1แถวในแนวตั้งจะนับเป็น1วงจร(1circuit) จากรูปที่3 เป็นวงจรSFCที่มีจำนวน4วงจร โปรแกรมSFC 1block สามารถเขียนได้มากสุด16วงจร
Picture1512
Branch
Branch หมายถึงกิ่งหรือสาขาของโปรแกรม SFC branch มีสองแบบคือselective branch และ parallel branch จากวงจรรูปที่ 4 เป็นวงจรSFCแบบselective branch ที่มีจำนวน3circuit
Picture1513
จาก รูปที่4 โปรแกรมSFCมี2selective branch โดยbranchแรกมี3วงจร และbranchที่สองมี2วงจร เนื่องจากหมายเลข1และ3คือวงจรเดียวกัน ดังนั้นจำนวนวงจรทั้งหมดของSFCจะเท่ากับ4วงจร แต่ละselective branch สามารถเขียนวงจรได้จำนวนมากสุด8วงจร แต่เมื่อรวมกันแล้วใน1SFC block จะต้องใช้วงจรไม่เกิน16วงจร
Picture1514
จาก รูปที่5 เป็นโปรแกรมSFCที่มี1parallel branch โดยparallel branch มี3วงจร parallel branch สามารถเขียนวงจรได้จำนวนมากสุด8วงจร แต่เมื่อรวมกับวงจรอื่นทั้งblock แล้วจะต้องไม่เกิน16วงจร
การ ที่โปรแกรมจะทำงานได้ initial state relay จะต้องONก่อน โดยจะต้องเขียนวงจรที่ladder block ให้ initial state relay ON ตัวอย่างวงจรSFCรูปที่6 เป็นการเลือกใช้S0เป็นstepเริ่มต้น การที่โปรแกรมจะทำงานได้ S0จะต้องONก่อน จากวงจรเมื่อPLC RUN M8002 จะทำให้S0 ON
Picture1516
ladder block และSFC block จะทำงานด้วยกัน เมื่อS0 ของladder block ทำงาน step0ของSFC block ก็จะทำงานด้วย สำหรับวงจรภายในจะทำงานทันทีเมื่อstate relay ทำงาน เช่น เมื่อS10ทำงานก็จะทำให้Y1ทำงานด้วย
Picture1517
การ ทำงานของstate relayจะทำงานเป็นลำดับจากstepนึงไปยังstepนึง โดยการใช้transfer condition วงจรภายในของtransfer condition จะใช้หน้าสัมผัสในการสั่งงาน โดยการเขียนหน้าสัมผัส และตามด้วยคำสั่งTRAN (TRANคือการเปลี่ยนstep) เช่นในขณะที่S10กำลังทำงาน เมื่อX2 ON จะทำให้S10หยุดทำงาน Y1 OFF และทำให้S11ทำงาน และก็ทำให้Y2ทำงาน
วงจรภายใน (internal circuit)
ใน แต่ละstepของstate relay เราสามารถเขียนหรือไม่เขียนวงจรภายในก็ได้ แต่สำหรับtransfer condition จะต้องมีวงจรภายในเสมอเนื่องจากต้องใช้ในการเปลี่ยนstep จากวงจรเราจะเห็นว่าที่stepS10จะไม่มีวงจรภายใน เมื่อS10 ON ก็จะไม่มีอุปกรณ์ใดๆทำงาน
Picture1518
เมื่อ แต่ละstepทำงาน ซอฟแวร์จะแสดงกราฟฟิกที่เป็นสี(ในโหมดmonitor) ที่stepนั้นๆเพื่อแสดงว่าstepนั้นทำงานอยู่ ถ้าต้องการหยุดการทำงานของstate relayสามารถใช้คำสั่งreset(RST)หรือZone reset(ZRST)ก็ได้ จากladder block บิตX0ใช้หยุดการทำงานของวงจร เมื่อX0 ON คำสั่งZRSTจะหยุดการทำงานของS10และS11 และเนื่องจากวงจรSFCนั้นจะทำงานได้ก็ต่อเมื่อS0 ONเท่านั้น ดังนั้นจะต้องเขียนวงจรให้X0 สั่งให้S0 ON เพื่อกลับไปยังสถานะเริ่มต้น เพราะว่าในขณะที่S10หรือS11ทำงาน S0จะหยุดทำงานด้วย ถ้าเรารีเซ็ตS10และS11ให้หยุดทำงาน โดยไม่ทำให้S0ทำงาน โปรแกรมก็จะไม่สามารถทำงานต่อได้อีกครั้ง
วงจร ภายในของแต่ละstepสามารถเขียนหน้าสัมผัสหรือไม่ก็ได้ ถ้าไม่ใช้หน้าสัมผัส outputก็จะทำงานเมื่อstepนั้นทำงาน แต่ถ้าเราใช้หน้าสัมผัส หน้าสัมผัสจะเป็นอุปกรณ์ในการควบคุมเอาท์พุทด้วย จากรูปที่9 เมื่อS11ทำงาน และX11 ON  จะทำให้Y1 ON วงจรภายในของแต่ละstepสามารถเขียนคำสั่งต่างๆได้เช่นเดียวกับวงจรแลดเดอร์ เมื่อS11ทำงานและX11 ON คำสั่งMOVจะนำค่าK1ไปเก็บที่D0
Picture1519
การรีเซ็ตรีเลย์ Y
เราสามารถหยุดการทำงานของรีเลย์Yทั้งหมดได้โดยใช้รีเลย์พิเศษM8034 จากladder block เมื่อX10 ON รีเลย์เอาท์พุทYทั้งหมดจะหยุดการทำงาน
Picture1520
สเตทรีเลย์แบบlatch
Initial state relay คือรีเลย์แบบจำค่าได้ ซึ่งในขณะที่S0ทำงาน ถ้าแหล่งจ่ายไฟของPLCดับจะทำให้PLC stop การทำงานของS0จะถูกจำได้ เมื่อPLC RUN อีกครั้งS0ก็จะกลับมาทำงานเหมือนเดิม ส่วนสเตทรีเลย์ในส่วนอื่นๆสามารถเลือกใช้แบบทั่วไปหรือแบบlatchก็ได้ ขึ้นอยู่กับการเขียนของผู้ใช้งาน
ใน วงจรSFC เราสามารถเขียนคอยล์เอาท์พุทซ้ำกันได้ จากวงจรรูปที่11 เมื่อS10ทำงาน Y1จะทำงาน เมื่อS11ทำงาน ทำให้S10หยุดทำงานและY1หยุดทำงาน และเมื่อS12ทำงานก็จะทำให้Y1ทำงานได้อีก
Picture1521
กรณี ถ้าใช้สั่งSET คำสั่งSETจะทำให้บิตเอาท์ทำงานตลอดแม้ว่าจะมีการเปลี่ยนstepไปแล้วก็ตาม จากรูปที่11 เมื่อX2 ON S11ก็จะทำงาน และคำสั่งSETจะทำให้Y2ทำงาน เมื่อX3 ON จะทำให้S11หยุดทำงาน และS12ทำงานต่อ แต่Y2ยังทำงานอยู่ ดังนั้นจะต้องใช้คำสั่งRSTเพื่อหยุดการทำงานด้วย คำสั่งRSTสามารถเขียนในวงจรSFCหรือในวงจรladder blockก็ได้ จากวงจรเมื่อS12 ทำงาน และX4 ON Y2จะหยุดทำงาน หรือที่ladder block เมื่อX0 ON Y2ก็จะหยุดทำงานเช่นกัน
Jump และ return
jumpและreturn ใช้สำหรับวิ่งไปยังstepที่ต้องการ ใช้เครื่องหมายเป็นลูกศร ซึ่ง jumpหมายถึงการวิ่งไปยังstepที่ต่ำกว่า ส่วนreturnหรือเรียกว่าrepeat หมายถึงการวิ่งไปยังstepที่อยู่ด้านบน หรืออยู่สูงกว่า เช่นจากรูปที่12 ตัวเลข0หมายถึงการreturnไปยังS0 ซึ่งเป็นstepด้านบน และที่S0จะมีเครื่องหมายจุด(dot)เพื่อแสดงว่ามีการreturnมาจากตำแหน่งอื่น
Picture1522
ส่วนรูปที่13 เป็นการjumpจาก transfer condition3 ไปยังS21เมื่อX2 ON S10จะหยุดทำงานและstepการทำงานจะjumpไปที่S21 และทำให้M2 ON
Picture1523
การjumpและreturn สามารถใช้ระหว่าง block ได้เช่นกัน
เรา สามารถนำอุปกรณ์จากblockนึงไปใช้กับอีกblockนึงก็ได้ เช่นจากรูปที่14 เป็นการใช้ state relay S17 ที่SFC block1 มาใช้เป็นtransfer conditionที่SFC block2ได้ ดังนั้นการทำงานของแต่ละblockสามารถเป็นอิสระต่อกันหรือเกี่ยวข้องกันก็ได้ ขึ้นอยู่กับการเขียนโปรแกรม
Picture1524
RESET state relay
Jumpและreturn ใช้สำหรับการเปลี่ยนstep ส่วน reset ใช้สำหรับหยุดstepการทำงาน และไม่มีการวิ่งไปที่stepอื่น จากรูปที่15 เครื่องหมายสามเหลี่ยมและมีเลข11กำกับหมายถึงการreset S11 และที่stepS11 จะมีเครื่องหมายจุด(dot)แสดง เมื่อX2 ON S11 จะถูกreset และY1หยุดทำงาน ส่วนโปรแกรมทั้งหมดก็จะหยุดการทำงานเช่นกัน เนื่องจากไม่มีstate relay ใดๆทำงาน
Picture1525
เนื่อง จากโปรแกรมจะทำงานอีกไม่ได้ถ้าS0ไม่ทำงาน ดังนั้นจะต้องใช้มีเงื่อนไขอื่นๆให้S0ทำงานด้วย จากรูปที่15 ที่ ladder block เมื่อX0 ON จะทำให้S0ทำงาน
การทำงานของ selective branch และ parallel branch
รูป ที่16 เป็นการทำงานของ selective branch ที่มีสองวงจร เมื่อS0ทำงานวงจร1และ2ก็จะพร้อมทำงาน โดยเมื่อX2 ON S0จะหยุดทำงานและS10 ทำงานทำให้M2ทำงาน ในกรณีนี้วงจร2ไม่สามารถทำงานได้เนื่องจากS0ไม่ทำงานแล้ว ดังนั้นการที่X3 ON S20จะไม่ทำงาน วงจรที่2จะสามารถทำงานได้โดยreturn เมื่อX5 ON จะทำให้S20ทำงาน
  แต่ถ้าS0ทำงาน และX3 ON จะทำให้S20ทำงาน และทำให้M3ทำงาน ในกรณีนี้ถ้าX2 ONวงจร1 ไม่สามารถทำงานได้
Picture1526
รูปที่17 เป็นการทำงานของ selective branch เมื่อX3 ON S0จะหยุดทำงานและS20,S22และS24จะทำงานพร้อมกัน
Picture1527
การใช้ไทม์เมอร์ในโปรแกรม SFC
Picture1528
สำ หรับไทม์เมอร์ เมื่อเขียนที่วงจรSFC ไทม์เมอร์จะนับเวลาเมื่อstate relayทำงาน จากรูปที่18 เมื่อS10ทำงาน Y1 ทำงานและT0นับเวลา2วินาที เมื่อหน้าสัมผัสT0ทำงาน ก็จะเปลี่ยนstep โดยS10หยุดทำงานและไทม์เมอร์T0หยุดทำงาน
Picture1529
เรา สามารถเขียนไทม์เมอร์ซ้ำกันได้ แต่การใช้ไทม์เมอร์ในstepที่ถัดจากกัน ค่าที่ไทม์เมอร์เมอร์นับจะไม่รีเซ็ต เช่นจากรูปที่19 เมื่อS10ทำงาน T0นับเวลา2วินาที และเมื่อS11ทำงานไทม์เมอร์T0จะไม่เริ่มนับเวลาใหม่ เนื่องจากไทม์เมอร์ไม่ถูกรีเซ็ต ดังนั้นการใช้ไทม์เมอร์ซ้ำกันจะต้องไม่ใช้ในstepที่ใกล้กัน ส่วนวงจรที่ เป็นการใช้ไทม์เมอร์ที่ถูกต้อง เมื่อS10ทำงาน ไทม์เมอร์T0นับเวลา2วินาที และT0จะนับเวลาอีกครั้งเมื่อS12ทำงาน โดยจะนับเวลาเท่ากับ5วินาที
ตัวอย่างการทำงานของโปรแกรม SFC
Picture1530
timing chart รูปที่21 แสดงการทำงานของวงจร เมื่อPLC RUN M8002จะทำให้S0 ON เมื่อstep S0 ทำงานก็จะทำให้Y0 ทำงาน เมื่อX1 ON stepS0หยุดทำงาน และstepS10ทำงานต่อ Y1ทำงาน เมื่อX2 ON stepS10หยุดทำงาน และstep S11 ทำงานต่อ Y2ทำงาน(ในช่วงที่S11 ทำงานถ้าบิตX1 ON ก็จะไม่มีผลต่อวงจร) เมื่อบิตX3 ON stepS11หยุดทำงาน และstep S0 ทำงานต่อ Y0ทำงาน เมื่อX1 ONจะทำให้S10ทำงาน และเมื่อX0 ON S10จะหยุดทำงานและS0จะทำงาน
ตัวอย่างการทำงานของโปรแกรม SFC
Picture1531
ตัวอย่าง วงจรแลดเดอร์รูปที่22 การทำงานคือเมื่อX0 ON ,Y0 ON เมื่อX1 ON ,Y0 OFFถ้าเราต้องการเขียนวงจรSFC ที่มีการทำงานแบบเดียวกันสามารถเขียนได้หลายแบบดังรูป
Picture1532
รูป ที่23 เป็นวงจรแบบแรก การทำงานคือเมื่อPLC RUN S0จะON เมื่อX0 ON S0จะOFFและS10 ONทำให้ Y0 ON เมื่อX1 ONทำให้ S10 OFF ทำให้Y0 OFF และS0 ON
Picture1533
รูป ที่24 เป็นวงจรแบบที่สอง การทำงานคือเมื่อPLC RUN S0 ON เมื่อX0 ON S0จะOFFและS10 ONทำให้Y0 ON เมื่อX1 ON S10จะถูกรีเซ็ต ทำให้Y0 OFF และบิตX1ที่ladder block จะทำให้S0 ON

ไม่มีความคิดเห็น:

แสดงความคิดเห็น