Introductie

CANopen® is een hoger protocol voor gedistribueerde industriële automatiseringssystemen gebaseerd op CAN. CANopen werd ontwikkeld binnen de CAN-in-Automation (CiA®) groep van gebruikers en producenten. Het is gestandaardiseerd als CENELEC EN 50325-4. Kort na het verschijnen hiervan vond CANopen een brede acceptatie, met name in Europa waar het systeem kan worden gezien als de toonaangevende standaard voor op CAN gebaseerde industriële en embedded systeemoplossingen.

Apparaten (nodes)

De basis van CANopen bestaat uit zelfstandig functionerende apparaten, ook wel nodes genaamd, die met de CAN-bus verbonden zijn. Vaak zijn deze apparaten bepaalde actuatoren (motordrivers, inverters, algemene output) en sensoren (encoders, sensors). Deze apparaten hebben een uniek nummer toegewezen gekregen, het zogenaamde Node Id. Dankzij deze unieke Node Id kan ieder apparaat op de bus herkent of uniek aangesproken worden indien dat gewenst is. Een Node Id is eenmalig toegewezen, en vastgelegd in het desbetreffende apparaat. Dat kan met bijvoorbeeld DIP-switches, maar kan ook in EEPROM geprogrammeerd zijn.

CANopen staat maximaal 127 nodes toe, genummerd met Node Id 1 t/m 127. De toewijzing van Id’s aan apparaten is geheel vrij. Indien een systeem uit drie apparaten bestaan mogen deze bijvoorbeeld de willekeurige Id’s #4, #53 en #68 toegewezen gekregen hebben.
Alle CANopen apparaten bevatten dezelfde (software)opbouw bestaande uit:

  • Applicatie
  • Object Directory
  • Communicatie en berichten

CANopen Node structuur basis bestaande uit CANopen communicatie, object directorie en applicatie
CANopen Node structuur
CANopen Node structuur basis bestaande uit CANopen communicatie, object directorie en applicatie
CANopen Node structuur

Applicatie

De applicatie vormt het hart van een CANopen node, het bevat de typische functionaliteit van het desbetreffende apparaat. Deze typische functionaliteit is in een Communicatieprofiel vastgelegd, en dat vormt de basis van CANopen. Alle profielen tezamen vormen een profielfamilie. Deze specificeert de basis communicatiemechanismen en een aantal verschillende Apparaat- of Toepassingsprofielen welke de belangrijkste soorten aangesloten apparatuur beschrijven. Denk daarbij aan digitale en analoge I/O-modules, (motor) drivers, programmeerbare controllers of encoders. In deze apparaat profielen worden functionaliteit, parameters en de toegang tot het verwerken van data gespecificeerd. Op basis van deze standaard profielen kan op exact dezelfde manier toegang tot de dezelfde soort apparatuur van verschillende producenten worden verkregen. Zo hebben bijvoorbeeld alle stappenmotoren besturingen in principe dezelfde aansturing. Zodoende ontstaat er een grote onafhankelijkheid van de desbetreffende fabrikant en kunnen modules van verschillende leveranciers eenvoudig met elkaar gecombineerd of juist uitgewisseld worden.

Object Directory

Het hart van de CANopen-standaard is de beschrijving van de apparaatfunctionaliteit met behulp van een zogenaamde Object directory (=OD). Elke invoer in de OD biedt een basis voor een gestandaardiseerde netwerktoegang naar zowel “toepassingsobjecten” zoals input- en outputsignalen, apparaat parameters, apparaat functies of netwerkvariabelen van een apparaat als ook naar ‘communicatieobjecten’ die de communicatiefunctionaliteit van het apparaat beschrijven. Zo kunnen de eigenschappen van apparaten beschreven en geconfigureerd worden.

Communicatie en berichten

Net zoals andere welbekende veldbussystemen onderscheidt CANopen twee basis datatransmissiemechanismen: de hoge snelheidsuitwisseling van kleine porties verwerkingsdata via zogenaamde ‘"Process Data Objects" (PDO), en de toegang tot de gegevens in het OD via de zogenaamde "Service Data Objects (SDO)". PDO’s worden getriggerd door een gebeurtenis, zijn cyclisch of worden opgevraagd als zendobjecten zonder aanvullende protocol overhead. Een PDO kan worden gebruikt voor de transmissie van maximaal 8 bytes aan data. In combinatie met een synchronisatiebericht kan de transmissie en de acceptatie van PDO’s door het volledige netwerk worden gesynchroniseerd (“Synchrone PDO’s”). De toewijzing van toepassingsobjecten aan een PDO (Transmissie-Object) is middels datastructuren (“PDO Mapping”) aan te passen binnen de Object Directory. Naast deze standaard communicatie voorziet CANopen ook in “noodoproepen” met een hoge prioriteit. Hiermee kan het disfunctioneren van een apparaat worden gemeld. Een centrale en gemeenschappelijke systeemtijd wordt verzorgd door een ‘central timing’-bericht. Verder beschikt CANopen over managementfunctionaliteiten zoals het controleren en monitoren van de communicatiestatus van de nodes.