From 0f9c331d1b11bda363e432816f4113206adc9809 Mon Sep 17 00:00:00 2001 From: PeterGribbin <104760870+PeterGribbin@users.noreply.github.com> Date: Mon, 2 May 2022 13:00:03 +0100 Subject: [PATCH] Create novus1040.py --- octoprint_enclosure/novus1040.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 octoprint_enclosure/novus1040.py diff --git a/octoprint_enclosure/novus1040.py b/octoprint_enclosure/novus1040.py new file mode 100644 index 0000000..03b7791 --- /dev/null +++ b/octoprint_enclosure/novus1040.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +import minimalmodbus +import ctypes +import struct +import sys + +## setup ## + # port name, slave address (in decimal) +novus = minimalmodbus.Instrument('/dev/ttyACM0', 1) + +# for Novus 1040 comms documentation see: +# https://www.novusautomation.com/downloads/Arquivos/communication_protocol_n1040_v20x_c_en.pdf +novus.serial.baudrate = 115200 +REG_ADDR = { + 'Active SP': 0, + 'PV': 1, + 'dppo': 73 +} + +## Read decimal point precision setting ## +DP = 3 - novus.read_register(REG_ADDR['dppo'], 0) +#print(f'decimal places: {DP}') +## set up complete ## + +class NovusTemp: + def getTemp(self): + temperature = novus.read_register(REG_ADDR['PV'], DP) + return '{0:0.1f}'.format(temperature)