Hallo Zusammen, ich wollte die Signale einer Botschaft auf die Init-Werte zurücksetzen. Das geht Normalerweise mit dem Befehl setSignalStartValues(message msg). Das Problem ist, die Botschaft msg wird mit dem Befehl Output(msg) nur einmal gesendet und dadurch werden Signal nicht richtig zurückgesetzt. Die Frage ist: wie kann ich eine Botschaft dauerhaft auf dem Bus senden? gibt es einen anderen Befehl außer "Output", wodurch die Botschaft permanent aufm Bus bleibt? Danke und Gruß
Welches Gerät? Welcher Bus? Wovon redest Du? Sonst schick mal '42' auf den Bus und wart ab was passiert.
Guest schrieb: > Welches Gerät? Welcher Bus? Wovon redest Du? CAPL - Du musst auch die Überschrift lesen! (CAPL kenne ich zwar auch nicht, aber Google hätte Deine Frage in 2 Sekunden beantwortet!)
Thomas E. schrieb: > CAPL - Du musst auch die Überschrift lesen! Prima, verstecken wir die wichtigsten Informationen damit man auch die erst suchen muß.
Guest schrieb: > Welches Gerät? Welcher Bus? Wovon redest Du? > > Sonst schick mal '42' auf den Bus und wart ab was passiert. Gerät: Steuergerät "X" Bus: CAN Wie wovon rede ich :-). Ich möchte nur wissen von den Leute die von capl Ahnung haben, mit welchem Capl-Befehl eine Botschaft dauerhaft auf dem CAN-Bus gesendet werden kann.
Thomas E. schrieb: > Guest schrieb: >> Welches Gerät? Welcher Bus? Wovon redest Du? > > CAPL - Du musst auch die Überschrift lesen! > (CAPL kenne ich zwar auch nicht, aber Google hätte Deine Frage in 2 > Sekunden beantwortet!) Hast du echt die Lösung gefunden? wenn du Output meinst dann ist es falsch! Ansonsten bitte sag es :-)
CAPL ist Eventgetrieben. Lege dir einen Timer an und sende die Nachricht bei jedem Timer Event. Beispiel ist in canoe enthalten.
Stefan schrieb: > Hast du echt die Lösung gefunden? Nein, sorry, ich bezog mich nur auf die zitierte Frage vom Gast, worum es überhaupt geht.
Stefan schrieb: > Die Frage ist: wie kann ich eine Botschaft dauerhaft auf dem Bus senden? > gibt es einen anderen Befehl außer "Output", wodurch die Botschaft > permanent aufm Bus bleibt? Die Frage ergibt keinen Sinn. Ein Bus ist ein Transportmedium für Daten, z.B. in Form von Botschaften. Eine solche Botschaft belegt den Bus, während sie übertragen wird. Aber sie verbleibt nicht auf dem Bus, was auch genau so gewünscht ist. Sonst wäre der Bus ja nicht mehr für weitere Kommunikation nutzbar. Man kann natürlich die gleiche Botschaft immer und immer wieder senden. Das ergibt zwar i.d.R. keinen Sinn und hat den unangenehmen Nebeneffekt, den Bus zu verstopfen. Aber wenn man das unbedingt will ... Und wie man eine Botschaft sendet, weißt du ja anscheinend. Was soll die Frage dann? Brauchst du Hilfe dabei, eine Endlosschleife zu schreiben?
Axel S. schrieb: > Das ergibt zwar i.d.R. keinen Sinn und hat den unangenehmen Nebeneffekt, > den Bus zu verstopfen. Das ist bei Automatisierungs-und Fahrzeugbussen wie CAN absolut üblich und sinnvoll, denn der Zustand der Anlage ändert sich ja ständig und muss daher immer wieder aufs neue übertragen werden. Die richtige Antwort wurde schon gegeben, also keine weitere Diskussion nötig: Peter schrieb: > Lege dir einen Timer an
Was spricht gegen den IG (interactive generator), der das bequem übernimmt?
fishbone schrieb: > Was spricht gegen den IG (interactive generator), der das bequem > übernimmt? Vielleicht dass das kein CAPL ist und man da nicht automatisch programmatisch die Daten ändern kann?
Axel S. schrieb: > Man kann natürlich die gleiche Botschaft immer und immer wieder senden. > Das ergibt zwar i.d.R. keinen Sinn und hat den unangenehmen Nebeneffekt, > den Bus zu verstopfen. Aber wenn man das unbedingt will ... Der Fachbegriff dafür ist "zyklisch", engl. "cyclic.". Wie bereits oben geschrieben macht man das beim CAN indirekt über einen Timer und beim LIN direkt über die Scheduling-Tabelle.
Dr. Sommer schrieb: > Axel S. schrieb: >> Das ergibt zwar i.d.R. keinen Sinn und hat den unangenehmen Nebeneffekt, >> den Bus zu verstopfen. > > Das ist bei Automatisierungs-und Fahrzeugbussen wie CAN absolut üblich > und sinnvoll, denn der Zustand der Anlage ändert sich ja ständig und > muss daher immer wieder aufs neue übertragen werden. Klar. Ein neuer Zustand muß übertragen werden. Aber doch nicht immer der gleiche.
Axel S. schrieb: > Klar. Ein neuer Zustand muß übertragen werden. > Aber doch nicht immer der gleiche. Je nach Anwendung, durchaus auch das - z.B. "der Controller lebt noch und der Akku ist noch nicht in Übertemperatur und der Motor darf weiter laufen". Kommt die Nachricht nicht mehr an, ist der Controller abgestürzt und man sollte die Anlage abschalten weil so die Akku Temperatur Überwachung nicht mehr funktioniert!
Du kannst Botschaften über den sogenannten Interactionlayer zyklisch senden lassen. Dazu benötigst du aber eine dbc-File in der die entsprechenden Attribute definiert sind.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.