Daemon for Dwyer 16b temperature controller with support for ramping. Note that this daemon assumes ModBus RTU.



The dwyer-16b daemon can be installed using the following package managers:



The dwyer-16b daemon is composed of the following traits:



The dwyer-16b daemon has been tested with the following hardware:



Example configuration files.

baud_rate (int)
from uses-uart

byte_size (int)
Byte size of your instrument.

enable (boolean) default: True
Disable this daemon. The kind entry-point will not attempt to start this daemon.
from is-daemon

limits (array) default: [-inf, inf]
Configuration limits are strictly optional.
from has-limits

log_level ({'name': 'level', 'symbols': ['debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency'], 'type': 'enum'}) default: info
Set daemon log-level.
from is-daemon

log_to_file (boolean) default: False
Optionally force logging to a file.
from is-daemon

make (['null', 'string']) default: None
from is-daemon

modbus_address (int) default: 1
Unique address in the modbus network.

modbus_handle_echo (boolean) default: True
Configure echo handling.

model (['null', 'string']) default: None
from is-daemon

out_of_limits (enum) default: closest
Control behavior of daemon when set_position is given a value outside of limits.
from has-limits

parity ({'name': 'parity', 'symbols': ['even', 'odd', 'none'], 'type': 'enum'}) default: none
Modbus parity.

port (int)
TCP port for daemon to occupy.
from is-daemon

serial (['null', 'string']) default: None
Serial number for the particular device represented by the daemon
from is-daemon

serial_port (string)
from uses-uart

stop_bits ({'name': 'stop_bits', 'symbols': ['one', 'one_and_half', 'two'], 'type': 'enum'}) default: one
Number of stop bits.


The dwyer-16b daemon will provide the following state information:

derivative_constant (double)
Derivative constant. Note that this daemon forces controller to only use PID profile zero.

destination (double)
from has-position

hw_limits (array)
from has-limits

integral_constant (double)
Integral constant. Note that this daemon forces controller to only use PID profile zero.

integral_offset (double)
Integral offset. Correction value for systems that tend to ring. Note that this daemon forces controller to only use PID profile zero. Units percentage

position (double)
from has-position

proportional_constant (double)
Proportional constant. Note that this daemon forces controller to only use PID profile zero.

ramp_time (double)
Ramp time, in minutes.

temperature_regulation_value (double)
Current output duty cycle as a percentage.


The dwyer-16b daemon will expose the following public messages:

busy ➜ boolean
Returns true if daemon is currently busy.
from is-daemon

direct_serial_write ➜ null
Expose direct access to the serial port to clients. This should not be encouraged for normal use, but may be very important for debugging. If a device is expected to return data, it should be logged at the INFO level, not returned to the client. This is done to allow long tasks to be run asynchronously, and to explicitly discourage use of this method except when debugging. Setting `busy` to true is encouraged, but individual daemon writers should consider their own use case.
from uses-serial

message (bytes)

get_config ➜ string
Full configuration for the individual daemon as defined in the TOML file. This includes defaults and shared settings not directly specified in the daemon-specific TOML table.
from is-daemon

get_config_filepath ➜ string
String representing the absolute filepath of the configuration file on the host machine.
from is-daemon

get_derivative_constant ➜ double

get_destination ➜ double
Get current daemon destination.
from has-position

get_integral_constant ➜ double

get_integral_offset ➜ double

get_limits ➜ {'items': 'double', 'type': 'array'}
Get daemon limits.Limits will be the intersection of config limits and driver limits (when appliciable).
from has-limits

get_output_1_duty ➜ double
Current output duty cycle as a percentage.

get_output_2_duty ➜ double
Current output duty cycle as a percentage.

get_position ➜ double
Get current daemon position.
from has-position

get_proportional_constant ➜ double

get_ramp_time ➜ double
Ramp time, in minutes.

get_ramp_time_limits ➜ {'items': 'double', 'type': 'array'}
Ramp time limits in minutes.

get_ramp_time_units ➜ string
Ramp time units.

get_state ➜ string
Get version of the running daemon
from is-daemon

get_units ➜ ['null', 'string']
Get units of daemon. These units apply to the position and destination properties.
from has-position

id ➜ {'type': 'map', 'values': ['null', 'string']}
JSON object with information to identify the daemon, including name, kind, make, model, serial.
from is-daemon

in_limits ➜ boolean
Check if a given position is within daemon limits.
from has-limits

position (double)

set_derivative_constant ➜ null

derivative (double)

set_integral_constant ➜ null

integral (double)

set_integral_offset ➜ null

integral_offset (double)

set_position ➜ null
Give the daemon a new destination, and begin motion towards that destination.
from has-position

position (double)

set_proportional_constant ➜ null

proportional (double)

set_ramp_time ➜ null
Ramp time, in minutes. Set to zero to disable ramping.

ramp_time (double)

set_relative ➜ double
Give the daemon a new destination relative to its current position. Daemon will immediately begin motion towards new destination. Returns new destination.
from has-position

distance (double)

shutdown ➜ null
Cleanly shutdown (or restart) daemon.
from is-daemon

restart (boolean) default: False

built 2024-02-09 01:44:16                                      CC0: no copyright