Hardware Interfaces
Summary of the device-level communication protocols used by Jope.SMB. Full register maps and command reference are in the Hardware Manuals (internal repo, coming to this site).
info
Jope.SMB abstracts every device behind an interface (IPump, IValve,
IDetector, ISpectrometer). Swapping a device model only requires a
new driver implementation — no application-layer change.
Device Inventory
| Device | Model | Role | Transport |
|---|---|---|---|
| Raman Spectrometer | RS2000 (785 nm, dual probe, 2048 wavenumbers) | Concentration soft-sensor input | Modbus RS485 → Ethernet gateway |
| Feed / Eluent Pump | NP7000 (漢邦 high-pressure) | Primary solvent delivery | Serial ASCII 16-byte @ 9600 |
| Metering Pump | EPP (依利特) | Auxiliary metering | Serial Binary 0x88 odd-parity @ 9600 |
| Third-party Pump | P3700 | Alternative supplier | Serial Binary 0xFF @ 9600 |
| UV Detector | NU3000 (漢邦) | Auxiliary absorbance | Serial ASCII 16-byte @ 9600 |
| Multi-wavelength UV | UV1000D | Multi-wavelength absorbance | Serial ASCII (dual / tri-wave) @ 9600 |
| Rotary Valve | SKS S3612 (12-port) | Inlet / outlet zone switching | Serial ASCII 12-char @ 19200 |
| Switching Valve | SKS S3203 (3-port) | Feed routing | Serial ASCII 4-char @ 9600 |
| Pneumatic Valve | APAX ApaxValve (×6) | On/off gas or liquid | APAX module |
Raman Spectrometer · RS2000
- Physical: 785 nm laser, 500 mW, 10 cm⁻¹ resolution, 200-3200 cm⁻¹ range, 2048 channels, dual probe (PR100 × 2)
- Connection: Modbus RS485 → RS232 / RJ45 gateway
- Data: One spectrum per probe per scan, integration time configurable (default 1000 ms)
- Integration: Scheduled poll every 3 s; each scan emits two spectrum readings (one per probe), each tagged with
channel: 1orchannel: 2 - Multi-channel strategy: Each channel gets its own
predictrequest (see ZMQ Protocol) — this keeps Inference Server stateless and avoids batching complexity
Pumps
NP7000 (漢邦 high-pressure)
- Serial ASCII, 16-byte fixed frames
- Commands:
SET_FLOW,START,STOP,STATUS - Polling: 1 Hz for flow + pressure telemetry
EPP (依利特)
- Serial binary protocol with
0x88start byte and odd parity - Commands include checksum byte
- Slightly higher accuracy for low-flow metering
P3700
- Serial binary protocol with
0xFFstart byte - Alternative supplier; used when NP7000 is not available
UV Detectors
NU3000
- Serial ASCII 16-byte
- Single wavelength absorbance
- Polling: 1 Hz
UV1000D
- Serial ASCII, dual or tri-wavelength variant
- 16-byte frames per wavelength
- Used when multi-wavelength cross-check is needed
Valves
SKS S3612 (Rotary, 12-port)
- Serial ASCII 12-char frames
- Commands:
GOTO_PORT,READ_POS,HOME - 19200 baud, higher than other devices
- Critical for SMB zone switching — position error triggers batch hold
SKS S3203 (Switching, 3-port)
- Serial ASCII 4-char frames (
A1,A2,A3,ST) - Used for feed routing at inlet
APAX Pneumatic (PV301-PV306)
- APAX I/O module (discrete output for coil, discrete input for limit switch)
- On/off control with 100 ms debounce
- Used for gas/liquid isolation
Driver Integration Pattern
All drivers implement the common state machine (see DeviceConnectionStateMachine in Jope.SMB.Core):
Each device registers its own driver with the DI container:
sc.AddSingleton<IPump>(sp => new NP7000PumpDriver(portName: "COM3", baud: 9600));
sc.AddSingleton<IDetector>(sp => new NU3000Detector(portName: "COM4"));
Validation
All device drivers have validated test harnesses (Jope.SMB.Core.Tests) using a protocol simulator for each device model. The simulator is also used by QA for end-to-end tests without requiring real hardware.