Eine Variable auf einen Feldbus abbilden
Eine Variable kann auf einem Feldbus bereitgestellt werden, sodass eine SPS oder eine andere Steuerung sie lesen oder schreiben kann. So tauscht ein Flow Daten mit der übrigen Anlage aus, ohne dass sich seine Logik ändert: Der Flow liest und schreibt weiterhin eine gewöhnliche Variable, und die Zuordnung übernimmt den Rest.
Pro Variable können zwei Protokolle unabhängig voneinander aktiviert werden:
- Modbus/TCP — RobFlow arbeitet als Client gegenüber einem von Ihnen konfigurierten Modbus-Server.
- Profinet — die Variable wird im Profinet-Datenrahmen platziert, der mit der SPS ausgetauscht wird.
Beide werden pro Variable im Variablen-Menü eingeschaltet, und beide können an derselben Variable gleichzeitig aktiv sein.
Modbus/TCP
Bevor Sie etwas abbilden können, benötigen Sie eine Modbus/TCP-Verbindung — Host, Port und Unit-ID — konfiguriert unter Feldbus und Protokolle.
Pro Variable legen Sie dann fest:
| Einstellung | Bedeutung |
|---|---|
| Verbindung | Welche konfigurierte Modbus/TCP-Verbindung verwendet wird |
| Datentyp | In welchem Teil des Modbus-Adressraums die Variable liegt (siehe unten) |
| Registeradresse / Bitadresse | Wo in diesem Raum — eine Registeradresse für Registertypen, eine Bitadresse für Bittypen |
| Read-only (Modbus) | Alle Schreiboperationen für diese Variable überspringen |
Adressraum
Modbus teilt seinen Adressraum in vier Bereiche. Die Wahl bestimmt sowohl, was die Variable enthalten kann, als auch, ob RobFlow sie schreiben darf:
| Datentyp | Enthält | Schreibbar |
|---|---|---|
| Coil | Ein einzelnes Bit | Ja |
| Discrete input | Ein einzelnes Bit | Nein — durch das Protokoll nur lesbar |
| Holding register | Ein 16-Bit-Wort | Ja |
| Input register | Ein 16-Bit-Wort | Nein — durch das Protokoll nur lesbar |
Coils und Holding Register sind die schreibbaren Hälften, deshalb wird Read-only (Modbus) nur für diese beiden angeboten. Discrete Inputs und Input Register sind bereits im Protokoll selbst nur lesbar.
Eine als nur lesbar markierte Variable überspringt alle Schreiboperationen — RobFlow liest ihren Wert vom Server, schreibt aber nie einen Wert zurück.
Werte aktualisieren
Modbus-Werte werden zyklisch abgefragt. Das Variablen-Menü enthält die Aktion Refresh all Modbus Variable values, die ein sofortiges Lesen aller abgebildeten Variablen erzwingt — der schnellste Weg, die Verdrahtung bei der Inbetriebnahme zu prüfen.
Profinet
Die Profinet-Zuordnung platziert die Variable innerhalb des Datenrahmens, den Control Unit und SPS austauschen. Mehr als Profinet für die Variable einzuschalten ist nicht nötig — RobFlow ermittelt die Position im Rahmen selbst. Offset und Byte-Länge ergeben sich aus dem Typ der Variable und aus den bereits zugeordneten Variablen; es ist also nichts einzutragen, und zwei Variablen können sich nicht überlappen. Beide Werte werden im Variablen-Menü zur Referenz angezeigt — damit vergleichen Sie, wenn Sie den Rahmen auf der SPS-Seite auslesen. Die Länge je Typ finden Sie unter Profinet-Variablen.
Da die SPS-Seite byteweise mit der Roboterseite übereinstimmen muss, kann RobFlow die Typdefinition für die SPS aus derselben Zuordnung erzeugen: Das Variablen-Menü bietet Export Profinet UDT file, das eine UDT erzeugt, die Sie in das TIA Portal importieren — so verwenden beide Seiten dieselbe Definition.
Die zugeordneten Variablen dürfen eine Gesamtlänge von 256 Byte nicht überschreiten.
Für die Profinet-Integration gibt es ein eigenes Handbuch, einschließlich der Einrichtung im TIA Portal, des Funktionsbausteins und der Referenz der Datenfelder. Siehe die Profinet-Dokumentation.
Welches Protokoll wann
- Die SPS ist der Anlagenmaster und spricht ohnehin Profinet mit allem anderen → Profinet.
- Sie müssen mit einem bestimmten Gerät sprechen (Greifersteuerung, Scanner, HMI), das Modbus-Register bereitstellt → Modbus/TCP.
- Ein Flow muss direkt anhand eines Modbus-Werts verzweigen → die Modbus-TCP-Condition-Node und die Set-Modbus-TCP-Node arbeiten ganz ohne Variable direkt gegen eine Verbindung.
Beim Export eines Variablenbestands werden die Modbus-Verbindungen mitgeführt, der Zielroboter muss diese Hosts aber weiterhin erreichen können. Prüfen Sie nach dem Import auf einer anderen Control Unit die Verbindungen unter Feldbus und Protokolle, bevor Sie einen Flow starten.