Antrieb mit Raw CAN ansprechen

Koch

Level-2
Beiträge
109
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Hat jemand schonmal einen Antrieb mit Raw CAN angesprochen?
Bisher habe ich nur CAN open verwendet, wo man dann eine Gerätebeschreibungsdatei EDS. Bei Raw CAN scheint das anders zu laufen.
Ich habe bisher nur eine dbc Datei in der die Datenstruktur beschrieben steht. Es scheint keine CAN IDs für die Knoten zu geben. Es gibt "globale" Adressen für die Variablen?

Kann mir jemand einen Einstieg geben wie man das mit TIA oder Codesys umsetzt?

Der dbc sieht so aus:

VERSION ""


NS_ :
NS_DESC_
CM_
BA_DEF_
BA_
VAL_
CAT_DEF_
CAT_
FILTER
BA_DEF_DEF_
EV_DATA_
ENVVAR_DATA_
SGTYPE_
SGTYPE_VAL_
BA_DEF_SGTYPE_
BA_SGTYPE_
SIG_TYPE_REF_
VAL_TABLE_
SIG_GROUP_
SIG_VALTYPE_
SIGTYPE_VALTYPE_
BO_TX_BU_
BA_DEF_REL_
BA_REL_
BA_DEF_DEF_REL_
BU_SG_REL_
BU_EV_REL_
BU_BO_REL_
SG_MUL_VAL_

BS_:

BU_: MCU ECU
VAL_TABLE_ ControlMode 15 "NotAvailable " 14 "Error: more than one reference" 3 "Position control" 2 "Torque control" 1 "Speed control" 0 "Not selected" ;
VAL_TABLE_ OperationalState 15 "NotAvailable " 14 "Failure: Enable LOW" 13 "Disabled" 1 "Motor performance degraded" 0 "Normal Operation" ;


BO_ 2566861872 MotorConfig: 6 ECU
SG_ MaxSpeed : 32|16@1+ (1,0) [0|32765] "" MCU
SG_ MinIqCurrent : 24|8@1+ (1,0) [0|250] "A" MCU
SG_ MaxIqCurrent : 16|8@1+ (1,0) [0|250] "A" MCU
SG_ MinDCcurrent : 8|8@1+ (1,0) [0|255] "A" MCU
SG_ MaxDCcurrent : 0|8@1+ (1,0) [0|255] "A" MCU

BO_ 2566862368 MotorFeedback2: 8 MCU
SG_ TorqueMaxActual : 32|16@1+ (0.0152588,-490.219) [-490.219|490.219] "A" Vector__XXX
SG_ TorqueMinActual : 48|16@1+ (0.015258789063,-490.219) [-490.219|490.219] "A" Vector__XXX
SG_ PositionActual : 0|32@1+ (1,-2105540607) [-2105540607|2189426688] "deg" ECU

BO_ 2566861856 MotorStatus: 8 MCU
SG_ ControlModeActual : 20|4@1+ (1,0) [0|15] "" ECU
SG_ TempHousing : 44|8@1+ (1,-40) [-40|210] "Celcius" ECU
SG_ KillswitchOpen : 42|2@1+ (1,0) [0|3] "" ECU
SG_ SupplyVoltage : 26|8@1+ (0.5,0) [0|127.5] "[V]" ECU
SG_ MessageChecksumStatusMsg : 60|4@1+ (1,0) [0|15] "count" ECU
SG_ MessageCounterStatusMsg : 56|4@1+ (1,0) [0|15] "count" ECU
SG_ InternalFailure : 18|2@1+ (1,0) [0|3] "" ECU
SG_ MotorBlocked : 16|2@1+ (1,0) [0|3] "" ECU
SG_ OverTempCutOff : 14|2@1+ (1,0) [0|3] "" ECU
SG_ OverVoltageCutOff : 12|2@1+ (1,0) [0|3] "" ECU
SG_ UnderVoltageCutOff : 10|2@1+ (1,0) [0|3] "" ECU
SG_ AnalogCtrlCutOff : 8|2@1+ (1,0) [0|3] "" ECU
SG_ TempPowerstage : 34|8@1+ (1,-40) [-40|210] "Celcius" ECU
SG_ OperationalState : 0|4@1+ (1,0) [0|15] "" ECU
SG_ TempLimitWarning : 4|2@1+ (1,0) [0|3] "" ECU

BO_ 2566861088 MotorFeedback1: 8 MCU
SG_ TotalCurrent : 48|8@1+ (2,-252) [-252|252] "A" ECU
SG_ TorqueActual : 32|16@1+ (0.0152588,-490.219) [-490.219|490.219] "A" ECU
SG_ SpeedTarget : 16|16@1+ (0.5,-16063.5) [-16063.5|16704] "rpm" ECU
SG_ SpeedActual : 0|16@1+ (0.5,-16063.5) [-16063.5|16704] "rpm" ECU
SG_ MessageChecksumFbMsg : 60|4@1+ (1,0) [0|15] "count" ECU
SG_ MessageCounterFbMsg : 56|4@1+ (1,0) [0|15] "count" ECU

BO_ 2566861616 MotorControl: 8 ECU
SG_ PositionRequest : 32|32@1+ (1,-2105540607) [-2105540607|2189426688] "deg" Vector__XXX
SG_ TorqueRequest : 16|16@1+ (0.015258789063,-490.219) [-490.219|490.219] "A" Vector__XXX
SG_ SpeedRequest : 0|16@1+ (0.5,-16063.5) [-16063.5|16063.5] "rpm" MCU

BO_ 2566862112 UnitIdentity: 8 MCU
SG_ SerialNumber : 48|16@1+ (1,0) [0|64255] "" ECU
SG_ ManufacturingDate : 16|32@1+ (1,0) [0|4211081215] "" ECU
SG_ HardwareVersionIdentification : 8|8@1+ (1,0) [0|250] "" ECU
SG_ SoftwareVersionIdentification : 0|8@1+ (1,0) [0|250] "" ECU



CM_ BO_ 2566862368 "MOTOR MESSSAGE";
CM_ BO_ 2566861856 "MOTOR MESSAGE";
CM_ BO_ 2566861088 "MOTOR MESSAGE";
CM_ BO_ 2566861616 "CONTROLLER MESSAGE";
CM_ BO_ 2566862112 "MOTOR MESSAGE";
VAL_ 2566861856 ControlModeActual 15 "NotAvailable " 14 "Error: more than one reference" 3 "Position control" 2 "Torque control" 1 "Speed control" 0 "Not selected" ;
VAL_ 2566861856 OperationalState 15 "NotAvailable " 14 "Failure: Enable LOW" 13 "Disabled" 1 "Motor performance degraded" 0 "Normal Operation" ;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@maxder2te
Ist ein PM Antrieb mit FU von Sonceboz.

Spricht der Antrieb J1939? - ja so ist der Frame aufgebaut

Ich war mal Steuerungstechniker. Mein Kollege hat diese dbc File vom Hersteller bekommen, das sollte wohl ausreichend sein um es zu realisieren.
Das Dumme ist, die Applikation war mal für eine Automotive Anwendung gedacht. Diese Kunden kennen sich wahrscheinlich mit Raw CAN aus.
Jetzt bieten wir anderen Kunden diese Applikation an und die sind etwas überfordert mit der Anbindung. Geht mir ehrlich gesagt ähnlich. Hab bisher nur mit CAN open gearbeitet.

Ich benötige so einen kleinen Einstieg, damit ich es meinem Kollegen erläutern kann, damit der dann sieht wie er es dem Kunden näher bringen kann.
 
Also, das letzte mal als ich mich mit J1939 beschäftigt habe ist doch schon 2-3 Jahre her. Nach meinem Wissensstand ist das auf den meisten CAN-Schnittstellen gängiger Hersteller nicht so einfach nachzubauen. Beispielseise für die Siemens CM CAN für die ET200SP gibts da keinen Weg.
Was gehen würde ist dort beispielsweise ein Profinet / J1939 Gateway - solche Gateways oder dezidierte J1939 Baugruppen bieten einige Steuerungshersteller an.

Eine Lösung wie ich sie im Umfeld von Lithium Batterien schon öfters gehen habe sind die Gateways von Barth Elektronik. Im Prinzip ist das ein Mickrokontroller mit 2 CAN Schnittstellen. Eine Schnittstelle realisiert einen CANopen Slave Node, die andere Schnittstelle den J1939 Master.

Der Begriff Raw CAN ist etwas irreführend, da alle CAN-Protokolle auf Raw CAN aufsetzen. CANopen definiert halt ein vollständiges Protokoll mit Prozessdatenobjekten und Service-Datenobjekte UND legt auch Schemen für die COB-IDs fest. Sbus von SEW nutzt die gleiche Physik, aber ein anderes Schema hinter den COB-IDs, Lenze detto, B&R detto. ....
J1939 geht da etwas weiter und kann den Master auch mit einer Telegrammflut auf der gleichen COB-ID zuschütten, die dieser geordnet ohne Request-Response in der richtigen Reihenfolge verarbeiten muss - mit einer solchen Archtiketur sind viele Raw CAN Gateways überfordert.
 
Zurück
Oben