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

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

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

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

ทดสอบการเคลื่อนที่ตามตำแหน่งอย่างง่าย

1. เลือก S7-1500 และ servo V90 มาวางใน project ของเราตามปกติ (หากหา V90 ไม่เจอ ให้ทำการ online update เพื่อติดตั้ง HSP ของ V90 ลงก่อน เพราะปกติ V90 จะไม่ได้ถูกติดตั้งมาให้)Motion01_01

2. Click ที่ Not assigned แล้วเลือก IO controller ที่เป็นตัว PLC S7-1500 ใน project ของเราMotion01_02

3. หากการเชื่อมต่อถูกต้องจะได้หน้าตาดังรูป ในที่นี้จะไม่ขอกล่าวถึงการตั้ง IP address และการ assign device name เพราะเราอาศัยการ simulation เป็นหลัก แต่การใช้งานกับของจริงแล้วอย่าลืมทำขั้นตอนเหล่านี้ด้วยMotion01_03

4. ให้ไปที่หน้า Topology view แล้วลากการเชื่อมต่อของ port ที่ต้องการในแต่ละอุปกรณ์เข้าหากัน ขั้นตอนนี้สำคัญมากหากเราต่อกับของจริงเพราะเราต้องต่ออุปกรณ์จริงให้ตรงกับที่ตั้งไว้ใน topology ด้วย มิฉะนั้นจะไม่สามารถทำงานได้ Motion01_04

5. สร้าง Technology Objects ตัวใหม่ขึ้นมา โดยเลือกสร้าง TO_PositioningAxis ขึ้นมาเพราะเราต้องการใช้งานแบบวิ่งตามตำแหน่งนั่นเอง  และให้ตั้งชื่อของแกนเราต้องการควบคุม กรณีนี้ตั้งชื่อเป็น Master_Axis1Motion01_05

6. เมื่อสร้าง Technology Objects แล้ว ต่อไปเราจะทำการตั้งค่าให้กับ servo แกน Master_Axis1 ที่เราให้สร้างขึ้นมาต่อไปMotion01_06

7. ที่ Basic parameters ให้เราตั้งรูปแบบการเคลื่อนที่ว่าจะเคลื่อนที่แบบเส้นตรงหรือแบบหมุน (Linear หรือ  Rotary) เลือกหน่วยที่ต้องการ และอย่าลืมเลือก Activate simulation ด้วย (แต่ถ้าใช้งานจริงไม่ต้อง)Motion01_07

8. ที่การตั้งค่า Drive ให้เราเลือกตัว drive ที่เราได้นำมาวางใน network เพื่อระบุว่าต้องการใช้ drive ตัวไหนกับแกนใน Technology Objects นี้Motion01_08

9. ในส่วนการตั้งค่าอื่นๆของ Technology Objects จะขอใช้ค่า default ไปก่อน ซึ่งเพียงพอต่อการทดสอบและทำความเข้าใจการใช้งาน servo แล้วMotion01_09

10. สร้าง Function block ขึ้นมาเพื่อใช้เขียนโปรแกรม servo ในนี้Motion01_10

11. ที่ Function block ที่ได้สร้างขึ้นมา ให้ลาก block MC_POWER ขึ้นมา โดย block นี้จะใช้เพื่อสั่งงาน servo on นั่นเองMotion01_11

12. ที่ขา Axis ให้เราลากแกนที่ได้สร้างเอาไว้จาก Technology Objects มาที่ขานี้ เพื่อบอกให้ทราบว่า block MC_POWER จะไปสั่งงานแกนนี้นั่นเองMotion01_12

13. จากนั้นระบุสัญญาณให้กับขา Enable ตามที่เราต้องการ เช่นตัวอย่างนี้ใช้สัญญาณ %M0.0 Motion01_13

14. จากนั้นให้ลองทดสอบด้วยการวาง block ต่างๆตามตัวดังรูปข้างล่างนี้  โดย MC_RESET ใช้เพื่อ reset servo กรณีมี fault เกิดขึ้นMotion01_14

MC_HOME ใช้เพื่อตั้งตำแหน่ง homeMotion01_15

MC_MOVEABSOLUTE เอาไว้เพื่อสั่งให้ servo เคลื่อนที่ไปยังตำแหน่งที่ต้องการเทียบกับตำแหน่ง home (ดังนั้นต้องระบุตำแหน่ง home ก่อน)Motion01_16

MC_MOVERELATIVE เอาไว้เคลื่อนที่สัมพัทธ์เทียบกับตำแหน่งปัจจุบันMotion01_17

15. ลาก function block ที่ได้สร้างไว้มาวางใน Main OBMotion01_18

16.  ทำการ Start simulation เพื่อให้ PLCSIM ทำงานMotion01_19Motion01_20Motion01_21

17. ทำการ monitor โปรแกรมเพื่อทดสอบการสั่งงานMotion01_22

18. เนื่องจากเป็นการ simulation เราจึงไม่เห็นการเคลื่อนที่จริง ดังนั้นเราจะสร้าง Trace เพื่อดูตำแหน่งจาก trace แทน โดยเลือก Add new traceMotion01_23

19. ให้เราเลือกสัญญาณเราต้องการดู trace ที่ส่วน ConfigurationMotion01_24

เลือกชื่อแกน Axis ตามด้วย .Position เพื่อดูตำแหน่งของ servoMotion01_25

เพิ่มสัญญาณที่ใช้ execute คำสั่ง MC_MOVEABSOLUTE และ MC_MOVERELATIVE ด้วยจะได้เห็นความเปลี่ยนแปลงของตำแหน่งเมื่อถูก execute เมื่อตั้งค่าเสร็จหมดแล้วให้กดปุ่ม download traceMotion01_26

20. กดปุ่มเพื่อเริ่ม monitor traceMotion01_27

21. Execute ขาที่สั่ง MC_POWER โดยต้อง on ไว้ตลอดเวลาที่ต้องการใช้ servo ทำงาน  ส่วนขา Execute ของ MC_RESET จะทำงานที่ขอบขาขึ้น จะใช้เมื่อมี error เท่านั้นMotion01_28

ขา Execute ของ MC_HOME เราจะสั่งงานเป็น pulse ไม่จำเป็นต้อง on ค้างMotion01_29

ขา Execute ทั้งของ MC_MOVEABSOLUTE และ MC_MOVERELATIVE ก็ทำงานเป็น pulse เช่นกัน ไม่ต้อง on ค้างMotion01_30Motion01_31

22. หากดูจาก trace จะเห็นตำแหน่งที่เคลื่อนที่ไปเมื่อขา execute ของแต่ละ block ถูกสั่งงานมาMotion01_32

ดังนั้นจะเห็นได้ว่า เราสามารถทดสอบและทำความเข้าใจการทำงานของ servo จากการ simulation ได้ ในตัวอย่างนี้เป็นการสั่งงาน servo แกนเดียวแบบง่ายๆ แต่การ simulation ยังรองรูปแบบการเคลื่อนที่ในระดับสูงกว่านี้เช่น การทำ relative gearing, absolute gearing หรือการทำ camming ได้อีกด้วย ในหัวข้อถัดไป (absolute gearing และ camming ต้องใช้ CPU S7-1500T เท่านั้น)

 

เนื้อหาถัดไป: การ simulation servo V90 เพื่อทำ Relative gearing

 

 

 

 

Advertisements

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 )

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s