Home

CANopen for Runtime Systems

image

Contents

1. Yor bersetzen importieren Vor bersetzen exportieren hinzuf gen Connection 1 CAN Netzwerk i a verbindung Netzwerktyp ICAN v Einstellungen l schen V Variablen packen Variablenlistenkennung COB ID I r r MV Lesen l Request beim Bootup Schreiben E Intervall Mindestabstand 4 Variable OK Abbrechen Lenze DMS 2 0 DE 05 2009 TD29 45 L force PLC Designer CANopen f r Laufzeitsysteme CAN Netzwerkvariablen Die Optionen haben dabei folgende Bedeutung Netzwerktyp Hier kann einer der bei den Zielsystemeinstellungen angegebenen Netzwerknamen eingetragen werden Lesen Die Variablenwerte werden von einer oder mehreren anderen Steuerungen gelesen Schreiben Die Variablen dieser Variablenliste werden zu anderen Steuerungen gesendet Es wird empfohlen f r eine Variablenliste nur eine dieser M glichkeiten zu w hlen also entweder nur lesen oder nur schreiben Sollen verschiedene Variablen eines Projekts gelesen und geschrieben werden so verwenden Sie mehrere Variablenlisten Eine zum Lesen eine zum Schreiben Au erdem wird empfohlen dass in einem Netzwerk nur eine Steuerung die gleiche Variablenliste sendet Zyklische bertragung Nur g ltig wenn Schreiben aktiviert Die Werte werden in der angegebenen Intervallzeit gesendet unabh ngig davon ob sie sich ge ndert haben bertragung bei nderung Die Werte werden nur gesendet wenn sich der Wert ge ndert hat
2. Lifecounter wird nur hochgez hlt um im Monitorbetrieb die impliziten Aufrufe sichtbar zu machen Hier kann gepr ft werden ob der Master aufgerufen wird bSynchSend BOOL Diese Variable wird immer wenn der Master eine Sync Nachricht verschickt f r einen IEC Zyklus zu TRUE Dasselbe passiert auch wenn der Master einen extern erzeugten Sync empf ngt Wenn der Master den Sync selber erzeugt wird bei einem externen Sync das Flag nicht gesetzt bErrCodeNotO BOOL Wird benutzt um den Errorcode des CAN Treibers f r BusOFF Errorcode 1 mit einem Zyklus Versatz zu l schen MsgBuffer CAN_Message Empfangspuffer des Masters Wird nur f r die SDO Server Funktionalit t und f r den Empfang eines externen Sync benutzt bSDOMsgUsed BOOL Wird immer dann gesetzt wenn ein Zugriff auf das Objektverzeichnis des Masters erfolgte bSDOReadrgActive BOOL Die folgenden Variablen werden benutzt um die Zugriffe auf das Objektverzeichnis des Masters zu verwalten bSDOWritergActive BOOL bSubONotFound bSDOReadrspAbort blnitiateRspSend bSDOWriterspAbort blInitiateWrRegSend BOOL i iActiveSegSDORead INT ucModus BYTE dwldx DWORD wSegSDOReadSendOffs wSegSDOReadSendLen WORD pActiveSegSDORead POINTER TO BYTE iActiveSegSDOWrite INT 1 pActiveSegSDOWrite POINTER TO BYTE wSegSDOWriteRecvOffs WORD wSegSDOWriteRecvLen WORD dwODEValue DWORD iSDOReadLen iSDOWriteLen INT
3. byAbortCode ARRAY 0 3 OF BYTE bSwap BOOL Hier speichert der Master die Tatsache ob er auf einer INTEL oder Motorola Byteorder Maschine l uft END_VAR 14 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek Um also z B die Variable bUseStartAllNodes des ersten Masters zu setzen muss man pCanOpenMaster 0 bUseStartAllNodes TRUE schreiben 2 4 2 Die Struktur des CANopen Nodes Slaves Der Zugriff auf die CANopen Nodes erfolgt ber die vom Programmiersystem implizit angelegten Variablen pCanOpenNode Diese Variable ist ein Array von Funktionsbl cken die die konfigurierten Nodes darstellen Methoden der Nodes wie z B ResetNodes werden also folgenderma en aufgerufen pCanOpenNodel 0 ResetNode Dabei ist 0 der Index des Knotens und nicht die NodelD Die Nodeld ist Teil der Instanz des FBs Auf alle Instanzdaten eines Nodes kann lesend und z T schreibend dazu ffnen Sie bitte die Bausteinschnittstelle im Bibliotheksverwalter vom PLC Designer zugegriffen werden Die Komponenten des FBs im Detail VAR_INPUT nRxlIndex INT historisch unbenutzt nSDOSend INT Der Index des aktuellen SDOs das in der Konfigurationsphase an den Node geschickt wird bAutoStart BOOL Diese Komponente wird immer gesetzt wenn der Master den Node auf automatisch Starten setzt nNewsStatus INT Diese Variable wird benutzt um
4. sizeof lt Variablenname gt ODMEntries l dwIdxSubldxF ODMEntries l dwIdxSubldxF OR OD_ENTRYFLG_WRITE OR OD_ENTRYFLG_ISPOINTER Um nur den Inhalt des Eintrags zu ndern gen gt es dwContent zu ver ndern Alternativ kann man mit dem Index als Eingabeparameter auch die folgenden Funktionen verwenden GetODMEntryDataAddress um auf die Adresse des Wertes des Eintrags zuzugreifen GetODMEntryDataLen um die L nge der Daten des Eintrags zu ermitteln GetODMEntryValue um den Wert des Eintrags abzufragen SetODMEntryValue um den Wert des Eintrags zu setzen Lenze DMS 2 0 DE 05 2009 TD29 29 L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 3 CanDevice Eine PLC Designer programmierbare Steuerung kann in einem CAN Netzwerk auch als CANopen Slave auch CANopen Node genannt im folgenden als CanDevice bezeichnet erscheinen 3 1 Funktionalit t Die CanDevice Bibliothek zusammen mit dem CANopen Konfigurator stellt dem Anwender folgende Funktionalit t zur Verf gung Konfiguration im PLC Designer der Eigenschaften NodeGuarding Heartbeat Emergency NodelD und Baudrate auf der das Device arbeiten soll Zusammen mit dem Parameter Manager des PLC Designer kann ein Default PDO Mapping erstellt werden das zur Laufzeit vom Master ge ndert werden kann Die nderung des PDO Mappings erfolgt w hrend der Konfigurationsphase durch den Master Durch das Mapping k nnen IEC Variablen der Appl
5. A Ja F2 Kann man die Objektliste auch im PLC Designer Code generieren erweitern und wie A Die Objektliste f r den Listentyp Variablen kann mittels Pragmas auch aus dem Code heraus generiert werden Zur Verwendung von Pragmas sehen Sie auch die Benutzerdokumentation bzw Online Hilfe zum PLC Designer Sehen Sie im folgenden ein Beispiel in dem in einer globalen Variablenliste Pragmas eingef gt sind die bewirken dass die betreffenden Variablen im Parameter Manager in einer Objektliste angelegt werden Die entsprechende Konfiguration der Indexbereiche muss in den PLC Designer Zielsystemeinstellungen in Kategorie Netzfunktionen vorliegen VAR_GLOBAL g_byCANNodelD BYTE 16 10 CANopen NodelD normally read from a rotary switch Format of the ParameterManager entry parameter list lt name gt name index 16 subindex accesslevel accessright value Possible keys and its values name The name is only for information purposes not shown in PLC configuration or EDS file index Index of the variable subindex SubIndex of the variable accesslevel Not used for CAN but must be defined low middle high accessright Accessright values read only Tx PDO Input Master s view write only Rx PDO Output Master s view value Default value 2 Objects mapped by default wln WORD parameter list lOs name ReadInput16Bit index 16 6100 subindex 16 0 accessleve
6. Remote Node benutzt explizit f r jeden Slave einzeln NMT steht nach CANopen f r Network Managment Die einzelnen Kommandos sind im Dokument DSP301 beschrieben Die Erfahrung einiger Anwender hat gezeigt dass es sinnvoll ist die Slaves mit einem Reset All Remote Nodes Kommando zur ckzusetzen um die Empfangskapazit ten von wenig leistungsstarken Slave Controllern nicht zu berlasten Das ist ber die Applikation durch das Setzen des entsprechenden Flags erreichbar Abfrage des Slave Ger tetyps mittels SDO Abfrage des Objekts 0x1000 und Vergleich mit der konfigurierten Slave ID Ausgabe eines Fehlerstatus f r die Slaves von denen ein falscher Ger tettyp empfangen wurde Wird kein Ger tetyp empfangen wird die Anfrage nach 0 5 Sekunden wiederholt au er der Slave wurde als optional in der Konfiguration markiert Standard e Konfiguration aller fehlerfrei detektierten Ger te mittels SDO Jedes SDO wird auf Antwort berwacht und wiederholt wenn sich innerhalb der berwachungszeit der Slave nicht meldet Standard e Automatische Konfiguration von Slaves mittels SDO s bei laufendem Busbetrieb Standard wenn sich der Slave mittels BOOT Up Nachricht beim Master anmeldet e Start aller fehlerfrei konfigurierten Slaves nach dem Ende der Konfiguration wenn die Option Automatisch Starten des Can Masters aktiviert wurde einstellbar Zum Starten der Slaves wird normalerweise das NMT Kommano Start remote node be
7. ObjectType 0x7 DataType 0x7 AccessType rw DefaultValue 0x80 Nodeld PDOMapping 0 1016sub0 ParameterName Nums consumer heartbeat time ObjectType 0x7 DataType 0x5 AccessType rw DefaultValue 1 PDOMapping 0 1016sub1 ParameterName Consumer heartbeat time ObjectType 0x7 DataType 0x7 AccessType rw DefaultValue 0x0 PDOMapping 0 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 1017 SubNumber 0 ParameterName Producer heartbeat time ObjectType 0x7 DataType 0x6 AccessType rw DefaultValue 0 PDOMapping 0 1018 SubNumber 4 ParameterName Vendor identification 1018sub0 ParameterName Number of entries ObjectType 0x7 DataType 0x5 AccessType ro DefaultValue 2 PDOMapping 0 1013sub 1 ParameterName VendorlD ObjectType 0x7 DataType 0x7 AccessType ro DefaultValue 0x0 PDOMapping 0 1018sub2 ParameterName Product Code ObjectType 0x7 DataType 0x7 AccessType ro DefaultValue 0x0 PDOMapping 0 Die Bedeutung der einzelnen Objekte entnehmen Sie der CANopen Spezifikation DS301 Die EDS Datei enth lt neben den obligatorischen Eintr gen die Definitionen f r SYNC Guarding Emergency und Heartbeat Wenn diese Objekte nicht benutzt sind wie hier im Beispiel Guarding und Heartbeat sind die Defaultwerte zu 0 gesetzt Die Objekte sind aber im Objektverzeichnis des Device zu Laufzeit vorhanden also sind sie auch hier in der EDS Datei beschrieben Analoges
8. bSendNodeGuard BOOL ucToggle BYTE bReentry BOOL tGuardLifeTime TON bGuardingEnabled BOOL tHeartbeatProducer TON tHeartbeatConsumer TON 40 Wenn das Device als Heartbeat Consumer konfiguriert wurde wird dieses Flag gesetzt wenn l nger als die konfigurierte Heartbeat Consumertime keine neue Heartbeat Message erkannt wurde Reset Communication NMT Message wurde empfangen Anzeige f r die Applikation Reset Node NMT Message wurde empfangen Anzeige f r die Applikation Enter Preoperational NMT Message wurde empfangen Anzeige f r die Applikation Ein Objektverzeichniseintrag wurde ber einen SDO Zugriff geschrieben Index des zuletzt geschriebenen Eintrags Interne Laufvariablen Interne Variable f r den Objektverzeichniszugriff Intern Interne Variable f r SDO Server Funktionalit t Interne Variable f r SDO Server Funktionalit t Interne Variable f r SDO Server Funktionalit t Interne Variable f r SDO Server Funktionalit t Interne Variable f r SDO Server Funktionalit t Interne Variable f r SDO Server Funktionalit t Interne Variable mit der bestimmt wird ob das CanDevice auf einem Prozessor l uft der Intel oder Motorola Byteorder benutzt Die Reihenfolge der Bytes in einem SDOtransfer ist It CANopen immer Intel Interne Variable f r SDO Server Funktionalit t Interne Variable Interne Variable Interne Variable Interne Variable Interne Variable Interne Variable Inter
9. r implizite Objekte immer der Fall ist wei dass es sich um einen numerischen Basisdatentyp handelt ODEntries Index dwContent xxxxx Wenn von au en auf mein Objektverzeichnis geschrieben wird erkenne ich dies nur durch die nderung der entsprechenden Variablen welche dem entsprechenden Index Subindex zugeordnet ist Gibt es auch eine M glichkeit im PLC Designer Code einkommende Schreibzugriffe auf mein Objektverzeichnis direkt zu empfangen mit PLC Designer Anweisung siehe Kap 3 6 1 Beschreibung der Schnittstelle des Bausteins CANopenDevice Variable boDEntryWritten und iLastODEntryWritten Es k nnen nur read only und write only Objekte verarbeitet werden Bei meiner Anwendung muss ich definitiv auch read write Objekte verwenden Gibt es vielleicht schon ein Update mit dem dieses Problem behoben ist Read Write Objekte werden beim Master im Reiter Service Data Objects gt ErrorModeOutput16Bit angezeigt Diese k nnen dort auch ver ndert werden Werden diese Werte ge ndert Abweichung vom Standard Wert so wird das Objekt in der Startup Phase an das CANDevice gesendet Es ist allerdings nicht m glich diese Objekte in PDOs zu mappen Lt CANopen sind mapbare Objekte immer entweder read only oder write only Mich st rt die Boot Up Message nach V4 ich ben tige die V3 Variante Sie k nnen eine V3 Bootup Message benutzen zus tzlich zu der anderen es werden dann beide geschickt indem Sie im ersten SPS Z
10. 0000h Object does not exist in the object dictionary 0604 0041h Object cannot be mapped to the PDO 0604 0042h The number and length of the objects to be mapped would exceed PDO length 0604 0043h General parameter incompatibility reason 0604 0047h General internal incompatibility in the device 0606 0000h Access failed due to an hardware error 0607 0010h Data type does not match length of service parameter does not match 0607 0012h Data type does not match length of service parameter too high 0607 0013h Data type does not match length of service parameter too low 0609 0011h Sub index does not exist 0609 0030h Value range of parameter exceeded only for write access 0609 0031h Value of parameter written too high 0609 0032h Value of parameter written too low 0609 0036h Maximum value is less than minimum value 0800 0000h general error 0800 0020h Data cannot be transferred or stored to the application 0800 0021h Data cannot be transferred or stored to the application because of local control 0800 0022h Data cannot be transferred or stored to the application because of the present device state 0800 0023h Object dictionary dynamic generation fails or no object dictionary is present e g object dictionary is generated from file and generation fails because of an file error 24 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 4 4 2 Hochlauf des Netzwerks oh
11. 2 automatisch Dabei sind diese Stati wie folgt zu interpretieren Es handelt sich hier zum Teil um interne Stati die von der Applikation u U nicht alle gesehen werden da sie nur einen Zyklus lang anstehen e 1 Node wird durch die NMT Nachricht Reset Node zur ckgesetzt und wechselt selbst ndig in den Status 1 e 1 Node wechselt nach einer maximalen Zeit von 2 sec oder sofort nach Empfang seiner Bootup Message in den Status 2 e 2 Der Node wechselt nach einer Verz gerungszeit von 0 5 sec automatisch in den Status 3 Diese Zeit entspricht der Erfahrungstatsache dass viele CANopen Ger te nicht sofort nachdem sie Ihre Bootup Message verschickt haben bereit sind ihre Konfigurations SDOs zu empfangen Im Status 3 wird der Slave konfiguriert Der Slave bleibt solange im Status 3 bis er alle vom Konfigurator erzeugten SDOs erhalten hat Dabei spielt es keine Rolle ob w hrend der Konfiguration vom Slave SDO Transfers mit Abort Fehler oder ob alle fehlerfrei beantwortet wurden Nur die Tatsache selbst dass eine Antwort vom Slave erhalten wurde spielt eine Rolle Die Applikation kann die Antworten auf die SDO Anfragen berwachen und selbst auf die Antworten der Slaves reagieren Wenn die Option Knoten zur cksetzen im Konfigurator aktiviert wurde wird nach dem Senden des Objekts 0x1011 Subindex 1 der dann den Wert load enth lt ein erneuter Reset des Nodes durchgef hrt Dabei tr gt die Bibliothek in dieses Objek
12. Bibliothek aus dem Kontextmenu des Bibliotheksverwalters oder der Menuleiste Hinweis Wird eine der Bibliotheken 35_CanOpenNetVar Master Device lib eingef gt so werden die anderen von ihr benutzten Bibliotheken automatisch mit eingef gt Das Einbinden der Bibliotheken ist ein wichtiger Schritt Der PLC Designer erkennt am Vorhandensein der Bibliotheken in einem Projekt dass es sich um ein CANopen Projekt handelt f r das spezielle implizite Programmteile automatisch erzeugt werden Den Umgang mit dem CAN Konfigurator vom PLC Designer selbst entnehmen Sie bitte der Hilfe zum PLC Designer Hier wird erkl rt wie Sie einen CANopen Master und dazu Slaves konfigurieren k nnen Sind die CANopen Bibliotheken in das Projekt eingef gt kann das Projekt erst nachdem auch ein CANopen Master oder Device in der Steuerungskonfiguration eingef gt wurde fehlerfrei bersetzt werden 8 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 2 24 Zeitgesteuerte PDO bertragung f r Logic CAN F r die zeitgesteuerte bertragung von PDOs am CANopen Logic Bus ist grunds tzlich die Zuordnung einer Task mit der entsprechenden Zykluszeit notwendig 1 Geben Sie f r die UpdateTask durch Doppelklick in das Feld Wert die Task mit der entsprechenden Zykluszeit vor E APLC configuration A CanMaster WAR oo Basisparameter CAN Parameter Modulparameter E8
13. Einstellungen Im Register Grundeinstellungen Name des Busses wird im Moment nicht benutzt Name der Updatetask Name der Task in der der Aufruf des CanDevice erfolgt Soll aus den Einstellungen hier eine EDS Datei erzeugt werden um das CanDevice in eine beliebigen Masterkonfiguration einf gen zu k nnen muss hier die Option EDS Datei generieren aktiviert werden und der Name der EDS Datei angegeben werden Optional kann auch noch eine Vorlagendatei angegeben werden Vorgabe f r EDS Datei deren Eintr ge zum EDS File des CanDevice hinzugef gt werden Bei berschneidungen werden Vorgaben der Vorlage nicht berschrieben Im Register CAN Einstellungen Hier k nnen die Nodeld und die Baudrate eingestellt werden Der Device Type der Defaultwert des Objekts 0x1000 der im EDS eingetragen wird wird mit 0x191 Standard IO Device vorbelegt und kann vom Benutzer beliebig ge ndert werden Die Nodeguard Parameter die Heartbeat Parameter und die Emergency COBID werden hier festgelegt Das Device kann hier nur f r die berwachung eines Heartbeats konfiguriert werden nicht f r eine Liste von Heartbeat Erzeugern Normalerweise gen gt es f r einen Slave den Heartbeat seines Masters zu berwachen ff Steuerungskonfiguration Grundeinstellungen CAN Einstellungen Defaut PDO Mapping Node Id Device Type 0x191 Baudrate 125000 v Automatisch starten Nodeguard IV Nodequarding Guard COB ID Guard Time ms Life Time
14. Factor 2 Heartbeat Einstellungen Heartbeat Erzeugung aktivieren Heartbeat Producer Time ms Heartbeat Verbrauch aktivieren Heartbeat Consumer Time ms Consumer ID 0 Emergency Telegram IV Emergency COB ID 0x80 Nodeld 32 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CanDevice Im Register Default PDO Mapping Hier wir die Zuordnung zwischen lokalem Objektverzeichnis Parameter Manager und den PDOs die vom CanDevice gesendet empfangen werden festgelegt In den verwendeten Objektverzeichniseintr gen Parameterliste vom Typ Variablen wird zwischen Objektindex Subindex die Verbindung zu Variablen der Applikation hergestellt Dabei ist nur darauf zu achten dass der Subindex 0 eines Indexes der mehr als einen Subindex enth lt implizit als Anzahl der Subindizes verwendet wird Beispiel Ziel Auf dem ersten Empfangs PDO COB Id 512 Nodeld des CanDevice soll die Variable PLC_PRG a empfangen werden Also muss im Objektverzeichnis Parameter Manager ein Index SubIndex mit der Variablen PLC_PRG a verkn pft werden Dazu f gen Sie in einer Variablenliste eine Zeile hinzu tragen Index und Subindex ein Als Zugriff kommt nur Write Only in Frage da in ein Empfangs PDO nur ein WriteOnly Wert gemappt werden kann In die Spalte Variable tragen Sie PLC_PRG a ein oder dr cken F2 und w hlen die Variable aus Hinweis Um den Parameter Manager ffnen zu
15. Wenn man sich nicht sicher ist ob die Slaves alle mit dem richtigen Ger tetyp parametriert wurden kann der Member dwMerker der einzelnen Nodes betrachtet werden Hier wird der Ger tetyp der vom Slave ber die Abfrage des Objekts 0x1000 gelesen wurde gespeichert Im Member dwNodeldent wird die konfigurierte gespeichert dwMerker ist immer g ltig wenn er ungleich 0 ist 2 4 4 6 Initialisieren des Netzwerks mit bUseResetAllNodes Aus den selben Gr nden wie bUseStartAllNodes gibt es F lle in denen man besser das NMT Kommando Reset All Nodes als Reset Node f r jeden Node einzeln benuzt Dazu muss die Applikation einmalig das Flag bUseResetAllNodes des Masters setzen IF NOT blnit THEN pCanOpenMaster 0 bUseResetAllNodes TRUE blnit TRUE END_IF Achtung Dieses Flag darf nicht zyklisch gesetzt werden da sonst einzelne Knoten nicht mehr richtig nach einem Ausfall zur ckgesetzt werden 26 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 4 4 7 berwachen der Konfigurationsphase Die Konfigurationsphase der Slaves kann berwacht werden Zun chst einmal muss der Master in seiner Hochlaufphase berwacht werden da er bei nStatus 3 h ngen bleibt wenn ein nicht optionaler Slave w hrend des Hochlaufs nicht vorhanden ist Slaves bei denen w hrend der Konfigurationsphase ein Problem auftritt bleiben mit nStatus 3 h ngen oder wechseln nach d
16. der L nge 4 erzeugt und die Flags niederstwertiges Byte der Komponente eines Objektverzeichniseintrags dwIdxSubldxF immer mit 16 41 bzw 16 01 f r den letzten Eintrag Wenn ein Objektverzeichnis im Master vorhanden ist kann der Master als SDO Server im Netz auftreten 28 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek Immer wenn ein Client auf einen Objektverzeichniseintrag schreibend zugreift wird das der Applikation ber das Masterflag bMsgUsed angezeigt Das ist eine Eingangsvariable des Masters damit die Applikation das Flag zur cksetzen kann Dieses wird immer vom Master immer nur gesetzt Die Applikation kann das Objektverzeichnis nutzen indem die Eintr ge direkt beschrieben gelesen werden oder indem die Eintr ge auf IEC Variablen zeigen D h beim Lesen Schreiben eines anderen Knoten wird direkt auf diese IEC Variablen zugegriffen Ein Eintrag kann wie folgt angesprochen werden wenn Index Subindex bekannt sind I FindInODMEntries 16 iiiiss00 pCanOpenMaster 0 wODMFirstldx pCanOpenMaster 0 wODMFirstldx pCanOpenMaster 0 wODMCount Damit steht der Index des Eintrags in zur Verf gung Nun kann direkt auf die Komponenten des Eintrags zugegriffen werden Um z B einen Eintrag direkt auf eine IEC Variable zeigen zu lassen gen gt es Adresse L nge und Flags einzutragen ODMeEntries I dwContent ADR lt Variablenname gt ODMEntries l wLen
17. die Aktion SetNodeStatus mit diesem Parameter aufrufen zu k nnen bSynchSend BOOL Wird vom Master beim Aufruf des Bausteins bergeben um das Eintreffen eines extern erzeugten Sync oder das Erzeugen eines Sync durch den Master anzuzeigen Wird nur intern verwendet und sofort wieder gel scht dwHeartbeatTime DWORD Das Intervall in ms mit dem der Master den Erhalt einer Heartbeat Message des Knotens berwacht Vom Konfigurator wird diese Zeit mit dem 1 5fachen der Heartbeat Zeit des Knotens eingetragen bSendReset BOOL TRUE Wird vom Master immer gesetzt au er der Master m chte Reset All Nodes benutzen dann wird der Reset durch den Baustein abgeschaltet END_VAR VAR Konfig wDrvNr WORD Die Nummer des CAN Controllers mit dem dieser Baustein arbeitet wMasterldx WORD Der Index des Masters unter dem dieser Slave arbeitet ucNodeNr BYTE 1 Die NodelD des Slaves aus der Konfiguration dwNodeldent DWORD Hier wird der Typ des Nodes gespeichert der im Objekt 0x1000 des Nodes ebenfalls gespeichert ist dwGuardCOBID DWORD Die COBID des Guard Telegramms unter der dem Slave Nodeguard Telegramme geschickt werden dwEmergCOBID DWORD Die Emergency COBID auf der Emergency Telegramme des Slaves erwartet werden wDiagSegment WORD Dient in Zukunft zum Speichern der Diagnoseadresse dwDiagOffset DWORD wFirstSDOlndex WORD Der Bereich der Konf
18. exp und CanOpenBeforeTask AfterTask_ lt Taskname gt exp erzeugt Die Variablenliste CanOpen implicit Variables im Detail Die Konstanten geben immer die Grenzen der Arrays an die in dieser Variablenliste deklariert sind VAR_GLOBAL CONSTANT MAX_CTRLINDEX INT lt Maximaler Index der CAN Controller in der CANopen Konfiguration bei einem Controller 0 bei 2 Controllern 1 usw gt END_VAR VAR_GLOBAL CONSTANT USE_CANOPEN _NODES BOOL lt Gibt an ob mindestens 1 Slave unter einem Master vorhanden ist gt MAX_MASTERINDEX INT lt Gibt an bis zu welchem Index in der Tabelle von Controllern in der Globalen Variablenliste der Bibliothek CanOpenManager die Controller einem Master und nicht einem CanDevice siehe Kapitel 3 CanDevice zugeordnet sind gt MAX_NODEINDEX INT lt Gibt die Gr e des Arrays von CANopen Nodes an gt MAX_SDOINDEX INT lt Gibt die Gr e des Arrays von CANopen SDOs an gt MAX_PDOINDEX_RX INT lt Gibt an wie viele RX PDOs ber alle CANopen Master vorhanden sind gt MAX_PDOINDEX_TX INT lt Gibt an wie viele TX PDOs ber alle CANopen Master vorhanden sind gt MAX_MASTER_ODENTRY_IDX INT lt Gibt an wie viele Objektverzeichniseintr ge ber alle CANopen Master vorhanden sind gt END_VAR 12 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek Die Konfigurationsdaten werden in folgenden Arra
19. gilt f r die hier nicht aufgelisteten Eintr ge f r die Kommunikations und Mapping Parameter Es sind immer alle 8 m glichen Bitmapping wird von der Bibliothek nicht unterst tzt Subindizes der Mapping Objekte Ox16xx bzw 0x1Axx vorhanden aber u U im Subindex O nicht ber cksichtigt Hinweis Mit dem Eintrag FixedNumOfPDOs 1 in der cfg Datei in der Sektion des CanDevice s werden die Mapping Objekte wenn z B gar kein Default Mapping vorgegeben wurde immer f r 4 PDOs angelegt so dass zur Laufzeit 4 PDOs zum Mappen von Variablen zur Verf gung stehen Allerdings ist der Subindex 0 der Mapping Objekte mit O vorbelegt da in dem Fall dass kein Default Mapping angegeben ist keines der Objekte belegt ist Lenze DMS 2 0 DE 05 2009 TD29 37 L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 3 5 Ver ndern des Standard Mappings durch Master Konfiguration Das vorgegebene PDO Mapping in der CanDevice Konfiguration kann in bestimmten Grenzen durch den Master ver ndert werden Dabei gilt die Regel dass das CanDevice nicht in der Lage ist Objektverzeichniseintr ge neu anzulegen die nicht im Standard Mapping Default PDO Mapping in der CanDevice Konfiguration vorhanden sind Also kann z B f r ein PDO das im Default PDO Mapping ein gemapptes Objekt enth lt in der Masterkonfiguration kein zweites Objekt gemappt werden Das durch die Masterkonfiguration ver nderte Mapping kann also h chstens die im Stand
20. k nnen muss in den Zielsystemeinstellungen unter Netzfunktionen der Parameter Manager aktiviert und mit sinnvollen Index Subindexbereichen parametriert werden Im Default PDO Mapping des CanDevice wird anschlie end der Index Subindexeintrag als Mapping Eintrag einem Empfangs PDO zugewiesen Die Eigenschaften des PDOs lassen sich ber den aus der Konfiguration der CAN Slaves unterhalb einem Master bekannten Dialog festlegen Nur Objekte aus dem Parameter Manager die mit dem Attribut read only bzw write only versehen sind werden in der evtl erzeugten EDS Datei als mapbar markiert und tauchen in der Liste der mapbaren Objekte auf Die Objekte die im Parametermanager angelegt werden erhalten im EDS File als DefaultValue entweder den Initialwert der Variablen Variablenlisten oder den angegebenen Wert Parameterlisten Alle anderen Objekte werden in der EDS Datei als nicht mapbar markiert Lenze DMS 2 0 DE 05 2009 TD29 33 L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 3 4 EDS Datei erzeugen Soll aus der Konfiguration des CanDevice eine EDS Datei erzeugt werden um das Device in der Konfiguration eines CANopen Masters verwenden zu k nnen gen gt es im Register Grundeinstellungen die Funktionalit t zu aktivieren Zus tzlich muss der Dateiname der zu erzeugenden Datei angegeben werden Die Datei wird beim bersetzen des Projekts erzeugt Optional kann eine Vorlage f r die EDS Datei an
21. oder wenn die bei Mindestintervall angegebene Zeit abgelaufen ist Variablen packen Wenn diese Option aktiviert ist werden die Variablen nach M glichkeit in einer bertragungseinheit zusammengefasst Bei UDP ist eine bertragungseinheit 256 Bytes gro Bei CAN ist eine bertragungseinheit 8 Bytes gro Passen nicht alle Variablen der Liste in eine bertragungseinheit dann werden f r diese Liste mehrere bertragungseinheiten gebildet Ist die Option nicht aktiviert kommt jede Variable in eine eigene bertragungseinheit Wenn bertragung bei nderung konfiguriert ist wird f r jede bertragungseinheit getrennt gepr ft ob sie ge ndert ist und gesendet werden muss Variablenlistenkennung COBID Diese ID wird als eindeutige Kennung benutzt um Variablenlisten verschiedener Projekte auszutauschen Nur Variablenlisten mit gleicher Variablenlistenkennung k nnen Daten austauschen Es ist darauf zu achten dass die Definitionen der Variablenlisten mit gleichem Basisidentifier in den verschiedenen Projekten bereinstimmen Hierzu kann das Feature Dateiverkn pfung verwendet werden Aus einem Projekt wird die Variablenliste exportiert die anderen Projekte importieren sie wodurch der Inhalt nicht neu eingegeben werden muss WARNUNG Die Variablenlistenkennung wird in CAN Netzwerken direkt als COBID der CAN Nachrichten benutzt Es gibt keine berpr fung ob der Identifier auch in der CAN Konfiguration f r IO PDOs benutzt wird Damit
22. transparent d h es steht einfach die Antwortnachricht auf die SDO Anfrage in ucAnswerBytes Das gilt nur f r die Antwort im Falle eines expedited Read Requests Expedited Upload Die Bedeutung der einzelnen Bytes ist in der Protokollspezifikation v CANopen erl utert Das Byte ucAnswerBytes 0 enth lt den Server Command Specifier ssc 0x60 als Antwort auf einen Download Request Ox4y als Antwort auf einen Upload Request y Bits 0 3 sind hier wie folgt belegt Bit 1 muss 1 sein ansonsten antwortet der SDO Server hier mit einem segmentierten Upload der vom Baustein nicht unterst tzt wird 0x80 bedeutet dass der Transfer abgebrochen wurde Abort Die Bytes ucAnswerBytes 1 2 enthalten den Index Intel byte order Das Byte ucAnswerBytes 3 enth lt den SubiIndex Die Bytes ucAnswerBytes 4 7 enthalten die Daten der Antwort im Falle eines expedited SDO Uploads Im Falle eines Abbruchs steht der Abortcode in aAbortRec siehe nachstehende Tabelle aus DSP3 01V401 0503 0000h Toggle bit not alternated 0504 0000h SDO protocol timed out 0504 0001h Client server command specifier not valid or unknown 0504 0002h Invalid block size block mode only 0504 0003h Invalid sequence number block mode only 0504 0004h CRC error block mode only 0504 0005h Out of memory 0601 0000h Unsupported access to an object 0601 0001h Attempt to read a write only object 0601 0002h Attempt to write a read only object 0602
23. und im EDS File mit Schreibzugriffsrecht versehen sind Wenn in der aktuellen Konfiguration der Schalter Alle SDOs erzeugen gesetzt ist werden alle Kommunikations und Mapping Parameter 1400er 1600er 1800er und 1A00er Objekte immer erzeugt die ServiceData Objekte eigener Tab im Konfigurator nach wie vor nur bei nderung gegen ber dem EDS File 5 2 Erkennen eines Schreibpuffer berlaufs In der globalen Variablenliste der 35_CanOpenManager lib existiert ein Array von Flags das den berlauf des Schreibpuffers eines CanControllers anzeigt g_CanMgrTxBufferOverrun lt Controllerindex gt Die Applikation kann diese Flags zu Meldungs Diagnosezwecken benutzen Die Flags m ssen von der Applikation r ckgesetzt werden die Bibliothek setzt diese nur 48 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme Anhang 5 3 FAQs H ufig gestellte Fragen Sehen Sie im folgenden einige h ufig gestellte Fragen zum Thema CAN und PLC Designer und die Antworten dazu Beachten Sie auch die mit dem vorliegenden Dokument gelieferten Beispieldateien und projekte HINWEIS Wenn Sie Anfragen zum Thema CANopen an den Lenze Support richten f gen Sie bitte immer das betreffende Projekt EDS Datei en und ggfs die Aufzeichnung von CAN Meldungen hinzu 5 3 1 CANopen Funktionalit t F1 Zur Bildung eines CANopen Slaves Ist es richtig dass ber den Parameter Manager die Objektliste gef llt wird
24. 3 steht Dieses Beispiel gilt nur f r einen nicht optionalen Slave Optionale Slaves m ssen von der Applikation verwaltet werden da nicht immer erkannt werden kann ob diese Slaves vorhanden sind oder nicht Die Hochlaufphase gilt auch beim Fehlen optionaler Slaves als o k Lenze DMS 2 0 DE 05 2009 TD29 27 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 5 Implizite Aufrufe Der PLC Designer erzeugt implizit Aufrufe an die CANopen Bibliotheken Wenn der PLC Designer mit der Kommandozeilenoption debug gestartet wird werden diese Aufrufe ins bersetzungsverzeichnis als Dateien Name beginnt mit CanOpen Endung ist exp gespeichert Die Aufrufe werden nach folgendem Schema generiert Gibt es keinen Modulparameter des CAN Masters UpdateTask dann werden alle Aufrufe in der h chstprioren Task gemacht Der CanMaster und alle PDOs die zu diesem Master geh ren werden in einer Task aufgerufen Mit dem Parameter Update Task des CanMasters wird die dort eingegebene Task f r die Aufrufe benutzt Wenn PDOs oder der Masteraufruf nach obigem Schema in einer Ereignis Task aufgerufen werden wird eine Warnung ausgegeben Um die Aufrufe des CAN Masters an eine Task zu binden und die PDOs in den Tasks in denen die lOs dieser PDOs referenziert werden zu erzeugen kann man in der Sektion des CAN Masters in der cfg Datei des Zielsystems einen Eintrag PDOsToReferenceTasks TRUE erstellen Dieser Eintrag d
25. 400 StateLine C V B Lenze EPM T111 V Index Name wert Defaut EnableDiags _Ye F Yes 2 UpdateTask MyLogicTask all 2 Stellen Sie die Versandart zyklisch synchron und die Angabe bei welchem Sync die PDOs versendet werden sollen ein E FPLC configuration a Bdh CanMastervAR 8400 StateLine C Basisparameter CAN Parameter PDO Mapping Empfangen PDO Mapping Senden Service Data PDO 041400 Id NODEID 512 PDO 041401 Id NODEID 768 PDO 041402 Id NODEID 1024 Bez Eigenschaften PDO 0x1400 COB ID NODEID 512 Inhibit Time 100ys 0 Abbrechen Transmission Type M Number of Sync s 1 Event Time ms Die Einstellungen der Event Time ber den Dialog Eigenschaften PDO werden nicht ausgewertet Lenze DMS 2 0 DE 05 2009 TD29 9 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 3 Funktionalit t der Bibliotheken zur Laufzeit 2 3 1 Implizite Dienste der CANopenMaster Bibliothek Die CANopenMaster Bibliothek stellt der PLC Designer Applikation implizite Dienst zu Verf gung die f r die meisten Anwendungen ausreichend sind Diese Dienste werden f r den Anwender transparent integriert und stehen in der Applikation ohne zus tzliche Aufrufe zu Verf gung Zu diesen Diensten z hlen e Der Reset aller konfigurierten Slaves am Bus beim Systemstart Standard Um die Slaves zur ckzusetzen wird standardm ig das NMT Kommando Reset
26. ANopen Master Lenze DMS 2 0 DE 05 2009 TD29 5 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek e Nodeguarding automatisches Senden von Guarding Nachrichten und berwachung der Lifetime f r jeden entsprechend konfigurierten Slave e Heartbeat automatisches Senden und berwachen von Heartbeat Nachrichten e Emergency Empfangen und Speichern von Emergency Nachrichten von den konfigurierten Slaves e Die direkte Kommunikation von Slaves ber PDOs ist m glich muss jedoch von Hand konfiguriert werden Folgende in CANopen definierten Funktionen werden von der Lenze CANopen Bibliothek derzeit nicht unterst tzt Stand Mai 2005 e Dynamische Identifier Zuordnung e Dynamische SDO Verbindungen e Blockweiser SDO Transfer e Die berwachung mehr als eines Heartbeats vom CAN Device aus e Netzwerkvariablen im Sinne der CANopen Spezifikation DS302 e Bausteine im Sinne der DS405 e Alle oben nicht genannten M glichkeiten des CANopen Protokolls 6 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 2 CANopen f r den Anwender 2 2 1 Verwendete Module Zur einfachen und praxisnahen Realisierung der CANopen Funktion unter einer PLC Designer programmierbaren Steuerung sind folgende Module erforderlich e Ein PLC Designer Programmiersystem ab Version 2 3 SP5 mit integriertem CANopen Konfigurator e Die STANDARD LIB welche
27. C Designer eingetragen dwHeartbeatTime DWORD Die Heartbeat Erzeugunggszeit in ms wird hier vom PLC Designer eingetragen Lenze DMS 2 0 DE 05 2009 TD29 13 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek nNodeld WORD Die Nodeld des Masters aus der Konfiguration wird hier eingetragen HeartbeatTimer TON Dieser Timer wird vom Master zur Heartbeat Erzeugung benutzt bSendHeartbeat BOOL Wird intern vom Master gesetzt und wieder gel scht immer wenn eine Heartbeat Nachricht verschickt werden soll und verschickt wurde byHeartbeatState BYTE Hier werden je nach Status des Masters die CANopen konformen Stati 0 4 5 oder 127 eingetragen die mit der Heartbeat Nachricht verschickt werden wODMFirstldx WORD Der Index des ersten Master OD Eintrags im Array ODMEntries wODMCount WORD Anzahl der ODMEntries die zu diesem Master geh ren END_VAR VAR bReentry BOOL Historisch unbenutzt bGefunden BOOL Historisch unbenutzt dwCOBID_NMT DWORD 16 0000 Diese ID wird ausschlie lich zum Starten der Slaves verwendet Sollte von der Applikation nie ge ndert werden nindex INT interne Hilfsvariable des Masters dwMerker DWORD Historisch unbenutzt dwSem DWORD 16 FFFFFFFF Vorgesehen f r Verriegelungen im Multitask Betrieb Unbenutzt da die impliziten Aufrufe immer nur aus einer Task erfolgen a INT
28. OD Eintr ge die auf Variablen gemappt sind Parameter Manager Es gibt jedoch auch die implizit erzeugten Eintr ge des CanDevice die nicht ber den Parameter Manager in einen Variableninhalt gemappt werden k nnen Diese Eintr ge sieht man erst zur Laufzeit des Systems im Array ODEntries Im Monitorbetrieb Online Betrieb vom PLC Designer kann man alle Objektverzeichniseintr ge in der globalen Variablenliste der 3s_CanOpenDevice lib betrachten Der Zugriff auf die Inhalte dieser Objekte muss genau wie Zugriffe auf die Parameterlisten des Parameter Managers applikationsgesteuert erfolgen Einmalig muss der Index des Eintrags ermittelt werden Dazu schreibt man hier f r das erste CanDevice in der Konfiguration Index FindBinary 16 iiiiss00 CanOpenDev 0 wODStart CanOpenDev 0 wODEnd Anschlie end kann mit GetODEntryValue Index der Inhalt des Objekts gelesen werden Mit SetODEntryValue kann der Inhalt des Objekts manipuliert werden Alternativ kann auch direkt auf den Inhalt zugegriffen werden wenn man wie es f r implizite Objekte immer der Fall ist wei dass es sich um einen numerischen Basisdatentyp handelt ODeEntries Index dwContent xxxxx 3 6 3 ndern der PDO Eigenschaften zur Laufzeit Sollen die Eigenschaften eines PDOs zur Laufzeit ver ndert werden so funktioniert das durch einen anderen Knoten ber SDO Schreibzugriffe wie dies von CANopen beschrieben wird Alternativ kann man auch direkt eine ne
29. SDOs auch die Abfrage des Objekts 0x1000 werden jeweils solange wiederholt bis innerhalb der berwachungszeit eine Antwort des Slaves gesehen wurde Hier kann die Applikation den Hochlauf der einzelnen Slaves berwachen und ggf reagieren siehe dazu unten Wenn der Master eine Heartbeat Zeit ungleich 0 konfiguriert hat beginnt die Erzeugung des Heartbeats sofort nach dem Starten der Mastersteuerung Nachdem alle Slaves ihre Konfigurations SDOs erhalten haben beginnt f r Slaves mit konfiguriertem Nodeguarding das Guarding Wenn der Master auf automatisch Starten konfiguriert wurde werden jetzt alle Slaves einzeln vom Master gestartet Dazu wird das NMT Kommando Start Remote Node 0x1 benutzt Wenn die Applikation das Flag bUseStartAllNodes setzt wird hier das Kommando mit Nodeld O benutzt und somit alle Slaves mit einem Start all nodes gestartet Es werden mindestens einmal alle konfigurierten Tx PDOs f r die Slaves sind das Rx PDOs gesendet Das Senden von RTRs f r RTR PDOs ist immer Sache der Applikation Hierf r gibt es eine Methode der Rx PDOs Lenze DMS 2 0 DE 05 2009 TD29 11 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 4 Arbeiten von Applikationsseite mit dem CANopen Master Teil Es gibt verschiedene F lle in denen die IEC Applikation mit der CANopenLib zusammenarbeiten muss Dazu geh ren z B das Erkennen und Reagieren auf einen Fehler Dab
30. SHPPLCDCAN wen L force Engineering Softwarehandbuch PC based Automation PLC Designer Drive programming PLC Designer CANopen f r Laufzeitsysteme Lenze Inhalt Lenze L force PLC Designer CANopen f r Laufzeitsysteme ber diese Dokumentation 1 1 1 2 1 3 1 4 Dokumenthistorie Haftung Warenzeichen CANopen Begriffe und Lenze Implementation CANopenMaster Bibliothek Abgrenzung zu anderen CANopen Bibliotheken CANopen f r den Anwender Verwendete Module Vorgehen bei der Erstellung eines Projekts mit CANopen Funktionalit t der Bibliotheken zur Laufzeit Implizite Dienste der CANopen Master Bibliothek Explizite Dienste der CANopen Bibliothek Starten des CANopen Netzwerks Arbeiten von Applikationsseite mit dem CANopen Master Teil Die Struktur des CANopen Masters Die Struktur des CANopen Nodes Slaves Zust nde der Bibliothek interpretieren und reagieren Beispiele f r Applikationsgesteuerte Aktionen der Bibliotheken _ Implizite Aufrufe Das Objektverzeichnis des CANopen Masters Funktionalit t CanDevice konfigurieren CanDevice Einstellungen EDS Datei erzeugen Ver ndern des Standard Mappings durch Master Konfiguration 2 1 2 2 2 2 1 2 2 2 2 3 2 3 1 2 3 2 2 3 3 2 4 2 4 1 2 4 2 2 4 3 2 4 4 25 2 6 CanDevice 3 1 3 2 3 3 3 4 33 3 6 Arbeiten vom Anwenderprogramm mit dem CanDevice 3 6 1 3 6 2 3 6 3 3 6 4 Der Baustein CanopenDevice Zugriff auf di
31. Toggle BOOL iCurSDODataLen INT ucDownloadRequest BYTE END_VAR Um den Baustein zu benutzen muss f r jede gleichzeitige bertragung eine statische Instanz des Bausteins angelegt werden statisch hei t nicht als lokale Variable einer Funktion Es ist nicht m glich per CANopen Definition gleichzeitig mehrere SDO Kan le zum gleichen Slave hin zu ffnen SDO senden Expedited Mode Als Parameter werden dem Baustein die Adresse NodelD des Ziels die 0 basierte Nummer des CAN Netzes auf dem der Baustein arbeiten soll die 4 Datenbytes Index und Subindex des Zielobjekts bergeben Au erdem ben tigt der Baustein den Modus in dem er arbeiten soll Zum Senden von 4 Bytes muss Mode 16 23 3 Bytes muss Mode 16 27 2 Bytes muss Mode 16 2B 1 Byte muss Mode 16 2F bergeben werden Der Aufruf des Bausteins um einen 4 Byte Wert in einen SDO Server zu schreiben k nnte also z B so aussehen sdo Enable TRUE wDrvNr 0 ucNodeld 2 windex 16 4002 bySubindex 0 ucModus 16 23 aAbortCode aAbortt ucByte0 DWORD_TO_BYTE ucByte1 DWORD_TO_BYTE ucByte2 DWORD_TO_BYTE ucByte3 DWORD_TO_BYTE dwWrite SHR dwWrite 8 SHR dwWrite 16 SHR dwWrite 24 nn nn Dabei ist sdo eine Instanz von CanOpenSendSDO 22 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek Die berpr fung ob der Transfer beendet wurde si
32. ander folgende NMT Nachrichten nicht von allen meist langsamen IO Knoten Slaves erkannt werden Das liegt daran dass diese Knoten alle Nachrichten mit der ID O mith ren m ssen In zu schneller Folge gesendete NMT Nachrichten berlasten die Empfangslogik solcher Knoten Ein Symptom f r diese Tatsache ist dass diese Knoten dann manchmal nicht gestartet werden Abhilfe kann man nur schaffen wenn die Anzahl schnell aufeinander folgender NMT Nachrichten reduziert wird Dazu kann die Applikation die CANopen Master Bibliothek veranlassen dass diese den Befehl Start All Nodes benutzt anstatt alle Nodes einzeln mit dem Kommando Start Node zu starten Dazu muss die Applikation einmalig immer beim Anlauf der Steuerung das Flag bUseStartAllNodes des Masters setzen z B so blnit ist von der Applikation definiert IF NOT blnit THEN pCanOpenMaster 0 bUseStartAllNodes TRUE blnit TRUE END_IF Achtung Dieses Flag darf nicht zyklisch gesetzt werden da sonst einzelne Knoten nicht mehr richtig nach einem Ausfall gestartet werden Immer wenn die Applikation diesen Befehl zum Starten des Netzwerks benutzt werden auch Nodes die z B weil sie sich mit dem falschen Ger tetyp gemeldet haben in den Status 98 gesetzt wurden gestartet Die PDOs f r diese Nodes bleiben jedoch weiterhin deaktiviert Um diese freizuschalten muss die Applikation wie in Kapitel 2 4 4 2 Hochlauf des Netzwerks ohne automatisch Starten beschrieben vorgehen
33. ard Mapping vorhandenen PDOs enthalten Innerhalb dieser PDOs sind 8 Mapping Eintr ge Subindizes vorhanden Eventuelle Fehler die hierbei auftreten k nnen werden nicht angezeigt sondern die berz hligen PDO Definitionen die berz hligen Mapping Eintr ge werden so behandelt als seien sie nicht vorhanden Die PDOs m ssen im Master immer von 16 1400 Empfangs PDO Kommunikationsparameter bzw 16 1800 Sende PDO Kommunikationsparameter beginnend angelegt sein und l ckenlos aufeinander folgen Das Standard Mapping des CanDevice ist immer nach dem Laden des Programms vorhanden Es ist von der Masterkonfiguration abh ngig ob nicht vorhandene Mappings in der Master Konfiguration nicht vorhanden jedoch in der Standardkonfiguration vorhanden vom Master explizit berschrieben werden 38 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 3 6 Arbeiten vom Anwenderprogramm mit dem CanDevice 3 6 1 Der Baustein CanopenDevice Der Baustein wird f r jedes konfigurierte CanDevice einmal instanziert Die Komponenten des Funktkionsbausteins sind wie folgt verwendet bAutoStart BOOL ucNodeld BYTE wDrvNr WORD wODStart WORD wODEnd WORD wPDOStartRx WORD wPDOCountRx WORD wPDOCountRxCurMap WORD wPDOStartTx WORD wPDOCountTx WORD wPDOCountTxCurMap WORD ucNodeldNew BYTE ErrorCode WORD ErrorRegister BYTE Speichert Option Autom
34. arf nur in Absprache mit dem Hersteller der Steuerung gemacht werden 2 6 Das Objektverzeichnis des CANopen Masters In manchen F llen ist es hilfreich wenn der CAN Master ber ein eigenes Objektverzeichnis verf gt z B zum Datenaustausch der Applikation mit anderen CAN Knoten Das Objektverzeichnis des Masters wird ber eine EDS Datei zur bersetzungszeit erstellt und mit Werten vorbelegt Die EDS Datei wird ber zwei Eintr ge in der cfg Datei festgelegt MasterEDS TRUE MasterEDSFile MyMaster eds Hier wird die erste in allen Konfigurationsverzeichnissen gefundene Datei mit dem Namen MyMaster eds benutzt Das Objektverzeichnis ist ein Array der folgenden Struktur TYPE CanOpenODeEntry STRUCT dwIdxSubldxF DWORD Die Struktur dieser Komponente ist 16 iiiissff wobei iiii f r 2 Bytes Index ss f r ein Byte Subindex und ff f r 1 Byte Flags steht dwContent DWORD Der Inhalt des Eintrags wLen WORD Die L nge der Daten byAttrib BYTE Urspr nglich als Zugriffsberechtigung gedacht kann von der Applikation des Masters beliebig genutzt werden byAccess BYTE Fr her Zugriffsberechtigung kann von der Applikation des Masters beliebig genutzt werden END_STRUCT END_TYPE An der Oberfl che verf gt der PLC Designer ber keinen Editor f r dieses Objektverzeichnis Die EDS Datei gibt nur vor mit welchen Objekten das Objektverzeichnis angelegt wird Dabei werden die Eintr ge immer mit
35. atisch starten Node ID des CanDevice Index des CAN Controllers in der Konfiguration Index des ersten Objektverzeichniseintrags dieses CanDevice Der Index des letzten Objektverzeichniseintrags dieses CanDevice Index des ersten Rx PDOs dieses CanDevice innerhalb des Arrays von RxPDOs pCanDevPDO_Rx Anzahl der RxPDOs dieses CanDevice Laufvariable zur Konfiguration der PDO Mappings aus dem Objektverzeichnis Index des ersten Tx PDOs dieses CanDevice innerhalb des Arrays von TxPDOs pCanDevPDO _Tx Anzahl der TXPDOs dieses CanDevice Laufvariable zur Konfiguration der PDO Mappings aus dem Objektverzeichnis Diese Variable wird vom Initcode wie folgt gesetzt Nach dem Aufruf der CAN Treiber Funktion Canlnit in der der Treiber eine neue NodelD setzen kann z B aus einem Drehschalter wird dieser Variable der Wert WORD _TO_BYTE gCaninterface 1 pArray 1 zugewiesen CAN Treiber m ssen also eine neue NodelD in pArray 1 schreiben Wenn die Applikation eine Emergency Nachricht versenden will wird hier der bergabeparameter ErrorCode nach CANopen des FBs SEND_EMERGENCY eingetragen Wie ErrorCode ManufacturerErrorField ARRAY 0 4 OF BYTE Analog zu ErrorCode bEmergencySent BOOL bClearResetFlags BOOL bClearODEntryWritten BOOL blnit BOOL bMsgUsed BOOL bUseOldBootupToo BOOL bGuardError BOOL ucState BYTE 127 Lenze Immer wenn eine Emergency Nachricht gesendet wurde wird diese Var
36. b genannt Beschreibung der M glichkeiten die die Applikation hat auf den CAN Stack Einfluss zu nehmen und Information von diesem zu erhalten Eine bersicht ber m gliche Fehlerzust nde und deren Ursachen Zielgruppe Diese Dokumentation richtet sich an qualifiziertes Fachpersonal nach IEC 364 Informationen zur G ltigkeit Die Informationen in dieser Dokumentation sind g ltig f r folgende Lenze Software Software ab Softwarestand L force PLC Designer 2 2 0 7 1 1 Dokumenthistorie Version Beschreibung 1 0 08 2008 TD29 Erstausgabe 2 0 05 2009 TD29 berarbeitung 1 2 Haftung Wir haben alle Angaben in dieser Dokumentation mit gr ter Sorgfalt zusammengestellt und auf bereinstimmung mit der beschriebenen Hard und Software gepr ft Trotzdem k nnen wir Abweichungen nicht ganz ausschlie en Wir bernehmen keine juristische Verantwortung oder Haftung f r Sch den die dadurch eventuell entstehen Notwendige Korrekturen werden wir in die nachfolgenden Auflagen einarbeiten Diese Dokumentation basiert auf der original CoDeSys Dokumentation der Firma 3S Smart Software Solutions GmbH Kempten Die dargestellten Screenshots k nnen von der PLC Designer Darstellung abweichen Lenze DMS 2 0 DE 05 2009 TD29 3 L force PLC Designer CANopen f r Laufzeitsysteme ber diese Dokumentation 1 3 Warenzeichen Microsoft Windows und Windows NT sind entweder eingetragene Warenzeichen oder Warenzeic
37. der Dialoge und Men befehle des CAN Steuerungskonfigurators ist auch in der PLC Designer Benutzerdokumentation Benutzerhandbuch Online Hilfe enthalten 2 2 2 1 Erstellung eines neuen Projekts und Zielsystemauswahl Nach dem Start des PLC Designer w hlt man gt Datei Neu Im Dialog Zielsystemeinstellungen w hlt man das gew nschte Zielsystem aus Anschlie end aktiviert man im Register Allgemein den Punkt CANopen Konfiguration unterst tzen Wenn dieser Punkt im Dialog nicht sichtbar ist und trotzdem kein CAN Master in der Steuerungskonfiguration eingef gt werden kann wird CANopen von diesem Zielsystem nicht unterst tzt 2 2 2 2 Steuerungsapplikation erstellen Nach dem Schlie en der Zielsystemeinstellungen mit OK ffnet der PLC Designer automatisch eine Dialogbox zum Einf gen von PLC_PRG Nachdem dieser Dialog nach Auswahl der Programmiersprache ST KOP FUP mit o k verlassen wurde kann nun eine Applikation programmiert werden Lenze DMS 2 0 DE 05 2009 TD29 7 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 2 2 3 Einbindung der erforderlichen Bibliotheken Die erforderlichen Bibliotheken 35_CanOpenManager LIB und 35S_CANDRV LIB und eine oder mehrere der Bibliotheken 3S_CanOpenNetVar Master Device lib m ssen in das Projekt aufgenommen werden Hierzu verwendet man Fenster Bibliotheksverwaltung und anschlie end f r jede einzelne der Bibliotheken Einf gen weitere
38. die Daten korrekt zwischen zwei Steuerungen ausgetauscht werden ist es erforderlich dass die globalen Variablenlisten in den beiden Projekten bereinstimmen Sie k nnen das Feature Dateiverkn pfung benutzen um dies sicherzustellen Ein Projekt kann die Datei vor dem bersetzen exportieren die anderen Projekte sollten die vor dem bersetzen importieren Neben einfachen Datentypen kann eine Variablenliste auch Strukturen und Arrays enthalten Die Elemente dieser zusammengesetzten Datentypen werden einzeln versendet Wenn eine Variablenliste gr er als ein PDO des entsprechenden Netzwerks ist werden die Daten auf mehrere PDOs aufgeteilt Es kann darum nicht zugesichert werden dass alle Daten der Variablenliste in einem Zyklus empfangen werden Teile der Variablenliste k nnen in verschiedenen Zyklen empfangen werden Dies ist auch f r Variablen mit Struktur und Arraytypen m glich F r den CAN nicht unterst tzte Optionen sind Pr fsumme bertragen _ Bootuprequests beantworten _Best tigter Transfer Request beim Bootup 46 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CAN Netzwerkvariablen 4 1 4 Erzeugte Aufrufe Es wird eine implizite Variablenliste erzeugt F r jedes Sende und Empfangs PDO wird ein Arrayeintrag vom Typ NetVarPDO_Rx_CAN bzw NetVarPDO_Tx_CAN erzeugt F r Debug Zwecke wird eine Datei mit den generierten Deklarationen erzeugt Die Datei hei t Net
39. die in der IEC 61131 definierten Standardfunktionen f r die Steuerung zu Verf gung stellt e In PLC Designer programmierbaren Multitaskingsystemen werden die SysLibSem Semaphoren zur exklusiven Ausf hrung bestimmter Codestellen und SysLibCallback IEC Funktionsaufrufe bei bestimmten Ereignissen benutzt um den Zugriff auf den CAN multitaskingsicher zu machen e EDS Dateien f r alle Slaves die am Netzwerk betrieben werden sollen Die EDS Dateien werden vom Hardware Lieferanten der CANopen Slaves zu Verf gung gestellt e Die 3S_CANDRV LIB welche die CAN Basisfunktionen realisiert Die Bibliothek ist hardware abh ngig und muss als externe oder interne PLC Designer Bibliothek zur Verf gung stehen Diese Bibliothek wird in der Regel vom Steuerungshersteller zur Verf gung gestellt und besitzt eine einheitliche Schnittstelle zur 35_CANOPEN lib e Die 35_CanOpenManager LIB welche die CANopen Basisfunktionalit ten zur Verf gung stellt e Eine oder mehrere der Bibliotheken 3S_CanOpenNetVar 3S_CanOpenDevice und 3S_CanOpenMaster Je nach gew nschter Funktionalit t 2 2 2 Vorgehen bei der Erstellung eines Projekts mit CANopen Die Erstellung eines neuen Projektes mit CANopen wird nachfolgend schrittweise beschrieben Dabei wird davon ausgegangen dass der PLC Designer auf dem Rechner bereits fertig installiert ist die Target und EDS Dateien ebenfalls richtig installiert bzw kopiert wurden Hinweis Eine Beschreibung
40. e OD Eintr ge vom Anwenderprogramm ndern der PDO Eigenschaften zur Laufzeit Emergency Nachrichten durch das Anwenderprogramm senden DMS 2 0 DE 05 2009 TD29 A A OO OU O N NOAA 30 30 31 32 34 38 39 39 42 42 43 L force PLC Designer CANopen f r Laufzeitsysteme CAN Netzwerkvariablen 4 1 CAN Netzwerk Variablen f r den Anwender 4 1 1 4 1 2 4 1 3 4 1 4 5 Anhang 5 1 Liste der normalerweise f r einen Slave erzeugten SDOs Voraussetzungen Einstellungen in den Zielsystemeinstellungen Einstellungen in den globalen Variablenlisten Erzeugte Aufrufe 5 2 Erkennen eines Schreibpuffer berlaufs 5 3 FAQs H ufig gestellte Fragen 5 3 1 5 32 53 3 5 3 4 CANopen Funktionalit t CANopen Master Applikation M gliche Fehler Ursachen und deren Behebung DMS 2 0 DE 05 2009 TD29 44 44 44 44 45 47 48 48 48 49 49 53 54 54 Lenze L force PLC Designer CANopen f r Laufzeitsysteme ber diese Dokumentation 1 ber diese Dokumentation Dieses Dokument ist grob in 3 Teile aufgeteilt im ersten Teil wird die CANopen Master Bibliothek im zweiten die CANopen Slave Bibliothek beschrieben Den CAN Netzwerkvariablen ist ebenso ein eigenes Kapitel gewidmet Die Beschreibungen sind jeweils vor allem in folgende Themen gegliedert bersicht ber die Leistung der Bibliothek Beschreibung des Standardvorgehens bei der Arbeit mit der jeweiligen Bibliothek im folgenden auch kurz Li
41. eht z B so aus IF sdo bAnswerRec OR NOT sdo bWaitForAnswer THEN ir Der Transfer ist beendet Wenn bAnswerRec nicht TRUE ist trat ein Fehler auf END_IF SDO empfangen Wie SDO senden nur dass als Datenbytes 4 mal O bergeben wird und als Modus 16 40 Jeder andere bergabewert f r Mode f hrt zu einem undefinierten Verhalten des Bausteins Der Aufruf des Bausteins k nnte also so aussehen sdo Enable TRUE wDrvNr 0 ucNodeld 2 windex 16 4001 bySublIndex 0 ucModus 16 40 aAbortCode aAbort IF sdo bAnswerRec AND NOT sdo bAbortRec THEN dwRead SHL BYTE_TO_DWORD sdo ucAnswerBytes 7 24 dwRead dwRead SHL BYTE_TO_DWORD sdo ucAnswerBytes 6 16 dwRead dwRead SHL BYTE_TO_DWORD sdo ucAnswerBytes 5 8 dwRead dwRead BYTE_TO_DWORD sdo ucAnswerBytes 4 END_IF Dabei wird davon ausgegangen dass im Index 4001 SubO ein 4 Byte Wert steht der immer mit einem Expedited gelesen werden kann Wenn man nicht wei ob der Wert vom SDO Server mit einem expedited Transfer bertragen wird oder nicht muss immer ein Datenpuffer angegeben werden Nach dem Transfer kann dann ber das Flag bExpedited entschieden werden ob die Daten in ucAnswerBytes 4 7 oder im Puffer stehen Der Eingabeparameter aAbortCode ist dazu da dem Baustein den Abortcode der gesendet werden soll wenn die Kommunikation von der Applikation durch L schen des Enable Eingangs abgebrochen wird mitzut
42. ei beachten Sie die Aufrufreihenfolge die vom Applikationsprogrammierer nicht beeinflusst werden kann Diese Aufrufe und in welchen Tasks die Aufrufe erzeugt werden sind auch im Kapitel 2 5 Implizite Aufrufe beschrieben Hier ein Beispiel f r einen CAN Controller und je ein Rx Tx PDO CanRead 0 Implizit erzeugter Aufruf pCanOpenMaster 0 Implizit erzeugter Aufruf pCanOpenPDO_Rx 0I Implizit erzeugter Aufruf lt Abarbeitung des Applikationscodes gt pCanOpenPDO_Tx 0 0 Implizit erzeugter Aufruf MgrClearRxBuffer wCurTask 1 wDrvNr 0 dwFlags 0 dwPara 0 Implizit erzeugter Aufruf zum Aufr umen des Empfangsbuffers 2 4 1 Die Struktur des CANopen Masters Der PLC Designer erzeugt beim Vorhandensein der Bibliotheken 3S_CanOpenMaster 3S_CanOpenManager und 3S_CanDrv lib in einem Projekt implizit d h automatisch eine globale Variablenliste und Vor Nach dem Applikationscode in bestimmten Tasks Aufrufe von Bausteinen der Bibliotheken Die globale Variablenliste hat den Namen CanOpen implicit Variables und wird vom PLC Designer mit den entsprechenden Daten aus der Steuerungskonfiguration gef llt Hinweis Um sich den Initialisierungscode in ST anzusehen ohne Online gehen zu m ssen kann der PLC Designer mit der Kommandozeilenoption debug gestartet werden Dann werden neben anderen n tzlichen Informationen im bersetzungsverzeichnis die Dateien CanOpenlnitcode
43. eilen Immer wenn w hrend einer laufenden bertragung eine fallende Flanke am Enable Eingang vom Baustein gesehen wird wird ein Abort erzeugt Der Baustein macht von sich aus keine Timeout berwachung Die Applikation muss also den SDO Transfer berwachen und z B mit dem Aufruf Sdo Enable FALSE aAbortCode 0 0 aAbortCode 1 0 aAbortCode 2 4 aAbortCodel3 5 den Abortcode SDO Protocol timed out bergeben der mit einer fallenden Flanke an Enable verschickt wird wenn das Protokoll noch nicht mit der bertragung fertig war Sollen mehr als 4 Byte gelesen werden kann dem Baustein auch eine Pufferadresse und ein maximale Gr e des Puffers mitgegeben werden sdo Enable bReadString wDrvNr 0 ucNodeld 2 wIndex 16 4000 bySubindex 2 ucModus 16 40 aAbortCode aAbortt dwDataBufferLength SIZEOF str pDataBuffer ADR str Lenze DMS 2 0 DE 05 2009 TD29 23 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek Dabei ist im Beispiel str ein String dessen Gr e im Speicher hier mit dem Sizeof Operator ermittelt wird So viele Zeichen werden vom Baustein maximal bertragen Die tats chlich gelesene Anzahl von Bytes steht nach dem Transfer in dwDataOffset zur Verf gung Allgemeines Der Baustein sendet die Anfrage immer auf der COBID 16 600 Nodeld die Antwort des SDO Servers wird immer auf der COBID 16 580 Nodeld erwartet Die Antwortdaten sind
44. einen Namen z B byOut1 Rufen Sie diesen Ausgang dann in Ihrem Programm auf byOutl Im Online Modus k nnen Sie nun den Wert der Variablen ndern und mit Strg F7 in die Steuerung schreiben Transmission Type Es kann sein dass es sich in Ihrem Fall um ein synchrones PDO handelt Dieses wird nur dann bertragen wenn gleichzeitig die Sync Funktionalit t aktiviert ist Dies k nnen Sie pr fen wenn Sie sich die Eigenschaften des entsprechenden PDO s ansehen DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme PDO 01400 Id Nodeld 0x200 OUT1 WriteDutputSBit_Generic OUTZ WriteD utputS it_Generic zz Eigenschaften PDO 0x1400 COB ID Nodeld 0x200 Inhibit Time 100ps j Abbrechen mika Transmission Type asynchion ger teprofilspezifisch ha Number of Sync s Entfernen synchron nur ATRA asynchron nur ATRA vent Time Z en asynchron herstellerspezifisch asynchron ger teprofilspezifisch dulauswahl PDO Mapping Empfangen PDO Mapping Senden Service Data Objects Modulparameter Anhang Soll das PDO synchron bertragen werden so muss zus tzlich die Sync Funktionalit t aktiviert sein gelb markierte Felder Basisparameter CAN Parameter Modulparameter Baudrate 125000 O x Com Cycle Period psec hoo oo Sync Window Lenght usec Boo Sync COB ID he aktivieren V Node POO V Automatisch
45. em NMT Kommando Start All Nodes gestartet Befindet sich der Slave im Status 4 oder h her werden Nodeguard Nachrichten an den Slave gesendet wenn Nodeguarding konfiguriert wurde Lenze DMS 2 0 DE 05 2009 TD29 19 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 4 3 3 Nodeguarding Heartbeatfehler Im Falle eines Nodeguarding Timeouts wird die Variable nStatus des Nodes auf 99 gesetzt Um den Slave wieder zu starten gen gt es den Status des Nodes wieder auf 4 zu setzen Damit wird dem Node ein Start communication geschickt der CANopen Master beginnt wieder zu kommunizieren Dazu wird die Methode NodeStart der Nodes benutzt Der Master macht dieses von sich aus sobald der Node wieder auf Nodeguard Anfragen reagiert und die Option Autostart eingeschaltet ist Dabei wird der Node abh ngig von seinem Status der ja in der Antwort auf die Nodeguard Anfragen enthalten ist neu konfiguriert oder nur gestartet Ohne die Option AutoStart muss die Applikation die Methode NodeStart aufrufen Je nach letztem gespeicherten Status der ja immer mit der Heartbeat Nodeguard Message bertragen wird wird der Knoten neu gestartet oder zur ckgesetzt F r Heartbeat Fehler gilt dasselbe Vorgehen 2 4 3 4 Node antwortet nicht in Konfigurationsphase Die Applikation kann die Konfigurationsphase eines Slaves zeit berwachen und Nodes die im Status 3 bleiben auf TimeOut setzen Die Appli
46. er ndern des Standard Mappings durch Master Konfiguration Das vorgegebene PDO Mapping in der CanDevice Konfiguration kann in bestimmten Grenzen durch den Master ver ndert werden Dabei gilt die Regel dass das CanDevice nicht in der Lage ist Objektverzeichniseintr ge neu anzulegen die nicht im Standard Mapping Default PDO Mapping in der CanDevice Konfiguration vorhanden sind Also kann z B f r ein PDO das im Default PDO Mapping ein gemapptes Objekt enth lt in der Masterkonfiguration kein zweites Objekt gemappt werden Das durch die Masterkonfiguration ver nderte Mapping kann also h chstens die im Standard Mapping vorhandenen PDOs enthalten Innerhalb dieser PDOs sind 8 Mapping Eintr ge Subindizes vorhanden Eventuelle Fehler die hierbei auftreten k nnen werden nicht angezeigt sondern die berz hligen PDO Definitionen die berz hligen Mapping Eintr ge werden so behandelt als seien sie nicht vorhanden Die PDOs m ssen im Master immer von 16 1400 Empfangs PDO Kommunikationsparameter bzw 16 1800 Sende PDO Kommunikationsparameter beginnend angelegt sein und l ckenlos aufeinander folgen Das Standard Mapping des CanDevice ist immer nach dem Laden des Programms vorhanden Es h ngt von der Masterkonfiguration ab ob nicht vorhandene Mappings in der Master Konfiguration nicht vorhanden jedoch in der Standardkonfiguration vorhanden vom Master explizit berschrieben werden Wie viele PDOs sind m glich Es gibt
47. er Konfigurationsphase direkt in einen Fehlerstatus nStatus gt 5 Die folgenden Beispiele sind Applikationscode um in bestimmten Situationen trotzdem mit dem Can Netz arbeiten zu k nnen bzw Diagnoseinformationen zu erhalten Bei der berwachung der Hochlaufphase ist zu beachten dass pro IEC Zyklus der Task in der der CANopenMaster aufgerufen wird siehe auch Kapitel 2 5 Implizite Aufrufe nur ein SDO an jeden Slave bertragen werden kann D h entsprechend lange kann die Hochlaufphase dauern je nach maximaler Anzahl der an einen Slave zu bertragenden SDOs 2 4 4 7 1 Zugriff auf den Status des CANopen Masters Um zu verhindern dass Applikationscode abgearbeitet wird solange das IO Netzwerk noch nicht bereit ist muss der Status des Masters abgefragt werden IF pCanOpenMaster 0O nStatus 5 THEN lt Applikationscode gt END_IF 2 4 4 7 2 Zeit berwachung der Hochlaufphase VAR Ueberwachung TON iSlave INT bSlaveFound BOOL END_VAR Ueberwachung IN pCanOpenMaster O nStatus lt 5 PT T 108 IF Ueberwachung Q THEN ermitteln ob es einen Slave gibt der nicht konfiguriert werden kann FOR iSlave pCanOpenMaster 0 nFirstNodeNr TO pCanOpenMaster 0 nLastNodeNr DO IF pCanOpenNodeliSlave nStatus lt 4 THEN bSlaveFound TRUE EXIT END_IF END_FOR END_IF Nach dieser Sequenz steht in der Variablen iSlave die Nummer Index des ersten Slaves der nach Ablauf der berwachungszeit noch im Status
48. erm glichen eine Acceptancemask zu setzen Intern Intern Intern f r den segmentierten SDO Transfer pActiveSegSDORead POINTER TO BYTE Intern f r den segmentierten SDO Transfer wSegSDOReadSendOffs WORD wSegSDOReadSendLen WORD iActiveSegSDOWrite INT 1 Intern f r den segmentierten SDO Transfer Intern f r den segmentierten SDO Transfer Intern f r den segmentierten SDO Transfer pActiveSegSDOWrite POINTER TO BYTE Intern f r den segmentierten SDO Transfer wSegSDOWriteRecvOffs WORD wSegSDOWriteRecvLen WORD wSwapCheck WORD 16 55AA bErrCodeNot0 BOOL dwEmergCobld DWORD iSDOWriteLen INT iSDOReadLen INT bGuardingStarted BOOL bFirstHeartbeatRecv BOOL bSubONotFound BOOL Lenze Intern f r den segmentierten SDO Transfer Intern f r den segmentierten SDO Transfer Intern muss so bleiben Check ob der Treiber einen fatalen Fehler BusOff gesetzt hat COBld die zum Senden von Emergency Nachrichten benutzt wird Intern Intern Wird gesetzt wenn die erste Guard Nachricht eingetroffen ist Wird gesetzt wenn die erste Heartbeat Message eingetroffen ist Wird intern benutzt um den Abortcode Index not found oder Sublndex not found zu unterscheiden DMS 2 0 DE 05 2009 TD29 41 L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 3 6 2 Zugriff auf die OD Eintr ge vom Anwenderprogramm Naturgem gibt es Objektverzeichniseintr ge
49. es CanOpenSendSDO in Kapitel 2 4 4 1 EXIT Schleife bei der ersten nderung verlassen END_IF END_FOR 20 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 4 4 Beispiele f r Applikationsgesteuerte Aktionen der Bibliotheken Hier sollen einige standardm ige Aktionen erl utert werden die Applikationen oft durchf hren m ssen 2 4 4 1 SDO Transfer ber den Funktionsblock CanOpenSendSDO Um einen SDO Transfer applikationsgesteuert zu initiieren benutzen Sie den Baustein CanOpenSendSDO der CanOpenManager Bibliothek Die Schnittstelle des Bausteins VAR_INPUT Enable BOOL Eine steigende Flanke an diesem Flag startet die SDO bertragung wDrvNr WORD Index des Can Controllers der f r den SDO Transfer benutzt werden soll O f r den ersten und so weiter ucNodeld BYTE Nodeld des SDO Servers Empf nger des SDO wIndex WORD Index des Objektverzeichniseintrags bySubindex BYTE Subindex ucModus BYTE SDO mode 16 40 f r read request use 16 23 f r 4 byte write request use 16 27 f r 3 byte use 16 2B f r 2 byte use 16 2F f r 1 byte use 16 21 f r einen Download mit mehr als 4 Bytes ucByte0 BYTE Die 4 m glichen Datenbytes beim expedited Transfer ucByte1 BYTE ucByte2 BYTE ucByte3 BYTE aAbortCode ARRAY 0 3 OF BYTE Zus tzliche Eingabeparameter wenn der segmentierte T
50. evTypelnvalid BOOL Der Ger tetyp mit dem der Node auf Anfrage des Objekts 0x1000 geantwortet hat ist nicht mit dem in der Steuerungskonfiguration identisch Durch manuelles oder durch das IEC Program Setzen des Node Status der wenn bDevTypelnvalid gleich TRUE ist auf 98 stehen sollte auf 4 kann der Node trotzdem in Betrieb genommen werden Die Applikation kann nicht auf die Variable nStatus eines Nodes schreiben Dazu muss die Methode NodeStart oder SetNodeStatus lt new state gt der Nodes benutzt werden MsgBuffer CAN_Message Der Empfangspuffer des Nodes Intern nur f r spezielle Nachrichten benutzt a INT Der Lebensz hler um anzuzeigen ob der Baustein aufgerufen wird IPDO WORD Interne Variable wird benutzt um alle zu diesem Slave geh renden PDOs zu durchsuchen END_VAR Lenze DMS 2 0 DE 05 2009 TD29 17 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 4 3 Zust nde der Bibliothek interpretieren und reagieren Die durch den Master initiierte Phasenhochschaltung des CANopen Netzwerkes durchl uft die folgenden Zust nde Phasenhochschaltung Aktion Master Reaktion Slave CANopen Slave Rasstiiods Telegramm o W a 5 8 8 BootU p Telegramm S 2 3 2 auto l aL gt nd 3 SDOs zur 5 Erkennung Param 1000 lesen fertig f konfigur
51. force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 CANopenMaster Bibliothek 2 1 Abgrenzung zu anderen CANopen Bibliotheken Die Lenze CANopen Bibliothek grenzt sich in verschiedenen Punkten von auf dem Markt befindlichen Systemen ab Sie wurde nicht entwickelt um andere Bibliotheken namhafter Hersteller berfl ssig zu machen sondern ist bewusst f r den Einsatz mit dem PLC Designer Programmier und Laufzeitsystem optimiert Die Bibliotheken sind nach der Spezifikation der CiA DS301 V401 gemacht F r den Anwender der PLC Designer CANopen Bibliothek ergeben sich folgende Vorteile Die Implementation ist unabh ngig vom Zielsystem und damit praktisch auf jeder PLC Designer programmierbaren Steuerung direkt verwendbar Der Kunde erh lt ein komplettes System aus einer Hand Das bedeutet der CANopen Konfigurator die Einbindung in das Entwicklungs und in das Laufzeitsystem sind optimal aufeinander abgestimmt Die CANopen Funktionalit t ist nachladbar Das bedeutet dass die CANopen Funktionen ohne nderung des Laufzeitsystems geladen entladen und aktualisiert werden k nnen Die Ressourcen des Zielsystems werden geschont Dies wird durch die automatische konfigurationsabh ngige Speicherbelegung erreicht Es werden also nicht die Ressourcen f r eine Maximalkonfiguration vorbehalten Automatisches Aktualisieren der Ein und Ausg nge ohne zus tzliche Ma nahmen Folgende in CANopen defi
52. ften Laufzeiteigenschaften werden immer beim Eintreffen einer StartNode NMT Nachricht bernommen und mit jedem Zugriff auf ein Objekt in den Kommunikationseigenschaften des CanDevice DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 3 2 CanDevice konfigurieren Um ein CanDevice zu konfigurieren w hlen Sie im Kontextmenu der Steuerungskonfiguration Unterelement anh ngen bzw Element einf gen gt CanDevice Damit dieser Men punkt vorhanden ist muss mindestens eine cfg Datei die die Beschreibung der Steuerungskonfiguration enth lt herstellerspezifisch einen Eintrag f r ein CanDevice enthalten Module CanDevice Name CanDevice Id 78379 DeviceType CANDEVICE BasisPrmDig FALSE Class lt eine Klasse die beim Root Modul der Steuerungskonfiguration eingef gt werden kann gt Icon codsmall ico Zeile ist optional FixedNumOfPDOs 1 Zeile ist optional das Default Mapping ist auf 4 PDOs fix eingestellt Danach erhalten Sie folgenden Konfigurationsdialog ff Steuerungskonfiguration Grundeinstellungen CAN Einstellungen Default PDO Mapping Name des Busses CANI NamederUpd etask n EDS Datei Generierung V EDS Datei generieren Name der EDS Datei UNTITLED EDS Durchsuchen Vorgabe f r EDS Datei Durchsuchen Lenze DMS 2 0 DE 05 2009 TD29 31 L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 3 3 CanDevice
53. funktionieren Wird ein ResetNode oder ResetCommunication empfangen dann werden die Werte der Objekte normalerweise auf Ihren Default Wert zur ckgesetzt Das muss im Fall des CanDevice die Applikation bernehmen Die Applikation kann anhand der beiden Variablen bResetCommReceived und bResetNodeReceived feststellen ob einer der beiden NMT Services empfangen wurde Kann ich Guard Time und Life Time Faktor auch ber mein Objektverzeichnis ndern Ja Wenn ber einen SDO Zugriff darauf geschrieben wird ndert die Bibliothek von sich aus die entsprechenden Variablen Wenn Sie von der Applikation aus ins OD schreiben m ssen Sie wenn die nderungen eine Wirkung haben sollen CanOpenDev 0 SetupPDOTable aufrufen Diese Methode des CanDevice bewirkt dass das gesamte OD neu interpretiert wird K nnen Node Nr und Baudrate auch ber den PLC Designer Code eingestellt werden Wenn Sie die Variable nNewNodeld setzen und dann die Methode Init aufrufen bekommt das Device eine neue NodelD alle NodelD relativen Werte im OD werden angepasst Wenn Sie die Baudrate ndern wollen m ssen Sie diese in die Struktur g_CanInterface xx eintragen und danach Can_Init xx ADR g_CanInterface xx aufrufen Damit wird dem Treiber die nderung mitgeteilt DMS 2 0 DE 05 2009 TD29 Lenze F6 F7 F8 F9 F10 L force PLC Designer CANopen f r Laufzeitsysteme Anhang Bei den Netzfunktionen der Zielsystemeinstellungen
54. gegeben werden Alle vom Benutzer im Parameter Manager erzeugten Eintr ge Objekte erhalten in der EDS Datei als Default Wert den Initialwert der jeweiligen Variable Variablenliste oder den definierten Wert Parameterliste Eintr ge die in der Vorlagendatei vorhanden sind werden vom PLC Designer nicht ge ndert Es ist also m glich eigene Abschnitte in der EDS Datei die sich nicht ndern sollen ber eine Vorlagendatei zu definieren Hier die Inhalte der EDS Datei im einzelnen Filelnfo FileName D PLC Designer lib2 plcconf MyTest eds FileVersion 1 FileRevision 1 Description EDS for PLC Designer Project D PLC Designer CanOpenTestprojekte TestHeartbeatODsettings_Device pro CreationTime 13 59 CreationDate 09 07 2005 CreatedBy PLC Designer ModificationTime 13 59 ModificationDate 09 07 2005 ModifiedBy PLC Designer Devicelnfo VendorName 3S Smart Software Solutions GmbH ProductName TestHeartbeatODsettings_Device ProductNumber 0x33535F44 ProductVersion 1 ProductRevision 1 OrderCode xxxx yyyy ZZZz LMT_ManufacturerName 3S GmbH LMT_ProductName 3S_Dev BaudRate_10 1 BaudRate_20 1 BaudRate_50 1 BaudRate_100 1 BaudRate_125 1 BaudRate_250 1 BaudRate_500 1 BaudRate_800 1 BaudRate_1000 1 SimpleBootUpMaster 1 SimpleBootUpSlave 0 ExtendedBootUpMaster 1 ExtendedBootUpSlave 0 DummyUsage Dummy0000 0 Dummy0001 0 Dummy0002 0 Dummy0003 0 Dummy0004 0 Dummy0005 0 34 DMS 2 0 DE 05 2009 TD29 Lenze L f
55. h die Methode NodeStart des Nodes aufrufen pCanOpenNode iNodeXX NodesStart Wenn der Ger tetyp eines Slaves der ohne Nodeguarding oder Heartbeat arbeitet nicht mit der Konfiguration bereinstimmt muss dieser durch explizites Senden einer NMT Message gestartet werden siehe oben Hier f hrt der Aufruf der Methode NodeStart immer wieder zu einem Senden aller Konfigurationsdaten ohne dass der Node gestartet wird F r einen optionalen Slave der w hrend des Hochlaufs des Masters nicht vorhanden war also jetzt im Status 97 steht kann man genauso vorgehen Man kann aber auch einfach die Methode NodeReset aufrufen die immer dazu f hrt dass der Slave neu konfiguriert und dann gestartet wird Gestartet wird der Node nur wenn die AutoStart Option aktiviert ist Sonst muss der Node auch noch manuell gestartet werden Lenze DMS 2 0 DE 05 2009 TD29 25 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 4 4 3 Stoppen eines Nodes Mit dem Aufruf der Methode NodeStop analog zu NodeStart wird ein NMT Kommando zum stoppen des Slaves erzeugt Der Slave geht daraufhin normalerweise in den Zustand Stopped ber 2 4 4 4 Zur cksetzen eines Nodes Mit dem Aufruf der Methode ResetNode wird der betreffende Slave zur ckgesetzt und neu konfiguriert 2 4 4 5 Starten des Netzwerks mit bUseStartAllNodes In einem CAN Netz mit vielen Teilnehmern meist mehr als 8 kommt es h ufig dazu dass schnell aufein
56. hen der Microsoft Corporation in den USA und oder anderen L ndern Adobe und Reader sind entweder eingetragene Warenzeichen oder Warenzeichen von Adobe Systems Incorporated in den USA und oder anderen L ndern Alle anderen in dieser Dokumentation aufgef hrten Markennamen sind Warenzeichen ihrer jeweiligen Besitzer 1 4_CANopen Begriffe und Lenze Implementation Nach CANopen gibt es keine Master und Slaves an einem CAN Netz Es gibt nach CANopen einen NMT Master einen Konfigurationsmaster usw immer mit der Vorstellung dass alle Teilnehmer eines CAN Netzes gleichberechtigt sind Die Implementation von Lenze geht davon aus dass ein CAN Netz als Peripherie einer PLC Designer programmierbaren Steuerung dient Demzufolge wird eine SPS im CAN Konfigurator von PLC Designer als CAN Master bezeichnet Dieser Master ist NMT Master und Konfigurationsmaster Im Normalfall wird die SPS daf r sorgen dass das Netz in Betrieb genommen werden kann Der Master bernimmt die Initiative die einzelnen Knoten Nodes die ihm per Konfiguration bekannt sind zu starten Diese Knoten werden als Slaves bezeichnet Um den Master ebenfalls dem Status eines CANopen Nodes n her zu bringen wurde ein Objektverzeichnis f r den Master eingef hrt Auch kann der Master als SDO Server auftreten nicht mehr nur in der Konfigurationsphase der Slaves als SDO Client Die Erkl rung folgt in einem sp teren Kapitel 4 DMS 2 0 DE 05 2009 TD29 Lenze L
57. hier nur eine Speichergrenze keine systematische Lenze DMS 2 0 DE 05 2009 TD29 51 L force PLC Designer CANopen f r Laufzeitsysteme Anhang F11 F12 F13 F14 52 Index 1000 1008 1009 100A muss ich mit meinen ger tespezifischen Daten beschreiben Wie ist dies m glich siehe Kap 3 6 2 Zugriff auf die OD Eintr ge vom Anwenderprogramm Naturgem gibt es Objektverzeichniseintr ge OD Eintr ge die auf Variablen gemappt sind Parameter Manager Es gibt jedoch auch die implizit erzeugten Eintr ge des CanDevice die nicht ber den Parameter Manager in einen Variableninhalt gemappt werden k nnen Diese Eintr ge sieht man erst zur Laufzeit des Systems im Array ODEntries Im Monitorbetrieb Online Betrieb vom PLC Designer kann man alle Objektverzeichniseintr ge in der globalen Variablenliste der 3s_CanOpenDevice lib betrachten Der Zugriff auf die Inhalte dieser Objekte muss genau wie Zugriffe auf die Parameterlisten des Parameter Managers applikationsgesteuert erfolgen Einmalig muss der Index des Eintrags ermittelt werden Dazu schreibt man hier f r das erste CanDevice in der Konfiguration Index FindBinary 16 iiiiss00 CanOpenDev 0 wODStart CanOpenDev 0 wODEnd Anschlie end kann mit GetODEntryValue Index der Inhalt des Objekts gelesen werden Mit SetODEntryValue kann der Inhalt des Objekts manipuliert werden Alternativ kann auch direkt auf den Inhalt zugegriffen werden wenn man wie es f
58. iable auf TRUE gesetzt Die Applikation kann dieses Flag setzen um die Flags die NMT Messages anzeigen zur ckzusetzen Die Applikation kann dieses Flag setzen um die Flags die einen Schreibzugriff auf das OD signalisieren zur ckzusetzen Wird benutzt um den ersten Zyklus zu detektieren Interne Variable die immer gesetzt wird wenn eine Nachricht vom Device benutzt wurde Dieses Flag kann von der Applikation im ersten Zyklus gesetzt werden um das Device zu veranlassen auch die alte Bootup Message Emergency mit 0 Byte Datenl nge zu verschicken Wird von der Bibliothek gesetz wenn l nger als GuardTime x LifeTimeFactor keine Guard Message mehr angekommen ist Aktueller Status des Device nach CANopen DMS 2 0 DE 05 2009 TD29 39 L force PLC Designer CANopen f r Laufzeitsysteme CanDevice bHeartbeatError BOOL bResetCommReceived BOOL bResetNodeReceived BOOL bEnterPreOpReceived BOOL bODEntryWritten BOOL iLastODEntryWritten INT i ildx INT dwldx DWORD dwldxHelp DWORD bSDOReadrgActive BOOL FALSE bSDOWritergActive BOOL FALSE bSDOReadrspAbort BOOL FALSE bSDOWriterspAbort BOOL FALSE ucModus BYTE dwODEValue DWORD bSwap BOOL byAbortCode ARRAY 0 3 OF BYTE ildxCom INT dwIdCom DWORD dwldMap DWORD ildxMap INT iPDOcur INT ucCurPDOLen BYTE iNumOfMappedObjects INT iMapObj INT iCurRxPDO INT iCurTxPDO INT bSendBootUp BYTE
59. iert b und Konfiguration I 077 Option automatisches Starten 4 gesetzt gt StartNode Telegramm StartNode Sonderfall Masterflag erhalten lt _ bUseStartAllNodes gesetzt Warten bis alle erkannten l 5 Slaves in 4 dann StartAllNodes Im Monitorbetrieb vom PLC Designer k nnen diese Zust nde in der globalen Variablenliste Can Open implicit variables eingesehen werden Im folgenden werden die Zust nde von Master und Slave beschrieben um ggfs aus dem Anwenderprogramm darauf Einfuss nehmen zu k nnen 2 4 3 1 Hochlauf des CANopen Masters W hrend des Hochlaufs des CAN Netzwerks durchl uft der Master verschiedene Zust nde die vor allem in der Variablen nStatus abzulesen sind Die Stati 0 1 und 2 werden vom Master automatisch und in den ersten Zyklen nach einem SPS Start durchlaufen Der Status 3 des Masters wird f r einige Zeit beibehalten Im Status 3 konfiguriert der Master seine Slaves Dazu werden den Slaves der Reihe nach alle vom Konfigurator erzeugten SDOs gesendet Nachdem den Slaves alle Konfigurations SDOs bertragen wurden geht der Master nach Status 5 und bleibt in diesem Status Status 5 ist f r den Master der normale Betriebszustand Der Master bleibt nachdem er diesen Status einmal erreicht hat im Status 5 Alle anderen Zust nde werden von den Funktionsbl cken die die Slaves darstellen verwaltet Immer wenn ein Slave auf eine SDO Anfrage Upload oder Download nicht antwo
60. igurations SDOs f r diesen Slave innerhalb des Arrays von SDOs wird hier vom Konfigurator eingetragen Lenze DMS 2 0 DE 05 2009 TD29 15 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek wNummOfSDO WORD wFirstRxPDOlndex WORD wNummOfRxPDO WORD wFirstTxPDOlndex WORD wNummOfTxPDO WORD GuardTime TIME GuardTimer TON LifeTimer TON bDolnit BOOL TRUE bOptional BOOL Anzahl der SDOs die vom Konfigurator f r diesen Slave erzeugt wurden In diesem und den folgenden 3 Komponenten werden die PDOs zu diesem Slave identifiziert Die Nodeguard Time aus der Konfiguration wird hier eingetragen Der Timer wird zur Erzeugung der Guard Nachricht benutzt Der Timer wird zur berwachung des Slaves benutzt Wenn innerhalb des Lifetimers nicht wenigstens eine Antwort auf ein Nodeguard Telegramm kommt wird ein Guard Fehler ausgegeben Die Zeit f r den LifeTimer berechnet sich nach der Formel Lifetimefactor GuardTime 0 5 GuardTime Wird vom Konfigurator auf FALSE gesetzt wenn die Option Nicht initialisieren eingestellt ist Wird vom Konfigurator auf TRUE gesetzt wenn die Option Optionales Ger t eingestellt wurde bHeartbeatConsumer BOOL unbenutzt F r Informationszwecke reserviert tHeartBeatLifeTime TON END_VAR VAR_OUTPUT 16 byLastState BYTE 0 nStatus INT berwachunggszeit der Heartbeat Mes
61. ikation in PDOs gemappt werden Die CanDevice Bibliothek stellt ein Objektverzeichnis zur Verf gung Die Gr e dieses Objektverzeichnisses wird zur bersetzungszeit vom PLC Designer festgelegt In diesem Verzeichnis befinden sich alle Objekte die das CanDevice beschreiben und zus tzlich die die vom Parameter Manager definiert sind Im Parameter Manager k nnen zusammen mit dem CanDevice nur die Listenarten Parameter und Variablen verwendet werden Die Bibliothek verwaltet die Zugriffe auf das Objektverzeichnis tritt also am Bus als SDO Server auf Die Bibliothek berwacht das Nodeguarding bzw Heartbeat Consumer Zeit immer nur von einem Producer und setzt entsprechende Fehlerflags f r die Applikation Erzeugung einer EDS Datei die die konfigurierten Eigenschaften des CanDevice so beschreibt dass das Device als Slave unter einem CAN Master konfiguriert werden kann Die CanDevice Bibliothek stellt ausdr cklich folgende in CANopen beschriebenen Funktionalit ten nicht zur Verf gung Alle hier und im obigen Abschnitt nicht genannten M glichkeiten des CANopen Protokolls sind ebenfalls nicht implementiert 30 Dynamische SDO PDO Identifier Blockender SDO Transfer Implizite Erzeugung von Emergency Nachrichten Emergency Nachrichten m ssen immer von der Applikation erzeugt werden Die Bibliothek stellt dazu einen FB der von der Applikation benutzt werden kann zur Verf gung Dynamische nderungen der PDO Eigenscha
62. kation kann dies durch Aufrufen der Methode NodeSetTimeoutState des Nodes erreichen also z B pCanOpenNode 0 NodeSetTimeoutState Mit NodeSetTimeoutState wird der Status des Nodes auf 97 gesetzt damit kann anschlie end so verfahren werden als ob es sich um einen optionalen Knoten handelt Wenn alle konfigurierten Nodes einen Status gt 4 erreicht haben geht der Master in den Status 5 Normalbetrieb ber In diesem erfolgt ein Austausch von Prozessdaten ber PDOs 2 4 3 5 Antworten der Slaves auf die Konfigurations SDOs auswerten Die Applikation kann die gesamte Konfigurationsphase eines Nodes mitprotokollieren also jede Antwort sehen Die Antworten auf die Konfigurations SDOs stehen in sdoConfig der Node Struktur zum Beispiel in pCanOpenNodel 0 sdoConfig ucAnswerBytes 0 7 siehe dazu auch die Beschreibung des Funktionsblocks CanOpenSendSDO in Kapitel 2 4 4 1 Der Master sendet ein SDO nach dem anderen sobald eine Antwort vom Slave erhalten wurde Deshalb muss die Applikation die nderung der Antwort erkennen um den Zeitpunkt zu bestimmen wann eine neue SDO Antwort eingetroffen ist VAR ucOldAnswer array 0 7 of BYTE I INT VAR_VAR FOR i 0 to 7 DO IF pCanOpenNode 0 sdoConfig ucAnswerBytes i lt gt ucOldAnswerfi THEN ucOldAnswer pCanOpenNode 0 sdoConfig ucAnswerBytes Hier kann die neue Antwort ausgewertet werden wenn die Applikation das will Zu den Abortcodes siehe Beschreibung d
63. l middle accessright read only value 0 y wOut WORD parameter list lOs name WriteOutput16Bit index 16 6300 subindex 16 0 accesslevel middle accessright write only value 0 Lenze DMS 2 0 DE 05 2009 TD29 49 L force PLC Designer CANopen f r Laufzeitsysteme Anhang F3 F4 F5 50 Not mappable byMode BYTE parameter list lOs name Mode index 16 6500 subindex 16 0 accesslevel middle accessright read write value 0 Objects could be mapped if required wlnExt WORD parameter list ExtlOs name Readlnput16BitExt index 16 6200 subindex 16 0 accesslevel middle accessright read only value 0 y wOutExt WORD parameter list ExtlOs name WriteOutput16BitExt index 16 6400 subindex 16 0 accesslevel middle accessright write only value 0 END_VAR gt Erzeugte Listen im Parameter Manager Sub Acce Acce Varia value min max ExtIOs Readinputi 6BitExt 16 62 16 0 mid j rea j winExt 0 1Os WriteDutputi16BitExt _16 64 16 0 mid ze writ ef wOut 0 Fy Parameter Name index Subindex Accesslevel_ Accessright CTET ExtIOs WriteOutputi6Bit 16 6300 16 0 middle write only wOut 1Os Mode 16 6500 16 0 middle xj read write x byMode Readinput16Bit 16 6100 16 0 middle read onl x win Funktionieren die NMT Befehle Boot Up Umschaltung des Mode Operational Preoperational Reset Emergency Node Guarding Ja diese Befehle
64. laves Standard e Die M glichkeit f r die Applikation eigene CAN Nachrichten direkt auf den Bus zu legen und direkt zu empfangen besteht ausdr cklich weiterhin Layer 2 Standard 2 3 3 Starten des CANopen Netzwerks Nach einem Download des Projekts auf die Steuerung oder einem Reset der Applikation wird das CAN Netz vom Master neu hochgefahren Das geschieht immer in der gleichen Reihenfolge von Aktionen 1 Alle Slaves werden zur ckgesetzt au er wenn sie als Nicht initialisieren im Konfigurator markiert sind Das Zur cksetzen geschieht einzeln mit dem NMT Kommando Reset Node 0x81 jeweils mit der Nodeld des Slaves Au er die Applikation hat das Flag bUseResetAllNodes gesetzt dann wird zum hochfahren des Netzes das Kommando einmal mit NodelD 0 benutzt Reset All Nodes Alle Slaves werden konfiguriert Dazu wird zun chst das Objekt 0x1000 Device Typ des Slaves abgefragt Wenn der Slave innerhalb der berwachungszeit von 0 5 Sekunden antwortet wird das jeweils n chste Konfigurations SDO gesendet Ist ein Slave als Optional markiert und antwortet nicht innerhalb der berwachungszeit auf die Abfrage des Objekts 0x1000 wird er als nicht vorhanden markiert und keine weiteren SDOs werden an ihn geschickt Wenn ein Slave auf die Abfrage des Objekts 0x1000 mit einem anderen als dem konfigurierten Typ in den unteren 16 Bit antwortet wird er zwar konfiguriert aber als falscher Typ markiert Alle
65. m anderen Typ geantwortet 99 Der LifeTimer ist abgelaufen Nodeguarding Fehler Der nomale Status des Nodes im Betrieb in dem IODaten ausgetauscht werden ist 5 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek nSDOActiv INT Hier verwaltet der Knoten den Index des aktiven SDO s 1 bedeutet kein SDO aktiv EmcyMsg CAN_Message Hier wird die letzte Emergency Nachricht die vom Node empfangen wurde gespeichert aEmcyMsg ARRAYI0 7 OF CAN_Message Hier werden die letzten 8 Emergency Nachrichten die vom Node empfangen wurden gespeichert In aEmcyMsgl 0 steht die zuletzt empfangene und damit die aktuellste Emergency Nachricht sdoConfig CanOpenSendSDO Instanz des Funktionsblocks aus der CanManger Lib die zum Konfigurieren des Nodes benutzt wird END_VAR VAR nSDOlndex INT Aktueller Index der Konfigurations SDOs bReady BOOL Immer wenn eine Emergency oder Guard Nachricht empfangen wurde wird bReady auf TRUE gesetzt einen Zyklus lang SDO_TimeOut TON PT T 500ms dwMerker DWORD Hier werden die unteren 16 Bit des Objekts 0x1000 wie sie vom Ger t gelesen wurden gespeichert nStatusOld INT Interne Variable um einen Statuswechsel zu erkennen bManualStart BOOL FALSE Wird intern von StartNode benutzt um dem Funktionsblock zu signalisieren dass der Slave jetzt gestartet werden soll bD
66. ne Variable Interne Variable Interne Variable Interne Variable Interne Variable die immer dann zu TRUE wird wenn die eine Bootup Message verschickt werden soll Interne Variable zum Versenden der Nodeguard Antwort Toggle Bit der Nodeguard Antwort Historisch Der berwachungstimer f r das Nodeguarding Dieses Flag wird immer dann gesetzt wenn die GuardLifeTime lt gt 0 ist Heartbeatproducer Zeit In diesem Intervall werden Heartbeat Messages erzeugt Die Zeit mit der das Eintreffen der Heartbeat Nachrichten berwacht wird DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme byHeartbeatConsumerlD BYTE bCurPDOChanged BOOL bTransmitCyclic BOOL dwSynchCobld DWORD dwSynchWinLen DWORD dwSynComCycle DWORD diHelp DINT dwHelp DWORD MsgBuffer CAN_Message a INT CanDevice Die ID auf der die Heartbeat Nachrichten erwartet werden Es wird immer nur eine ID berwacht Intern Intern Die COBID auf der die Sync Nachricht erwartet wird Konfigurierte SyncWindowLength Konfigurierte Sync Intervall Intern Intern Der Nachrichtenpuffer f r empfangene Nachrichten Lebensz hler der mit jedem Zyklus inkrementiert wird um die Aufrufe beim Monitoring zu sehen dwCobldPDOMin dwCobldPDOMax dwAcceptance DWORD Diese Werte werden dem Treiber blInitiateRspSend BOOL blnitiateWrReqSend BOOL iActiveSegSDORead INT 1 bergeben um ihm zu
67. ne automatisches Starten Manchmal ist es notwendig dass die Applikation den Zeitpunkt bestimmt wann die CANopen Slaves gestartet werden Dazu muss die Option Automatisch starten des CAN Masters in der Konfiguration deaktiviert werden Die Applikation ist dann f r das Starten der Slaves zust ndig Der normale Weg einen Slave ber die Bibliothek zu starten ist die Methode NodeStart des jeweiligen Slaves aufzurufen Der Aufruf dieser Methode nach der Konfigurationsphase f hrt bei Slaves f r die Nodeguarding bzw Heartbeat aktiv ist zu dem Ergebnis dass an diese Slaves abh ngig von ihrem aktuellen Status der in der Nodeguard Heartbeat Nachricht von dem Slave enthalten ist gestartet werden Wenn der aktuelle Status des Slaves nicht bereits OPERATIONAL ist wird ein Start Node NMT Kommando an den Slave geschickt Wenn die Methode benutzt wird um einen Slave der kein Nodeguarding benutzt zu starten wird dem Slave immer der komplette SDO Satz neu geschickt und anschlie end ein StartNode Kommando abgesetzt wenn der Hochlauf in Ordnung war d h wenn der Ger tetyp mit der Konfiguration bereinstimmt Um solche Slaves nach der automatischen Konfigurationsphase zu starten ist es einfacher selbst ein NMT Kommando zu erzeugen Hierdurch kann verhindert werden dass den Slaves die Konfigurations SDOs noch einmal geschickt werden Zur Erzeugung des NMT Kommandos kann ein Aufruf der CanOpenWriteMSG Funktionsblockinstanz ben
68. nierten Funktionen werden von Lenze Bibliothek unterst tzt Stand Mai 2005 PDOs Senden vom Master gt zu den Slaves ereignisgesteuert d h bei nderung und als synchrone PDOs d h immer nach einer bestimmten Anzahl von Sync Nachrichten auf dem Bus die Anzahl wird vom Transmission Type des PDOs im CAN Konfigurator vorgegeben wird das PDO vom Master gesendet Auch eine externe Sync Quelle kann benutzt werden um das Senden von synchronen PDOs zu initiieren Die zeitgesteuerte Versandart einzelner PDOs l sst sich im PLC Designer nur durch eine Programmierung im IEC61131 Code realisieren Hierzu wird eine Task mit einer entsprechenden Zykluszeit angelegt in der der Versand programmiert wird Die Einstellungen der Event Time im Dialog Eigenschaften PDO werden nicht ausgewertet Wie empfehlen die Versandart zyklisch synchron zu verwenden mit der Angabe bei welchem Sync das PDO versendet werden soll Siehe auch Zeitgesteuerte PDO bertragung f r Logic CAN auf Seite 9 PDO Empfangen vom Slave gt zum Master je nach Slave ereignisgesteuert abfragegesteuert azyklisch und zyklisch PDO Mapping wenn vom Slave unterst tzt SDO Senden und Empfangen unsegmentiert d h 4 Bytes pro Objektverzeichniseintrag automatische Konfiguration aller Slaves ber SDOs beim Systemstart applikationsgesteuertes Senden und Empfangen von SDOs zu konfigurierten Slaves Synchronisation automatisches Senden von Sync Nachrichten durch den C
69. nstellung Abbrechen Aktivieren Sie das Kontrollk stchen Netzvariablen unterst tzen im Tab Netzfunktionen der Dialogbox Zielsystemeinstellungen Bei Namen unterst tzter Netzwerkinterfaces geben Sie den Namen des gew nschten Netzwerks an hier CAN 44 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CAN Netzwerkvariablen 4 1 3 Einstellungen in den globalen Variablenlisten Legen Sie eine neue globale Variablenliste an Hier definieren Sie die Variablen die sie mit anderen Steuerungen austauschen wollen Folgender Dialog ffnet automatisch und kann sp ter auch ber den Befehl Befehl Objekt Eigenschaften ge ffnet werden wenn die globale Variablenliste im Object Organizer selektiert ist Eigenschaften Globale Yariablenliste Name der globalen Yariablenliste ECHEPARE Dateiverkn pfung Netzwerk Dateiname Durchsuchen verbindung Vor bersetzen importieren C Vor bersetzen exportieren hinzuf gen Abbrechen Wenn sie die Schaltfl che Netzwerkverbindung hinzuf gen dr cken k nnen Sie die Netzwerkeigenschaften dieser Variablenliste definieren Wenn Sie mehrere Netzwerkverbindungen konfiguriert haben k nnen Sie hier auch pro Variablenliste mehrere Verbindungen konfigurieren Eigenschaften Globale Yariablenliste Zugriffsrechte Name der globalen Variablenliste Globale_Variablen Dateiverkn pfung Netzwerk Dateiname Durchsuchen verbindung
70. nutzt Wie beim Reset kann dieses durch Start all remote nodes ersetzt werden e Zyklisches Senden der Sync Nachricht einstellbar e Nodeguarding mit Lifetime berwachung f r jeden Slave einstellbar Ausgabe eines Fehlerstatus f r die Slaves mit Lifetime Fehler e Heartbeat vom Master an die Slaves und berwachen der Heartbeats der Slaves einstellbar Empfangen von Emergency Nachrichten f r jeden Slave mit Speicherung der Standard zuletzt empfangenen Emergency Nachrichten f r jeden Slave getrennt e Empfangen von PDO Nachrichten und task konsistentes bertragen der Daten in Standard das Prozessabbild der Applikation e Senden von PDO Nachrichten nach dem Ende der Task je nach eingestelltem Standard Transmission Type des PDOs 10 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek 2 3 2 Explizite Dienste der CANopen Bibliothek Zus tzlich zu den oben beschriebenen impliziten Diensten stellt die CANopen Bibliothek dem Anwender folgende zus tzlichen Funktionen zu Verf gung Zu diesen Diensten z hlen e Anzeige von neu empfangenen PDOs mittels Flag welches von der Applikation zur ckgesetzt werden kann Standard e Applikations getriggertes Senden von Remote Telegrammen f r Empfangs PDOs Standard e Applikations getriggertes Senden von SDO Objekten an Slaves Standard e Applikations getriggertes Reset von Slaves mit anschlie endem Neukonfigurieren von S
71. orce PLC Designer CANopen f r Laufzeitsysteme CanDevice DummyO0006 0 Dummy0007 0 MandatoryObjects SupportedObjects 2 1000 SubNumber 0 ParameterName Device Type ObjectType 0x7 DataType 0x7 AccessType ro DefaultValue 0x191 PDOMapping 0 1001 SubNumber 0 ParameterName Error Register ObjectType 0x7 DataType 0x5 AccessType ro DefaultValue PDOMapping 0 OptionalObjects SupportedObjects 8 1 0x1003 2 0x1005 3 0x100C 4 0x100D 5 0x1014 6 0x1016 7 0x1017 8 0x1018 ManufacturerObjects SupportedObjects 5 1 0x3000 2 0x3001 3 0x3002 4 0x4000 5 0x5000 1003 SubNumber 2 ParameterName Predefined error field 1003sub0 ParameterName Number of entries ObjectType 0x7 DataType 0x5 AccessType rw DefaultValue 1 PDOMapping 0 Lenze DMS 2 0 DE 05 2009 TD29 35 L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 36 1003sub 1 5 ParameterName Predefined Error field ObjectType 0x7 DataType 0x7 AccessType rw DefaultValue 0x0 PDOMapping 0 1005 SubNumber 0 ParameterName COBID Synch Message ObjectType 0x7 DataType 0x7 AccessType rw DefaultValue 0x80 PDOMapping 0 100C SubNumber 0 ParameterName Guard Time ObjectType 0x7 DataType 0x6 AccessType rw DefaultValue 0 PDOMapping 0 100D SubNumber 0 ParameterName Lifetime Factor ObjectType 0x7 DataType 0x5 AccessType rw DefaultValue 0 PDOMapping 0 1014 SubNumber 0 ParameterName COBld Emergency
72. ransfer benutzt werden soll F r die Modi 16 41 und 16 40 f r das segmentierte Lesen und 16 21 f r segmentiertes Schreiben In diesen F llen muss ein Puffer f r die Daten angegeben werden dwDataBufferLength DWORD pDataBuffer POINTER TO BYTE END_VAR VAR_OUTPUT bWaitForAnswer BOOL Dieses Flag wird w hrend der bertragung mindestens einen Zyklus lang zu TRUE gesetzt und nach der bertragung zu FALSE bAnswerRec BOOL Nur bei einer fehlerfreien bertragung wird dieses Flag zu TRUE ucAnswerBytes ARRAY 0 7 OF BYTE iAnswerLength INT bToggleUnequal BOOL bAbortRec BOOL Wenn ein Abort stattgefunden hat wird diese Variable zu TRUE der Abortcode steht in aAbortRec aAbortRec ARRAY 0 3 OF BYTE END_VAR Lenze DMS 2 0 DE 05 2009 TD29 21 L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek VAR EnableOld BOOL bAnswer BOOL n INT dwActiveCOBld DWORD dwAnswerld DWORD Buffer CAN_Message bExpedited BOOL Hier zeigt der Baustein an ob beim Lesen ein expedited oder segmentierter Transfer benutzt wurde bWriteActive BOOL bReadActive BOOL dwDataOffset DWORD Nach dem Transfer steht die tats chlich gelesenen bzw geschriebene Anzahl von Bytes in dieser Variablen dwDataReadLength DWORD Hier wird die voraussichtliche L nge eines SDO Uploads aus der 1 Antwortnachricht abgelegt ucUploadRequest BYTE bLast
73. rgeben die von der Bibliothek an den CAN Treiber bergeben wird um dem Treiber mitzuteilen auf welchen Controller sich die Schreib und Leseauftr ge beziehen Die Applikation darf diesen Parameter nie beschreiben bUseStartAllNodes BOOL Die Applikation kann hier festlegen ob die Bibliothek den Befehl Start Node oder Start All Nodes benutzen soll Die Applikation darf dieses Flag nur einmal beschreiben m glichst w hrend der ersten Zyklen nach dem Hochlauf Zyklisches Beschreiben f hrt dazu dass einzelne Slaves nach einem Ausfall nicht gestartet werden bUseResetAllNodes BOOL Analog zu bUseStartAllNodes bAutoStart BOOL Wird vom PLC Designer eingetragen wenn die Autostart Option des Masters gesetzt wurde END_VAR VAR_OUTPUT bError BOOL Historisch wird nicht benutzt END_VAR VAR Konfig sDrvName STRING 40 Historisch wird nicht benutzt wBaudrate WORD Hier wird vom PLC Designer die Baudrate aus der Konfiguration eingetragen nFirstNodeNr INT Hier wird vom PLC Designer der Index des ersten Slaves der zu diesem Master geh rt eingetragen nLastNodeNr INT Hier wird vom PLC Designer der Index des letzten Slaves der zu diesem Master geh rt eingetragen SyncTimer TON Der Timer der f r die Erzeugung der Sync Nachricht benutzt wird dwCOBID_Sync DWORD Die COBID der Sync Nachricht aus der Konfiguration wird hier vom PL
74. richt gesendet wurde geht bReady auf TRUE END_VAR Die Tabelle mit ErrorCodes aus der DSP301 00xx Error Reset or No Error 10xx Generic Error 20xx Current 21xx Current device input side 22xx Current inside the device 23xx Current device output side 30xx Voltage 31xx Mains Voltage 32xx Voltage inside the device 33xx Output Voltage 40xx Temperature 41xx Ambient Temperature 42xx Device Temperature 50xx Device Hardware 60xx Device Software 61xx Internal Software 62xx User Software 63xx Data Set 70xx Additional Modules 80xx Monitoring 81xx Communication 8110 CAN Overrun Objects lost 8120 CAN in Error Passive Mode 8130 Life Guard Error or Heartbeat Error 8140 recovered from bus off 8150 Transmit COB ID 82xx Protocol Error 8210 PDO not processed due to length error 8220 PDO length exceeded 90xx External Error FOxx Additional Functions FFxx Device specific Lenze DMS 2 0 DE 05 2009 TD29 43 L force PLC Designer CANopen f r Laufzeitsysteme CAN Netzwerkvariablen 4 CAN Netzwerkvariablen Netzwerkvariablen sind eine M glichkeit Daten zwischen zwei oder mehreren Steuerungen auszutauschen Der Mechanismus sollte dabei f r den Anwender m glichst einfach zu handhaben sein Derzeit sind Netzwerkvariablen auf Basis von CAN und UDP implementiert Die Variablenwerte werden dabei auf der Basis von Broadcast Nachrichten automatisch ausgetauscht In UDP sind diese als Broadcast Telegramme in CAN als PDOs realisiert Diese Dienste
75. rtet so wird sie vom entsprechenden Funktionsblock wiederholt Der Master verl sst den Status 3 wie bereits erw hnt aber erst wenn alle SDOs erfolgreich bertragen wurden So kann also erkannt werden ob ein Slave fehlt oder nicht alle SDOs richtig empfangen kann Dabei ist es f r den Master unerheblich ob ein Slave mit einer Best tigung oder einem Abort antwortet f r den Master ist nur die Tatsache von Interesse ob berhaupt eine Antwort empfangen wurde Ein Beispiel zur Erkennung von Aborts w hrend des Hochlaufs siehe unten Kapitel 2 4 3 2 18 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CANopenMaster Bibliothek Eine Ausnahme stellt ein als optional markierter Slave dar Optionale Slaves werden nur einmal nach ihrem 0x1000er Objekt gefragt Wenn sie nicht innerhalb von 0 5 sec antworten wird der Slave vom Master zun chst ignoriert und der Master geht auch ohne weitere Reaktion dieses Slaves in Status 5 Soll dieser Slave von da an nochmals vom Master konfiguriert oder auf Anwesenheit getestet werden muss die Applikation das veranlassen Siehe Zusatz in Kapitel 2 4 4 2 Hochlauf des Netzwerks ohne automatisches Starten 2 4 3 2 Hochlauf der CANopen Slaves Ein Slave wird repr sentiert durch eine Funktionsblockinstanz im Array pCanOpenNodes in der globalen Variablenliste Can open implicit Variables W hrend des Hochlaufs des Can Netzwerks durchl uft der Slave die Stati 1 1 und
76. sage gesetzt Ansonsten hat diese Variable keinerlei Funktion Geht der Wert der Variablen von 0 auf 1 triggern Sie Ihren berwachungstimer und setzen die Variable zur ck Da es sich um die Ausgangsvariable eines FBs handelt m ssen Sie zum zur cksetzen der Variablen wie folgt verfahren pB Pointer TO BOOL ADR pCanOpenPDO_Rx 0 bNewMessage FALSE pB pB Wie kann man RTR Frames applikationsgesteuert senden In den CanOpen implicit Variables Ressourcen gt Globalen Variablen finden Sie eine Liste aller in der Steuerungskonfiguration gemappten CAN RxPDOs pCanOpenPDO_Rx Mit Hilfe der Aktion SendRTRFrame ist es m glich ein RTR Frame an das entsprechende PDO zu senden pCanOpenPDO_Rx x bNewMessage FALSE pCanOpenPDO_Rx x SendRTRFrame If pCanOpenPDO_Rx x bNewMessage FALSE Then END_IF 5 3 4 M gliche Fehler Ursachen und deren Behebung Hier finden Sie eine Beschreibung von Fehlern die im Umgang mit dem 3S CANopen Stack auftreten k nnen HINWEIS Beachten Sie auch die Beschreibungen der Antriebs spezifischen Fehlermeldungen in den jeweiligen Antriebs Dokumentationen F1 A 54 Die Ausg nge werden nicht gesetzt Woran kann das liegen Pr fen Sie bitte folgendes Verwendung von Variablen Damit die Ausgangs Variablen upgedated werden ist es wichtig dass diese zyklisch in Ihrem Programm aufgerufen werden Gehen Sie dazu Bitte zun chst in die Steuerungskonfiguration und geben Sie Ihrem Ausgang
77. sages eines Slaves Wird immer neu gestartet wenn eine Heartbeat Message vom Slave empfangen wurde Hier wird der letzte Status der in der Antwort des Nodes auf die letzte Guard Message enthalten war gespeichert Hier wird der aktuelle Status des Nodes eingetragen Die Stati sind Zust nde des Nodes innerhalb dieser Bobliothek und haben nichts mit den Zust nden wie sie nach CanOpen definiert sind zu tun 0 undefiniert 1 Der Node wird vom Master zur ckgesetzt und neu konfiguriert Der Master wartet auf eine Bootup Nachricht des Nodes oder auf den Ablauf der eingestellten GuardTime und schaltet dann den Status des Nodes auf Status 2 2 Der Master wartet vor Anfrage des Objekts 0x1000 ca 300ms Dann wird der Status auf 3 gesetzt 3 Der Master beginnt mit einem SDO Read Request Index 0x1000 an den Node die Konfiguration des Slaves Alle vom Konfigurator erzeugten SDOs werden dem Node in diesem Status geschickt Die erzeugten SDOs stehen alle in einem Array von SDOs in dem der Node sein erstes SDO und die Anzahl seiner SDOs kennt Instanzkomponente wFirstSDOlndex und wNummOfSDO 4 Ist bei der Konfiguration des Masters Autostart aktiviert so bekommt der Node ein Start Node geschickt und wechselt in Status 5 5 Der Node empf ngt sendet PDOs der Master ebenfalls Normalbetrieb 97 Optionaler Node wurde beim Hochlauf nicht detektiert 98 Der Node hat auf Anfrage des Ger tetyps Objekt 0x1000 mit eine
78. sind vom Protokoll her nicht best tigte Dienste d h es gibt keine Kontrolle ob die Nachricht auch beim Empf nger ankommt Netzwerkvariablenaustausch entspricht einer 1 Sender zu n Empf nger Verbindung Der Parameter Manager ist eine weitere M glichkeit Variablen auszutauschen Dabei handelt es sich um eine 1 zu 1 Verbindung die ein best tigtes Protokoll verwendet Hier kann der Anwender also kontrollieren ob die Nachricht den Empf nger erreichte Der Austausch erfolgt nicht automatisch sondern ber den Aufruf von Funktionsbl cken aus dem Anwenderprogramm 4 1 CAN Netzwerk Variablen f r den Anwender Um die Netzwerkvariablen mit dem PLC Designer zu nutzen sind f r den Anwender folgende Schritte n tig 4 1 1 Voraussetzungen Ben tigt wird ein PLC Designer Programmiersystem Version 2 3 SP5 oder neuer und die Bibliotheken 3s_CanDrv lib 35_CanOpenManager lib und 35_CanOpenNetVar lib Der PLC Designer erzeugt automatisch den n tigen Initialisierungscode und den Aufruf der Netzwerk Bausteine am Zyklusanfang und ende 4 1 2 Einstellungen in den Zielsystemeinstellungen Konfiguration CoDeSys SP for windows NT Realtime Zielplattform Speicheraufteilung Allgemein Netzfunktionen Visualisierung Parameter Manager unterst tzen IV Netzvariablen unterst tzen Namen unterst tzter Netzwerkinterfaces A Beispiel f r Namensliste CAN UDP DP DEYNET max 7 Zeichen Namen Vorei
79. starten MV DSP3014 01 und DSP306 unterst tzen Heartbeat Master ms fo Tip Geben Sie f r die Com Cycle Period ein ganzzahliges Vielfaches Ihrer Taskzykluszeit an Wenn Sie z B eine Taskzykluszeit von 10 ms eingestellt haben dann empfiehlt es sich f r die Com Cycle Period eine Zeit von 10000 us 20000 us einzustellen Lenze DMS 2 0 DE 05 2009 TD29 55 E i D g 05 2009 Lenze Automation GmbH Gr nstra e 36 D 40667 Meerbusch Germany 49 0 21 32 99 04 0 49 0 2132 72190 Lenze Lenze de www Lenze com Service BD NW Lenze Service GmbH Breslauer Stra e 3 D 32699 Extertal Germany 00 80 00 24 4 68 77 24 h helpline 49 0 51 54 82 1112 Service Lenze de SHPPLCDCAN 13296030 DE 2 0 TD29 10 9 8 7 6 5 4 3 2
80. t 0 ein damit der Reset nur einmal nach der Initialisierung der Anwendung ausgef hrt wird Der Slave wird dann wieder mit dem Upload des Objekts 0x1000 angefragt Nachdem der Slave die Konfigurationsphase durchlaufen hat kann er in folgende Stati bergehen e Er wechselt immer in Status 4 au er es handelt sich um einen optionalen Slave und er wurde nicht als am Bus verf gbar detektiert Abfrage Objekt 0x1000 oder der Slave ist zwar vorhanden aber hat auf die Abfrage des Objekts 0x1000 mit einem anderen Typ in den unteren 16 Bit reagiert als der Konfigurator erwartet hat e Er wechselt in den Status 97 wenn er optional ist Option Optionales Ger t in der Can Konfiguration und nicht auf die SDO Anfrage nach dem Objekt 0x1000 reagiert hat e Er wechselt nach Status 98 wenn der Ger tetyp Objekt 0x1000 nicht dem konfiguriertem entspricht nachdem er alle Konfigurations SDOs trotzdem bekommen hat Zum Starten des Nodes in diesem Fall siehe Zusatz in 2 4 4 2 Hochlauf des Netzwerks ohne automatisches Starten Wenn der Master auf automatisches Starten konfiguriert wurde wird der Slave im Status 4 gestartet d h es wird eine Start Node NMT Nachricht erzeugt und der Slave wechselt automatisch nach Status 5 Status 5 ist der normale Betriebszustand des Slaves Wurde von der Applikation das Masterflag bUseStartAllNodes gesetzt dann wird gewartet bis sich alle Slaves im Zustand 4 befinden und dann werden alle Slaves mit d
81. t wird andernfalls NMT Reset Communication Wie kann ich diese Option anklickbar machen Wie kann ich einen Vorgabewert f r diese Option setzen gesetzt nicht gesetzt Ist der Wert der Option irgendwo in der Download Struktur verf gbar die Struktur CCCansSlave in RTSCFG H enth lt jedenfalls keinen entsprechenden Eintrag Diese Option wird aktiviert wenn das Objekt 0x1011 in der EDS Datei steht bzw deaktiviert wenn dieses Objekt nicht in der Datei vorhanden ist Einen Default Wert kann man dort nicht setzen Wird ein SDOWrite auf diesem Objekt ausgef hrt dann werden die Default Werte zur ckgespeichert und ein ResetNode ausgef hrt In der Download Struktur gibt es keine direkte Variable die diesen Wert angibt Sie k nnen aber in der Liste der SDOs nachsehen ob dieses Objekt vorhanden ist Ist dieses Objekt vorhanden so steht in dem 32 Bit Wert das Wort load Lenze DMS 2 0 DE 05 2009 TD29 53 L force PLC Designer CANopen f r Laufzeitsysteme Anhang 5 3 3 Applikation In diesem Abschnitt finden Sie Fragen die sich mit dem Umgang der CANopen Bibliotheken aus der Applikationssicht besch ftigen F1 F2 Gibt es eine M glichkeit die PDOs von einem CANopen Slave zu berwachen Der Slave unterst tzt kein Heartbeat und kein Nodeguarding Ich m chte sehen ob der Slave z B alle 50ms ein PDO Telegramm sendet Wie kann ich das machen Immer wenn ein RxPDO empfangen wird wird die Ausgangsvariable bNewMes
82. ue Eigenschaft wie z B die Eventtime eines Sende PDO s schreiben und anschlie end einen StartNode NMT Befehl an den Knoten schicken obwohl er bereits gestartet ist Das f hrt dazu dass das Device die Werte im Objektverzeichnis neu interpretiert Aber auch die lokale Applikation kann nat rlich die Eigenschaften eines PDOs ver ndern Dazu muss die Applikation lediglich wie oben beschrieben die Inhalte des der betreffenden Objekte ver ndern und anschlie end die Methode SetupPDOTable des CanDevice aufrufen CanOpenDev 0 SetupPDOTable 42 DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme CanDevice 3 6 4 Emergency Nachrichten durch das Anwenderprogramm senden Um eine Emergency Nachricht durch das Anwenderprogramm zu versenden kann der Baustein FB SEND_EMERGENCY benutzt werden Der Baustein hat die folgende Schnittstelle VAR_INPUT ENABLE BOOL Solange Enable ansteht wird mit jedem Aufruf eine Emergency Nachricht verschickt ErrorCode WORD Der Error Code nach CANopen sind einige Werte bereits vorbestimmt Siehe dazu die Tabelle unten ErrorRegister BYTE Das Error Register ist der Inhalt des Objekts 1001h ManufacturerErrorField ARRAY 0 4 OF BYTE Hier kann die Applikation ihre eigenen Fehlercodes definieren Devicelndex INT Der O basierte Index des Device das die Emergency senden soll END_VAR VAR_OUTPUT bReady BOOL Wenn die Nach
83. utzt werden Diese Instanz ist immer global in der Manager Bibliothek vorhanden CanOpenWriteMSG wDrvNr pCanOpenNodefxx wDrvNr dwCanlD 0 ucLen 2 bRtrFrame FALSE ucByte1 16 01 ucByte2 pCanOpenNodelxx ucNodeNr Damit wird immer ein StartNode NMT Kommando auf den Bus gelegt Dabei werden die Parameter des Bausteins hier aus dem Array mit den Beschreibungen der Slaves entnommen Um das Netzwerk gesamt zu starten kann die NMT Nachricht ebenfalls wie oben selbst generiert werden Diese Vorgehensweise muss immer f r Nodes die ohne Nodeguarding Heartbeat arbeiten benutzt werden CanOpenWriteMSG wDrvNr pCanOpenMaster xx wDrvNr dwCanlD 0 ucLen 2 bRtrFrame FALSE ucByte1 16 01 ucByte2 0 Dieses NMT Kommando hei t Start All Nodes Dabei m ssen allerdings alle Stati der Nodes angepasst werden damit die Bibliothek auch ohne dass der Master die Nodes startet auf den aktuellen Status setzt Besser ist es hier die Methode StartAllNodes des Masters zu benutzen Dabei wird das NMT Kommando Start All Nodes erzeugt und die Stati aller Nodes werden aktualisiert Um einen Slave zu starten der w hrend des Hochlaufs in den Status 98 Ger tetyp stimmt nicht mit dem konfiguriertn berein gesetzt wurde gen gt es die Methode SetNodeStatus nNewStatus 4 zu benutzen Wenn der Master auf automatisch starten konfiguriert wurde wird der Node jetzt gestartet Sonst muss die Applikation jetzt noc
84. wird die Objektverzeichnisgr e eingestellt Bezieht sich dies nur auf den selbstdefinierten Bereich z B 2000 oder auch auf den Standardbereich 1000 Nur die im Parameter Manager definierten Objekte m ssen hier angegeben werden Mein kundenspezifisches Objektverzeichnis f ngt bei 2000 an und geht bis zum Standard O Bereich 6400 Ist diese Gr e ein Problem Nein solange die verwendete Steuerung genug Speicher f r diese Variablen hat Wenn Sie ein Zielsystem mit einem C16x Controller benutzen 65 K Segment Grenze dann kann eine Variable nur 64 K gro werden ODEntries ist ein Array von Strukturen jede braucht 12 Byte also kann man theoretisch maximal 65536 12 5461 Eintr ge anlegen Da aber auf einem C16x System der Baustein der alle Variablen zusammen initialisiert maximal ebenfalls nur 64K gro werden kann liegt diese Zahl wesentlich tiefer etwa bei 500 bis 1000 das ist stark abh ngig vom Rest der Applikation Ab Index 4000 0 ben tige ich 130 Eintr ge mit Strings mit jeweils 32 Zeichen Ist dies ein Problem Wie bekomme ich die Strings hier in das Objektverzeichnis Wie alle anderen Variablen auch Die Strings m ssen IEC Variablen sein dann kann man sie genauso wie numerische Variablen ber den Parameter Manager einh ngen und ber SDO Transfers darauf zugreifen Kann die Mapping Tabelle von au en sprich vom Master bei mir sprich in meinem Objektverzeichnis beschrieben werden siehe Kap 3 5 V
85. workGlobalVars_CAN exp und ist im Compile Verzeichnis zu finden Nur wenn der PLC Designer mit der Kommandozeilenoption debug gestartet wurde Es wird Initialisierungscode erzeugt der die erzeugten Daten initialisiert Dieser wird aus dem Globallnit Baustein aufgerufen der wiederum zum Initialisieren der Projektdaten direkt nach dem Download aufgerufen wird Am Beginn und am Ende einer Task werden implizite Aufrufe von Bibliotheksbausteinen erzeugt F r jede Task in der Netzwerkvariablen verwendet werden e wird zu Beginn f r jedes PDO ein Empfangs Aufruf erzeugt e wird zu Beginn ein Aufruf der einzigen Instanz des Bausteins NetVarManager_Udp_FB bzw NetVarManager_Can_FB erzeugt NetVarManager_UDP e wird am Ende f r jedes PDO ein Sende Aufruf erzeugt Die Aufrufe insgesamt CAN_Read 0 NetVarManager_CAN pNetVarPDO_Rx_CANJOI lt Applikationscode gt MgrClearRxBuffer wCurTask 1 wDrvNr 0 dwFlags 0 dwPara 0 pNetVarPDO_Tx_CANI O Lenze DMS 2 0 DE 05 2009 TD29 47 L force PLC Designer CANopen f r Laufzeitsysteme Anhang 5 Anhang 5 1 Liste der normalerweise f r einen Slave erzeugten SDOs Der CANopen Konfigurator vom PLC Designer erzeugt standardm ig folgende SDOs Lesezugriff auf das Objekt 0x1000 um den Typ des Nodes zu berpr fen Schreibzugriff auf alle Objekte des EDS Files die in der aktuellen Konfiguration des Slaves nicht dem Defaultwert im EDS File entsprechen
86. yklus die Variable bUseOoldBootupToo TRUE setzen DMS 2 0 DE 05 2009 TD29 Lenze L force PLC Designer CANopen f r Laufzeitsysteme Anhang 5 3 2 CANopen Master 5 3 2 1 Konfiguration In diesem Abschnitt finden Sie alle Fragen zur Konfiguration des CANopen Masters F1 F2 Wie k nnen die CAN Parameter Optionen Optionales Ger t und Nicht initialisieren in der Steuerungskonfiguration eingeblendet werden Basisparameter CAN Parameter CAN Modulauswahl PDO Mapping Empfangen Allgemein Node ID iP Alle SDO s erzeugen I Optionales Ger t Knoten zur cksetzen Nicht initialisieren T Die CAN Parameter Optionen Optionales Ger t und Nicht initialisieren k nnen ber die Steuerungskonfigurationsdatei aktivierte werden Dazu m ssen Sie in der Steurerungskonfigurationsdatei beim CANopen Slave die Eintr ge OptionalDevice und Nolnitialize eintragen Module CanSlave Name CanSlave Id 693734 OptionalDevice TRUE NoInitialize TRUE Der reine Eintrag bewirkt dass die Optionen in der Steuerungskonfiguration eingeblendet werden Mit FALSE oder TRUE k nnen Sie dann den Default Wert festlegen Im Dialog CAN Parameter der Steuerungskonfiguration gibt es die Option Knoten zur cksetzen Diese Option ist bei mir deaktiviert und grau Nun meine Fragen Gehe ich recht in der Annahme dass ich mit dieser Option einstellen kann ob an den Knoten vor der Konfiguration ein NMT Reset Node Telegramm gesende
87. ys gespeichert VAR_GLOBAL pCANopenMaster ARRAY I0 MAX_MASTERINDEX OF CanOpenMaster pCanOpenNode ARRAY I0 MAX_NODEINDEX OF CanOpenNode pCanOpenSDO ARRAY 0 MAX_SDOINDEX OF CanOpenSDO pCanOpenPDO_Rx ARRAYI 0 MAX_PDOINDEX_RX OF CanOpenPDO_Rx pCanOpenPDO _Tx ARRAYI 0 MAX_PDOINDEX_TX OF CanOpenPDO _Tx ODMEntries ARRAY I0 MAX_MASTER_ODENTRY_IDX OF CanOpenODeEntry END_VAR Dabei sind die FB Membervariablen wie folgt benutzt Variablen die rein interne Variablen sind sich also in den VAR Abschnitten befinden sollten von der Applikation nicht beschrieben werden einige davon sind jedoch zu Diagnosezwecken interessant VAR_INPUT nStatus INT Gibt den aktuellen Status des Masters an Dieser Status hat nichts mit den nach CANopen definierten Stati zu tun Es handelt sich hier um eigene interne Definitionen bMsgUsed BOOL Kann von der Applikation benutzt werden um festzustellen wann eine neue SDO Client Anfrage bearbeitet wurde Dann kann z B das Objektverzeichnis des Masters auf nderungen untersucht werden oder insgesamt neu ausgewertet werden Gilt nur in Verbindung mit den entsprechenden Eintr gen in der cfg Datei vom PLC Designer so dass der Master ber ein Objektverzeichnis verf gt Sonst ohne Bedeutung nRxIndex INT Historisch um bersetzungsfehler in alten Projekten zu vermeiden unbenutzt wDrvNr WORD Hier wird bei der Konfiguration die Nummer des CAN Controllers be

Download Pdf Manuals

image

Related Search

Related Contents

Troubleshooting Guide - Blog A  1290 Operators Manual.qxd  Keston K170 Installation Manual  request to transfer software license and integrated license and  Power-SOL UPSドメインコントローラ for Windows 取扱説明書  CBW Internet Services  manual de instalación y operación para ventiladores  Kodak DVD-845 DVD Player User Manual  MT_TDMX 301e303  EXSYS LP 1394B  

Copyright © All rights reserved.
Failed to retrieve file