Makrofunktionen für CANopen
Gültig für S300, S700
Table of Contents
Alle Makrofunktionen, die über den CAN Bus im Mehrachsensystem verwendet werden können, werden mit der Funktion
FUNCTIONa(Can_Funktion, Ausgangsarameter, Eingangsparameter) aufgerufen.
Je nach Anzahl der für die Funktion erforderlichen Ein- und Ausgangsparameter wird eine andere Makrofunktion aufgerufen.
Alle hier beschriebenen Funktionen werden über die Makrofunktion
FUNCTIONa(Can_Funktion, Ausgangsarameter, Eingangsparameter)
aufgerufen. Je nach Anzahl der für die Funktion erforderlichen Ein- und Ausgangsparameter wird eine andere Makrofunktion aufgerufen.
Beispiele
FUNCTION(PLCSENDSYNC);
- Funktion PLCSENDSYNC erfordert keine Parameter
FUNCTION4(PLCREADSDO,RET,VAL0,VAL1,COBID);
- Funktion PLCREADSDO hat einen Eingangsparameter (COBID) und 3 Ausgangsparameter (RET,VAL0, VAL1)
PLCSENDSYNC
Diese Funktion löst das Senden eines SYNC Telegramms aus.
| Funktionsparameter | Typ | Bereich | Beschreibung |
| - | |||
| Funktionsergebnis | Typ | Bereich | Beschreibung |
| - | |||
| Funktionsaufruf: | |||
| FUNCTION(PLCSENDSYNC); | |||
PLCSENDNMT
Ermöglicht das Netzwerkmanagement des CAN Busses bei verwendetem CANopen Profil. Damit können CANopen Knoten an- oder abgeschaltet bzw. resetiert werden.
| Funktionsparameter | Typ | Bereich | Beschreibung |
| addr | int | 0 - 127 | CAN Adresse eines konfigurierten CANopen Knotens, 0, wenn alle CANopen Knoten gleichzeitig freigegeben werden sollen |
| cmd | int | 1,2,128 - 130 | NMT Kommando 1 - NMT operational 2 - NMT stop 128 - NMT enter preoperational state 129 - NMT reset node 130 - NMT reset communication |
| Funktionsergebnis | Typ | Bereich | Beschreibung |
| ret | int | 0 .. 2 | 0 – Funktionsparameter waren in Ordnung 1 – nicht konfigurierte Knotenadresse sollte angesprochen werden 2 – nicht definiertes NMT Kommando |
| Funktionsaufruf: | |||
| FUNCTION3(PLCSENDNMT, RET, ADDR, CMD); | |||
PLCCNFGSDO
Konfiguration eines SDO Empfangskanals für einen von vier möglichen CANopen Knoten.
| Funktionsparameter | Typ | Bereich | Beschreibung |
| addr | int | 1 .. 127 | Adresse eines CANopen Knotens zu dem ein Servicekanal aufgebaut werden soll |
| cmd | int | 0, 1 | Verbindungskommando 0 – Verbindung abbauen 1 – Verbindung aufbauen |
| Funktionsergebnis | Typ | Bereich | Beschreibung |
| ret | int | 0 .. 5 | 0 – Funktionsparameter waren in Ordnung 1 – alle 4 möglichen SDO Kanäle sind schon belegt 2 – die gewünschte Knotenadresse ist schon in Verwendung 3 – CAN Adresse außerhalb des gültigen Bereichs 4 – kein zusätzlicher RAM Speicher im Gerät frei 5 – falsches Kommando |
| Funktionsaufruf: | |||
| FUNCTION3(PLCCNFGSDO, RET, ADDR, CMD); | |||
PLCWRITESDO
Senden eines ServiceDatenObjekts zum CAN Bus. Dieses Telegramm dient dem Austausch von Parametern mit einzelnen Knoten und ist ein bestätigter Dienst. Das Antworttelegramm, das auf die durch diese Funktion ausgelöste Telegramm, wird in einen Puffer eingetragen. Diese Antwort kann, falls der Timeout noch nicht abgelaufen war, also bei ret = 0, direkt über val ausgelesen werden, oder falls ein kurzer Timeout Wert angegeben wurde (ret = 2), später über die Funktion PLCREADSDO ausgelesen werden kann.
| Funktionsparameter | Typ | Bereich | Beschreibung |
| addr | int | 1 .. 127 | Adresse eines CANopen Knotens zu dem ein Servicekanal aufgebaut werden soll |
| rwflag | int | 0, 1 | Zugriffsart 0 – Wert lesen 1 – Wert schreiben |
| index | int | 1000h .. 7FFFh | Index in das CANopen Objektverzeichnis |
| subindex | int | 0 .. 255 | Subindex des CANopen Objekts |
| val | int | int | Zu schreibender Wert beim Schreibzugriff |
| timeout | int | int | Timeout für die SDO Antwortzeit in Millisekunden |
| Funktionsergebnis | Typ | Bereich | Beschreibung |
| ret | int | 0 .. 3 | 0 – Funktionsparameter waren in Ordnung, SDO Antwort steht in val, entweder 0 bei korrektemSchreiben eines Wertes oder der zu erhaltene Wert beim Lesen eines Objekts 1 – nicht konfigurierte CAN Adresse wurde angesprochen 2 – der eingestellte Timeout ist ohne Antwort abgelaufen 3 – negative SDO Antwort (SDO abort) |
| Funktionsaufruf: | |||
| FUNCTION7(PLCWRITESDO, RET, ADDR, RWFLAG, INDEX, SUBINDEX, VAL, TIMEOUT); | |||
PLCREADSDO
Einlesen der SDO Telegrammantwort auf ein per PLCWRITESDO gesendetes SDO Telegramm, falls dort der Timeout auf 0 oder einen zu kleinen Wert gestellt wurde.
| Funktionsparameter | Typ | Bereich | Beschreibung |
| val | int | int | Wenn ret = 0 der Wert der SDO Antwort, wenn ret = 3 der SDO Abbruchcode |
| addr | int | 1 .. 127 | Adresse eines CANopen Knotens zu dem ein Servicekanal aufgebaut werden soll |
| Funktionsergebnis | Typ | Bereich | Beschreibung |
| ret | int | 0 .. 2 | 0 – Funktionsparameter waren in Ordnung 1 – nicht konfigurierte CAN Adresse wurde angesprochen 2 – keine Daten vorhanden (wurden schon ausgelesen) 3 – SDO abort Telegramm, gesendetes SDO Telegramm wurde negativ quittiert. Der Abort Code ist dann in val enthalten. |
| Funktionsaufruf: | |||
| FUNCTION3(PLCREADSDO, RET, VAL, RET); | |||
PLCCNFGRXPDO
Konfigurieren eines PDO Empfangskanals für einen von acht möglichen CANopen Knoten.
| Funktionsparameter | Typ | Bereich | Beschreibung | |
| cobid | int | 0x181-0x1FF, 0x281-0x2FF, 0x381-0x3FF, 0x481-0x4FF |
COB Identifier eines CANopen Knotens zu dem ein Prozessdatenkanal aufgebaut werden soll | |
| cmd | int | 0, 1 | Verbindungskommando 0 – Verbindung abbauen 1 – Verbindung aufbauen |
|
| Funktionsergebnis | Typ | Bereich | Beschreibung | |
| ret | int | 0 .. 4 | 0 - Funktionsparameter waren in Ordnung 1 - alle 8 möglichen PDO Kanäle sind schon belegt 2 - der gewünschte COB ID ist schon in Verwendung 3 - kein zusätzlicher RAM Speicher im Gerät frei 4 - falsches Kommando |
|
| Funktionsaufruf: | ||||
| FUNCTION3(PLCCNFGRXPDO, RET, COBID, CMD); | ||||
PLCWRITEPDO
Senden eines ProzessDatenObjekts zum CAN Bus.
| Funktionsparameter | Typ | Bereich | Beschreibung |
| cobid | int | 0x201-0x27f, 0x301-0x37f, 0x401-0x47f, 0x501-0x57f |
COB Identifier für einen CANopen Knoten, zu dem ein Prozessdatenkanal aufgebaut werden soll |
| val0, val1 | 2 * int | int | Zu übertragende CAN Daten: Reihenfolge auf dem CAN Bus: val0 LSB .. val0 MSB, val1 LSB .. val1 MSB |
| bytes | int | 1..8 | Zahl der zu übertragenden Datenbytes |
| Funktionsergebnis | Typ | Bereich | Beschreibung |
| ret | int | 0 .. 1 | 0 – Funktionsparameter waren in Ordnung 1 – falscher Identifier |
| Funktionsaufruf: | |||
| FUNCTION5(PLCWRITEPDO, RET, COBID, VAL0, VAL1, BYTES); | |||
PLCREADPDO
Einlesen eines vorher konfigurierten ProzessDatenObjekts vom CAN Bus.
| Funktionsparameter | Typ | Bereich | Beschreibung |
| val0, val1 | 2 * int | int | Übertragende CAN Daten: Reihenfolge auf dem CAN Bus: val0 LSB .. val0 MSB, val1 LSB .. val1 MSB |
| cobid | int | 0x181-0x1ff, 0x281-0x2ff, 0x381-0x3ff, 0x481-0x4ff |
COB Identifier eines CANopen Knotens zu dem ein Prozessdatenkanal aufgebaut werden soll. |
| Funktionsergebnis | Typ | Bereich | Beschreibung |
| ret | int | 0 .. 1 | 0 – Funktionsparameter waren in Ordnung 1 – keine Daten im Puffer |
| Funktionsaufruf: | |||
| FUNCTION4(PLCREADPDO,RET,VAL0,VAL1,COBID); | |||
Startseite >
Knowledge Base >
FAQs nach Themen >
Downloads >