# OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX

## `OPPERMANN_MSX_MOD_I_80_XX_X_XXX` (FB)

`FUNCTION_BLOCK` OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX

### Darstellung

<figure><img src="https://879424349-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2FSP6jd14BFyYSumGc8Xbe%2FHVACModbus.OPPERMANN_MSX_MOD_I_80_XX_X_XXX_0.png?alt=media&#x26;token=f0af459b-4b5a-4a40-9c93-ff1ac7dd6ced" alt=""><figcaption></figcaption></figure>

### Allgemeines

> Es handelt sich um einen Multisensor - Transmitter zum Einbau in Lüftungskanälen

> MS3: ohne VOC-Sensor MS4: mit VOC-Sensor (Optional)

> AI: Analogeingänge - Modul (Optional) `DO`: Relaisausgang - Modul (Optional)

> D-NFC: mit NFC - Display (Optional): ohne NFC - Display

> Die Konfiguration der Modbus-Schnittstelle und weiterer Parameter erfolgt bei einer vorhandenen Display-Anzeige via NFC und App (Variante 1) Die Konfiguration der Modbus-Schnittstelle und weiterer Parameter erfolgt bei einer vorhandenen Display-Anzeige via Tasten (Variante 2)

> Es kann ein Abschlusswiderstand (120 Ohm) aktiviert / deaktiviert werden.

> Die Modbus-Schnittstelle ist ohne weitere Einstellungen wie folgt parametriert:

> RTU 9600 Baud 8 Datenbit Gerade Parität 1 Stoppbit Geräteadresse = 1 Polling >= 500ms

> Sie kann per Modbus (Register 80 - 82) parametriert werden (Geräte-Adresse, Baudrate und Parität). Dies ist in diesem Funktionsbaustein jedoch nicht realisiert.

> Die Register 19, 20, 64, 65 und 66 dürfen nur mit dem FC06 beschrieben werden.

> Alle Änderungen der Parameter - Einstellungen werden sofort im RAM durchgeführt (nicht spannungsausfallsicher). Zur dauerhaften Speicherung ist eine Ablage im EEPROM erforderlich (Register 85 = 1).

> > Das Gerät startet anschließend automatisch neu, erst nach ca. 15s ist wieder eine Modbus-Kommunikation möglich.

> Das NFC-Display ist bei der Parametrierung höher priorisiert als die Einstellung der Parameter per Modbus. Sobals das NFC-Display neu angeschlossen wird, werden die Parameter-Einstellwerte vom Display übernommen.

> Es können nur der Temperatur-Sensor und der Sensor für die relative Feuchte per Modbus abgeglichen werden. Für den CO2-Sensor bzw. den optionaölen VOC-Sensor ist keine Abgleichmöglichkeit vorgesehen.

> Die Funktion der analogen Ausgänge wird in den Registern 5 - 7 festgelegt (9 = beschreibbar über die Register 56 - 58). Die aktuellen Sollwerte der analogen Ausgänge wird in den Registern 56 - 58 festgelegt. Die aktuellen Sollwerte der MIN-/MAX-Grenzwerte der analogen Ausgänge wird in den Registern 44 - 50 festgelegt. Die aktuelle Funktion der analogen Ausgänge wird aus den Registern 21 - 23 ausgelesen. Die aktuellen Istwerte der analogen Ausgänge wird aus den Registern 5 - 7 ausgelesen.

> Die aktuellen Istwerte der analogen Eingänge wird aus den Registern 53 - 54 ausgelesen.

> Der Zustand des Relais hängt vom Ausgang (= Stellgröße) eines 2-Punkt-Reglers ab.

> Als Regelgröße können die maximal vier Messwerte verwandt werden (Auswahl über Register 41). Als Führungsgröße können die maximal vier Messwerte verwandt werden (Auswahl über Register 40). Die Führungsgröße wird durch einstellbare Grenzwerte (Minimum über Register 43, Maximum über Register 42) begrenzt. Die Wirkrichtung des Reglers kann im Register 37 festgelegt werden (0 = invertiert, 1 = direkt). Die Schalthysterese des Reglers kann im Register 36 festgelegt werden (in Prozent der Führungsgröße). Der aktuelle Zustand des Relais wird aus dem Register 24 ausgelesen (0 = Relais hat nicht angezogen, 1 = Relais hat angezogen). In der Wirkrichtung `Direkt` zieht das Relais an, falls die Regelgröße die Führungsgröße um die Schalthysterese unterschreitet. In der Wirkrichtung `Direkt` fällt das Relais an, falls die Regelgröße die Führungsgröße um die Schalthysterese überschreitet.

InOut:

| Scope       | Name                     | Type                                                                      | Initial                                                                           | Comment                                                                                                                                                                       |
| ----------- | ------------------------ | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Input       | `xEn`                    | `BOOL`                                                                    | TRUE                                                                              | Freigabe / Sperrung der Kommunikation (TRUE = Freigabe)                                                                                                                       |
| Input       | `byUnitId`               | `BYTE`                                                                    | 0                                                                                 | Adresse des Geräts (1 .. 127)                                                                                                                                                 |
| Input       | `xUpdateActual`          | `BOOL`                                                                    | FALSE                                                                             | <p>Aktualisierung der Istwerte (bei jeder ansteigenden Flanke<br>) (Bereich: Betrieb)</p>                                                                                     |
| Input       | `xUpdateSetp`            | `BOOL`                                                                    | FALSE                                                                             | <p>Aktualisierung der Sollwerte (bei jeder ansteigenden Flanke<br>)</p>                                                                                                       |
| Input       | `xUpdateConfigWrite`     | `BOOL`                                                                    | FALSE                                                                             | <p>Aktualisierung der Konfiguration (schreibender Zugriff) (<br>bei jeder ansteigenden Flanke)</p>                                                                            |
| Input       | `rAO1_Man_Perc`          | `REAL`                                                                    | 0.0                                                                               | <p>Sollwert am Analogausgang 1 im manuellen Betrieb in Prozent<br>(eAO1\_Config\_Select = MANUAL\_OUTPUT) (0.0 - 100.0%<br>entsprechen 1.0 - 10.0V)</p>                       |
| Input       | `rAO2_Man_Perc`          | `REAL`                                                                    | 0.0                                                                               | <p>Sollwert am Analogausgang 2 im manuellen Betrieb in Prozent<br>(eAO2\_Config\_Select = MANUAL\_OUTPUT) (0.0 - 100.0%<br>entsprechen 1.0 - 10.0V)</p>                       |
| Input       | `rAO3_Man_Perc`          | `REAL`                                                                    | 0.0                                                                               | <p>Sollwert am Analogausgang 3 im manuellen Betrieb in Prozent<br>(eAO3\_Config\_Select = MANUAL\_OUTPUT) (0.0 - 100.0%<br>entsprechen 1.0 - 10.0V)</p>                       |
| Input       | `xCal_CO2_400`           | `BOOL`                                                                    | FALSE                                                                             | <p>Eingang zur Auslösung der Kalibrierung des CO2-Sensors auf<br>400.0 ppm (bei jeder ansteigenden Flanke)</p>                                                                |
| Input       | `wCO2_ABC_Time`          | `WORD`                                                                    | 7                                                                                 | <p>Zykluszeitdauer zur automatischen Anpassung des niedrigsten<br>CO2-Istwerts an die 400 ppm - Referenz (0 = deaktiviert, 1<br>- 15 = Zeitdauer in Tagen)</p>                |
| Input       | `xStoreParamEEPROM`      | `BOOL`                                                                    | FALSE                                                                             | <p>Eingang zur Auslösung der Speicherung aller Parameter im<br>EEPROM (bei jeder ansteigenden Flanke)</p>                                                                     |
| Input       | `xResError`              | `BOOL`                                                                    | FALSE                                                                             | <p>Reinitialisierung des Ausgangs <code>eErrorCodeCom</code> (bei jeder<br>ansteigenden Flanke)</p>                                                                           |
| Inout       | `ModbusClient`           | `ModbusClientBase`                                                        |                                                                                   | Client des Geräts                                                                                                                                                             |
| Output      | `rTemp`                  | `REAL`                                                                    |                                                                                   | Temperatur in XX.X Grad Celsius                                                                                                                                               |
| Output      | `rTemp_Average`          | `REAL`                                                                    |                                                                                   | Zeitlich gemittelte Temperatur in XX.X Grad Celsius                                                                                                                           |
| Output      | `rRH`                    | `REAL`                                                                    |                                                                                   | Relative Feuchte in XX.X Prozent                                                                                                                                              |
| Output      | `rRH_Average`            | `REAL`                                                                    |                                                                                   | Zeitlich gemittelte Relative Feuchte in XX.X Prozent                                                                                                                          |
| Output      | `rDewPointTemp`          | `REAL`                                                                    |                                                                                   | Taupunkt - Temperatur in XX.X Grad Celsius                                                                                                                                    |
| Output      | `rCO2`                   | `REAL`                                                                    |                                                                                   | CO2-Konzentration in XXXX ppm                                                                                                                                                 |
| Output      | `rCO2_Average`           | `REAL`                                                                    |                                                                                   | Zeitlich gemittelte CO2-Konzentration in XXXX ppm                                                                                                                             |
| Output      | `rVOC`                   | `REAL`                                                                    |                                                                                   | <p>VOC-Index in XXX Index-Punkten (0 = gute Qualität, 500 =<br>schlechte Qualität)</p>                                                                                        |
| Output      | `rVOC_Average`           | `REAL`                                                                    |                                                                                   | <p>Zeitlich gemittelter VOC-Index in XXX Index-Punkten (0 =<br>gute Qualität, 500 = schlechte Qualität)</p>                                                                   |
| Output      | `rAO1_Perc`              | `REAL`                                                                    |                                                                                   | <p>Istwert am Analogausgang 1 in Prozent (0.0 - 100.0%<br>entsprechen 1.0 - 10.0V)</p>                                                                                        |
| Output      | `rAO2_Perc`              | `REAL`                                                                    |                                                                                   | <p>Istwert am Analogausgang 2 in Prozent (0.0 - 100.0%<br>entsprechen 1.0 - 10.0V)</p>                                                                                        |
| Output      | `rAO3_Perc`              | `REAL`                                                                    |                                                                                   | <p>Istwert am Analogausgang 3 in Prozent (0.0 - 100.0%<br>entsprechen 1.0 - 10.0V)</p>                                                                                        |
| Output      | `eAO1_Config`            | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_ANALOG\_OUTPUTS\_CONFIG           |                                                                                   | <p>Konfiguration des Analogausgang 1 (9 = beschreibbar über<br><code>rAO1\_Man</code>)</p>                                                                                    |
| Output      | `eAO2_Config`            | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_ANALOG\_OUTPUTS\_CONFIG           |                                                                                   | <p>Konfiguration des Analogausgang 2 (9 = beschreibbar über<br><code>rAO2\_Man</code>)</p>                                                                                    |
| Output      | `eAO3_Config`            | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_ANALOG\_OUTPUTS\_CONFIG           |                                                                                   | <p>Konfiguration des Analogausgang 3 (9 = beschreibbar über<br><code>rAO3\_Man</code>)</p>                                                                                    |
| Output      | `xDO1`                   | `BOOL`                                                                    |                                                                                   | <p>Zustand des Relais DO1 (FALSE = Relais nicht aktiv, TRUE =<br>Relais aktiv) (optional)</p>                                                                                 |
| Output      | `rAI1_Perc`              | `REAL`                                                                    |                                                                                   | <p>Istwert am Analogeingang 1 in Prozent (0.0 - 100.0%<br>entsprechen 1.0 - 10.0V) (optional)</p>                                                                             |
| Output      | `rAI2_Perc`              | `REAL`                                                                    |                                                                                   | <p>Istwert am Analogeingang 2 in Prozent (0.0 - 100.0%<br>entsprechen 1.0 - 10.0V) (optional)</p>                                                                             |
| Output      | `xSensorOffsetInDevice`  | `BOOL`                                                                    |                                                                                   | <p>Anzeige, ob der Abgleich der Sensoren im Gerät erfolgen muss<br>(TRUE = Abgleich im Gerät erforderlich, FALSE = Abgleich im<br>FB erforderlich)</p>                        |
| Output      | `xAlarm`                 | `BOOL`                                                                    |                                                                                   | Sammelstörung (TRUE = Störung)                                                                                                                                                |
| Output      | `xAlarmCom`              | `BOOL`                                                                    |                                                                                   | Sammelstörung - Kommunikation (TRUE = Störung)                                                                                                                                |
| Output      | `eErrorCodeCom`          | ModbusErrorCode                                                           |                                                                                   | Fehlercode - Kommunikation (0 = kein Fehler)                                                                                                                                  |
| Output      | `xBusy`                  | `BOOL`                                                                    |                                                                                   | Kommunikationsanzeige (TRUE = Kommunikation)                                                                                                                                  |
| Input Const | `rDO1_Setp_Max`          | `REAL`                                                                    | 2000.0                                                                            | <p>Absoluter Maximalwert des Sollwerts des 2-Punkt-Reglers für<br>den Relais-Ausgang DO1 (abhängig von der Auswahl der<br>Regelgröße <code>eDO1\_ControlVarSelect</code>)</p> |
| Input Const | `rDO1_Setp_Min`          | `REAL`                                                                    | 0.0                                                                               | <p>Absoluter Minimalwert des Sollwerts des 2-Punkt-Reglers für<br>den Relais-Ausgang DO1 (abhängig von der Auswahl der<br>Regelgröße <code>eDO1\_ControlVarSelect</code>)</p> |
| Input Const | `eDO1_ControlVarSelect`  | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_DO1\_CONTROL\_VARIABLE\_SELECTION | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_DO1\_CONTROL\_VARIABLE\_SELECTION.CO2     | <p>Auswahl der Regelgröße des 2-Punkt-Reglers für den Relais-<br>Ausgang DO1</p>                                                                                              |
| Input Const | `rDO1_Setp`              | `REAL`                                                                    | 800.0                                                                             | <p>Sollwert des 2-Punkt-Reglers für den Relais-Ausgang DO1 (<br>abhängig von der Auswahl der Regelgröße<br><code>eDO1\_ControlVarSelect</code>)</p>                           |
| Input Const | `eDO1_DirecOfAction`     | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_DO1\_DIRECTION\_OF\_ACTION        | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_DO1\_DIRECTION\_OF\_ACTION.DIRECT\_ACTION | Wirkrichtung des 2-Punkt-Reglers für den Relais-Ausgang DO1                                                                                                                   |
| Input Const | `rDO1_Hysteres`          | `REAL`                                                                    | 10.0                                                                              | <p>Hysterese des 2-Punkt-Reglers für den Relais-Ausgang DO1 (<br>in Prozent des Sollwerts <code>rDO1\_Setp</code>)</p>                                                        |
| Input Const | `xEn_DO_Option`          | `BOOL`                                                                    | FALSE                                                                             | <p>Freigabe / Sperrung der Option ‘1 Relais - Modul! (<br>potentialfreier Wechsler-Kontakt) (TRUE = Freigabe)</p>                                                             |
| Input Const | `xEn_AI_Option`          | `BOOL`                                                                    | FALSE                                                                             | <p>Freigabe / Sperrung der Option ‘2 Analoge Eingänge’ (1.0 -<br>10.0V) (TRUE = Freigabe)</p>                                                                                 |
| Input Const | `tTimeAverageCalc`       | `TIME`                                                                    | TIME#20s0ms                                                                       | <p>Zeitkonstante für die Berechnung der Mittelwerte bzw. zur<br>Ausführung der Regler-Funktionen (5 - 122s)</p>                                                               |
| Input Const | `xEnAutoStoreEEPROM`     | `BOOL`                                                                    | FALSE                                                                             | <p>Freigabe / Sperrung der automatischen Speicherung aller<br>Sollwerte / Parameter im EEPROM (FALSE: nur über Eingang<br>‘xStoreParamEEPROM, TRUE = automatisch)</p>         |
| Input Const | `rVOC_Max_AOX`           | `REAL`                                                                    | 499.0                                                                             | <p>VOC-Istwert, der am Analogausgang den Maximalwert der<br>linearen Kennlinie bildet (erzeugt 100.0% = 10.0V) (0.0 -<br>500.0)</p>                                           |
| Input Const | `rCO2_Max_AOX`           | `REAL`                                                                    | 2000.0                                                                            | <p>CO2-Istwert, der am Analogausgang den Maximalwert der<br>linearen Kennlinie bildet (erzeugt 100.0% = 10.0V) (0.0 -<br>5000.0)</p>                                          |
| Input Const | `rCO2_Min_AOX`           | `REAL`                                                                    | 0.0                                                                               | <p>CO2-Istwert, der am Analogausgang den Minimalwert der<br>linearen Kennlinie bildet (erzeugt 0.0% = 1.0V) (0.0 -<br>5000.0)</p>                                             |
| Input Const | `rRH_Max_AOX`            | `REAL`                                                                    | 95.0                                                                              | <p>Feuchte-Istwert, der am Analogausgang den Maximalwert der<br>linearen Kennlinie bildet (erzeugt 100.0% = 10.0V) (0.0 -<br>100.0)</p>                                       |
| Input Const | `rRH_Min_AOX`            | `REAL`                                                                    | 0.0                                                                               | <p>Feuchte-Istwert, der am Analogausgang den Minimalwert der<br>linearen Kennlinie bildet (erzeugt 0.0% = 1.0V) (0.0 -<br>100.0)</p>                                          |
| Input Const | `rTemp_Max_AOX`          | `REAL`                                                                    | 50.0                                                                              | <p>Temperatur-Istwert, der am Analogausgang den Maximalwert der<br>linearen Kennlinie bildet (erzeugt 100.0% = 10.0V) (-25.0<br>- 50.0)</p>                                   |
| Input Const | `rTemp_Min_AOX`          | `REAL`                                                                    | -25.0                                                                             | <p>Temperatur-Istwert, der am Analogausgang den Minimalwert der<br>linearen Kennlinie bildet (erzeugt 0.0% = 1.0V) (-25.0 -<br>50.0)</p>                                      |
| Input Const | `rRH_Offset`             | `REAL`                                                                    | 0.0                                                                               | <p>Konstanter Messwert-Versatz für den übertragenen Feuchte -<br>Istwert (+/- 20.0% rF)</p>                                                                                   |
| Input Const | `rTemp_Offset`           | `REAL`                                                                    | 0.0                                                                               | <p>Konstanter Messwert-Versatz für den übertragenen Temperatur<br>- Istwert (+/- 20.0 Grad Celsius)</p>                                                                       |
| Input Const | `eAO3_Config_Select`     | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_ANALOG\_OUTPUTS\_CONFIG           | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_ANALOG\_OUTPUTS\_CONFIG.MANUAL\_OUTPUT    | <p>Beeinflussung: Ausgänge: rTemp, rTemp\_Average<br>Konfiguration des Analogausgang 3 (9 = beschreibbar über <code>rAO3\_Man</code>)</p>                                     |
| Input Const | `eAO2_Config_Select`     | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_ANALOG\_OUTPUTS\_CONFIG           | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_ANALOG\_OUTPUTS\_CONFIG.MANUAL\_OUTPUT    | <p>Konfiguration des Analogausgang 2 (9 = beschreibbar über<br><code>rAO2\_Man</code>)</p>                                                                                    |
| Input Const | `eAO1_Config_Select`     | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_ANALOG\_OUTPUTS\_CONFIG           | OPPERMANN\_MSX\_MOD\_I\_80\_XX\_X\_XXX\_ANALOG\_OUTPUTS\_CONFIG.MANUAL\_OUTPUT    | <p>Konfiguration des Analogausgang 1 (9 = beschreibbar über<br><code>rAO1\_Man</code>)</p>                                                                                    |
| Input Const | `tTimeUpdateConfigWrite` | `TIME`                                                                    | TIME#0ms                                                                          | <p>Updateintervall für die Vorgänge, die durch den Eingang<br><code>xUpdateConfigWrite</code> beeinflusst werden</p>                                                          |
| Input Const | `tTimeUpdateSetp`        | `TIME`                                                                    | TIME#45s0ms                                                                       | <p>Updateintervall für die Vorgänge, die durch den Eingang<br><code>xUpdateSetp</code> beeinflusst werden</p>                                                                 |
| Input Const | `tTimeUpdateActual`      | `TIME`                                                                    | TIME#3s0ms                                                                        | <p>Updateintervall für die Vorgänge, die durch den Eingang<br><code>xUpdateActual</code> beeinflusst werden</p>                                                               |
