Hallo Leute,
ich bin neu hier und hätte gleich mal eine Frage.
Ich beschäftige mich zurzeit im Rahmen meiner Bachelorarbeit mit der Klemme EL6751 sowohl als Master als auch als Slave Ausführung.
Ich habe 2 CX1020 mit der EL6751-0010 (Slave) und eine CX2020 mit der EL6751 (Master) ausgestattet. Programmiert wird mit TwinCAT v2.11.
Die Kommunikation der 3 Teilnehmer über das CANOpen Node habe ich bereits hinbekommen. Für meine Untersuchungen benötige ich allerdings das CAN Interface.
Und hier tritt das Problem auf: Ich verstehe nicht so recht, wie ich Daten empfangen bzw. senden kann. Habe mir diesen Programm-Code von Beckhoff kopiert, aber bisher ohne Erfolg:
Senden:
Empfangen:
Meine Slaves senden dauerhaft Daten, also müsste ich diese Daten doch in: CAN Interface --> Eingänge --> RxQueue --> RxMessages --> RxMessages[i] --> rxData empfangen können?
Ich hoffe, es ist einigermaßen verständlich was ich meine.
Hat vielleicht jemand schon über das CAN Interface kommuniziert und hat evtl. ein Beispielprogramm hierfür?
Gruß
ich bin neu hier und hätte gleich mal eine Frage.
Ich beschäftige mich zurzeit im Rahmen meiner Bachelorarbeit mit der Klemme EL6751 sowohl als Master als auch als Slave Ausführung.
Ich habe 2 CX1020 mit der EL6751-0010 (Slave) und eine CX2020 mit der EL6751 (Master) ausgestattet. Programmiert wird mit TwinCAT v2.11.
Die Kommunikation der 3 Teilnehmer über das CANOpen Node habe ich bereits hinbekommen. Für meine Untersuchungen benötige ich allerdings das CAN Interface.
Und hier tritt das Problem auf: Ich verstehe nicht so recht, wie ich Daten empfangen bzw. senden kann. Habe mir diesen Programm-Code von Beckhoff kopiert, aber bisher ohne Erfolg:
Senden:
Code:
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
Code:
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
Ich hoffe, es ist einigermaßen verständlich was ich meine.
Hat vielleicht jemand schon über das CAN Interface kommuniziert und hat evtl. ein Beispielprogramm hierfür?
Gruß