Projekte – Auslesen der Logikeinheit

Ansicht von 15 Beiträgen – 136 bis 150 (von insgesamt 235)
  • Autor
    Beiträge
  • #69774
    Anonym
    Inaktiv

    Ich habe mir eine alte Impressa Ultra gekauft, die immer die Meldung bringt „Service nötig“. Stört eigentlich nicht, nervt nur ein bisschen. Nachdem ich diesen Thread gelesen, die Seite mit der Protokoll-Erklärung genossen und noch bei Github im Quellcode gestöbert habe, hat mich der Basteltrieb gepackt. Ich habe viel mit IR-Sender, USB zu RS232 und USB zu TTL-Adaptern rumprobiert, konnte der Maschine aber keine Reaktion entlocken. Schließlich habe ich auf dem Breadboard einen ATMega168 mit den nötigen Verbindungen verstöpselt, habe nach [url=http://expert-cm.ru/images/stories/shemy_tehnich/logik_impressa_500_chema.pdf]dieser Beschreibung[/url] Kabel direkt auf die entspechenen Prozessorpins des Logikprints gelötet. Dann den Arduino-Code in Bascom übersetzt und voila — die Maschine lässt sich per µC einschalten! (cheerful)

    Jetzt meine Frage: Wie ist die Syntax für den Befehl „WE:“ Es muss ja noch die Speicheradresse und der Wert übergeben werden. Diese Info habe ich nirgends gefunden. Ich gehe mal davon aus, daß in Adresse 15 eine Null geschrieben werden muß, um die Service-Meldung wegzubekommen….

    Hier noch der noch sehr rudimentäre aber funktionierende Bascom Code und ein Foto…
    [code]‘—————————————————————————————–
    ‚by hochsitzcola
    ‚—————————————————————————————–

    $regfile = „m168def.dat“ ‚ specify the used micro
    $crystal = 8000000 ‚ used crystal frequency
    $baud = 9600 ‚ use baud rate
    $hwstack = 100 ‚ default use 32 for the hardware stack
    $swstack = 100 ‚ default use 10 for the SW stack
    $framesize = 100 ‚ default use 40 for the frame space

    Dim I As Integer

    Dim B0 As Byte
    Dim B1 As Byte
    Dim B2 As Byte
    Dim B3 As Byte

    Dim A(7) As Byte
    A(1) = &H41 ‚Hex Code für A
    A(2) = &H4E ‚Hex Code für N
    A(3) = &H3A ‚Hex Code für :
    A(4) = &H30 ‚Hex Code für 0
    A(5) = &H31 ‚Hex Code für 1
    A(6) = &H0D ‚Hex Code für CR
    A(7) = &H0A ‚Hex Code für LF

    For I = 1 To 7
    B0 = 255
    B1 = 255
    B2 = 255
    B3 = 255

    B0.2 = A(i).0
    B0.5 = A(i).1
    B1.2 = A(i).2
    B1.5 = A(i).3
    B2.2 = A(i).4
    B2.5 = A(i).5
    B3.2 = A(i).6
    B3.5 = A(i).7

    Printbin B0
    Waitms 1
    Printbin B1
    Waitms 1
    Printbin B2
    Waitms 1
    Printbin B3
    Waitms 7

    Next I
    Do
    Loop
    End[/code]

    [attachment=48]IMG_20150321_205839.jpg[/attachment]

    Gruß
    hochsitzcola

    #66363
    Anonym
    Inaktiv

    Die Adresse wird folgendermaßen angesprochen:
    Schreiben:
    WE:YY,XXXX
    Lesen:
    RE:YY

    Wobei YY für die Adresse im EEPROM steht und XXXX für den zu schreiben Wert.
    Bei den größeren Maschinen, wie der IMPRESSA X7 (und vielen anderen „neueren“ Maschinen) sind die Adressen 00 bis FF möglich. Die möglichen Werte sind vom Adresstyp (Speicherzelle) des EEPROM abhängig.

    #66367
    Anonym
    Inaktiv

    Bei der JuraXS9 wird die Adresse sogar mit 2 Byte angegeben:

    WE:YYYY,XXXX
    RE:YYYY

    Der EEPROM Bereich geht hier aber max bis zur Adresse 03FF. Fragt man Adresse 0400 an, wird der gleiche Wert wie bei Adresse 0 ausgegeben. Es werden aso nur 10 Bit zur Adressierung benutzt, danach gibt es nen Überlauf.

    Hier schon mal die Speicherbereiche, bei denen keine 0 Zurückgegeben wird:

    0000 >> << 00F0 0180 >> << 0180 01A0 >> << 01F0 Leider hab ich bisher noch nicht herausgefunden, wie der Befehl RR: benutzt wird. Ich vermute, dass man damit an sich den Ram auslesen kann. Die XS9 antwortet aber nicht auf diese Anfragen...

    #69779
    Anonym
    Inaktiv

    Hm, danke für die Tipps. Ich habe jetzt versucht zu Lesen, es kommt aber immer nur eins zu eins der gesendete Befehl zurück. Das war schon beim Einschalten so, da dachte ich das gehört so, da ja die Maschine angegangen ist.
    Ich habe die verschiedensten Kombinationen ausprobiert, aber keine hat geklappt (what)
    A(1) = &H52 ‚Hex Code für R
    A(2) = &H45 ‚Hex Code für E
    A(3) = &H3A ‚Hex Code für :
    A(4) = &H31 ‚Hex Code für 1
    A(5) = &H35 ‚Hex Code für 5
    A(6) = &H0D ‚Hex Code für CR
    A(7) = &H0A ‚Hex Code für LF

    oder

    A(1) = &H52 ‚Hex Code für R
    A(2) = &H45 ‚Hex Code für E
    A(3) = &H3A ‚Hex Code für :
    A(4) = &H30 ‚Hex Code für 0
    A(5) = &H30 ‚Hex Code für 0
    A(6) = &H31 ‚Hex Code für 1
    A(7) = &H35 ‚Hex Code für 5
    A(8) = &H0D ‚Hex Code für CR
    A(9) = &H0A ‚Hex Code für LF

    Hat jemand eine Idee was ich falsch mache?
    Schreiben hat funktioniert, ich habe die Luft angehalten und WE:15,0001 gesendet, da war die Service-Meldung nach einmal aus- und einschalten weg! (biggrin)
    Gruß
    hochsitzcola

    #66368
    Anonym
    Inaktiv

    Also wenn immer 1:1 das zurück kommt, was du sendest (auch wenn du totalen Quatsch hinschickst), dann würde ich den Fehler irgendwo bei deinem Aufbau suchen. Also besteht da z.B. ein Kurzschluss zwischen RX und TX usw…

    Die Maschine sendet an sich nur was zurück, wenn sie den Befehl kennt. Empfängst du auch was, wenn die Jura gar nicht mit Strom versorgt ist?

    #66369
    Anonym
    Inaktiv

    Wenn die Maschine aus ist (Stecker raus), kommt auch keine Antwort. Den Aufbau habe ich schon zig-mal geprüft und keinen Fehler gefunden….

    Gruß
    hochsitzcola

    #66370
    Anonym
    Inaktiv

    Was verstehst Du unter aus?
    Wenn nicht der Netzstecker gezogen ist oder der Netzschalter (NICHT der Stand-By Schalter an der Front!!!) aus geschaltet wurde, antwortet die Machine IMMER. In JEDEM Fall. Du kannst sie ja auch über die Serielle Schnittstelle aufwecken!

    #66371
    Anonym
    Inaktiv

    Ich kann mich den bisherigen Hinweisen nur anschließen! @hochsitzkola Da ist irgendwas faul. Die Maschine antwortet dann, wenn sie einen Befehl erkennt. Also wenn AN:01 ankommt, dann geht die Maschine an (wacht aus dem Standby auf) und antwortet entsprechend. Wenn die Maschine nichts versteht, dann kommt auch nichts zurück.
    Warum überhaupt direkt auf dem Logikprint? Und warum da nicht einfach an die entsprechende serielle Schnittstelle / Service port? Oder anders gefragt: Hast du mal darüber probiert, ob dir die Maschine dann antwortet und entsprechend an oder aus geht etc?

    #66374
    Anonym
    Inaktiv

    Hi Oliver,

    ich habe mal eine prinzipielle Verständnisfrage: Sollten der Befehl RE:00 mit jeder Jura Maschine (in meinem Fall C5) funktionieren?
    Und dann noch eine Frage zu deinem Tool coffeemaker-communication-tool.ino: Sollte man nicht den gesendeten Befehl zurückbekommen, wenn man RX und TX am Arduino (MEGA2560) miteinander verbindet?

    #66375
    Anonym
    Inaktiv

    @bimmel: Ich persönlich kenne nur meine Jura Impressa S95, aber ich denke ja, da sollte eigentlich jede Maschine drauf antworten.
    Beschreib mir bitte mal genauer, wie du RX und TX verkabelt hast. Du hast doch nicht etwa den RX vom Mega an den TX vom Mega angeschlossen? ^^

    #66376
    Anonym
    Inaktiv

    Zumindest sollte da jede Maschine mit TOPtronic Steuerung drauf antworten.
    Ob es allerdings bei den GIGAs auch so ist, weiß ich nicht, die haben ja schon einige andere Komponenten. Da habe ich noch nie eine Steuerung von gesehen.

    #66377
    Anonym
    Inaktiv

    Ja, ich habe mich oben missverständlich ausgedrückt, weil wir bereits von einer Jura Impressa Ultra gesprochen haben. Ich meinte also alle Jura-Maschinen. @mathias

    #66378
    Anonym
    Inaktiv

    Nein, ich habe einfach Rx und Tx mit einem jumperwire kurzgeschlossen. Das sollte doch klappen oder?

    #66379
    Anonym
    Inaktiv

    Auch andere von EUGSTER/FRISMAG gebaute Maschinen verwenden deren Steuerungen.
    SIEMENS, KRUPS, BOSCH, FRANKE, BREMER und diverse andere. Aber: nicht alle Maschinen der vorgenannten Hersteller sind von EUGSTER/FRISMAG und nicht alle EUGSTER/FRISMAG Maschinen verwenden TOPtronic Steuerungen.

    #66380
    Anonym
    Inaktiv

    Nein, dann kriegst du nur dein Echo 😉 Du musst RX vom Arduino mit TX von der Maschine verbinden und umgekehrt.

Ansicht von 15 Beiträgen – 136 bis 150 (von insgesamt 235)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.