Herunterladen Inhalt Inhalt Diese Seite drucken

Beckhoff CX805 Serie Handbuch Seite 45

Embedded-pc mit canopen
Inhaltsverzeichnis

Werbung

0 = No error
1 = Node deactivated
2 = Node not found
4 = SDO syntax error at StartUp
5 = SDO data mismatch at StartUp
8 = Node StartUp in progress
11 = FC510x Bus-OFF
12 = Pre-Operational
13 = Severe bus fault
14 = Guarding: toggle error
20 = TxPDO too short
22 = Expected TxPDO is missing
23 = Node is Operational but not all TxPDOs were received
Das DiagFlag zeigt an ob ein Emergency Telegramm vom Slave eingetroffen ist. Dies kann dann im System
Manager oder in der SPS per ADS ausgelesen werden (siehe ADS Interface [} 57]). Die Interpretation der
Daten entnehmen Sie dem Slave Hersteller. Das Flag wird zurückgesetzt wenn der Diag Buffer ausgelesen
worden ist.
Der EmergencyCounter wird bei jedem Emergency Telegramm inkrementiert.
CAN Layer 2 Kommunikation
Wenn diese Checkbox angewählt ist, so ist das gesamte CANopen Netzwerkmanagement für diesen
Teilnehmer deaktiviert: er wird nicht gestartet, überwacht etc.. Die PDO-Einträge werden als reine CAN
(Schicht 2) Telegramme aufgefasst und ereignisgesteuert der Steuerung zur Verfügung gestellt.
CAN Interface
Das CAN Interface erlaubt beliebige CAN Daten zu verschicken. Es kann zwischen 11 Bit Identifier (CAN
2.0A) und dem 29 Bit Identifier (CAN 2.0B) ausgewählt werden.
Message-Struktur mit 29-Bit Unterstützung
• Length (0..8)
• CobId
◦ Bit 0-28: 11 Bit-Identifier / 29 Bit-Identifier
◦ Bit 30: RTR
◦ Bit 31: 0: normal Message (11 Bit Identifier), 1: extended Message (29 Bit-Identifier)
• Data[8]
Senden von Daten: Tragen Sie in "NoOfTxMessabes die Anzahl der Daten ein die Sie aus dem Tx Buffer
senden wollen. Ist der Buffer 10 Einträge groß können Sie maximal 10 Telegramme hintereinander
verschicken. Mit "Length" wir die Anzahl der Datenbytes des PDOs definiert (maximal 8 Byte). Füllen Sie die
Daten und tragen die den Identifire des CAN Message in "codId" ein. Nun inkrementieren Sie den Wert
TxCounter.
Beispielcode: Senden von Messages von der SPS
if Outputs.TxCounter = Inputs.TxCounter then
     for i=0 to NumberOfMessagesToSend do
          Outputs.TxMessage[i] = MessageToSend[i];
     End_for
     Outputs.NoOfTxMessages = NumberOfMessagesToSend;
     Outputs.TxCounter := Outputs.TxCounter + 1;
end_if
Beispielcode: Empfangen von Messages von der SPS
if Outputs.RxCounter <> Inputs.RxCounter then
     for i := 0 to (Inputs.NoOfRxMessages-1) do
          MessageReceived[i] := Inputs.RxMessage [i];
     End_for
     Outputs.RxCounter := Outputs.RxCounter+1;
end_if
CX805x
Version: 1.4
Parametrierung und Inbetriebnahme
45

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Cx8050Cx8051

Inhaltsverzeichnis