Flat: Switch and Relais as real io of core class, added MEMs to pictory.py

This commit is contained in:
2021-02-12 19:43:11 +01:00
parent d35b09e209
commit 687c7ab91a
4 changed files with 30 additions and 7 deletions

View File

@@ -16,7 +16,7 @@ __all__ = [
"RevPiModIO", "RevPiModIODriver", "RevPiModIOSelected", "run_plc",
"RevPiNetIO", "RevPiNetIODriver", "RevPiNetIOSelected",
"Cycletools", "EventCallback",
"AIO", "COMPACT", "DI", "DO", "DIO",
"AIO", "COMPACT", "DI", "DO", "DIO", "FLAT",
]
__author__ = "Sven Sager <akira@revpimodio.org>"
__copyright__ = "Copyright (C) 2020 Sven Sager"
@@ -96,7 +96,7 @@ def consttostr(value) -> str:
# Benötigte Klassen importieren
from .pictory import AIO, COMPACT, DI, DO, DIO
from .pictory import AIO, COMPACT, DI, DO, DIO, FLAT
from .helper import Cycletools, EventCallback
from .modio import RevPiModIO, RevPiModIODriver, RevPiModIOSelected, run_plc
from .netio import RevPiNetIO, RevPiNetIODriver, RevPiNetIOSelected

View File

@@ -1158,16 +1158,17 @@ class Flat(Base):
"""
__slots__ = "_slc_temperature", "_slc_frequency", "_slc_led", \
"_slc_switch", "_slc_dout", \
"a1green", "a1red", "a2green", "a2red", \
"a3green", "a3red", "a4green", "a4red", \
"a5green", "a5red", "wd"
"a5green", "a5red", "relais", "switch", "wd"
def __setattr__(self, key, value):
"""Verhindert Ueberschreibung der LEDs."""
if hasattr(self, key) and key in (
"a1green", "a1red", "a2green", "a2red",
"a3green", "a3red", "a4green", "a4red",
"a5green", "a5red", "wd"):
"a5green", "a5red", "relais", "switch", "wd"):
raise AttributeError(
"direct assignment is not supported - use .value Attribute"
)
@@ -1178,9 +1179,11 @@ class Flat(Base):
"""Core-Klasse vorbereiten."""
# Statische IO Verknüpfungen des Compacts
self._slc_led = slice(6, 8)
self._slc_led = slice(7, 9)
self._slc_temperature = slice(4, 5)
self._slc_frequency = slice(5, 6)
self._slc_switch = slice(6, 7)
self._slc_dout = slice(11, 12)
# Exportflags prüfen (Byte oder Bit)
lst_led = self._modio.io[self._slc_devoff][self._slc_led.start]
@@ -1252,7 +1255,21 @@ class Flat(Base):
exp_a5red, None, "LED_A5_RED", "9"
], OUT, "little", False)
# todo: Add internal switch and relay, like Connect
# Real IO for switch
lst_io = self._modio.io[self._slc_devoff][self._slc_switch.start]
exp_io = lst_io[0].export
self.switch = IOBase(self, [
"flat.switch", 0, 1, self._slc_switch.start,
exp_io, None, "Flat_Switch", "0"
], INP, "little", False)
# Real IO for relais
lst_io = self._modio.io[self._slc_devoff][self._slc_dout.start]
exp_io = lst_io[0].export
self.relais = IOBase(self, [
"flat.relais", 0, 1, self._slc_dout.start,
exp_io, None, "Flat_Relais", "0"
], OUT, "little", False)
# Software watchdog einrichten
self.wd = IOBase(self, [

View File

@@ -126,3 +126,9 @@ class COMPACT:
AIN_MODE_0_10V = 1 # 0 - 10V
AIN_MODE_PT100 = 3 # PT100
AIN_MODE_PT1000 = 7 # PT1000
class FLAT:
"""Memory value mappings for RevPi Flat 1.0 (RevPiFlat_20200921_1_0.rap)."""
IN_RANGE_0_10V = 0
IN_RANGE_4_20MA = 1

View File

@@ -17,7 +17,7 @@ setup(
license="LGPLv3",
name="revpimodio2",
version="2.5.6",
version="2.5.6a",
packages=["revpimodio2"],
python_requires="~=3.2",