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

View File

@@ -1158,16 +1158,17 @@ class Flat(Base):
""" """
__slots__ = "_slc_temperature", "_slc_frequency", "_slc_led", \ __slots__ = "_slc_temperature", "_slc_frequency", "_slc_led", \
"_slc_switch", "_slc_dout", \
"a1green", "a1red", "a2green", "a2red", \ "a1green", "a1red", "a2green", "a2red", \
"a3green", "a3red", "a4green", "a4red", \ "a3green", "a3red", "a4green", "a4red", \
"a5green", "a5red", "wd" "a5green", "a5red", "relais", "switch", "wd"
def __setattr__(self, key, value): def __setattr__(self, key, value):
"""Verhindert Ueberschreibung der LEDs.""" """Verhindert Ueberschreibung der LEDs."""
if hasattr(self, key) and key in ( if hasattr(self, key) and key in (
"a1green", "a1red", "a2green", "a2red", "a1green", "a1red", "a2green", "a2red",
"a3green", "a3red", "a4green", "a4red", "a3green", "a3red", "a4green", "a4red",
"a5green", "a5red", "wd"): "a5green", "a5red", "relais", "switch", "wd"):
raise AttributeError( raise AttributeError(
"direct assignment is not supported - use .value Attribute" "direct assignment is not supported - use .value Attribute"
) )
@@ -1178,9 +1179,11 @@ class Flat(Base):
"""Core-Klasse vorbereiten.""" """Core-Klasse vorbereiten."""
# Statische IO Verknüpfungen des Compacts # 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_temperature = slice(4, 5)
self._slc_frequency = slice(5, 6) self._slc_frequency = slice(5, 6)
self._slc_switch = slice(6, 7)
self._slc_dout = slice(11, 12)
# Exportflags prüfen (Byte oder Bit) # Exportflags prüfen (Byte oder Bit)
lst_led = self._modio.io[self._slc_devoff][self._slc_led.start] 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" exp_a5red, None, "LED_A5_RED", "9"
], OUT, "little", False) ], 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 # Software watchdog einrichten
self.wd = IOBase(self, [ self.wd = IOBase(self, [

View File

@@ -126,3 +126,9 @@ class COMPACT:
AIN_MODE_0_10V = 1 # 0 - 10V AIN_MODE_0_10V = 1 # 0 - 10V
AIN_MODE_PT100 = 3 # PT100 AIN_MODE_PT100 = 3 # PT100
AIN_MODE_PT1000 = 7 # PT1000 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", license="LGPLv3",
name="revpimodio2", name="revpimodio2",
version="2.5.6", version="2.5.6a",
packages=["revpimodio2"], packages=["revpimodio2"],
python_requires="~=3.2", python_requires="~=3.2",