# devices.horst:HTMC11


Instrument class for the Horst HTMC11 bakeout controller.


Usage

``` python
devices.horst:HTMC11(
    portname,
    slaveaddress,
    baudrate=115200,
    request_delay=0.02,
    write_delay=0.1,
    startup_delay=0.5,
)
```


connection is made via a RS485 serial line which uses the Modbus RTU protocol.


## Attributes

| Name | Description |
|----|----|
| [actual_output_ratio](#actual_output_ratio) | Get the actual output ratio. |
| [current_setpoint](#current_setpoint) | Get the current setpoint. |
| [cycle_time](#cycle_time) | Get the cycle time. |
| [derivative_time](#derivative_time) | Get the derivative time. |
| [heater_current](#heater_current) | Get the heater current. |
| [integral_time](#integral_time) | Get the integral time. |
| [manual_mode](#manual_mode) | Get the manual mode. |
| [manual_output_ratio](#manual_output_ratio) | Get the manual output ratio. |
| [proportional_band](#proportional_band) | Get the proportional band. |
| [setpoint1](#setpoint1) | Get the first setpoint. |
| [temperature](#temperature) | Get the current temperature. |
| [temperature2](#temperature2) | Get the second temperature reading. |

------------------------------------------------------------------------


### actual_output_ratio


Get the actual output ratio.


`actual_output_ratio: int`


------------------------------------------------------------------------


### current_setpoint


Get the current setpoint.


`current_setpoint: int`


------------------------------------------------------------------------


### cycle_time


Get the cycle time.


`cycle_time: float`


------------------------------------------------------------------------


### derivative_time


Get the derivative time.


`derivative_time: int`


------------------------------------------------------------------------


### heater_current


Get the heater current.


`heater_current: float`


------------------------------------------------------------------------


### integral_time


Get the integral time.


`integral_time: int`


------------------------------------------------------------------------


### manual_mode


Get the manual mode.


`manual_mode: HorstManualMode`


------------------------------------------------------------------------


### manual_output_ratio


Get the manual output ratio.


`manual_output_ratio: int`


------------------------------------------------------------------------


### proportional_band


Get the proportional band.


`proportional_band: float`


------------------------------------------------------------------------


### setpoint1


Get the first setpoint.


`setpoint1: int`


------------------------------------------------------------------------


### temperature


Get the current temperature.


`temperature: float`


------------------------------------------------------------------------


### temperature2


Get the second temperature reading.


`temperature2: int`


## Methods

| Name | Description |
|----|----|
| [__init__()](#__init__) | Initialize Horst HTMC11 bakeout controller. |
| [read_register()](#read_register) | Read a register after observing the controller request delay. |
| [write_register()](#write_register) | Write to a Modbus register using functioncode 6. |

------------------------------------------------------------------------


### \_\_init\_\_()


Initialize Horst HTMC11 bakeout controller.


Usage

``` python
__init__(
    portname,
    slaveaddress,
    baudrate=115200,
    request_delay=0.02,
    write_delay=0.1,
    startup_delay=0.5,
)
```


#### Parameters


`portname: str`  
Name of the serial port to connect to

`slaveaddress: int`  
Modbus slave address of the device

`baudrate: int = ``115200`  
Serial communication speed in baud. Default is 115200

`request_delay: float = ``0.02`  
Minimum time in seconds between Modbus requests. Default is 0.02.

`write_delay: float = ``0.1`  
Minimum time in seconds between Modbus writes. Default is 0.1.

`startup_delay: float = ``0.5`  
Time in seconds to wait after opening the serial connection before the first register request. Default is 0.5.


------------------------------------------------------------------------


### read_register()


Read a register after observing the controller request delay.


Usage

``` python
read_register(
    *args,
    **kwargs,
)
```


------------------------------------------------------------------------


### write_register()


Write to a Modbus register using functioncode 6.


Usage

``` python
write_register(
    *args,
    **kwargs,
)
```


#### Parameters


`*args: tuple`  
Variable length argument list passed to superclass

`**kwargs: dict`  
Arbitrary keyword arguments passed to superclass


#### Returns


`None`
