EtherCAT (Part 1)

ที่มารูป LINK

EtherCAT เป็น Fieldbus Protocol ตัวหนึ่งที่มีความนิยมอย่างมากในระบบอุตสาหกรรมและระบบอัตโนมัติภายในโรงงาน แต่ว่าในปัจจุบัน ในประเทศไทยยังไม่มีการใช้งานอยู่มากนัก วันนี้จะพาไปทำความรู้จักกับ EtherCAT กันค่ะ

EtherCAT คืออะไร

EtherCAT ย่อมาจาก Ethernet Control Automation Technology เป็นฟิลด์บัสโปรโตคอลการสื่อสารชนิดหนึ่งสำหรับภายในอุตสาหกรรมที่อยู่บนพื้นฐานเครือข่าย IEEE 802.3 Ethernet ซึ่งพัฒนาโดย Beckhoff โดยโปรโตคอลได้พัฒนาขึ้นเพื่อเน้นการทำงานประมวลผลแบบ Real-time

 ที่มีความยืดหยุ่นสูง สำหรับงานทางด้านควบคุมอัตโนมัติ โดยเฉพาะ สำหรับการสื่อสารภายในโปรโตคอลนั้น จะมีอุปกรณ์ EtherCAT Master ที่คอยควบคุมการทำงานของอุปกรณ์ EtherCAT Slave (หรือจะเรียกว่า Node ก็ได้) โดยมี Ethernet Frame เป็นตัวกลางในการสื่อสารโดยสื่อสารในชั้นของ Protocol Layer และ Data Link Layer

รูป EtherCAT Network LINK

อุปกรณ์ EtherCAT Master จะเริ่มส่ง Ethernet Frame เพื่อไปควบคุมการทำงานของ slave ต่างๆ ภายในเครือข่าย และ Ethernet Frame ที่ออกมาจาก EtherCAT Master นั้นจะวิ่งผ่าน EtherCAT Slave ทุกตัวที่อยู่ในโทโปโลยี และในช่วงระหว่างที่ Ethernet Frame เคลื่อนที่นั้น เมื่อผ่าน EtherCAT Slave ที่ต้องการสื่อสารจะมีการแลกเปลี่ยนข้อมูลเกิดขึ้นภายใน Ethernet Frame นั่นเอง ดังภาพด้านล่าง

ภาพของ Data Frame ที่วิ่งอยู่ภายใน EtherCAT Network LINK

รูปแบบข้อมูลที่ใช้สื่อสารใน EtherCAT Protocol

ภายใน Data Frame ที่ใช้ในการสื่อสารนั้น นอกเหนือจากตัว Header ที่ใช้ในการระบุว่าเป็น EtherCAT Protocol แล้ว ยังมีรูปแบบการสื่อสารระหว่างอุปกรณ์ EtherCAT Master กับ EtherCAT Slave อยู่ 2 รูปแบบ ได้แก่

  1. Mailbox Communication
    Mailbox Communication เป็นการสื่อสารแบบ Asynchronous Packet หรือให้พูดง่ายๆ คือหมายถึง เป็นการสื่อสารที่ทางฝั่ง EtherCAT Master จะต้องทำการ Request ก่อนว่า อยากเข้าถึงข้อมูลส่วนใด ของ EtherCAT ตัวใด รวมถึงต้องการเข้าถึงข้อมูลนั้นๆ ได้ในรูปแบบใดตัวอย่างเช่น การเขียนหรืออ่านข้อมูล เป็นต้น
    สำหรับการเข้าถึงข้อมูล ทางฝั่ง EtherCAT Master สามารถเข้าถึงข้อมูลได้ผ่าน Object ของฝั่ง EtherCAT Slave โดย Object จะมีสิ่งที่เป็นรหัสประจำ Object ที่เรียกว่า “Index” อยู่ EtherCAT Master จะใช้ Index ตัวนี้ในการอ้างอิงว่าอยากเข้าถึงข้อมูลตัวไหนใน EtherCAT Slave นั่นเอง 
  2. Process Data Communication
    Process Data Communication มีการสื่อสารเป็นแบบ Cyclic Communication กล่าวคือ ระหว่าง EtherCAT Master และ EtherCAT Slave จะมีการแลกเปลี่ยนข้อมูลกันทุกๆ ตามช่วงเวลาที่กำหนดสำหรับ 1 Cycle เอาไว้โดยทางฝั่ง EtherCAT Master ไม่ต้องทำการส่ง Request มาให้ทางฝั่ง EtherCAT Slave โดยข้อมูลที่มาจากฝั่ง EtherCAT Master เพื่อนำมากเซตลง EtherCAT Slave จะเรียกว่า Output ส่วนข้อมูลจาก EtherCAT Slave ที่ส่งให้ฝั่ง EtherCAT Master จะเรียกว่า Input

State การทำงานสำหรับ EtherCAT

EtherCAT State Machine LINK

สำหรับโปรโตคอล EtherCAT นั้นจะมีสิ่งที่เรียกว่า State อยู่ ซึ่ง State ต่างๆ ที่ทำงานภายในโปรโตคอลจะบอกถึงสถานะและความพร้อมในการรับส่งข้อมูลชนิดต่างๆ ภายใน EtherCAT ได้

สำหรับ EtherCAT จะมี State การทำงานหลักๆ อยู่ 4 State ได้แก่

  1. Init State
    Init State เป็น State เริ่มต้นหลังจากเปิดตัว EtherCAT Slave สำหรับ State นี้จะไม่มีข้อมูลในการสื่อสารใดๆ ผ่านนอกเหนือจากค่าเริ่มต้นในการกำหนดการสื่อสารแบบ Mailbox Communication
  2. Pre-Operational State (Pre-Op)
    เป็น State ที่อยู่ระหว่าง Init State และ Safe-Operational โดยใน State นี้จะทำการตรวจสอบว่าค่าเริ่มต้นสำหรับ Mailbox Communication ได้ทำการตั้งค่าเริ่มต้นจาก Init State เอาไว้อย่างถูกต้องหรือไม่ สำหรับ State นี้จะสื่อสารได้เฉพาะแบบ Mailbox Communication เท่านั้น 
  3. Safe-Operational State (Safe-Op)
    สำหรับ State นี้จะมีการเช็คตัว Sync Manager สำหรับการรับส่งข้อมูลแบบต่างๆ สำหรับ State นี้จะสื่อสารได้ทั้งแบบ Mailbox Communication และ Process Data แต่ค่าภายใน Process Data ค่าจะมีการอัปเดทเฉพาะในฝั่ง Input Data เท่านั้น 
  4. Operational State
    ภายใน Operational State จะสื่อสารได้ทั้งแบบ Mailbox Communication และ Process Data โดยจะสามารถใช้ได้ทั้งฝั่ง Output และ Input

นอกเหนือจากนี้ ยังมี State พิเศษอีก 1 State ก็คือ Bootstrap State สำหรับ State นี้นั้นจะมีการใช้งานหรือไม่นั้น ขึ้นอยู่กับการพัฒนาตัวเฟิร์มแวร์สำหรับใช้งาน EtherCAT Slave แต่ละตัว

Bootstrap State เป็น State ที่สามารถใช้งาน  Mailbox Communication ผ่าน File access over EtherCAT Protocol (FoE) ได้ โดยเป็น State พิเศษที่จะทำให้สามารถอัปเดทเฟิร์มแวร์ของอุปกรณ์ EtherCAT Slave ได้ผ่านภายในเครือข่ายที่มีการเชื่อมต่ออยู่นั่นเอง

Operation Mode สำหรับ EtherCAT

1.Free Run

Free Run เป็น Mode ที่จะใช้ Timer Interrupt ที่อยู่ภายใน EtherCAT Slave เองเป็น Local Timer Event

ที่มารูป Free Run Mode LINK

2. Synchronous with SM event

Synchronous with SM event เป็น Mode ที่จะใช้งาน SyncManager ในการซิงโครไนซ์ข้อมูลที่อยู่ภายใน

ที่มารูป Synchronous with SM event Mode LINK

3. DC mode (distributed clock mode)

DC mode (distributed clock mode) เป็น Mode ที่สามารถจะทำให้อุปกรณ์ EtherCAT Slave ที่อยู่ในภายในเครือข่ายสามารถทำงานพร้อมกันได้โดยใช้ Sync0 ในการตั้งเวลาให้ EtherCAT Slave ที่ใช้งาน DC Mode ทำงานพร้อมกัน

ที่มารูป DC Mode LINK

ลักษณะของ Ethernet Frame สำหรับใช้งานผ่าน EtherCAT

ภายใน EtherCAT Frame นั้นสามารถแบ่งได้ออกเป็น 2 ส่วนย่อยๆ ได้แก่ ส่วน Ethernet Header และ Ethernet Data ภายในส่วนของ Ethernet Data สำหรับ EtherCAT Protocol นั้นข้อมูลจะถูกแบ่งออกเป็นข้อมูลย่อยๆ ที่เรียกว่า EtherCAT Datagram

โครงสร้างภายใน EtherCAT System

สำหรับภายใน EtherCAT แล้ว นอกจากอุปกรณ์ EtherCAT Master และ EtherCAT Slave ที่มีความสำคัญแล้ว ยังมีไฟล์ต่างๆ ที่มีความจำเป็นในการสื่อสารผ่าน EtherCAT อีกด้วย ได้แก่

  1. EtherCAT Network Information file (ENI file)
    ENI file เป็นไฟล์สำคัญที่ใช้ในการบอกอุปกรณ์ EtherCAT Master ของเราว่า ในโทโปโลยีที่ EtherCAT Master ได้ทำการเชื่อมต่อนั้น มีอุปกรณ์ EtherCAT Slave กี่ตัว เป็นอุปกรณ์แบบใดบ้าง รวมถึงภายในไฟล์ยังบอกค่าการตั้งค่าต่างๆ ที่สำคัญๆ ภายในระบบอีกด้วย โดย ENI file จะถูกสร้างมาจากเครื่องมือทีี่มีชื่อว่า EtherCAT Configuration Tool 
  2. EtherCAT Slave Information File (ESI file)
    ESI file เป็นไฟล์ที่ไว้ใช้บอกข้อมูลที่อยู่ภายในอุปกรณ์ EtherCAT Slave อย่างเช่น ชื่ออุปกรณ์ ผู้ผลิต (Vendor ID) เป็นต้น รวมถึงบอกข้อมูลหรือ Object ที่อยู่ภายในอุปกรณ์ EtherCAT Slave อีกด้วย

สำหรับการสร้าง ENI file จำเป็นจะต้องใช้ ESI file เพื่อใช้ในการอ้างอิง ETherCAT Slave ที่อยู่ภายในระบบ