2009-08-05 17 views
17

हमारे पास एक रोबोट प्रोजेक्ट है जहां मोटर नियंत्रक संचार के लिए CANopen का उपयोग करते हैं। मुझे एक मास्टर माइक्रोकंट्रोलर का उपयोग करके इन मोटर नियंत्रकों के साथ संवाद करने की आवश्यकता है। समस्या यह है कि मुझे इस माइक्रोकंट्रोलर में एक कैनोपेन परत विकसित करने की आवश्यकता है, लेकिन मुझे केवल निम्न स्तर (सीएएन) पर भेजने और प्राप्त करने का तरीका पता है।एक सरल कैनोपेन परत प्रोग्राम कैसे करें

मुझे कैनोपेन (पीडीओ, एसडीओ, हार्टबीट, ऑब्जेक्ट डिक्शनरी इत्यादि) के बारे में बहुत कुछ पता नहीं है। मैंने सीआईए विनिर्देशों को पढ़ने की कोशिश की, लेकिन यह बहुत जटिल था। अगर कोई मुझे सही दिशा में इंगित कर सकता है या मुझे एक सरल कैनोपेन परत प्रोग्राम करने के लिए एक अच्छा ट्यूटोरियल दे सकता है तो मैं इसकी सराहना करता हूं।

+0

आप canopen, http://stackoverflow.com/questions/tagged/canopen बारे में अन्य प्रश्नों लग रहे है (कुछ भी नहीं स्पष्ट रूप से उपयोगी है, लेकिन कौन जानता है ...) – Johan

उत्तर

1

दुर्भाग्य से, सरल कैनोपेन परत नहीं है। कैनोपेन का समर्थन करने के लिए, आपको पूरी चीज को लागू करना होगा।

मेरा सुझाव है कि आप किसी तीसरे पक्ष के विक्रेता से एक कैनोपेन लाइब्रेरी खरीद लें। आम तौर पर वे सस्ते नहीं होते हैं, लेकिन उस समय पर विचार करते समय आपको इसे लागू करने की आवश्यकता होगी, उस समय के लिए यह आपके वेतन से सस्ता है।

हम PORT GmbH's ANSI-C CANopen Library लाइब्रेरी का उपयोग कर रहे हैं, जो कि अन्य पुस्तकालयों की तुलना में मामूली कीमत पर है और इसकी बहुत कम बग है।

0

यदि यह कुछ वाणिज्यिक है तो मैं कैनोपेन को लागू करने पर विचार नहीं करता। यह आपको चार और छह महीने के बीच कहीं भी (एक सबसेट के लिए) ले जाएगा (यदि आप वास्तव में इसे काम करना चाहते हैं)। मुझे नहीं पता कि प्रति घंटा आपका वेतन क्या है और बाजार की आवश्यकताओं के लिए आपका समय क्या है। आपको स्वयं गणित करने की ज़रूरत है।

0

मेरे साथ काम करने वाला एक और वाणिज्यिक समाधान IXXAT's CANopen software है। वे कई अलग-अलग प्लेटफार्मों के लिए बंदरगाहों की पेशकश करते हैं।

जैसा कि पहले से ही कहा गया है: आपको इसे मुफ्त में नहीं मिला है और न ही यह सस्ता है। लेकिन विकास के कई महीनों की तुलना में कुछ हज़ार अमरीकी डालर क्या हैं?

1

हम MicroCANopen प्रबंधक के साथ ढेर का उपयोग कर रहे ऐड-ऑन, यहां से: http://www.canopenstore.com/pip/microcanopen.html

यह अन्य के ढेर की तुलना में अपेक्षाकृत सस्ती है, हालांकि हम हमारे नेटवर्क में सभी नोड्स पर यह प्रयोग कर रहे हैं तो मैं यह कर सकते हैं यह प्रशंसापत्र प्रदान नहीं करता है कि यह अन्य कैनन-अनुपालन उपकरणों के साथ कैसे काम करता है।

4

हमने एम्बेडेड एआरएम और विंडोज पीसी उपकरणों दोनों के लिए स्क्रैच से हमारी कैनोपेन परत लागू की है। यह असंभव नहीं है, पिछले उत्तरों के विपरीत आपको लगता है कि। यदि आपको केवल कैनोपेन की मूलभूत कार्यक्षमता की आवश्यकता है और प्रोटोकॉल की अवधारणाओं को जल्दी से सीख सकते हैं, तो आप चीजें प्राप्त कर सकते हैं और जल्दी से चल सकते हैं।

आपको सीआईए विनिर्देश पढ़ना होगा, इससे बचने का कोई तरीका नहीं है, लेकिन पहले यह कुछ हद तक भारी हो सकता है। मैं अनुशंसा करता हूं कि आप Pfeiffer, Ayre और Keydel द्वारा "Embedded Networking with CAN and CANopen" पढ़कर शुरू करें। यह मूल अवधारणाओं को अच्छी तरह से बताता है, जो बदले में विनिर्देश को बेहतर ढंग से समझने में मदद करता है।

+1

हाँ आप सबसे बातें "जल्दी से" अपने आप को लागू कर सकते हैं। लेकिन जैसा कि कुछ लोगों ने पहले से ही बताया है कि क्या आप मानक अनुपालन कार्यान्वयन चाहते हैं, जो अन्य मानक अनुपालन कैनोपेन नोड्स के साथ बातचीत कर सकते हैं, तो इससे आपको खुद को लिखने के बजाय वाणिज्यिक स्टैक खरीदने के लिए कम खर्च आएगा। –

+1

यदि आप ओपन-सोर्स, शैक्षिक या गैर-लाभकारी परियोजना पर काम कर रहे हैं तो दो खुले स्रोत कैनोपेन्स टक भी हैं जो उपयोग करने के लिए पूरी तरह से स्वतंत्र हैं। Google पर CANFestival और CANopenNode के लिए खोजें। –

+0

@SimonByholm CANfestival है [LGPL] (http://dev.automforge.net/CanFestival-3/file/tip/COPYING) और CanOpenNode [जोड़ने अपवाद के साथ जीपीएल] किया जा रहा है (https://github.com/CANopenNode/ CANopenNode # जीपीएल-लिंकिंग-अपवाद), इसलिए दोनों वाणिज्यिक परियोजनाओं में उपयोग किया जा सकता है। – ntd

9

चूंकि यह सामान्य रुचि का विषय प्रतीत होता है - मैं मानता हूं कि पूर्ण मूल चश्मे को समझना कुछ हद तक दर्दनाक अनुभव हो सकता है। तो यहाँ "अपने ड्राइव जा रहा प्राप्त" के लिए एक सुझाव है, "के रूप में पूरी बात को लागू करने" के लिए विरोध किया है:

अपने CANopen ड्राइव सीआईए 402 मानक वस्तुओं के माध्यम से और प्रदर्शन के कारणों यह होगा के लिए संचालित किया जा सकता
  • जांच करें कि पीडीओ को कॉन्फ़िगर और उपयोग न करने के लिए पूरी तरह ठीक हो, और आपको वास्तव में दिल की धड़कन की आवश्यकता नहीं है, जैसेयह आमतौर पर ड्राइव की स्टेट मशीन (ऑब्जेक्ट 6040h, कंट्रोल वर्ड) स्विच कर रहा है, ऑपरेशन मोड (ऑब्जेक्ट 6060 एच) सेट कर रहा है, और "प्रोफाइल पोजीशन वेग" जैसे अतिरिक्त पैरामीटर सेट कर रहा है।

  • फिर त्वरित एसडीओ स्थानान्तरण केवल लागू करें। (http://en.wikipedia.org/wiki/CANopen देखें।) एसडीओ डाउनलोड आपके ड्राइव में किसी ऑब्जेक्ट को लिखने/बदलने के लिए है। एसडीओ अपलोड एक वस्तु पढ़ने के लिए है।

  • मैं एक पीसी सॉफ्टवेयर है कि पढ़ सकते हैं और SDOs लिख सकते हैं और है सकते हैं एक CAN बस मॉनिटर लेने के लिए सुझाव देते हैं। (हमारी Kickdrive Zero फ्रीवेयर ऐसा कर सकते हैं, लेकिन वास्तव में, CANopen के लिए किसी भी अन्य पीसी उपकरण काम करना चाहिए।) कुछ उदाहरण पढ़ता है और डेटा प्रकार के लिए लिखते हैं और आप की जरूरत की वस्तुओं करो। देखें कि यह कैन स्तर पर फ़्रेम में कैसे अनुवाद करता है। मूल पूर्णांक डेटा प्रकारों के लिए, अनुरोध के लिए यह हमेशा एक फ्रेम है, उत्तर के लिए एक।

  • अब आप अपने माइक्रोकंट्रोलर पर एक साधारण प्रोटोकॉल स्टैक कि एसडीओ डाउनलोड/अपलोड अनुरोध भेजने और जवाब संसाधित कर सकते हैं का निर्माण।

अस्वीकरण - ऊपर भी नहीं करने के लिए "CANopen शिकायत" "CANopen को लागू करने" है पास, या "CANopen समर्थन", या यहाँ तक। यह "आपके ड्राइव को ASAP और तृतीय-पक्ष कोड के बिना स्थानांतरित करने के बारे में है"। जो कभी-कभी करने के लिए सही काम है।

+0

आवधिक एसडीओ अनुरोधों के साथ बस प्रदूषण से बचने के लिए मुझे टीएक्सपीडीओ के कार्यान्वयन को मौलिक पाया गया। अंत में मैपिंग एसडीओ लिखने का एक मुट्ठी भर है और आप केवल टीएक्सपीडीओ पैकेट को पार्स कर सकते हैं। – ntd

+0

मुझे आपकी बात दिखाई देती है, लेकिन मेरा मानना ​​है कि यह एप्लिकेशन पर निर्भर करता है। मूल सवाल यह था कि "क्या कोई आसान तरीका नहीं है?"। मैं पीडीओ मैपिंग और एसडीओ के माध्यम से इसके कॉन्फ़िगरेशन को कैनोपेन के सरल पहलुओं पर नहीं मानता। यह सब आपके नोड्स और चक्र के समय पर निर्भर करता है जिसकी आपको वास्तव में आवश्यकता है। –

+0

ठीक है, पीडीओ मैपिंग स्वयं काफी आसान है (4 या 5 एसडीओ लिखते हैं)। आईएमओ प्रतिक्रिया का प्रबंधन बहुत काम है लेकिन (फिर से आईएमओ) तुलनात्मक है यदि एसडीओ मतदान लूप से कम नहीं है (आखिरकार आप इनपुट प्राप्त करना चाहते हैं)। और लैबव्यू के लिए एक कैनोपेन लाइब्रेरी में यह बिल्कुल [मैंने क्या किया] (https://sourceforge.net/projects/lv-canopen/) है। – ntd

2

CanFestival ढेर उपयोग करने का प्रयास - यह मुफ़्त है, और यह नंगे मशीनों सिर्फ एक टिक घड़ी है कि करने के लिए नीचे लिनक्स जैसे OSes से आसानी से बंदरगाहों।

4-6 महीने एक खंड का एक सा लगता है - आप केवल एक मास्टर या एक गुलाम की आवश्यकता हो सकती है, और हम एक मास्टर-केवल 3-4 सप्ताह में सी में कार्यान्वयन ++ किया था।