Suche Software-Programmierer um Kaffeeröster zu steuern / Siematic S7-1200 / Ethernet

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

dann muß man das Programm aus der SPS (1200) auslesen. E/A nach kommentieren.

Programm erweitern mit einer Schrittkette (TIA Portal).
Die einzelnen Werte für die Schrittkette, Röstmodus etc über ein Panel oder Remote auf einem PC vorgeben.

Für die PC Variante kannst Du bei INSEVIS die mit einer kostenfreien Software Bilder erstellen und Remote mit
der 1200 kommunizieren.
 
@Ing_Lupo

das andere Software-Tool kann das doch auch ohne SPS Änderung - noch dazu wird er wohl garantiert nicht das Herstellerprogramm ändern und damit jegliche Garantie verlieren

@Morris Beume

Wir warten immer noch auf Wiresharklog und Details (Typ, Hersteller) zu den Geräten/Software :)
 
Hi,
mal abgesehen davon das da doch ein wenig Wissen hinter der verwendeten Software stecken muß, ganz gleich von welcher Qualität die ist - vor allem braucht man einen Überblick was alles gegenwärtig in und um die SPS herum passiert. Sonst wird das nix. Definitiv. Das macht Dir keiner für einen Kasten Bier bei dem Aufwand.
Für mich klingt das nach von null an neuschreiben. Alles. Und nein, ich werde das definitiv nicht tun.

Gruß
Mario
 
Hallo,

hier der Link zu Google Drive, auf dem ich 3 Protokoll-Dateien von Wireshark hinterlegt habe, die Dateinamen erklären die geänderten Parameter:

https://drive.google.com/open?id=0BwEA72T92AjlUFVobVRpSFBBQ1k

Der Röster ist ein Giesen W15A mit Röstprofilsteuerung:

http://de-de.giesencoffeeroasters.eu/kaffee-roester/giesen-w15/

Giesen Software:

Anhang anzeigen 35565

Artisan Software:

https://github.com/artisan-roaster-scope/artisan/blob/master/README.md

@Mario:

Für eine funktionierende Lösung bin ich gern bereit zu bezahlen, von einem Kasten Bier war nicht die Rede. Nicht umsonst habe ich in der Kategorie Suche-Biete geposted...

Aber warum will man die ganze SPS umschreiben, wenn ich doch exakt die gleichen Befehle an die S7 senden möchte, wie ich es jetzt auch mit der Original-Software mache.

Darum doch auch der Weg über die Protokollierung des Netzwerk-Verkehrs. Sollte die Kommunikation verschlüsselt sein, wird es sehr schwierig und ohne die Kooperation des Herstellers vermutlich sogar unmöglich, das ist mir vollends bewusst.

Vielleicht findet sich hier ja Jemand, der es ebenso wie ich gewohnt ist, nach Lösungen zu suchen anstatt nur Unmöglichkeiten zu sehen... ;-)

Grüße

Morris
 
Na das wird dann ja anständige Sisyphusarbeit...

Dein Wert "Brenner" steht in DB2.DBW14...

Wenn die HMI schon direkt in DB2 steht, würde mich mal ein AG-Abzug interessieren, wie "groß" das Programm eigentlich wirklich ist ;)

MfG Fabsi
 
Zuviel Werbung?
-> Hier kostenlos registrieren

geht bei mir nicht

Ich als alte passionierter Protokoll-Analyse würde erstmal ein wenig die Logs durchstöbern soweit wie es geht verstehen
und dann eine PLC-Kommunikation-Simulation machen und dafür sorgen das die Giesen-Software mit meinem Kommunikations-Fake sprechen kann(will)
und alle Features (Zugriffe) der Giesen-Software erkannt und "sinnvoll" beantwortet werden - der Kommunikations-Fake hört sich nur aufwendig an wenn man nicht eh schon eine S7-Classic-Kommunikation in C++/Boots.Asio rumliegen hat :)
 
Hi,
nochmal, das was gefordert ist kann die SPS selbst sehr gut, im Grunde ist das nichts weiter als eine Rezeptverwaltung. Hier wird unter Umständen etwas hinzugefrickelt was absolut nicht sein muß. Kostet Geld und wird relativ wahrscheinlich genauso irgendwo nicht vernünftig gehen.
Wie gesagt, schauen was die SPS können muß, das ganze, sofern keine Quellen da, angepaßt neuschreiben und prüfen ob der Webserver vielleicht sogar mit der notwendigen Funktionalität ausreichen würde. Vorteil ist die Plattformunabhängigkeit, eventuell was in Richtung Excel Im/Export. Letzteres, also die Excel Geschichte, habe ich aber noch nicht probiert.

Gruß
Mario
 
@mariob

ich glaube du verstehst das ganze nicht - es ist eine Industrie-Röstgerät für Kaffe - ein geschlossenes käufliches Produkt das Morris Beume gerne umfangreicher nutzen will

-er WILL nicht die fest in das Gerät verbaute SPS verändern
-das SPS-Programm bekommt er nicht weil es ein Standard-Produkt von der Stange ist und der Hersteller da nichts rausgibt - hat er schon geschrieben
-das Protokoll bekommt er auch nicht da der Hersteller da nichts rausgibt - hat er auch schon geschrieben
-wenn er das SPS-Programm eigenwillig ändert erlischt die Garantie definitiv sofort und gnadenlos - bei einer Software von aussen wird es wohl nicht möglich sein das von Hersteller-Seite zu erkennen
-die Giesen-eigene Software nutzt auch nur die S7-Variablen lese/schreibe Schnittstelle - warum also tiefer rein?
-am liebsten würde er die andere Fremdsoftware laufen lassen - die hatte nettere Features - und die will er sicher nicht in der SPS nachprogrammieren
-wenn er das Protokoll versteht kann man das einfach in die andere Software einbauen und fertig

das kann man in der SPS, C#, C++, Java oder sonstwas - schnell und einfach - programmieren - wenn man kann - nur die Analyse des Protokolls dauert ein wenig
und es könnte sich ja auch mit der nächsten Firmware ändern

@Morris Beume

die Ausgabe von meinem Analyse-Tool zeigt folgenden Variablen-Zugriffe über alle pcaps
sonst wird in den Protkollen absolut nichts gemacht - also nur read/write von 5 Variablen - für diese 3 Fälle

Code:
zyklisch wohl eine Ueberwachung des Ist-Zustandes:
    ReadItem Item(ePLC_TypeBYTE,count=88,db_nr=2,area=ePLC_AreaDATA,adress=byte(0)) <- hier wird ein 88-Byte-Blob gelesen?
diese werden immer zusammen geschrieben:
    WriteItem Item(ePLC_TypeBYTE,count=2,db_nr=2,area=ePLC_AreaDATA,adress=byte(10))<- wird immer 240 geschrieben
    WriteItem Item(ePLC_TypeBYTE,count=2,db_nr=2,area=ePLC_AreaDATA,adress=byte(14))<- Brenner (wie schon von Fabpicard gemeldet)
    WriteItem Item(ePLC_TypeBYTE,count=2,db_nr=2,area=ePLC_AreaDATA,adress=byte(16))<- Airflow
    WriteItem Item(ePLC_TypeBYTE,count=2,db_nr=2,area=ePLC_AreaDATA,adress=byte(18)<- Trommel

Herausforderung:
-vollständigere Wireshark-Logs(Connect->Arbeit->Disconnect), mehr Logs - mit allen Features?
-was ist der 88-Byte Blob der gelesen wird - Kennung/Firmware/irgendwas verschluesseltes?
-gibt es schon ein eingebautes Rezept in der SPS und man stellt nur die Startwerte ein?
-kleine Kommunikations-Simulation und damit die Giesen-Software testen
-was sind die min/max-Werte-Bereiche von Airflow,Brenner,Trommel?
-gibt es noch mehr Funktionen in der Giesen-Software?

klar ist das nicht ganz einfach - aber so extrem schwierig oder unmöglich ist es meistens nicht - dieser Fall sieht sogar releativ einfach aus - und es gibt ja hier auch Leute die mit sowas ihr Geld verdienen :)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
@LLMN, was Du schreibst ist mir schon klar. Ich habe auch nichts dagegen wenn sich jemand damit abmühen möchte, im Gegenteil. Was ich aber sehe ist eine Blackbox, von der man - genau wie Du schreibst keinerlei Kenntnis über deren Funktionsumfang hat. Bis hierhin ist alles gut.
Nun müßte man alle denkbaren Szenarien durchspielen plus der eigentlich unmöglichen um genau diesen Funktionsumfang herauszubekommen. Und das geht über eine Forenkommunikation relativ schlecht. Dazu müßte man sich ein paar Tage/Wochen hinsetzen und probieren. In diesem Zeitrahmen hat man aber auch eine sauber programmierte und dokumentierte Lösung fertig. Ohne hinterher Überraschungen zu haben. Thats all :).
Edit: Und nochwas nicht unwichtiges - wenn der Kollege die Software selbst strickt und hier Fragen stellt ist das ja auch voll ok. Dann ist er für die Fehler die er macht auch selbst verantwortlich.
Wenn ich jemanden was machen lasse und dafür Geld bezahle und es ist eine Funktionalität definiert, und es kommtin diesem Fall hier aus Unkenntnis der Kommuikation (kein böser Wille) zu mehr oder weniger großen Schäden dann ->:ROFLMAO:. Also für die Zaungäste :).

Gruß
Mario
 
Zuletzt bearbeitet:
Dazu müßte man sich ein paar Tage/Wochen hinsetzen und probieren.

Das ist klar und denke aber auch gut machbar ohne Wochen zu investieren

In diesem Zeitrahmen hat man aber auch eine sauber programmierte und dokumentierte Lösung fertig. Ohne hinterher Überraschungen zu haben. Thats all

Aber er darf und kann (wegen Garantie) nicht an der SPS arbeiten - und will auch am liebsten die andere Software einsetzen - also muss er das Protokoll analysieren oder es eben ganz lassen. Thats all :)
 
Hi,
naja, ich bin verheiratet, da überhört oder überlist man auch mal was :ROFLMAO:. Das mit der Garantie hatte ich so nicht auf dem Schirm. Eigentlich ist das ja noch schlimmer. So wie ich das verstanden habe ist ja die Funktionalität eher ein wenig an der Praxis vorbei. Das Problem ist nur das es den Hersteller wahrscheinlich nicht interessiert.
Nur wenn derselbe dann noch mitkriegt was da passieren soll oder passiert ist und man hat Schaden ->:ROFLMAO:. Naja, nicht meine Büchse, Hauptsache das Ding (Gasbrenner? :ROFLMAO:) sprengt keinen in die Luft. Der Rest ist mir egal, mein Weg wäre der vorgeschlagene, die Frage ist was wäre die Alternative bei etwas neuem gewesen.

Gruß
Mario
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Mario,

sämtliche Sichheitsschaltungen des Rösters bleiben unangetatest, daher die doppelte Temperaturauslesung.


Bei meinem Sonos-System habe ich ebenfalls nur den Netzwerkverkehr abgefangen und die gefundenen Befehle in die Hausautomation übertragen und es funktioniert hervorragend, ohne die detailierte Funktionsweise des Sonos-Sytems zu kennen.

Daher auch meine Vorgehensweise...

Grüße

Morris
 
auf jeden Fall nötig wäre ein vollständiges Log (vom Connect, Rösten, Disconnect) mit allem was die Giesen-Software hergibt und zwischen jeder Funktion ein wenig laufen lassen damit auch ein paar Daten zusammenkommen
 
da hab ich ja glatt noch einen Ausgabe-Fehler in meinem Analyse-Tool gefunden - danke Morris fuer die Daten :)

Was macht denn dein Analyse-Tool schönes? ;-)

Ich wollte eine kleine Statistik schon mal bei Wireshark selber einbauen. Z.Zt. habe ich noch ein kleines Python Skript welches per tshark so ein paar Informationen aus den Logfiles extrahiert.
Bei der hier hochgeladenen Datei dann sowas wie:
Code:
LESEND
 Anzahl:  53 - Bereich: DB2.DBX0.0 BYTE 88
SCHREIBEND
 Anzahl:   2 - Bereich: DB2.DBX14.0 BYTE 2
 Anzahl:   2 - Bereich: DB2.DBX16.0 BYTE 2
 Anzahl:   2 - Bereich: DB2.DBX10.0 BYTE 2
 Anzahl:   2 - Bereich: DB2.DBX18.0 BYTE 2
 
Zurück
Oben