Kommunikation PC-CANopen-Koppler

Conroe

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi@all,
ich programmiere zum ersten mal einen CAN-Bus und benötige Hilfe

HW:
PC mit PEAK PCAN-Karte CoDeSys2.3.9.22 Zielsystem: CoDeSys SP RTE
Wago Koppler 750-338 und AI 750-477 AO 750-550
SW: Bibs: CANopen -Master,-Manager -Drv.lib, Wago 750-338_11.EDS

Es soll eine Steuerung für einen alten Klimaschrank realisiert werden. Dieser liefert eine U von 10mV/°C(IstTemp)/ es kann genauso eine U vorgegeben werden (SollTemp), eine Visu ist bereits erstellt. Wie programmiere ich nun eine zyklische Abfrage des Spannungswertes von der analogen-Eingansklemme. Was muss ich im PLC_Programm alles für die Dantenkommunikation per CANopen programmieren?

In den Bibs sind einige FB aber welche brauche ich tatsächlich..?

Viele Grüße!
 

Anhänge

  • Steuerconfig.jpg
    Steuerconfig.jpg
    150,4 KB · Aufrufe: 31
Bei den CAN-Parametern des Masters kannst Du die Zykluszeit unter Com Cycle Period einstellen. Bei dem Slave musst Du bei den Send-PDO Eigenschaften den transmission Type auf zyklisch-synchron einstellen, mit Anzahl der Syncs kannst Du einstellen bei welchem Sync gesendet werden soll; quasi der Multiplikator der Com Cycle Period.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deinen Hinweis, hab die Konfiguration vorgenommen. Passt das auch mit den Can-Input/Output?- habe ja nur 2 Klemmen die je ein 2Byte Wert bekommen bzw. liefern (TxPDO1 2Byte /RxPDO1. 2Byte).

Gruß
 
Warum legst du nur einzelne Bits in der Steuerungskonfiguration an? Sinnvollerweise sollten gleich Word's angelegt werden. Dann kannst du auch bei "AT" gleich einen vernünftigen Variablennamen eingen auf dem du dann im Programm überall Zugriff drauf hast(Global).


Gruß Soli
 
Habe mir gerade das Manual der 750-477 angeschaut, da steht "Die analoge Eingangsklemme 750-477 liefert je Kanal 16 Bit Messwerte und
8 Statusbits." . Es kann nun sein, dass Du das falsche Objekt nutzt. Evtl. musst Du das 3 Byte Special-Output Objekt nutzen. Einfach mal probieren.
Du nutzt nur jeweils einen Kanal; Richtig?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gleich word anlegen, wie geht das? ->%QW wo muss ich was auswählen?



Datenbreite 1 Wort Analoge Eingangsklemmen, Analoge Ausgangsklemmen

Bei der 477 werden die Wert in einem Datenwort Eingangsbyte 0 (low) und Eingangsbyte 1 (high) ist mit einer Auflösung von 16 Bit (1 LSB = 1 mV) auf Bit B0 ... B14 abgebildet. Die Status bits werden ignoriert, es erfolgt kein Zugriff (steht im KopplerHandbuch338 S.156).
 
Wenn du die vorhandenen PDO-Zuweisungen löschst und dann neue anlegst (16bit-Breite, roter Pfeil) bekommst du dann gleich Wörter, so wie die vorher angelegten Klemmen(grüner Pfeil) es benötigen. So ist es zumindest bei mir. Warum soll man denn die einzelnen Bits erst später im Programm zusammenführen?

Gruß Soli
 

Anhänge

  • Wago.jpg
    Wago.jpg
    287,6 KB · Aufrufe: 19
Zuviel Werbung?
-> Hier kostenlos registrieren
Nachdem die Steurungskonfiguration abgeschlossen ist hab mich an die Programmierung in ST gemacht. Mir ist soweit klar wie ich meine Werte skalieren und berechnen muss. Funktioniert jetzt bereits meine Steuerung oder muss ich noch einige Objekte, Parameter mit Hilfe der FB aus den CANopen.lib(s) setzen? z.B CANopenSendSDO,CANopenPDOxT, welche brauche ich?

Aus dem Handbuch dem der CANopenManager.lib
(*---------Objekt Schreiben: ein 2byte Wert soll in ein SDO geschrieben werden----------------------------------
sdo(
Enable:= TRUE,
wDrvNr:= 0,
ucNodeId:= 2,
wIndex:= 16#4002,
bySubIndex:= 0,
ucModus:= 16#2B,
aAbortCode:=aAbort,
ucByte0 := DWORD_TO_BYTE(dwWrite),
ucByte1 := DWORD_TO_BYTE(SHR(dwWrite,8)));

IF (sdo.bAnswerRec OR NOT sdo.bWaitForAnswer) THEN
dwRead := dwRead + SHL(BYTE_TO_DWORD(sdo.ucAnswerBytes[5]),8);
dwRead := dwRead + BYTE_TO_DWORD(sdo.ucAnswerBytes[4]);
(* Transfer is terminated. If bAnswerRec is not TRUE, an error has occurred.*)
END_IF
 

Anhänge

  • Programm.jpg
    Programm.jpg
    111,2 KB · Aufrufe: 22
  • Steuerung.jpg
    Steuerung.jpg
    115,2 KB · Aufrufe: 20
  • Visu.jpg
    Visu.jpg
    185 KB · Aufrufe: 17
Müsste laufen, die Bausteine aus der Lib brauchst Du nur wenn Du alles "zu Fuss" machst. Ansonsten wird alles über die Steuerungskonfig erledigt

Gruß
 
Zurück
Oben