Heartbeat

Nick
2007-09-20
2007-09-21
  • Nick - 2007-09-20

    Gruß an die Freunde der Steuerungstechnik,

    ich betreibe mit einer Möller XC100 einen CANopen-Antrieb. Dieser sendet einen Heartbeat. Wie kann man in CoDeSys diesen Heartbeat auswerten?

    Nick

     
  • Rolf-Geisler - 2007-09-20

    Hallo,

    wenn ich "Heartbeat" richtig interpretiere, hast Du in irgend einer der CAN-Variablen ein BOOL Flag, welches zyklisch zwischen TRUE und FALSE wechselt.

    Die Auswertung würde erwarten, dass alle x Millisekunden ein Zustandswechsel auf diesem Flag stattfindet. Man könnte also mit jedem Zustandswechsel einen Timer triggern. Falls bis zum Ablaufen des Timers kein neuer Zustandswechsel aufgetreten ist, ist dann der Heartbeat bzw. der Antrieb ausgefallen.

    Gruß Rolf

     
  • Nick - 2007-09-21

    Hallo,

    erstmal vielen Dank für die Antwort. Irgend sowas mit einem Flag hab ich mir schon gedacht. Aber wo find ich das denn? Bzw. wo könnt ich danach suchen? Hab bis dato nur SDO Schreib- und Lesezugriffe programmiert. (Das ging ja auch ganz einfach über die 3s_CANManager.lib. )

    Nick

     
  • Rolf-Geisler - 2007-09-21

    Wieder hallo,

    habe schon lange nichts mehr mit CAN auf einer Moeller gemacht. Aber soweit ich mich entsinne, setzt die SDO-Kommunikation auf Variablen der eigenen SPS auf. Will heissen, jedes SDO-Telegramm, was rein- oder rausgeht, ist mit einer SPS-Variablen verknüpft, dort finden sich dann die Werte.

    Du mußt also in Deinem Programm die Variable suchen, in der der Heartbeat ankommt (möglicherweise ein BYTE oder WORD, in welchem der Heartbeat ein Bit belegt), das betreffende Bit ausmaskieren und dann überwachen.

    Hoffe, es war hilfreich.

    Gruß Rolf

     

Log in to post a comment.