Eurotherm Modbus RS232 Control

Reads and writes information to Eurotherm controllers via Modbus RTU protocols.

2.7K descargas

Actualizado 31 Mar 2017

Ver licencia

Reads and writes information to Eurotherm controllers via Modbus RTU protocols. Currently only tested with serial RS232, but should work the same with RS485 if wired correctly. So far only tested with Eurotherm 2416 and 3216 temperature controllers but they all use the same language so it should be widely applicable. The code is well commented so you should be able to modify it easily. I've currently only implemented it using read and write n words (codes 3 and 16), but I'd be happy to implement the other features, such as fast status read etc. (code 7). This code is derived from that in CO2gui, but is implemented using the native MATLAB serial interface only.
To use it:
1. Generate the serial object (this one is done on COM7)
serialObject = tempobj(7);
2. Connect to the object:
3. Start sending commands!
tempobjcomm(commandType, serialObject, deviceAddress, parameterAddress, values)
e.g. to get the set temperature and the current temperature (process variable) in one go, do:
(assuming a default device address of 1)
data = tempobjcomm('read', serialObject, 1, 1, 2);

where data(1) is the current temperature and data(2) is the set temperature. Note that if your temperature controller has decimal places on the front panel, the outputs using 'read' will be scaled. E.g. if 1 decimal place, 24.2 will be returned as 242.

Higher resolution can be obtained using 'readfullres' instead, and also avoids any scaling issues.

To set a new set temperature:

tempobjcomm('write', serialObject, 1, 2, newTemperature)

'writefullres' can be used again if required for higher resolution. The same scaling issues apply as above for reading temperatures.


A deviceAddress can included in the initial serial object (see notes) for persistence' sake.

A host of sample settings files for Eurotherm controllers are included (with a device address of 1, but these can be easily modified).

Citar como

Geoffrey Akien (2023). Eurotherm Modbus RS232 Control (, MATLAB Central File Exchange. Recuperado .

Compatibilidad con la versión de MATLAB
Se creó con R14SP3
Compatible con cualquier versión
Compatibilidad con las plataformas
Windows macOS Linux
Más información sobre Modbus Communication en Help Center y MATLAB Answers.

Inspirado por: CO2gui - lab control and automation

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Versión Publicado Notas de la versión

Added onoff into the package

Bugfix: added missing files serialread, serialwrite, serialflush, isrunning

Bugfix: added the missing isserial into the package

Bugfix for tempobjcomm allowing NaN values through when using write/writefullres

Bugfix, now allows parameter addresses of 0 (formally not supported by Eurotherm, but other modbus devices e.g. Omron do use it).

Added attribution to CRC append (used to be there, not quite sure where it went).


tempobjcomm.m bugfix: isvaliddeviceaddress is now isvalidtempobjdeviceaddress.

Updated description.

Cleaned up commenting and some MLint messages (2012b), abstracted some functions for future use, and added capability to specify deviceAddress in tempobj. Also bundled a range of m.files for reading specific parameters.