Mitsubishi SPS mit TCP-Verbindung?

Geisterkarle

Level-2
Beiträge
126
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe hier eine Anlage mit Mitsubishi SPS. Ich bin völliger Anfänger in Mitsubishi-Programmierung, aber ich habe es tatsächlich geschafft die Anlage zum laufen zu bekommen und funktioniert soweit alles.
Der "letzte Punkt", der noch offen ist, ist das ein Leitsystem mir per TCP (ich habe an der SPS eine QJ71E71-100 Karte) Befehle sendet, die ich beantworten muss.
Also so Art ich bekomme "STATUS?" und Antworte mit nem Wert von einem Analogsensor oder sowas.
Aber soweit komme ich erst gar nicht. Ich finde aktuell nicht heraus, wie ich überhaupt eine Verbindung zu einem anderen System aufbaue!

Was ich so gefunden habe, ist was "ich" möchte ein senden/empfangen mit Festen Puffern. Und irgendwie muss man dafür in spezielle Speicherpufferbereiche zugreifen, es werden irgendwelche Devices Namen wie G und K verwendet, wo ich keine Ahnung habe, was die machen. Was ich zugegeben einfach übernehmen kann und halt mal die Finger kreuze.
Aber so _die_ Funktion dafür soll ein BUFSND bzw. BUFRCV sein. Wenn ich das "doof" in mein Programm schreibe, dann meckert der Compiler, dass er zum einen das Label BUFSND nicht kennt. Aber auch, dass es einen Fehler in der Deklaration eines Funktionsbausteins gibt. Vermutlich deshalb ist in den Beispielen
(z.B. hier: https://docs.devicewise.com/Content...-using-the-GxWorks-configuration-software.htm)
was von ZP.BUFSND geschrieben.
Aber als was muss ich denn "ZP" deklarieren? Mal abgesehen davon, dass ich anscheinend zu doof bin, eine "Referenz" zu finden, was überhaupt die Übergabeparameter an diese Funktion(en) sind?

Um es mal auf gut Englisch zu sagen: I'm lost!
Keine Ahnung, was ich machen muss.
Hat mir irgendwer ein funktionierendes Codebeispiel, gute Doku, die mir was erklärt, was ich hier tue oder sonstwelche Tipps?
Würde mich freuen!

grüße!
 
Hi,

ohne jetzt schon die fertige Lösung zu haben.

Kannst Du die ASCII Strings genauer hier beschreiben, die Du vom Leitsystem bekommst? Dann kann ich mal schauen nach einem
SPS Funktionsbaustein oder Code Beispiel, der die Strings im Receive Buffer mit BUFRCV verarbeitet. Du programmierst in GX Works 2 oder
GX Developer?
Bleiben wir beim Beispiel. Was kommt z.B. für eine ASCII Stringanfrage für z.B. "Sensor123" Monitorwert ? Und wie soll die Antwort von der SPS dann genau lauten? Auch wieder ASCII String Antwort? Beispiel "0000.00 mm" ... Mit oder ohne Einheit?

Off Topic ...
Aber vielleicht brauchst Du das ASCII Protokoll vom Leitsystem gar nicht "von Hand" programmieren. Normalerweise sind die TCP Streams von
Leitsystemen auch nicht im TCP Body mit ASCII codiert, um die Treiber schneller zu machen, aber das nur am Rande.
Hat das Leitsystem vielleicht einen fertigen Mitsubishi Treiber? Sollten eigentlich alle "Großen" wie WinCC etc. haben. Falls ja dann schau mal nach 1. Mitsubishi 2. Q Series Treiber 3. Im Detail nach "MC Protokoll" mit 4E Frame , 1E Frame oder SLMP.
So oder so ähnlich könnte das dann im Detail bei einer Q Serie mit QJ71E71-100 heißen.

Was als Brücke vielleicht auch helfen könnte, wenn kein Mitsubishi Treiber verfügbar ist, wäre ein Modbus TCP Treiber vom Leitsystem. Da kann ich
mal nach einem FB schauen um aus dem QJ71E71-100 Modbus TCP zu machen.

Oder ich meine mich auch mal erinnern zu können, das jemand das Siemens S7 Protokoll RFC 1006 in Teilen mit einer Mitsubishi und QJ71E71-100 nachgebildet hat. :unsure:

Viele Grüße
Heiko
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich muss verschiedene Strings bearbeiten.
z.B. bekomme ich eine Statusabfrage "SYST:STATUS?" und Antworte mit "STANDBY" oder sowas. Aber ja, auch Werte von Analogsensoren können abgefragt werden. Einheiten brauch ich da allerdings nicht; sollte also hoffentlich mit einem *_TO_STRING() durchkommen.

Ich arbeite mit GX Works2 (alte CPU...)

Würde gerne BUFRCV benutzen, aber wie gesagt würde mich mal interessieren, wo in diesen "ZP.BUFRCV" Beispielen das ZP herkommt? Ist das irgendeine Systemfunktion? Denn irgendwie will mein Compiler das Ding nicht.
Oder geht das nur in KOP, wie alle Beispiele? Arbeite eigentlich in ST.

Habe auf jeden Fall gute Unterstützung auch vom Kunde bekommen, der mir über einen internen Programmierer einiges an Dokumenten zukommen gelassen hat. Muss ich mich mal etwas einarbeiten... aber falls da noch nette Bausteine vorhanden sind, immer gerne gesehen! Sofern man die irgendwie zukommen lassen kann. Habe festgestellt Mitsubishi-Programmarchive sind unglaublich gefährlich und mein Firmenvirenscanner schmeisst da immer alles weg...
 
Zurück
Oben