loading

พรีซิชั่น แมชชีน คอนโทรล , 12 Aug 2019

CAN open Message Format

การสื่อสารข้อมูลตามมาตรฐาน CAN open จะทำในรูปของ message telegrams  ซึ่งสามารถแยกออกเป็น 2 ส่วนประกอบสำคัญคือ COB-Identifier(COB-ID) ขนาด 11 bits และ Data อีก 8 Bytes

COB-Identifier (COB-ID) จะเป็น Function Code ใน 4 bits แรก ซึ่งเป็นวัตถุประสงค์หลักของการสื่อสาร Function Code สามารถแยกตามลักษณะของ message ได้ 4 แบบ

Administrative message (LMT, NMT)

Service data objects (SDOs)

Process data objects (PDOs)

Pre-defined messages (synchronization,emergency)

และ 7 bits หลังของ COB-ID จะเป็น Node Number นั้นหมายถึงจำนวนอุปกรณ์ที่เกาะอยู่บน network สามารถมีได้สูงสุด 127 อุปกรณ์

จากตาราง จะพบว่า Administrative message จะมีค่า COB-ID 4 bits แรกเป็น 0000 (เลขฐาน 2) และ 7 bits หลังของ COB-ID อันเหมายถึง Node ID จะเป็น 0000000 (เลขฐาน 2) เมื่อรวมทั้ง 11 bits จะมีค่า 0 ทั้งระบบเลขฐาน 10 และ ระบบเลขฐาน 16  message กลุ่มนี้จะมีลักษณะ Broadcast ไปทั่วทั้ง network จึงไม่จำเป็นต้องกำหนดค่า node ID

CAN Open Message Data ขนาด 4 bytes อยู่ทางด้านท้ายของ message มีองค์ประกอบย่อยคือ Command , Index , Sub Index และ Service Data

Example

เพื่อให้ง่ายต่อความเข้าใช้ ผู้ขียนจะใช้ตัวอย่าง การสื่อสารระหว่าง Master และ Absolute Rotary Encoder ของ BEI IDEACOD ที่ผลิตขึ้นมาให้สามารถทำงานบนมาตรฐาน CAN open อุปกรณ์ที่รองรับ CAN open จะทำงานในลักษณะเช่นเดียวกันตัวอย่าง  ผู้สนใจสามารถ download คู่มือมาศึกษาเพิ่มเติมได้

BEI IDEACOD Absolute Encoder มีความละเอียด 13 bits หรือ 8192 steps/rev  และรุ่นที่เป็น multi-turn จะมีความละเอียด 29 bits หรือ 536,870,912 steps สามารถกำหนดให้ Encoder ทำงานในโหมด RTR Message หมายถึง Absolute Encoder จะส่งค่าตำแหน่งที่ตรวจวัดได้ มาให้ Master ก็ต่อเมื่อมีการร้องขอ หรือ Cyclic Mode  หมายถึง Absolute Encoder จะส่งค่าตำแหน่งที่ตรวจวัดได้ มาให้ Master ตามช่วงเวลาที่กำหนด หรือ Syn Mode หมายถึง Absolute Encoder จะส่งค่าตำแหน่งที่ตรวจวัดได้ มาให้ Master เมื่อได้รับ Syn Message โดยทั้งหมดสามารถกำหนดได้โดยการส่ง CAN open message ตามรูปแบบ(มาตรฐาน) CiA 301 และ CiA 406 ไปยัง Absolute Encoder

Service Data Objects (SDOs) ตามมาตรฐาน CAN open กำหนดให้อุปกรณ์แต่ละตัวบน network ทำตัวคล้ายกับ Server สามารถตอบสนองต่อคำขอและคำเขียน read/write request ในตาราง object dictionary ของอุปกรณ์นั้น ๆ ได้

Object dictionary เป็นตารางที่บรรจุอยู่ในอุปกรณ์แต่ละตัวบน network  จะเก็บค่า configuration ของอุปกรณ์ และค่าที่ได้จากการทำงานของอุปกรณ์ process data ซึ่งตารางนี้สามารถเข้าถึงในลักษณะ read/write request จาก Master โดยการทำเป็น CAN open message ส่งไปยังอุปกรณ์เจ้าของ object dictionary ตารางจะประกอบไปด้วย Index และ Sub-index ซึ่งมาตรฐานได้กำหนดความหมายของ Index และ Sub-index ไว้แล้ว ผู้พัฒนาอุปกรณ์ควรอ้างอิงจากมาตรฐานเป็นหลัก เช่น Index 1008 (เลขฐาน 16) และ Sub-index 00h (เลขฐาน 16) จะต้องเป็นชื่อของอุปกรณ์ ซึ่ง CAN open Master สามารถส่ง message เพื่อขออ่านชื่อของอุปกรณ์ เพื่อใช้ในการแสดงผล หรือจำแนกอุปกรณ์ ค่า Index 1000 ( เลขฐาน 16) และ ค่า Index 100A ( เลขฐาน 16) เป็นค่า ประเภทของอุปกรณ์ และ software version ผู้ใช้สามารถศึกษาตามคู่มืออุปกรณ์

ตารางด้านบนเป็นสรุปการแบ่งกลุ่มความหมายของ Index ตามมาตฐาน CAN open ซึ่งจะเหมือนกันหมดทุกผู้ผลิตจะแตกต่างกันเฉพาะข้อมูลที่อยู่ใน Index และ Sub Index เท่านั้น

เมื่อ CAN open Master ประสงค์จะสื่อสารข้อมูลแบบ Service data objects (SDOs) กับ Absolute Encoder จะกำหนด รูปแบบของ CAN open Message อันประกอบด้วย COB-ID 11 bits และ Data 8 bytes ดังนี้

COB-ID 11 bits

Master -> Encoder:  600h + Node ID    เป็น SDO (rx) message

Data 8 bytes

Command กำหนดตามคู่มืออุปกรณ์ เป็น 40 (เลขฐาน 16) เป็นการร้องขอข้อมูล Master -> Encdoer

Index กำหนดตามคู่มืออุปกรณ์ เป็น 6040 (เลขฐาน 16) เป็นตำแหน่งของ Position Object ที่อยู่ใน Object dictionary ของอุปกรณ์ Absolute Encoder ส่วนค่า Sub-idex กำหนดเป็น 00 (เลขฐาน 16)

เมื่อ CAN open Master ส่ง SDO message ในลักษณะ Broadcast ไปทั่วทั้ง network อุปกรณ์ที่มี node ID ตามกำหนดจะรับเอา message นั้นไปปฎิบัติและ response โดยในที่นี้เป็น Absolute Encoder กำหนด node ID = 4 จะทำการ response เป็น SDO message

COB-ID 11 bits

Encoder -> Master: 580h + Node ID  เป็น SDO(tx) message

Command ตอบกลับ เป็น 43 (เลขฐาน 16) เป็นการตอบกลับข้อมูล Encoder -> Master

Index ตอบกลับเป็น 6040 (เลขฐาน 16) เป็นตำแหน่งของ Position Object ที่อยู่ใน Object dictionary ของอุปกรณ์ Absolute Encoder ส่วนค่า Sub-idex ตอบกลับเป็น 00 (เลขฐาน 16)

Service Data จะเป็นข้อมูลของตำแหน่งที่ Encoder ตรวจวัดได้ ขนาด 4 bytes

Write a Reply or Comment

Your email address will not be published. Required fields are marked *