Select Sidearea

Populate the sidearea with useful widgets. It’s simple to add images, categories, latest post, social media icon links, tag clouds, and more.

hello@youremail.com
+1234567890

CANopen Protokolü

Vetes Mühendislik > CANopen Protokolü

CANopen Protokolü Nedir?

CANopen Protokolü, CAN tabanlı bir iletişim protokolüdür. CANopen standardı, örneğin endüstriyel makinelerdeki cihazlar (düğümler) arasında kullanıma hazır birlikte çalışabilirlik sağladığı için kullanışlıdır. Ayrıca, kurulumdan sonra da cihazların yapılandırılması için standart yöntemler sağlar. CANopen başlangıçta hareket odaklı makine kontrol sistemleri için tasarlanmıştır. Günümüzde CANopen protokolü, motor kontrolünde (step/servomotorlar) ve aynı zamanda çok çeşitli diğer uygulamalarda yaygın olarak kullanılmaktadır:

 

• Robotik: Otomatik robotik, konveyör bantlar ve diğer endüstriyel makineler
• Tıbbi: X-ray jeneratörleri, enjektörler, hasta masaları ve diyaliz cihazları
• Otomotiv: Tarım, demiryolu, ağır hizmet, madencilik, denizcilik ve daha fazlası

CANopen Katmanları

CANopen Üst Katman Protokolü

Aşağıdakilerin anlaşılması önemlidir:

 

CANopen protokolü, CAN veri yoluna dayalı bir “üst katman protokolüdür”. Bu, CAN bus’ın (ISO 11898) CANopen mesajları (konteynerler gibi) için ‘taşıma aracı’ (kamyon gibi) olarak hizmet ettiği anlamına gelir. CANopen’ın 7 katmanını yandaki şekilde inceleyebilirsiniz.

 

OSI modeli, farklı iletişim teknolojileri arasında iletişim işlevlerini standartlaştıran kavramsal bir modeldir. Alt katmanlar temel iletişimi (örneğin ham bit akışları) tanımlarken, üst katmanlar uzun mesajların bölümlere ayrılması ve mesajların başlatılması, belirtilmesi, yanıtlanması ve onaylanması gibi hizmetleri tanımlar. CAN veri yolu en düşük iki katmanı temsil eder (1: Fiziksel, 2: Veri Bağlantısı). Bu, CAN’ın basitçe 11 bit CAN ID, bir uzaktan iletim (RTR) biti ve 64 veri biti (daha yüksek katman protokolleriyle ilgili alanlar) içeren çerçevelerin iletimini sağladığı anlamına gelir.

 

Başka bir deyişle, CAN veriyolu CANopen’da, örneğin J1939 protokolünde olduğu gibi aynı rolü oynar. Yukarıda görüldüğü gibi CANopen, OSI modelinin 7. katmanını (Uygulama) bir dizi standart aracılığıyla uygular. Bunun bir parçası olarak, aşağıda ayrıntılarını verdiğimiz birkaç önemli kavram ekler. CANopen’ın CAN dışındaki diğer veri bağlantı katmanı protokollerine de uyarlanabileceğini belirtmek gerekir (örneğin EtherCAT, Modbus, Powerlink).

 

Bu makalede öncelikle Klasik CAN tabanlı CANopen’a odaklanıyoruz. Bununla birlikte, CAN FD yaygınlaştıkça CANopen FD’nin yeni nesil CANopen olarak giderek daha önemli bir rol oynayabileceğini belirtmek gerekir.

Altı temel CANopen konsepti

CAN bus ve örneğin J1939’a aşina olsanız bile, CANopen bir dizi önemli yeni kavram eklemektedir:


İletişim Modelleri: Cihaz/node iletişimi için 3 model mevcut:Usta/Köle (Master/slave),İstemci/Sunucu (client/server) ve Tüketici/Üretici (producer/consumer).


İletişim Protokolleri: Protokoller iletişimde kullanılır, örneğin düğümlerin yapılandırılması (SDO’lar) veya gerçek zamanlı verilerin iletilmesi (PDO’lar).


Cihaz Durumu: Bir cihaz farklı durumları destekler. Bir ‘usta (master)’ düğüm, bir ‘köle (slave)’ düğümün durumunu değiştirebilir – örneğin onu sıfırlayabilir.


Nesne Sözlüğü: Her cihazın, örneğin cihaz yapılandırmasını belirten girdileri olan bir OD’si vardır. SDO’lar aracılığıyla erişilebilir.


Elektronik Veri Sayfası: EDS, OD girişleri için standart bir dosya formatıdır. Örneğin servis araçlarının cihazları güncellemesine olanak tanır.

 

Cihaz Profilleri: Standartlar, satıcı bağımsızlığı için örneğin I/O modüllerini (CiA 401) ve hareket kontrolünü (CiA 402) tanımlar.


Aşağıdaki resim CANopen kavramlarının nasıl birbirine bağlandığını göstermektedir ve aşağıda her birini detaylandıracağız:

CANopen Kavramları

CANopen İletişim Temelleri

Bir CANopen ağında, çeşitli cihazların iletişim kurması gerekir. Örneğin, bir endüstriyel otomasyon kurulumunda birden fazla servomotor düğümü ve bir kontrol arayüzü/PC düğümü olan bir robot kolunuz olabilir. İletişimi kolaylaştırmak için CANopen içinde üç model mevcuttur. Her biri kısa bir süre sonra inceleyeceğimiz CANopen protokolleriyle yakından bağlantılıdır. Kısa bir tanıtım için aşağıya bakınız:

Usta/Köle (Master/Slave): Bir düğüm (örneğin kontrol arayüzü) uygulama yöneticisi veya ana kontrolör olarak görev yapar. Slave’lerden (örn. servo motorlar) veri gönderir/istekler. Bu, örneğin teşhis veya durum yönetiminde kullanılır. Standart uygulamalarda 0-127 slave olabilir. Tek bir CANopen ağında, aynı veri bağlantı katmanını paylaşan farklı ana bilgisayar kontrolörleri olabileceğini unutmayın. Servis örneği: NMT

CANopen İletişim Temelleri2

İstemci/Sunucu (Client/Server): Bir istemci bir sunucuya veri isteği gönderir, sunucu da istenen veriyi yanıtlar. Örneğin bir uygulama yöneticisi bir slave’in OD’sinden veri istediğinde kullanılır. Sunucudan okuma bir “yükleme”, yazma ise bir “indirme “dir (terminoloji “sunucu tarafı” perspektifini alır). Hizmet örneği: SDO

Tüketici/Üretici (Consumer/Producer):Burada üretici düğüm, tüketici düğüm tarafından tüketilen verileri ağa yayınlar. Üretici bu verileri ya istek üzerine (çekme modeli) ya da belirli bir istek olmadan (itme modeli) gönderir. Hizmet örneği: Kalp atışı.

 

Görüldüğü gibi, modeller pratikte aynıdır, ancak terminoloji tutarlılığı için bunları birbirinden ayırıyoruz.

CANopen Çerçevesi

CANopen iletişimini anlamak için CANopen CAN çerçevesini parçalara ayırmak gerekir:

 

11 bitlik CAN ID, İletişim Nesnesi Tanımlayıcısı (COB-ID) olarak adlandırılır ve iki kısma ayrılır: Varsayılan olarak, ilk 4 bit bir işlev koduna eşittir ve sonraki 7 bit düğüm kimliğini içerir.

CANopen İletişim Protokolleri/Hizmetleri

Aşağıda, 8 CAN çerçevesi veri baytını nasıl kullandıkları da dahil olmak üzere, bahsedilen 7 hizmet türünü kısaca özetliyoruz.

 

1. Ağ Yönetimi (NMT)

NMT hizmeti, CANopen cihazlarının durumunu (örn. çalışma öncesi, çalışma, durdurma) NMT komutları (örn. başlatma, durdurma, sıfırlama) aracılığıyla kontrol etmek için kullanılır.


Durum değiştirmek için, NMT master CAN ID 0 (yani fonksiyon kodu 0 ve düğüm ID 0) ile 2 baytlık bir mesaj gönderir. Tüm bağımlı düğümler bu mesajı işler. 1. CAN veri baytı talep edilen durumu içerirken, 2. CAN veri baytı hedeflenen düğümün düğüm kimliğini içerir. Düğüm kimliği 0(sıfır), bir yayın komutunu gösterir.

CANopen İletişim Protokolleri

2. Senkronizasyon (SYNC)
SYNC mesajı, örneğin girişlerin algılanmasını ve birkaç CANopen cihazının çalıştırılmasını senkronize etmek için kullanılır – tipik olarak uygulama yöneticisi tarafından tetiklenir.
Uygulama yöneticisi SYNC mesajını (COB ID 080) CANopen ağına gönderir (SYNC sayacı ile veya SYNC sayacı olmadan). Birden fazla bağımlı düğüm SYNC’ye tepki verecek şekilde yapılandırılabilir ve aynı anda yakalanan giriş verilerini ileterek veya senkronize çalışmaya katılan düğümlerle aynı anda çıkışı ayarlayarak yanıt verebilir. SYNC sayacı kullanılarak birkaç senkronize çalışan cihaz grubu yapılandırılabilir.

 

3. Acil Durum (EMCY)
Acil durum hizmeti, bir cihazın ölümcül bir hata (örneğin sensör arızası) yaşaması durumunda kullanılır ve bunu ağın geri kalanına bildirmesine olanak tanır.
Etkilenen düğüm ağa yüksek öncelikli tek bir EMCY mesajı (örneğin düğüm 5 için COB-ID 085 ile) gönderir. Veri baytları, ayrıntılar için bakılabilecek hata hakkında bilgi içerir.


4. Zaman Damgası (TIME) [PDO]
Bu iletişim hizmeti ile küresel bir ağ saati dağıtılabilir. TIME servisi 6 baytlık bir tarih ve saat bilgisi içerir.
Bir uygulama yöneticisi CAN ID 100 ile TIME mesajını gönderir, burada ilk 4 veri baytı gece yarısından sonraki ms cinsinden zamanı içerir ve sonraki 2 bayt 1 Ocak 1984’ten bu yana geçen gün sayısını içerir.


5. İşlem Veri Nesnesi [PDO]
PDO hizmeti, cihazlar arasında gerçek zamanlı veri iletmek için kullanılır – örneğin konum gibi ölçülen veriler veya tork talepleri gibi komut verileri. Bu açıdan, örneğin J1939’daki yayınlanmış veri parametrelerine benzer.

 

6. Hizmet Veri Nesnesi [SDO]
SDO hizmetleri, bir CANopen cihazının nesne sözlüğündeki değerlere erişmek/değiştirmek için kullanılır – örneğin, bir uygulama yöneticisinin bir CANopen cihazının belirli yapılandırmalarını değiştirmesi gerektiğinde.


7. Düğüm izleme (Kalp Atışı) [SDO]
PDO ve SDO hizmetleri, CANopen iletişiminin çoğunun temelini oluşturdukları için özellikle önemlidir.

CANopen Nesne Sözlüğü

Tüm CANopen düğümleri bir nesne sözlüğüne (OD) sahip olmalıdır. Nesne sözlüğü, bir CANopen düğümünün davranışını tanımlayan tüm parametreleri içeren standartlaştırılmış bir yapıdır. OD girişleri 16 bitlik bir indeks ve 8 bitlik bir alt indeks aracılığıyla aranır. Örneğin, CANopen uyumlu bir düğüm OD’sinin 1008 indeksi (alt indeks 0) düğüm cihaz adını içerir.


Spesifik olarak, nesne sözlüğündeki bir giriş özniteliklerle tanımlanır:


• Dizin: Nesnenin 16 bitlik temel adresi
• Nesne adı: Üretici cihaz adı
• Nesne kodu: Dizi, değişken veya kayıt
• Veri türü: Örneğin VISIBLE_STRING veya UNSIGNED32 veya Kayıt Adı
• Erişim: rw (okuma/yazma), ro (salt okuma), wo (salt yazma)
• Kategori: Bu parametrenin zorunlu/isteğe bağlı olup olmadığını belirtir (M/O)

 

OD Standartlaştırılmış Bölümler


Nesne sözlüğü, bazı girişlerin zorunlu olduğu ve diğerlerinin tamamen özelleştirilebilir olduğu standartlaştırılmış bölümlere ayrılmıştır. Daha da önemlisi, bir cihazın (örneğin bir slave) OD girişlerine, örneğin SDO’lar kullanılarak CAN aracılığıyla başka bir cihaz (örneğin bir master) tarafından erişilebilir.