การทำ MRP บน Ring network

Ring Topology คืออะไร

โดยปกติแล้วเหตุผลที่เราทำ network เป็นแบบ Ring ก็เพราะเราต้องการให้ network ของเราสามารถทำงานต่อได้หากสายเส้นใดเส้นหนึ่งใน network เกิดขาดหรือหายไปจึงถือเป็นการทำ redundancyอีกแบบหนึ่ง แต่ไม่ใช่ว่าอยู่ดีๆเราจะสามารถทำ network ให้เป็นแบบ Ring ได้เลยเพราะเป็นรูปแบบการเชื่อมต่อที่ผิดไปจากปกติ เนื่องจากอุปกรณ์ในระบบ Ethernet จะไม่สามารถทำเป็นวง loop ได้เพราะจะทำให้เกิดการ broadcast ของ IP จนทำให้ระบบล่มไปนั่นเอง

MRP (Media Redundancy Protocol) เป็น redundancy protocol ชนิดหนึ่งที่สามารถใช้งานได้สำหรับอุปกรณ์ในระบบ Profinet ที่รองรับ MRP นี้ ซึ่งจะช่วยให้เราสามารถทำ network ให้เป็นแบบ Ring ได้MRP1_01.png

Continue reading “การทำ MRP บน Ring network”

Advertisements

การอ่านเขียนเวลา (RTC) ให้กับ PLC

การอ่านเขียนเวลา (RTC) ให้กับ PLC

ปกติตัว PLC จะมี Real time clock (RTC) มาให้อยู่แล้ว ซึ่งเราสามารถทำการตั้งเวลา และอ่านเขียนเวลาออกมาได้จากโปรแกรมให้ PLC เอง ดังนั้นในหัวข้อนี้เราจะมาเรียนรู้คำสั่งที่ใช้อ่านเขียนเวลาของ PLC รวมถึงการตั้งเวลาให้ PLC ในขั้นแรกด้วย Continue reading “การอ่านเขียนเวลา (RTC) ให้กับ PLC”

อธิบายผลของ PID อย่างง่ายๆด้วยกราฟ

อธิบายผลของ PID อย่างง่ายๆด้วยกราฟ

เนื้อหาในบทความนี้ จะไม่ได้กล่าวถึงการใช้งาน PID ในฟังก์ชั่นของ PLC แต่อย่างใด เพียงแต่ต้องการให้ผู้อ่านมองเห็นภาพผลกระทบของค่า P, I และ D ในมุมมองของการอธิบายด้วยกราฟ เพื่อให้มองเห็นผลกระทบของแต่ละ parameter ได้ชัดเจนยิ่งขึ้นPID_graph_01.png

แต่ก่อนอื่น เราต้องสังเกตสมการของ PID ก่อนว่าค่าต่างๆที่นำมาคิดนั้น จะนำค่า error มาคิดทั้งสิ้น เพื่อผลประโยชน์สุดท้ายคือทำให้ error น้อยที่สุดนั่นเอง

Continue reading “อธิบายผลของ PID อย่างง่ายๆด้วยกราฟ”

การตั้งค่าให้ตัวแปรจำค่าได้เมื่อมีการปิดไฟ (Retain memory)

การตั้งค่าให้ตัวแปรจำค่าได้เมื่อมีการปิดไฟ (Retain memory)

ปกติแล้วการใช้งานตัวแปร Data block ของ PLC นั้นเราสามารถตั้งให้ตัวแปรนั้นสามารถจำค่าล่าสุดเอาไว้ได้ ซึ่งหากเกิดไฟดับขึ้นมา ตัวแปรเหล่านั้นจะยังคงค่าล่าสุดเอาไว้เมื่อมีการจ่ายไฟขึ้นมาอีกครั้ง ซึ่งการตั้งค่านั้นง่ายมากเพียงแค่เราเลือก Enable check box ในหัวข้อ Retain ที่อยู่ใน Data block เท่านั้นRetentive_01.png

แต่หากเป็นกรณีของ Global memory เช่น %MW เราจะทำได้อย่างไร ? Continue reading “การตั้งค่าให้ตัวแปรจำค่าได้เมื่อมีการปิดไฟ (Retain memory)”

การใช้งานคำสั่ง ATTACH/DETACH เพื่อควบคุม Interrupt

การใช้งานคำสั่ง ATTACH/DETACH เพื่อควบคุม Interrupt

การใช้งาน Interrupt นั้นเป็นการขัดจังหวะการทำงานของโปรแกรมปกติ โดยเมื่อมี action ของ interrupt แบบต่างๆตามที่ตั้งค่าเกิดขึ้นมา โปรแกรมหลักจะหยุดทำงานแล้วไปสั่งให้โปรแกรมของ interrupt ทำงานก่อน และเมื่อโปรแกรมของ interrupt ทำงานจบแล้ว ก็จะกลับไปทำงานที่โปรแกรมปกติต่อจากจุดเดิมที่ถูกขัดจังหวะเอาไว้

ปกติแล้วเมื่อเราตั้งค่า interrupt เอาไว้ เราก็จะปล่อยให้มันทำงานเมื่อถูกขัดจังหวะตามปกติไป แต่อาจจะมีบางกรณีที่เราต้องการให้ interrupt หยุดทำงานเมื่อถึงเงื่อนไขบางก่อน เราสามารถควบคุม interrupt ได้ด้วยคำสั่ง ATTACH/DETACH นั่นเอง Continue reading “การใช้งานคำสั่ง ATTACH/DETACH เพื่อควบคุม Interrupt”

การ simulation servo V90 เพื่อทำ Absolute gearing

การ simulation servo V90 เพื่อทำ Absolute gearing

จากในบทความก่อนหน้า การ simulation servo V90 เพื่อทำ Relative gearing นั้น เป็นการทำ synchronize ด้วยความเร็วที่สัมพันธ์กันเท่านั้นโดยไม่สนใจว่าตำแหน่งของทั้ง Master axis และ Synchronous Axis จะเป็นอย่างไร

แต่การทำ Absolute gearing นั้น เราสามารถทำให้ Synchronous Axis วิ่งสัมพันธ์ในระดับตำแหน่งกับ Master axis ได้เลย เพียงแต่ว่าไม่สามารถใช้ S7-1500 รุ่นธรรมดาได้ จำเป็นต้องใช้ S7-1500T เท่านั้น Continue reading “การ simulation servo V90 เพื่อทำ Absolute gearing”

การ simulation servo V90 เพื่อทำ Relative gearing

การ simulation V90 เพื่อทำ Relative Gearing

จากขั้นตอนที่แล้ว ที่เราได้ทำการ simulation V90 เพื่อทำ motion อย่างง่ายไปแล้ว เราจะยังคงใช้ S7-1500 เพื่อพัฒนาต่อไปยังการทำ Relative Gearing

ปกติหากเราใช้แต่กลไกทาง mechanics แบบเมื่อก่อน การทำ gearing นั้นสามารถทำได้โดยใช้เฟืองทดและสายพานควบคู่กัน ซึ่งหากต้องการเปลี่ยนอัตราการทดรอบเมื่อไรก็ต้องมีการเปลี่ยนเฟืองทดไปด้วย
Motion02_01

แต่หากเราใช้ Servo motor ในระบบ Profinet นั้น มอเตอร์แต่ละแกนจะแยกกันอิสระจึงไม่ต้องมีเฟืองทดหรือสายพานเลยเพราะเราจะตั้งอัตราการทดของมอเตอร์แต่ละแกนจากการตั้งค่าที่โปรแกรม ซึ่งเป็นการตั้งอัตราทดแบบ electronics แทน ดังนั้นเมื่อไรที่ต้องการเปลี่ยนอัตราทดก็แค่เปลี่ยนค่าในโปรแกรมเท่านั้นโดยไม่ต้องยุ่งอะไรกับตัว mechanics ใดๆเลย ซึ่งจะทำให้ตัวเครื่องจักรมีความยืดหยุ่นมากขึ้นเมื่อต้องมีการปรับเปลี่ยนใดๆต่อไป

การทำอัตราการทดแบบ electronics นี้ เราสามารถใช้ S7-1500 เพื่อจัดการในส่วนนี้ได้เลย Continue reading “การ simulation servo V90 เพื่อทำ Relative gearing”

การทำ simulation servo V90 อย่างง่าย

การทำ simulation servo V90 อย่างง่าย

ปกติแล้วการทำโปรแกรมกับ servo motor จะต้องมีการต่อกับ servo ของจริงเพื่อที่จะได้เห็นการเคลื่อนที่จริงๆ แต่การใช้งาน S7-1500 ร่วมกับ servo V90 ผ่านทาง Profinet นั้นเราสามารถทดสอบโปรแกรมของเราโดยการใช้ mode simulation ของ servo ได้ด้วย ทำให้เราสามารถทดสอบโปรแกรมได้ล่วงหน้าแม้ไม่ได้ต่อกับ servo จริงก็ตาม

โดยจุดประสงค์หลักของบทความนี้จะเน้นไปที่การเรียนรู้และทำความเข้าใจถึงการใช้งาน servo ในรูปแบบการใช้งานง่ายๆไปจนถึงระดับ gear in หรือ camming จากการ simulation เป็นหลัก เพราะในการต่อใช้งานของจริงอาจจะต้องมีการตรวจสอบการตั้งค่าเพิ่มเติมอีกเล็กน้อยตามสภาพการใช้งานจริง Continue reading “การทำ simulation servo V90 อย่างง่าย”

การใช้งาน PTO พื้นฐาน

การใช้งาน PTO พื้นฐาน

การใช้งาน PTO นั้นปกติมักจะใช้เพื่อส่ง pulse train เพื่อควบคุม servo motor เป็นส่วนมาก เนื้อหาในบทนี้เราจะกล่าวถึงการใช้งานคำสั่ง CTRL_PTO เพื่อใช้ในการส่ง pulse train แบบพื้นฐาน เพราะหากใช้งาน servo motor จริงๆแล้ว ทาง Siemens ได้พัฒนาการส่ง pulse อีกแบบที่เรียกว่า “Technology Object” ที่จะช่วยให้การสั่งงาน servo motor ไม่ว่าจะเป็นแบบส่ง PTO หรือ Profinet มีความง่ายกว่าเดิมมาก

อย่างไรก็ตาม ในส่วนของ Technology Object จะกล่าวถึงในภายหลัง เพราะเนื้อหาในส่วนนี้จะกล่าวถึงการส่ง PTO โดยใช้คำสั่ง CTRL_PTO ก่อน Continue reading “การใช้งาน PTO พื้นฐาน”