# ARBURG SELOGICA (serial) Reads **ARBURG ALLROUNDER** injection moulding machines with **SELOGICA** 3.09x/4.x controls via the serial host computer interface ("Leitrechner-Schnittstelle"). The protocol stack is Siemens **3964R** on the serial line (RS-232, 8 data bits, even parity, 1 stop bit), S5 telegrams on top, and a MAP 2.1 MMFS subset as application layer. Every poll cycle requests **one complete machine status** and extracts the configured fields from it — any number of items costs exactly one status transaction per cycle. | | | |---|---| | Connection string | `arburg.selogica://PORT[:BAUD]` — e.g. `arburg.selogica:///dev/ttyUSB0` or `arburg.selogica://COM3:9600` | | Reads | ✔ (poll) | | Writes | — | | Subscriptions | — | | Browsing | ✔ (static field list) | ## Device options | Key | Type | Default | Meaning | |---|---|---|---| | `baudrate` | int | `9600` | Baud rate; alternative to the `:BAUD` suffix. SELOGICA uses 9600, older controls 1200/2400/4800. | | `timeSync` | boolean | `false` | Set date/time of the machine on every connect. | | `qvz` | int | `550` | Acknowledge delay time (Quittungsverzugszeit) in ms. | | `zvz` | int | `220` | Character delay time (Zeichenverzugszeit) in ms. | ## Address format The (case-insensitive) name of a machine status field: - **Operating data:** `betriebsart` / `betriebsarttext`, `ablaufstatus` / `ablaufstatustext`, `auftragsstatus(text)`, `produziert` (Boolean, true while parts are produced), `programmnr1/2`, `auftragsnr1/2`, `werkzeugbezeichner1/2`, `kavitaet`, `stueckzahlsoll`, `stueckzahlist`, `stueckzahlschlecht`, `zykluszeit` (ms), `mittlerezykluszeit` (ms), `bdecode`, `usercode`, `alarmnr1/2`, `alarmtext`, … - **Process data** of the last completed cycle, per active cylinder (prefix `zylinder1.` / `zylinder2.`): `einspritzzeit` (ms), `dosierzeit` (ms), `zylindertemperatur1`–`8` (°C), `werkzeugtemperatur1/2` (°C), `massevolumen` (ccm), `innendruck1` (bar), `hydraulikdruckumschalten` (bar), `integralhydraulikdruck`, … - **Automation data** (prefix `automation.`): `leitrechnerkontrolle`, `platzcodierungwkz1`, … The full list is offered by the address browser of the [management UI](../management-ui.md). Temperatures are transferred as 1/10 °C and scaled to °C by the adapter. Fields of sections not contained in the current status (e.g. `zylinder2.*` with only cylinder 1 active) are skipped for that cycle. Unknown parts of the status can be read with a raw address `RAW::SECTION::OFFSET::TYPE[::SCALE]`. :::caution Per the ARBURG specification, the process data values are invalid while the machine is in the *Umrüsten* (setup) operating mode. ::: ## Example configuration ```json { "devices": [ { "objectId": "arburg1", "name": "Allrounder 470", "connectionString": "arburg.selogica:///dev/ttyUSB0:9600", "interval": 5000, "enabled": true, "options": { "qvz": 550, "zvz": 220 }, "extraOptions": { "host": "broker:1883", "clientId": "openconnect" } } ], "items": [ { "objectId": "cycletime", "DeviceID": { "objectId": "arburg1" }, "address": "zykluszeit", "label": "Cycle time", "type": "Number", "unit": "ms", "source": { "tag": "moulding/allrounder470" }, "enabled": true, "onChange": false, "extraOptions": {} }, { "objectId": "melt-temp", "DeviceID": { "objectId": "arburg1" }, "address": "zylinder1.zylindertemperatur1", "label": "Cylinder temperature zone 1", "type": "Number", "unit": "°C", "source": { "tag": "moulding/allrounder470" }, "enabled": true, "onChange": true, "extraOptions": {} } ] } ```