# 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": {}
}
]
}
```