import os
import pandas as pd 
import unittest



# Assuming the ExcelConverter class from the previous turn is available and pasted here
class ExcelConverter:
    def __init__(self):
        self.eingaenge_identifier = ["FDI", "B", "S", "E", "I", "DI", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BJ", "BK", "BL", "BM", "BN", "BP", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BX", "BY", "BZ", "FA", "FB", "FC", "FD", "FE", "FF", "FG", "FH", "FJ", "FK", "FL", "FM", "FN", "FP", "FQ", "FR", "FS", "FT", "FU", "FV", "FW", "FX", "FY", "FZ", "SA", "SB", "SC", "SD", "SE", "SF", "SG", "SH", "SJ", "SK", "SL", "SM", "SN", "SP", "SQ", "SR", "SS", "ST", "SU", "SV", "SW", "SX", "SY", "SZ"]
        self.ausgaenge_identifier = ["K", "O", "Q", "M", "A", "P", "DQ", "CA", "CB", "CC", "CD", "CE", "CF", "CG", "CH", "CJ", "CK", "CL", "CM", "CN", "CP", "CQ", "CR", "CS", "CT", "CU", "CV", "CW", "CX", "CY", "CZ", "EA", "EB", "EC", "ED", "EE", "EF", "EG", "EH", "EJ", "EK", "EL", "EM", "EN", "EP", "EQ", "ER", "ES", "ET", "EU", "EV", "EW", "EX", "EY", "EZ", "GA", "GB", "GC", "GD", "GE", "GF", "GG", "GH", "GJ", "GK", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GV", "GW", "GX", "GY", "GZ", "HA", "HB", "HC", "HD", "HE", "HF", "HG", "HH", "HJ", "HK", "HL", "HM", "HN", "HP", "HQ", "HR", "HS", "HT", "HU", "HV", "HW", "HX", "HY", "HZ", "KA", "KB", "KC", "KD", "KE", "KF", "KG", "KH", "KJ", "KK", "KL", "KM", "KN", "KP", "KQ", "KR", "KS", "KT", "KU", "KV", "KW", "KX", "KY", "KZ", "MA", "MB", "MC", "MD", "ME", "MF", "MG", "MH", "MJ", "MK", "ML", "MM", "MN", "MP", "MQ", "MR", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "PA", "PB", "PC", "PD", "PE", "PF", "PG", "PH", "PJ", "PK", "PL", "PM", "PN", "PP", "PQ", "PR", "PS", "PT", "PU", "PV", "PW", "PX", "PY", "PZ", "QA", "QB", "QC", "QD", "QE", "QF", "QG", "QH", "QJ", "QK", "QL", "QM", "QN", "QP", "QQ", "QR", "QS", "QT", "QU", "QV", "QW", "QX", "QY", "QZ", "RA", "RB", "RC", "RD", "RE", "RF", "RG", "RH", "RJ", "RK", "RL", "RM", "RN", "RP", "RQ", "RR", "RS", "RT", "RU", "RV", "RW", "RX", "RY", "RZ", "TA", "TB", "TC", "TD", "TE", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TP", "TQ", "TR", "TS", "TT", "TU", "TV", "TW", "TX", "TY", "TZ"]

    def _gleiche_finden(self, liste):
        counter = {}
        for eintrag in liste:
            name = eintrag['Name']
            counter[name] = counter.get(name, 0) + 1
        doppelte = set(name for name, count in counter.items() if count > 1)
        doppelte_eintraege = [eintrag for eintrag in liste if eintrag['Name'] in doppelte]
        return doppelte_eintraege, doppelte

    def _anschluesse_ergaenzen(self, anschluesse):
        """
        Ergänzt fehlende Anschlüsse für Bauteile.
        Entspricht der PowerShell-Funktion AnschluesseErgaenzen.
        """
        anschluesse_sorted = sorted(anschluesse, key=lambda x: x['Name'])
        bauteil_dict = {}

        # Gruppiere vorhandene Anschlüsse nach Bauteil, speichere nummer + eintrag
        for eintrag in anschluesse_sorted:
            name = eintrag['Name']
            if '.' in name:
                bauteil = name.rsplit('.', 1)[0] + '.'
                nummer = int(name.split('.')[-1])
            else:
                bauteil = name[:-1]
                nummer = int(name[-1])

            if bauteil not in bauteil_dict:
                bauteil_dict[bauteil] = []
            bauteil_dict[bauteil].append((nummer, eintrag))

        added_entries = []

        for bauteil, eintraege in bauteil_dict.items():
            vorhandene_nummern = set(n for n, _ in eintraege)
            fehlende = set(range(8)) - vorhandene_nummern

            for i in fehlende:
                new_name = f"{bauteil}{i}"
                new_entry = {
                    'Name': new_name,
                    'Kommentar': "",
                    'Bezug': "",
                    'Zeile': -1
                }
                eintraege.append((i, new_entry))
                added_entries.append(new_entry)

            # Bezug finden (erstes mit Bezug)
            bezug_quelle = next((eintrag['Bezug'] for _, eintrag in sorted(eintraege, key=lambda x: x[0]) if eintrag.get('Bezug')), None)

            if bezug_quelle:
                for _, eintrag in eintraege:
                    if not eintrag.get('Bezug'):
                        eintrag['Bezug'] = bezug_quelle

        anschluesse.extend(added_entries)
        return sorted(anschluesse, key=lambda x: x['Name'])

    def _verarbeite_io_liste(self, liste):
        """
        Filtert doppelte Namen aus der Liste und markiert sie mit Hinweis; gibt separate Liste mit eindeutigen Duplikaten zurück.
        """
        gleiche, doppelte_namen = self._gleiche_finden(liste)

        # Nur ein Eintrag pro doppeltem Namen in gleiche_liste
        gesehen = set()
        reduzierte_gleiche = []
        for eintrag in gleiche:
            name = eintrag['Name']
            if name not in gesehen:
                reduzierte_gleiche.append(eintrag)
                gesehen.add(name)

        gefiltert = self._duplikate_markieren_und_filtern(liste, doppelte_namen)
        return reduzierte_gleiche, gefiltert
    
    def _duplikate_markieren_und_filtern(self, liste, doppelte_namen):
        """
        Behalte nur das erste Vorkommen jedes doppelten Namens in der Liste.
        Markiere dieses Vorkommen mit 'Hinweis': 'Doppelt'.
        """
        neue_liste = []
        gesehen = set()

        for eintrag in liste:
            name = eintrag['Name']
            if name in doppelte_namen:
                if name not in gesehen:
                    eintrag['Hinweis'] = "Duplikat!"
                    neue_liste.append(eintrag)
                    gesehen.add(name)
                # sonst: ignorieren
            else:
                neue_liste.append(eintrag)

        return neue_liste

    def _prep_simpel(self, ursprungdatei, prefix_eingang="E", prefix_ausgang="A"):
        """
        Konvertiert Daten aus der Ursprungsdatei 
        Eingänge und Ausgänge in seperaten dataframes; Fehler nicht enthalten
        """
        eingaenge = []
        ausgaenge = []
        fehler = []

        for i, eintrag in enumerate(ursprungdatei):
            eintragszeile = eintrag.strip().split("'")
            bmk_zahl_raw = eintragszeile[1].strip()
            kommentar = eintragszeile[3].strip()

            bmk_alpha = ''.join(filter(str.isalpha, bmk_zahl_raw))
            bmk_numeric = ''.join(filter(str.isdigit, bmk_zahl_raw))

            bmk_formatted = bmk_numeric
            if len(bmk_numeric) > 0:
                bmk_formatted = bmk_numeric[:-1] + "." + bmk_numeric[-1] if len(bmk_numeric) > 1 else "0." + bmk_numeric

            if bmk_alpha in self.eingaenge_identifier:
                name = prefix_eingang + bmk_formatted
                eingaenge.append({'Name': name, 'Kommentar': kommentar, 'Zeile': i})
            elif bmk_alpha in self.ausgaenge_identifier:
                name = prefix_ausgang + bmk_formatted
                ausgaenge.append({'Name': name, 'Kommentar': kommentar, 'Zeile': i})
            else:
                name = bmk_formatted
                fehler.append({'Name': name, 'Kommentar': f"Fehlerhafte BMK '{bmk_zahl_raw}'", 'Zeile': i})

        # Fehler-Dataframe erzeugen
        df_fehler = pd.DataFrame(fehler).sort_values(by="Name") if fehler else pd.DataFrame()
        
        # Eingänge & Ausgänge verarbeiten (Duplikate markieren und filtern)
        gleiche_eingaenge, eingaenge = self._verarbeite_io_liste(eingaenge)
        gleiche_ausgaenge, ausgaenge = self._verarbeite_io_liste(ausgaenge)

        # DataFrames erzeugen u. sortieren
        df_eingaenge = pd.DataFrame(eingaenge).sort_values(by="Name")
        df_ausgaenge = pd.DataFrame(ausgaenge).sort_values(by="Name")

        df_gleiche_eingaenge = pd.DataFrame(gleiche_eingaenge).sort_values(by="Name") if gleiche_eingaenge else pd.DataFrame()
        df_gleiche_ausgaenge = pd.DataFrame(gleiche_ausgaenge).sort_values(by="Name") if gleiche_ausgaenge else pd.DataFrame()

        return df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge

    def _prep_tia(self, ursprungdatei, prefix_eingang="E", prefix_ausgang="A"):
        """
        Konvertiert Daten für TIA Portal und schreibt sie in eine Excel-Datei mit zwei Blättern ("Constants" und "PLC Tags").
        Eingänge und Ausgänge gemeinsam jeweils in consts und tags (Prefix cIn, cOut); doppelte Namen markiert und ausgeschlossen; Fehler mit Prefix 'Err'.
        """
        eingaenge = []
        ausgaenge = []
        fehler = []

        for i, eintrag in enumerate(ursprungdatei):
            eintragszeile = eintrag.strip().split("'")
            bmk_zahl_raw = eintragszeile[1].strip()
            kommentar = eintragszeile[3].strip()

            bmk_alpha = ''.join(filter(str.isalpha, bmk_zahl_raw))
            bmk_numeric = ''.join(filter(str.isdigit, bmk_zahl_raw))

            bmk_formatted = bmk_numeric
            if len(bmk_numeric) > 0:
                bmk_formatted = bmk_numeric[:-1] + "." + bmk_numeric[-1] if len(bmk_numeric) > 1 else "0." + bmk_numeric

            if bmk_alpha in self.eingaenge_identifier:
                name = prefix_eingang + bmk_formatted
                name_constant = "cIn" + bmk_zahl_raw
                eingaenge.append({
                    'Name': name,
                    'NameOriginal': bmk_zahl_raw,
                    'NameConstant': name_constant,
                    'Kommentar': kommentar,
                    'Zahl': int(bmk_numeric) if bmk_numeric else 0, # Convert to int
                    'Zeile': i
                })
            elif bmk_alpha in self.ausgaenge_identifier:
                name = prefix_ausgang + bmk_formatted
                name_constant = "cOut" + bmk_zahl_raw
                ausgaenge.append({
                    'Name': name,
                    'NameOriginal': bmk_zahl_raw,
                    'NameConstant': name_constant,
                    'Kommentar': kommentar,
                    'Zahl': int(bmk_numeric) if bmk_numeric else 0, # Convert to int
                    'Zeile': i
                })
            else:   # Hier wird Fehlerhafte BMK behandelt
                name = bmk_formatted
                name_constant = "cErr" + bmk_zahl_raw
                fehler.append({
                    'Name': name,
                    'NameOriginal': bmk_zahl_raw,
                    'NameConstant': name_constant,
                    'Kommentar': f"Fehlerhafte BMK '{bmk_zahl_raw}'",                 # Zeile von Lorenz eingefügt, da sonst pandas mit Fehler, da kein Kommentar
                    'Zahl': i, # Original PowerShell uses 'i' for Zahl in Fehler, not bmk_numeric
                    'Zeile': i
                })
                
        # Fehler-Dataframe erzeugen
        df_fehler = pd.DataFrame(fehler).sort_values(by="Zahl") if fehler else pd.DataFrame()
        
        # Duplikate verarbeiten & markieren
        gleiche_eingaenge, eingaenge = self._verarbeite_io_liste(eingaenge)
        gleiche_ausgaenge, ausgaenge = self._verarbeite_io_liste(ausgaenge)
        
        # DataFrames erstellen u. sortieren
        df_eingaenge = pd.DataFrame(eingaenge).sort_values(by="Zahl")
        df_ausgaenge = pd.DataFrame(ausgaenge).sort_values(by="Zahl")

        df_gleiche_eingaenge = pd.DataFrame(gleiche_eingaenge).sort_values(by="Zahl") if gleiche_eingaenge else pd.DataFrame()
        df_gleiche_ausgaenge = pd.DataFrame(gleiche_ausgaenge).sort_values(by="Zahl") if gleiche_ausgaenge else pd.DataFrame()

        df_consts, df_tags = self._create_tia_dataframes(df_fehler, df_eingaenge, df_ausgaenge)

        return df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_consts, df_tags

    def _create_tia_dataframes(self, df_fehler, df_eingaenge, df_ausgaenge):
        """
        Hilfsfunktion für 'prep_tia', die dataframes für spätere excel Ausgabe erzeugt ("Constants" und "PLC Tags").
        Eingänge und Ausgänge gemeinsam jeweils in consts und tags; Fehler ebenfalls mit Prefix 'Err' enthalten.
        """
        df_constants_data = []
        j = 0
        for row in df_fehler.itertuples():
            df_constants_data.append({
                "Name": row.NameConstant,
                "Path": "Import",
                "Data Type": "Int",
                "Value": j,
                "Comment": ""
            })
            j += 1
        for row in df_eingaenge.itertuples():
            df_constants_data.append({
                "Name": row.NameConstant,
                "Path": "Import",
                "Data Type": "Int",
                "Value": j,
                "Comment": ""
            })
            j += 1
        for row in df_ausgaenge.itertuples():
            df_constants_data.append({
                "Name": row.NameConstant,
                "Path": "Import",
                "Data Type": "Int",
                "Value": j,
                "Comment": ""
            })
            j += 1
        df_constants = pd.DataFrame(df_constants_data)

        # Blatt "PLC Tags"
        df_plc_tags_data = []
        for row in df_fehler.itertuples():
            df_plc_tags_data.append({
                "Name": row.NameOriginal,
                "Path": "Import",
                "Data Type": "Bool",
                "Logical Address": f"%{row.Name}",
                "Comment": row.Kommentar,
                "Hmi Visible": "True",
                "Hmi Accessible": "True",
                "Hmi Writeable": "True",
                "Typeobject ID": "",
                "Version ID": ""
            })
        for row in df_eingaenge.itertuples() :
            df_plc_tags_data.append({
                "Name": row.NameOriginal,
                "Path": "Import",
                "Data Type": "Bool",
                "Logical Address":f"%{row.Name}",
                "Comment": row.Kommentar,
                "Hmi Visible": "True",
                "Hmi Accessible": "True",
                "Hmi Writeable": "True",
                "Typeobject ID": "",
                "Version ID": ""
            })
        for row in df_ausgaenge.itertuples():
            df_plc_tags_data.append({
                "Name": row.NameOriginal,
                "Path": "Import",
                "Data Type": "Bool",
                "Logical Address": f"%{row.Name}",
                "Comment": row.Kommentar,
                "Hmi Visible": "True",
                "Hmi Accessible": "True",
                "Hmi Writeable": "True",
                "Typeobject ID": "",
                "Version ID": ""
            })
        df_plc_tags = pd.DataFrame(df_plc_tags_data)
    	
        return (df_constants, df_plc_tags)

    def _prep_wscad(self, ursprungdatei, prefix_eingang="E", prefix_ausgang="A"):
        """
        Konvertiert Daten für WSCAD mit Bezugsinformationen und schreibt sie in eine Excel-Datei.
        Entspricht der PowerShell-Funktion ExcelDateiBeschreibenWSCAD_Bezug.
        """
        eingaenge = []
        ausgaenge = []
        fehler = []

        for i, eintrag in enumerate(ursprungdatei):
            eintragszeile = eintrag.strip().split("'")
            bmk_zahl_raw = eintragszeile[1].strip()
            kommentar = eintragszeile[3].strip()
            bezug = eintragszeile[7].strip()

            bmk_alpha = ''.join(filter(str.isalpha, bmk_zahl_raw))
            bmk_numeric = ''.join(filter(str.isdigit, bmk_zahl_raw))

            bmk_formatted = bmk_numeric
            if len(bmk_numeric) > 0:
                bmk_formatted = bmk_numeric[:-1] + "." + bmk_numeric[-1] if len(bmk_numeric) > 1 else "0." + bmk_numeric

            # Remove leading zeros
            if len(bmk_formatted) >= 4 and bmk_formatted.startswith("0") and bmk_alpha in self.eingaenge_identifier:
                bmk_formatted = bmk_formatted[1:]
                if len(bmk_formatted) >= 4 and bmk_formatted.startswith("0"):
                    bmk_formatted = bmk_formatted[1:]
            elif len(bmk_formatted) >= 3 and bmk_formatted.startswith("0") and bmk_alpha in self.ausgaenge_identifier:
                bmk_formatted = bmk_formatted[1:]
                if len(bmk_formatted) >= 3 and bmk_formatted.startswith("0"):
                    bmk_formatted = bmk_formatted[1:]

            if bmk_alpha in self.eingaenge_identifier:
                name = prefix_eingang + bmk_formatted
                eingaenge.append({'Name': name, 'Kommentar': kommentar, 'Zeile': i, 'Bezug': bezug})
            elif bmk_alpha in self.ausgaenge_identifier:
                name = prefix_ausgang + bmk_formatted
                ausgaenge.append({'Name': name, 'Kommentar': kommentar, 'Zeile': i, 'Bezug': bezug})
            else:
                name = bmk_formatted
                fehler.append({'Name': name, 'Kommentar': f"Fehlerhafte BMK '{bmk_zahl_raw}'", 'Zeile': i, 'Bezug': bezug})

        eingaenge = self._anschluesse_ergaenzen(eingaenge)
        ausgaenge = self._anschluesse_ergaenzen(ausgaenge)

        # Fehler-Dataframe erzeugen
        df_fehler = pd.DataFrame(fehler).sort_values(by="Name") if fehler else pd.DataFrame()
        
        # Duplikate verarbeiten & markieren
        gleiche_eingaenge, eingaenge = self._verarbeite_io_liste(eingaenge)
        gleiche_ausgaenge, ausgaenge = self._verarbeite_io_liste(ausgaenge)
        
        # DataFrames erzeugen u. sortieren
        df_eingaenge = pd.DataFrame(eingaenge).sort_values(by="Name")
        df_ausgaenge = pd.DataFrame(ausgaenge).sort_values(by="Name")

        df_gleiche_eingaenge = pd.DataFrame(gleiche_eingaenge).sort_values(by="Name") if gleiche_eingaenge else pd.DataFrame()
        df_gleiche_ausgaenge = pd.DataFrame(gleiche_ausgaenge).sort_values(by="Name") if gleiche_ausgaenge else pd.DataFrame()
        
        return df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge

    def _prep_data(self, data, export_type):
        """
        Aufbereiter der Daten je nach gewünschtem Export-Typ
        """
        if export_type == "EA":
            return self._prep_simpel(data)
        elif export_type == "TIA":
            return self._prep_tia(data)
        elif export_type in ["WSCAD", "WSCAD mit Bezug"]:
            return self._prep_wscad(data)
        else:
            raise ValueError("Unbekannter Export-Typ")
        
    def export_excel(self, data, export_type, export_path, getpos_errors=None, getpos_warnings=None):
        """
        Wrapper, der aufgerufen wird und in sich die Aufbereitung der Daten und das Abspeichern als Excel abruft.

        Args:
            data: Die zu exportierenden Daten.
            export_type (str): Art des Exports (EA, TIA, WSCAD).
            export_path (str): Pfad zur Ausgabedatei.
            getpos_errors (dict, optional): Fehler-Dictionary aus getpositions.py.
            getpos_warnings (dict, optional): Warnungen-Dictionary aus getpositions.py.
        """
        # Daten vorbereiten
        dataframes = self._prep_data(data, export_type)

        # Excel Datei schreiben und speichern
        self._write_excel(dataframes, export_type, export_path, getpos_errors, getpos_warnings)

    def _write_excel(self, dataframes, export_type, export_path, getpos_errors=None, getpos_warnings=None):
        """
        Erzeugung der Excel-Datei im gewünschten Muster

        Args:
            dataframes: Die vorbereiteten DataFrames für den Export.
            export_type (str): Art des Exports (EA, TIA, WSCAD).
            export_path (str): Pfad zur Ausgabedatei.
            getpos_errors (dict, optional): Fehler-Dictionary aus getpositions.py.
            getpos_warnings (dict, optional): Warnungen-Dictionary aus getpositions.py.
        """
        if export_type == "EA":
            # Format für Simpel-Ausgabe
            df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge = dataframes

            with pd.ExcelWriter(export_path, engine='openpyxl') as writer:
                # Sheet 1: Ein / Ausgänge
                start_row = 0
                df_eingaenge.to_excel(writer, sheet_name='Ein-, Ausgaenge', index=False, startrow=start_row)
                start_row += len(df_eingaenge) + 2  # Leerzeile dazwischen

                # Ausgaenge direkt drunter schreiben (ohne Header)
                df_ausgaenge.to_excel(writer, sheet_name='Ein-, Ausgaenge', index=False, startrow=start_row, header=False)

                # Duplikate und Errors
                self._write_duplicates_errors(writer, df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler)

                # Fehler und Warnungen aus getpositions.py
                self._write_getpositions_errors(writer, getpos_errors, getpos_warnings)

        elif  export_type == "TIA":
            df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_consts, df_tags = dataframes

            with pd.ExcelWriter(export_path, engine='openpyxl', mode='w') as writer:
                # 1. PLC Tags Sheet mit Header. Spalten: Name, Path, Data Type, Logical Address, Comment, Hmi Visible, Hmi Accessible, Hmi Writeable, Typeobject ID, Version ID
                df_tags.to_excel(writer, sheet_name='PLC Tags', index=False)

                # 2. Constants Sheet mit Header. Spalten: Name, Path, Data Type, Value, Comment
                df_consts.to_excel(writer, sheet_name='Constants', index=False)

                # Duplikate und Errors
                self._write_duplicates_errors(writer, df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler)

                # Fehler und Warnungen aus getpositions.py
                self._write_getpositions_errors(writer, getpos_errors, getpos_warnings)

        elif export_type in ["WSCAD", "WSCAD mit Bezug"]:
            
            df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge = dataframes
            include_bezug = export_type == "WSCAD mit Bezug"

            # Basis-Template
            df_result = pd.DataFrame(
                columns=[
                    "Anschluss",
                    "Kommentar",
                    "Symboltext",
                    "Bezug",
                    "Sondertext 1",
                    "Sondertext 2",
                    "Sondertext 3",
                    "Sondertext 4",
                    "Sondertext 5",
                    "Sondertext 6",
                    "Sondertext 7",
                    "Sondertext 8",
                ]
            )

            # Fehler ganz oben in Sheet schreiben (falls sie existieren)
            if not df_fehler.empty:
                df_result = self._append_df(df_result, df_fehler, include_bezug)
            # Ein u. Ausgänge schreiben
            df_result = self._append_df(df_result, df_eingaenge, include_bezug)
            df_result = self._append_df(df_result, df_ausgaenge, include_bezug)

            with pd.ExcelWriter(export_path, engine="openpyxl") as writer:
                df_result.to_excel(writer, index=False, sheet_name="WSCAD")
                 # Bezug-Spalte als Text formatieren (Spalte 4 = "Bezug")
                worksheet = writer.book["WSCAD"]
                for row in worksheet.iter_rows(min_row=2, min_col=4, max_col=4):
                    for cell in row:
                        if cell.value and str(cell.value).startswith("="):
                            # Erzwinge Textformat
                            cell.number_format = "@"
                            cell.value = str(cell.value)  # wichtig: string setzen
                            cell.data_type = 's'  # explizit als String, verhindert Formelinterpretation
                # Duplikate und Errors
                self._write_duplicates_errors(writer, df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler)

                # Fehler und Warnungen aus getpositions.py
                self._write_getpositions_errors(writer, getpos_errors, getpos_warnings)

    def _append_df(self, target_df, source_df, include_bezug=False):
        """
        Hilfsfunktion, die Dataframes für WSCAD Export aneinander reiht und entweder Bezug inkludiert oder nicht
        """

        data = {
            "Anschluss": source_df["Name"],
            "Kommentar": source_df["Kommentar"],
            "Symboltext": "",
            "Bezug": source_df["Bezug"] if include_bezug else "",
            "Sondertext 1": "",
            "Sondertext 2": "",
            "Sondertext 3": "",
            "Sondertext 4": "",
            "Sondertext 5": "",
            "Sondertext 6": "",
            "Sondertext 7": "",
            "Sondertext 8": "",
        }
        tmp = pd.DataFrame(data)
        return pd.concat([target_df, tmp], ignore_index=True)
    
    def _write_duplicates_errors(self, writer, df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler):
        """
        Schreibt optional die Sheets 'Duplikate' und 'Fehler', falls Inhalte vorhanden sind.
        """
        # Bezug-Spalte für Excel Darstellung vorbereiten
        for df in [df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler]:
            if "Bezug" in df.columns:
                df["Bezug"] = df["Bezug"].apply(lambda x: f"'{x}" if pd.notnull(x) else x)


        # Duplikate-Sheet
        if not df_gleiche_eingaenge.empty or not df_gleiche_ausgaenge.empty:
            start_row = 0
            if not df_gleiche_eingaenge.empty:
                df_gleiche_eingaenge.to_excel(writer, sheet_name='Duplikate', index=False, startrow=start_row)
                start_row += len(df_gleiche_eingaenge) + 2  # Abstand
            if not df_gleiche_ausgaenge.empty:
                df_gleiche_ausgaenge.to_excel(writer, sheet_name='Duplikate', index=False, startrow=start_row, header=False)

        # Fehler-Sheet
        if not df_fehler.empty:
            df_fehler.to_excel(writer, sheet_name='Fehler', index=False)

    def _write_getpositions_errors(self, writer, errors_dict=None, warnings_dict=None):
        """
        Schreibt Fehler und Warnungen aus getpositions.py in separate Excel-Sheets.
        Diese Methode erstellt ähnliche Sheets wie in drawdxf.py für den getexdraw-Workflow.

        Args:
            writer (pd.ExcelWriter): Der Excel-Writer für die Ausgabedatei.
            errors_dict (dict, optional): Dictionary mit Fehlern aus getpositions.
            warnings_dict (dict, optional): Dictionary mit Warnungen aus getpositions.
        """
        if not errors_dict and not warnings_dict:
            return

        # Sheet: ERR-Equipment-Connection (nur für ioconverter relevant)
        if errors_dict:
            errors_sensors = errors_dict.get('sensors_connection', [])
            errors_dists = errors_dict.get('dists_connection', [])

            if errors_sensors or errors_dists:
                data = []
                for error in errors_sensors:
                    data.append({
                        "Type": "Sensor / Actuator",
                        "ID": error['name'],
                        "x": int(error['coords']['x']),
                        "y": int(error['coords']['y'])
                    })
                for error in errors_dists:
                    data.append({
                        "Type": "Subdistributor",
                        "ID": error['name'],
                        "x": int(error['coords']['x']),
                        "y": int(error['coords']['y'])
                    })

                df = pd.DataFrame(data)
                df.to_excel(writer, sheet_name='ERR-Equipment-Connection', index=False)

            # Sheet: Duplicate IDs
            errors_duplicates = errors_dict.get('duplicate_ids', {})
            if errors_duplicates:
                data = []
                for id_name, positions in errors_duplicates.items():
                    for pos in positions:
                        data.append({
                            "ID": id_name,
                            "x": int(pos[0]),
                            "y": int(pos[1])
                        })
                df = pd.DataFrame(data)
                df.to_excel(writer, sheet_name='ERR-Duplicate-IDs', index=False)

            # Sheet: Tunnel Errors
            errors_tunnels = errors_dict.get('overdefined_tunnel', [])
            if errors_tunnels:
                df = pd.DataFrame({"Tunnel ID": errors_tunnels})
                df.to_excel(writer, sheet_name='ERR-Tunnels', index=False)

        # Sheet: Warnungen (fehlende Attribute)
        if warnings_dict:
            missing_attributes = warnings_dict.get('missing_attributes', {})
            if missing_attributes:
                data = []
                for id_name, error_msg in missing_attributes.items():
                    data.append({
                        "ID": id_name,
                        "Error Detail": error_msg
                    })
                df = pd.DataFrame(data)
                df.to_excel(writer, sheet_name='WARN-Attributes', index=False)

def call_portal_to_excel(self, textlines, konvertierungsart):

        ec = ExcelConverter()

        all_duplicate_inputs = []
        all_duplicate_outputs = []
        all_errors = []

        prefix_eingang = "E"
        prefix_ausgang = "A"

        target_path = os.environ.get("PROJECT_WORK")
        #self.current_task_label.config(text=f"Erstelle Excel-Datei: {os.path.basename(ziel_datei)}")

        gleiche_eingaenge = []
        gleiche_ausgaenge = []
        fehler = []

        if konvertierungsart == "Simpel":
            # df_eingaenge, df_ausgaenge wird in excel Datei geschrieben. Hier zu Ausgabe hinzugefügt, damit unittest befüllt werden kann
            df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge = ec._prep_simpel(
                textlines, prefix_eingang, prefix_ausgang
            )
            return df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge
        
        elif konvertierungsart == "TIA":
            # df_consts und df_tags wird in excel Datei geschrieben. Hier zu Ausgabe hinzugefügt, damit unittest befüllt werden kann
            df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_consts, df_tags = ec._prep_tia(
                textlines, prefix_eingang, prefix_ausgang
            )
            return(df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_consts, df_tags)
        
        elif konvertierungsart == "WSCAD" or "WSCAD mit Bezug":
            df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge = ec._prep_wscad(
                textlines, prefix_eingang, prefix_ausgang
            )
            return(df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge)
        
        all_duplicate_inputs.extend(gleiche_eingaenge)
        all_duplicate_outputs.extend(gleiche_ausgaenge)
        all_errors.extend(fehler)

        

        #self.completed_tasks_listbox.insert(tk.END, f"ERFOLG: {os.path.basename(ziel_datei)}")
    
        #self.switch_to_duplicates_tab(all_duplicate_inputs, all_duplicate_outputs, all_errors)

class TestPlant(unittest.TestCase):

    def test_Simpel(self):
        textlines = """'DI0023','STEUERSPANNUNG 24V UC200 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC200 OK','CONTROL VOLTAGE 24V UC200 OK','TENSION DE MANIOBRA 24V UC200 OK',''
'DI0020','STEUERSPANNUNG 24V UH000 OK','24V OK UH000','=A01+UH000-KF02i','STEUERSPANNUNG 24V UH000 OK','CONTROL VOLTAGE 24V UH000 OK','TENSION DE MANIOBRA 24V UH000 OK',''
'DI0020','STEUERSPANNUNG 24V UH000 OK','24V OK UH000','=A01+UH000-KF02i','STEUERSPANNUNG 24V UH000 OK','CONTROL VOLTAGE 24V UH000 OK','TENSION DE MANIOBRA 24V UH000 OK',''
'XY0022','STEUERSPANNUNG 24V UC103 ','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC103 OK','CONTROL VOLTAGE 24V UC103 OK','TENSION DE MANIOBRA 24V UC103 OK',''
'DI0021','STEUERSPANNUNG 24V UC102-UC101 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC102-UC101 OK','CONTROL VOLTAGE 24V UC102-UC101 OK','TENSION DE MANIOBRA 24V UC102-UC101 OK',''
'KF0013','DRUCKL.-WARTUNGSEINH. SCHLIESSEN','COMPR. AIR OFF','=A01+UH000-KF01Q','DRUCKL.-WARTUNGSEINH. SCHLIESSEN','CLOSE PRESS.-MAINTENANCE UNIT','AIRE COMPRIMIDO/VÁLVULA DE AISLAMIENTO C',''
'KF0012','RESET NOT HALT','RESET E-STOP','=A01+UH000-KF01Q','RESET NOT HALT','RESET EMERGENCY STOP','RESET PARO DE EMERGENCIA',''
'PF0011','ÜBERSTROM/SICHERUNGSFALL','IL-YE-LED','=A01+UH000-KF01Q','ÜBERSTROM/SICHERUNGSFALL','OVERCURRENT/MIN. CIRCUIT BREAKERS','SOBREINTENSIDAD/FUSIBLE AUTOMÁTICO',''
'MA1020','ANTRIEB PUFFER F0101 FLYER 1','M-BI-LE','=A01+UC101-KF02Q','','','',''
'MA1020','ANTRIEB PUFFER F0101 FLYER 1','M-BI-LE','=A01+UC101-KF02Q','','','',''
"""
        textarray = textlines.splitlines()

        '''Testcase: 10 Zeilen mit I/O: Davon 4 Eingänge (1 Duplikat), 5 Ausgänge (1 Duplikat), 1 Fehlerhafte BMK'''

        df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge = call_portal_to_excel(self, textarray, "Simpel")

        # print("\n Eingänge:\n")
        # print(df_eingaenge)
        # print("\n Ausgänge:\n")
        # print(df_ausgaenge)

        # print("\n gleiche Eingänge:\n")
        # print(df_gleiche_eingaenge)
        # print("\n gleiche Ausgänge:\n")
        # print(df_gleiche_ausgaenge)

        self.assertEqual(len(df_fehler), 1)                                 # Fehler anzeigen: Zeile 4 Prefix XY

        self.assertEqual(len(df_eingaenge), 4 - len(df_gleiche_eingaenge))                               # 4 Eingänge in Liste, einer davon als Duplikat
        self.assertEqual(len(df_ausgaenge), 5 - len(df_gleiche_ausgaenge))                               # 5 Ausgänge in Liste, einer davon Duplikat

    def test_TIA(self):
        textlines = """'DI0023','STEUERSPANNUNG 24V UC200 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC200 OK','CONTROL VOLTAGE 24V UC200 OK','TENSION DE MANIOBRA 24V UC200 OK',''
'DI0020','STEUERSPANNUNG 24V UH000 OK','24V OK UH000','=A01+UH000-KF02i','STEUERSPANNUNG 24V UH000 OK','CONTROL VOLTAGE 24V UH000 OK','TENSION DE MANIOBRA 24V UH000 OK',''
'DI0020','STEUERSPANNUNG 24V UH000 OK','24V OK UH000','=A01+UH000-KF02i','STEUERSPANNUNG 24V UH000 OK','CONTROL VOLTAGE 24V UH000 OK','TENSION DE MANIOBRA 24V UH000 OK',''
'XY0022','STEUERSPANNUNG 24V UC103 ','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC103 OK','CONTROL VOLTAGE 24V UC103 OK','TENSION DE MANIOBRA 24V UC103 OK',''
'DI0021','STEUERSPANNUNG 24V UC102-UC101 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC102-UC101 OK','CONTROL VOLTAGE 24V UC102-UC101 OK','TENSION DE MANIOBRA 24V UC102-UC101 OK',''
'KF0013','DRUCKL.-WARTUNGSEINH. SCHLIESSEN','COMPR. AIR OFF','=A01+UH000-KF01Q','DRUCKL.-WARTUNGSEINH. SCHLIESSEN','CLOSE PRESS.-MAINTENANCE UNIT','AIRE COMPRIMIDO/VÁLVULA DE AISLAMIENTO C',''
'KF0012','RESET NOT HALT','RESET E-STOP','=A01+UH000-KF01Q','RESET NOT HALT','RESET EMERGENCY STOP','RESET PARO DE EMERGENCIA',''
'PF0011','ÜBERSTROM/SICHERUNGSFALL','IL-YE-LED','=A01+UH000-KF01Q','ÜBERSTROM/SICHERUNGSFALL','OVERCURRENT/MIN. CIRCUIT BREAKERS','SOBREINTENSIDAD/FUSIBLE AUTOMÁTICO',''
'MA1020','ANTRIEB PUFFER F0101 FLYER 1','M-BI-LE','=A01+UC101-KF02Q','','','',''
'MA1020','ANTRIEB PUFFER F0101 FLYER 1','M-BI-LE','=A01+UC101-KF02Q','','','',''
"""
        textarray = textlines.splitlines()
        
        '''Testcase: 10 Zeilen mit I/O: Davon 4 Eingänge (1 Duplikat), 5 Ausgänge (1 Duplikat), 1 Fehlerhafte BMK'''
        
        df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_consts, df_tags = call_portal_to_excel(self, textarray, "TIA")
        
        # print("\n Consts:\n")
        # print(df_consts)
        # print("\n Tags:\n")
        # print(df_tags)

        # print("\n gleiche Eingänge:\n")
        # print(df_gleiche_eingaenge)
        # print("\n gleiche Ausgänge:\n")
        # print(df_gleiche_ausgaenge)

    
        self.assertIn("DI0020", df_gleiche_eingaenge["NameOriginal"].values)        # Püfen, ob doppelter Name in doppelteEingänge auftaucht
        self.assertIn("MA1020", df_gleiche_ausgaenge["NameOriginal"].values)        # Püfen, ob doppelter Name in doppelteAusgänge auftaucht
        self.assertEqual(len(df_fehler), 1)                                         # Fehler anzeigen: Zeile 4 Prefix XY

        # Test, ob länge passt. Eigentlich 10 Eingabezeilen, Fehler bleibt drin, aber 2x 1 Duplikat in Eingang und Ausgang abziehen
        self.assertEqual(len(df_consts), len(textarray)-(len(df_gleiche_ausgaenge)+len(df_gleiche_eingaenge)))
        self.assertEqual(len(df_tags), len(textarray)-(len(df_gleiche_ausgaenge)+len(df_gleiche_eingaenge)))

    def test_WSCAD(self):
        textlines = """'DI0023','STEUERSPANNUNG 24V UC200 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC200 OK','CONTROL VOLTAGE 24V UC200 OK','TENSION DE MANIOBRA 24V UC200 OK',''
'DI0020','STEUERSPANNUNG 24V UH000 OK','24V OK UH000','=A01+UH000-KF02i','STEUERSPANNUNG 24V UH000 OK','CONTROL VOLTAGE 24V UH000 OK','TENSION DE MANIOBRA 24V UH000 OK',''
'DI0020','STEUERSPANNUNG 24V UH000 OK','24V OK UH000','=A01+UH000-KF02i','STEUERSPANNUNG 24V UH000 OK','CONTROL VOLTAGE 24V UH000 OK','TENSION DE MANIOBRA 24V UH000 OK',''
'XY0022','STEUERSPANNUNG 24V UC103 ','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC103 OK','CONTROL VOLTAGE 24V UC103 OK','TENSION DE MANIOBRA 24V UC103 OK',''
'DI0021','STEUERSPANNUNG 24V UC102-UC101 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC102-UC101 OK','CONTROL VOLTAGE 24V UC102-UC101 OK','TENSION DE MANIOBRA 24V UC102-UC101 OK',''
'KF0013','DRUCKL.-WARTUNGSEINH. SCHLIESSEN','COMPR. AIR OFF','=A01+UH000-KF01Q','DRUCKL.-WARTUNGSEINH. SCHLIESSEN','CLOSE PRESS.-MAINTENANCE UNIT','AIRE COMPRIMIDO/VÁLVULA DE AISLAMIENTO C',''
'KF0012','RESET NOT HALT','RESET E-STOP','=A01+UH000-KF01Q','RESET NOT HALT','RESET EMERGENCY STOP','RESET PARO DE EMERGENCIA',''
'PF0011','ÜBERSTROM/SICHERUNGSFALL','IL-YE-LED','=A01+UH000-KF01Q','ÜBERSTROM/SICHERUNGSFALL','OVERCURRENT/MIN. CIRCUIT BREAKERS','SOBREINTENSIDAD/FUSIBLE AUTOMÁTICO',''
'MA1020','ANTRIEB PUFFER F0101 FLYER 1','M-BI-LE','=A01+UC101-KF02Q','','','',''
'MA1020','ANTRIEB PUFFER F0101 FLYER 1','M-BI-LE','=A01+UC101-KF02Q','','','',''
"""
        textarray = textlines.splitlines()

        '''Testcase: 10 Zeilen mit I/O: Davon 4 Eingänge (1 Duplikat), 5 Ausgänge (1 Duplikat), 1 Fehlerhafte BMK'''

        df_gleiche_eingaenge, df_gleiche_ausgaenge, df_fehler, df_eingaenge, df_ausgaenge = call_portal_to_excel(self, textarray, "WSCAD mit Bezug")

        print("\n Eingänge:\n")
        print(df_eingaenge)
        print("\n Ausgänge:\n")
        print(df_ausgaenge)

        # print("\n Fehler")
        # print(df_fehler)

        # print("\n gleiche Eingänge:\n")
        # print(df_gleiche_eingaenge)
        # print("\n gleiche Ausgänge:\n")
        # print(df_gleiche_ausgaenge)


if __name__ == "__main__":

    suite = unittest.TestSuite()
    suite.addTest(TestPlant('test_Simpel'))
    suite.addTest(TestPlant('test_TIA'))
    suite.addTest(TestPlant('test_WSCAD'))

    runner = unittest.TextTestRunner()
    runner.run(suite)
    
    export_type_arr = ("EA", "TIA", "WSCAD", "WSCAD mit Bezug")
    textlines = """'XYZ0023','STEUERSPANNUNG 24V UC200 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC200 OK','CONTROL VOLTAGE 24V UC200 OK','TENSION DE MANIOBRA 24V UC200 OK','',''
'DI0020','STEUERSPANNUNG 24V UH000 OK','24V OK UH000','=A01+UH000-KF02i','STEUERSPANNUNG 24V UH000 OK','CONTROL VOLTAGE 24V UH000 OK','TENSION DE MANIOBRA 24V UH000 OK','',''
'DI0020','STEUERSPANNUNG 24V UC103 ','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC103 OK','CONTROL VOLTAGE 24V UC103 OK','TENSION DE MANIOBRA 24V UC103 OK','',''
'DI0021','STEUERSPANNUNG 24V UC102-UC101 OK','24V OK','=A01+UH000-KF02i','STEUERSPANNUNG 24V UC102-UC101 OK','CONTROL VOLTAGE 24V UC102-UC101 OK','TENSION DE MANIOBRA 24V UC102-UC101 OK','',''
'KF0013','DRUCKL.-WARTUNGSEINH. SCHLIESSEN','COMPR. AIR OFF','=A01+UH000-KF01Q','DRUCKL.-WARTUNGSEINH. SCHLIESSEN','CLOSE PRESS.-MAINTENANCE UNIT','AIRE COMPRIMIDO/VÁLVULA DE AISLAMIENTO C','',''
'KF0012','RESET NOT HALT','RESET E-STOP','=A01+UH000-KF01Q','RESET NOT HALT','RESET EMERGENCY STOP','RESET PARO DE EMERGENCIA','',''
'PF0011','ÜBERSTROM/SICHERUNGSFALL','IL-YE-LED','=A01+UH000-KF01Q','ÜBERSTROM/SICHERUNGSFALL','OVERCURRENT/MIN. CIRCUIT BREAKERS','SOBREINTENSIDAD/FUSIBLE AUTOMÁTICO','',''
'PF0010','DRUCKLUFT FEHLT','IL-YE-LED','=A01+UH000-KF01Q','DRUCKLUFT FEHLT','COMPRESSED AIR MISSING','AIRE COMPRIMIDO DESCONECTADO','',''
'PF0002','START NACH STÖRUNG','IPB-CL-LED','=A01+UH000-KF00Q','START NACH STÖRUNG','START AFTER TROUBLE','ARRANQUE DESPUÉS DE AVERÍA','',''
'PF0004','STÖRUNG KOMMUNIKATION PC-SPS','IL-YE-LED','=A01+UH000-KF00Q','STÖRUNG KOMMUNIKATION PC-SPS','TROUBLE COMMUNICATION PC-PLC','AVERÍA COMMUNICATIÓN PC-CPP','',''
'PF0006','ABHEBEN AKTIV','IL-YE-LED','=A01+UH000-KF00Q','ABHEBEN AKTIV','LIFT OFF ACTIVE','SEPARAR ACTIVO','',''
'PF0005','LAUFZEITFEHLER','IPB-YE-LED','=A01+UH000-KF00Q','LAUFZEITFEHLER','TRAVEL TIME ERROR','ERROR DE TIEMPO','',''
'PF0003','NOT HALT BETÄTIGT','IL-YE-LED','=A01+UH000-KF00Q','NOT HALT BETÄTIGT','EMERGENCY STOP PUSHED','PARO EMERGENCIA OK','',''
'PF0001','ANLAGE EIN','IPB-GN-LED','=A01+UH000-KF00Q','ANLAGE EIN','SYSTEM ON','SISTEMA ENCENDIDO','',''
'PF0000','STÖRUNG ALLGEMEIN','IL-YE-LED','=A01+UH000-KF00Q','STÖRUNG ALLGEMEIN','GENERAL TROUBLE','AVERÍA','',''
'DI0017','PHASENÜBERWACHUNGSRELAIS 400VAC EIN','MONITOR. RELAY','=A01+UH000-KF01i','PHASENÜBERWACHUNGSRELAIS 400VAC EIN','PHASE MONITORING RELAY 400VAC ON','VIGILANCIA DE FASE EL RELE´','',''
'SF0015','RESET AKTIV','PB-BK-NO','=A01+UH000-KF01i','RESET AKTIV','RESET ACTIVE','RESET AKTIVA','',''
'DI0014','HAUPTSCHÜTZE EIN','MAIN CONTACT.','=A01+UH000-KF01i','HAUPTSCHÜTZE EIN','MAIN CONTACTORS ON','ENCENDIDO CONTACTOR PRINCIPAL','',''
'DI0013','SICHERHEITSRELAIS EIN','SAFETY RELAY','=A01+UH000-KF01i','SICHERHEITSRELAIS EIN','SAFETY RELAY ON','RELÉ DE SEGURIDAD ENCENDIDO','',''
'DI0012','SICHERUNGSAUTOMATENFALL','CIRCUIT BR.','=A01+UH000-KF01i','SICHERUNGSAUTOMATENFALL','MINIATURE CIRCUIT BREAKERS','FUSIBLE AUTOMÁTICO','',''
'DI0011','ÜBERSTROM','MOTORS','=A01+UH000-KF01i','ÜBERSTROM','OVERCURRENT','SOBREINTENSIDAD','',''
'BG0010','DRUCKLUFT OK','COMPR. AIR','=A01+UH000-KF01i','DRUCKLUFT OK','COMPRESSED AIR OK','AIRE COMPRIMIDO OK','',''
'SF0004','LAMPENTEST','PB-WH-NO','=A01+UH000-KF00i','LAMPENTEST','LAMP TEST','ENSAYO LAMPARA','',''
'SF0006','ANTRIEBE ABHEBEN','SS-BK-NO','=A01+UH000-KF00i','ANTRIEBE ABHEBEN','LIFT OFF CONVEYORS','SEPARAR MOTOR','',''
'SF0005','LAUFZEITFEHLER','IPB-YE-N0','=A01+UH000-KF00i','LAUFZEITFEHLER','TRAVEL TIME ERROR','ERROR DE TIEMPO','',''
'SF0003','NOT HALT SCHALTSCHRANK','EPB-RD-NC','=A01+UH000-KF00i','NOT HALT','EMERGENCY STOP','PARO DE EMERGENCIA ARMARIO DE DISTRIBUCI','',''
'SF0002','START NACH STÖRUNG','IPB-CL-NO','=A01+UH000-KF00i','START NACH STÖRUNG','START AFTER TROUBLE','ARRANQUE DESPUÉS DE AVERÍA','',''
'SF0001','ANLAGE EIN','IPB-GN-NO','=A01+UH000-KF00i','ANLAGE EIN','SYSTEM ON','SISTEMA ENCENDIDO','',''
'SF0000','ANLAGE AUS','PB-BK-NC','=A01+UH000-KF00i','ANLAGE AUS','SYSTEM OFF','SISTEMA APAGADO','',''
'BG1303','SENSOR HAUPTSTR. FB213','LT-FB213','=A01+UC102-KF04i','','','','',''
'BG1424','SENSOR HAUPTSTR. EINFAHRT FB211','LT-ENTER FB211','=A01+UH000-KF05i','','','','',''
'BG1462','SENSOR HAUPTSTR. AUSFAHRT FB222','LT-EXIT-FB222','=A01+UH000-KF08i','','','','',''
'BG3133','SENSOR HAUPTSTR. FB312','LT-FB312','=A01+UH000-KF12i','','','','',''
'MB1487','WEICHE ABZWEIG AUSFAHRT FB222','SW EXIT FB222','=A01+UH000-KF10Q','','','','',''
'MA1437','ANTRIEB HAUPTSTR. AUSFAHRT RF - RSM FB212','M-BI FB212','=A01+UH000-KF05Q','','','','','>'
'MA1436','ANTRIEB HAUPTSTR. EINFAHRT RF - RSM FB211','M-BI FB211','=A01+UH000-KF05Q','','','','','<'
'BG1460','SENSOR HAUPTSTR. AUSFAHRT FB221','LT- EXIT FB221','=A01+UH000-KF08i','','','','',''
'BG1417','SENSOR HAUPTSTR. FLYER 6','LT-ENTER RF6','=A01+UH000-KF04i','','','','',''
'MA1480','ANTRIEB HAUPTSTR. EINFAHRT RF - RSM FB221','M-BI FB221','=A01+UH000-KF10Q','','','','','<'
'QA1525','ANTRIEB HAUPTSTR. RF 8','M-BI RF 8','=A01+UC103-KF02Q','','','','','>'
'MA1524','ANTRIEB HAUPTSTR. RF 8','M-BI RF 8','=A01+UC103-KF02Q','','','','','>'
'BG1140','SENSOR HAUPTSTR. FLYER 3 FB215','LT RF3 FB215','=A01+UC101-KF06i','','','','',''
'MB1486','WEICHE ABZWEIG HAUPTSTR. EINFAHRT FB73','SW ENTER ','=A01+UH000-KF10Q','','','','',''
'QA1483','ANTRIEB HAUPTSTR. RF - RSM','M-BI RSM-RF','=A01+UH000-KF10Q','','','','','<'
'MA1482','ANTRIEB HAUPTSTR. RF - RSM','M-BI RF-RSM','=A01+UH000-KF10Q','','','','','<'
'BG1457','SENSOR HAUPTSTR. EINFAHRT FB222','LT-ENTER-FB222','=A01+UH000-KF07i','','','','',''
'BG1461','SENSOR HAUPTSTR. EINFAHRT FB221','LT-ENTER-FB221','=A01+UH000-KF08i','','','','',''
'BG1420','SENSOR HAUPTSTR. AUSFAHRT FB213','LT- EXIT FB213','=A01+UH000-KF05i','','','','',''
'MA1484','ANTRIEB HAUPTSTR. AUSFAHRT RF - RSM FB222','M-BI FB222','=A01+UH000-KF10Q','','','','','>'
'BG1421','SENSOR HAUPTSTR. FB212','LT-FB212','=A01+UH000-KF05i','','','','',''
'QA1477','ANTRIEB EIN-AUSFAHRT HAUPTSTR. RF - RSM','M-BI RSM-RF','=A01+UH000-KF09Q','','','','','>'
'MA1476','ANTRIEB EIN-AUSFAHRT HAUPTSTR. RF - RSM','M-BI RF-RSM','=A01+UH000-KF09Q','','','','','<'
'MB3236','WEICHE GERADE FB320','STRAIGHT','=A01+UH000-KF20Q','','','','',''
'MB3237','WEICHE ABZWEIG FB320','BRANCH ','=A01+UH000-KF20Q','','','','',''
'BG3231','SENSOR HAUPTSTR. FB321','LT-FB321','=A01+UH000-KF16i','','','','',''
'BG3132','SENSOR HAUPTSTR. FB310-FB320','LT-FB310-FB320','=A01+UH000-KF12i','','','','',''
'MB3136','WEICHE GERADE FB310','STRAIGHT','=A01+UH000-KF14Q','','','','',''
'MB3137','WEICHE ABZWEIG FB310','BRANCH ','=A01+UH000-KF14Q','','','','',''
'QA1433','ANTRIEB EIN-AUSFAHRT HAUPTSTR. RF - RSM','M-BI RSM-RF','=A01+UH000-KF05Q','','','','','>'
'MA1432','ANTRIEB EIN-AUSFAHRT HAUPTSTR. RF - RSM','M-BI RF-RSM','=A01+UH000-KF05Q','','','','','<'
'MB1422','WEICHE ABZWEIG PUFFER FB212','SW EXIT FB212','=A01+UH000-KF04Q','','','','',''
'BG1423','SENSOR HAUPTSTR. AUSFAHRT FB212','LT-EXIT FB212','=A01+UH000-KF05i','','','','',''
'QA3235','ANTRIEB HAUPTSTRECKE -> RSM 28-21                 ','RA-BI','=A01+UH000-KF20Q','','','','','<'
'MA3234','ANTRIEB HAUPTSTRECKE -> RSM 21-28                 ','RA-BI','=A01+UH000-KF20Q','','','','A','<'
'QA3135','ANTRIEB HAUPTSTRECKE -> RSM 10-1','RA-BI','=A01+UH000-KF14Q','','','','','<'
'MA3134','ANTRIEB HAUPTSTRECKE -> RSM 1-10','RA-BI','=A01+UH000-KF14Q','','','','A','<'
'QA3035','ANTRIEB HAUPTSTRECKE -> RSM 10-1','RA-BI','=A01+UC200-KF03Q','','','','','<'
'MA3034','ANTRIEB HAUPTSTRECKE -> RSM 1-10','RA-BI','=A01+UC200-KF03Q','','','','A','<'
'PF3214','RUNDUMLEUCHTE STÖRUNG RSM 11-20','LED-YE_FAULT','=A01+UH000-KF18Q','','','','',''
'SF3216','RESET/START NACH NOT HALT RSM 21-25','IPB-YE-NO','=A01+UH000-KF14i','RESET','RESET','RESET','',''
'PF3216','RESET/START NACH NOT HALT RSM 21-25','IPB-YE-LED          ','=A01+UH000-KF18Q','','','','',''
'SF3215','NOT HALT RSM 21-25','EPB-NC','=A01+UH000-KF14i','NOT-HALT','E-STOP','E-STOP','',''
'PF3114','RUNDUMLEUCHTE STÖRUNG RSM 11-20','LED-YE_FAULT','=A01+UH000-KF12Q','','','','',''
'SF3116','RESET/START NACH NOT HALT RSM 11-20','IPB-YE-NO','=A01+UH000-KF10i','RESET','RESET','RESET','',''
'PF3116','RESET/START NACH NOT HALT RSM 11-20','IPB-YE-LED          ','=A01+UH000-KF12Q','','','','',''
'SF3115','NOT HALT RSM 11-20','EPB-NC','=A01+UH000-KF10i','NOT-HALT','E-STOP','E-STOP','',''
'SF3226','ZUG WECHSELN RSM 30','LDT-GN-NO','=A01+UH000-KF15i','-UZ3226','-UZ3226','','',''
'PF3254','ZUG WECHSELN RSM 30','LDT-GN-LED          ','=A01+UH000-KF22Q','','','','',''
'QA3257','ANTRIEB AUSFAHREN RSM 30','RA-BI','=A01+UH000-KF22Q','','','','','<'
'MA3256','ANTRIEB EINFAHREN RSM 30','RA-BI','=A01+UH000-KF22Q','','','','A','>'
'BG3227','SENSOR OPTISCH RSM 30','OPT. AP110','=A01+UH000-KF15i','','','','',''
'SF3224','ZUG WECHSELN RSM 29','LDT-GN-NO','=A01+UH000-KF15i','-UZ3224','-UZ3224','','',''
'PF3250','ZUG WECHSELN RSM 29','LDT-GN-LED          ','=A01+UH000-KF22Q','','','','',''
'MB3251','WEICHE ABZWEIG RSM 29','SW RSM 29','=A01+UH000-KF22Q','','','','',''
'QA3253','ANTRIEB AUSFAHREN RSM 29','RA-BI','=A01+UH000-KF22Q','','','','','<'
'MA3252','ANTRIEB EINFAHREN RSM 29','RA-BI','=A01+UH000-KF22Q','','','','A','>'
'BG3225','SENSOR OPTISCH RSM 29','OPT. AP110','=A01+UH000-KF15i','','','','',''
'MB3241','WEICHE ABZWEIG RSM 27','SW RSM 27','=A01+UH000-KF21Q','','','','',''
'MB3231','WEICHE ABZWEIG RSM 26','SW RSM 26','=A01+UH000-KF20Q','','','','',''
'MB3245','WEICHE ABZWEIG RSM 28','SW RSM 28','=A01+UH000-KF21Q','','','','',''
'QA3247','ANTRIEB AUSFAHREN RSM 28','RA-BI','=A01+UH000-KF21Q','','','','','<'
'MA3246','ANTRIEB EINFAHREN RSM 28','RA-BI','=A01+UH000-KF21Q','','','','A','>'
'BG3223','SENSOR OPTISCH RSM 28','OPT. AP110','=A01+UH000-KF15i','','','','',''
'QA3243','ANTRIEB AUSFAHREN RSM 27','RA-BI','=A01+UH000-KF21Q','','','','','<'
'MA3242','ANTRIEB EINFAHREN RSM 27','RA-BI','=A01+UH000-KF21Q','','','','A','>'
'BG3221','SENSOR OPTISCH RSM 27','OPT. AP110','=A01+UH000-KF15i','','','','',''
'QA3233','ANTRIEB AUSFAHREN RSM 26','RA-BI','=A01+UH000-KF20Q','','','','','<'
'MA3232','ANTRIEB EINFAHREN RSM 26','RA-BI','=A01+UH000-KF20Q','','','','A','>'
'BG3213','SENSOR OPTISCH RSM 26','OPT. AP110','=A01+UH000-KF14i','','','','',''
'MB3225','WEICHE ABZWEIG RSM 25','SW RSM 25','=A01+UH000-KF19Q','','','','',''
'QA3227','ANTRIEB AUSFAHREN RSM 25','RA-BI','=A01+UH000-KF19Q','','','','','<'
'MA3226','ANTRIEB EINFAHREN RSM 25','RA-BI','=A01+UH000-KF19Q','','','','A','>'
'BG3211','SENSOR OPTISCH RSM 25','OPT. AP110','=A01+UH000-KF14i','','','','',''
'QA3223','ANTRIEB AUSFAHREN RSM 24','RA-BI','=A01+UH000-KF19Q','','','','','<'
'MA3222','ANTRIEB EINFAHREN RSM 24','RA-BI','=A01+UH000-KF19Q','','','','A','>'
'BG3207','SENSOR OPTISCH RSM 24','OPT. AP110','=A01+UH000-KF13i','','','','',''
'MB3221','WEICHE ABZWEIG RSM 24','SW RSM 24','=A01+UH000-KF19Q','','','','',''
'QA3213','ANTRIEB AUSFAHREN RSM 23','RA-BI','=A01+UH000-KF18Q','','','','','<'
'MA3212','ANTRIEB EINFAHREN RSM 23','RA-BI','=A01+UH000-KF18Q','','','','A','>'
'BG3205','SENSOR OPTISCH RSM 23','OPT. AP110','=A01+UH000-KF13i','','','','',''
'QA3207','ANTRIEB AUSFAHREN RSM 22','RA-BI','=A01+UH000-KF17Q','','','','','<'
'MA3206','ANTRIEB EINFAHREN RSM 22','RA-BI','=A01+UH000-KF17Q','','','','A','>'
'BG3203','SENSOR OPTISCH RSM 22','OPT. AP110','=A01+UH000-KF13i','','','','',''
'QA3203','ANTRIEB AUSFAHREN RSM 21','RA-BI','=A01+UH000-KF17Q','','','','','<'
'MA3202','ANTRIEB EINFAHREN RSM 21','RA-BI','=A01+UH000-KF17Q','','','','A','>'
'BG3201','SENSOR OPTISCH RSM 21','OPT. AP110','=A01+UH000-KF13i','','','','',''
'MB3211','WEICHE ABZWEIG RSM 23','SW RSM 23','=A01+UH000-KF18Q','','','','',''
'MB3205','WEICHE ABZWEIG RSM 22','SW RSM 22','=A01+UH000-KF17Q','','','','',''
'MB3201','WEICHE ABZWEIG RSM 21','SW RSM 21','=A01+UH000-KF17Q','','','','',''
'SF3222','ZUG WECHSELN RSM 28','LDT-GN-NO','=A01+UH000-KF15i','-UZ3222','-UZ3222','','',''
'PF3244','ZUG WECHSELN RSM 28','LDT-GN-LED          ','=A01+UH000-KF21Q','','','','',''
'SF3220','ZUG WECHSELN RSM 27','LDT-GN-NO','=A01+UH000-KF15i','-UZ3220','-UZ3220','','',''
'PF3240','ZUG WECHSELN RSM 27','LDT-GN-LED          ','=A01+UH000-KF21Q','','','','',''
'SF3212','ZUG WECHSELN RSM 26','LDT-GN-NO','=A01+UH000-KF14i','-UZ3300','-UZ3300','','',''
'PF3230','ZUG WECHSELN RSM 26','LDT-GN-LED          ','=A01+UH000-KF20Q','','','','',''
'SF3210','ZUG WECHSELN RSM 25','LDT-GN-NO','=A01+UH000-KF14i','-UZ3210','-UZ3210','','',''
'PF3224','ZUG WECHSELN RSM 25','LDT-GN-LED          ','=A01+UH000-KF19Q','','','','',''
'SF3206','ZUG WECHSELN RSM 24','LDT-GN-NO','=A01+UH000-KF13i','-UZ3206','-UZ3206','','',''
'PF3220','ZUG WECHSELN RSM 24','LDT-GN-LED          ','=A01+UH000-KF19Q','','','','',''
'SF3204','ZUG WECHSELN RSM 23','LDT-GN-NO','=A01+UH000-KF13i','-UZ3204','-UZ3204','','',''
'PF3210','ZUG WECHSELN RSM 23','LDT-GN-LED          ','=A01+UH000-KF18Q','','','','',''
'SF3202','ZUG WECHSELN RSM 22','LDT-GN-NO','=A01+UH000-KF13i','-UZ3202','-UZ3202','','',''
'PF3204','ZUG WECHSELN RSM 22','LDT-GN-LED          ','=A01+UH000-KF17Q','','','','',''
'SF3200','ZUG WECHSELN RSM 21','LDT-GN-NO','=A01+UH000-KF13i','-UZ3200','-UZ3200','','',''
'PF3200','ZUG WECHSELN RSM 21','LDT-GN-LED          ','=A01+UH000-KF17Q','','','','',''
'MB3155','WEICHE ABZWEIG RSM 20','SW RSM 20','=A01+UH000-KF16Q','','','','',''
'QA3157','ANTRIEB AUSFAHREN RSM 20','RA-BI','=A01+UH000-KF16Q','','','','','<'
'MA3156','ANTRIEB EINFAHREN RSM 20','RA-BI','=A01+UH000-KF16Q','','','','A','>'
'BG3127','SENSOR OPTISCH RSM 20','OPT. AP110','=A01+UH000-KF11i','','','','',''
'QA3153','ANTRIEB AUSFAHREN RSM 19','RA-BI','=A01+UH000-KF16Q','','','','','<'
'MA3152','ANTRIEB EINFAHREN RSM 19','RA-BI','=A01+UH000-KF16Q','','','','A','>'
'BG3125','SENSOR OPTISCH RSM 19','OPT. AP110','=A01+UH000-KF11i','','','','',''
'QA3147','ANTRIEB AUSFAHREN RSM 18','RA-BI','=A01+UH000-KF15Q','','','','','<'
'MA3146','ANTRIEB EINFAHREN RSM 18','RA-BI','=A01+UH000-KF15Q','','','','A','>'
'BG3123','SENSOR OPTISCH RSM 18','OPT. AP110','=A01+UH000-KF11i','','','','',''
'QA3143','ANTRIEB AUSFAHREN RSM 17','RA-BI','=A01+UH000-KF15Q','','','','','<'
'MA3142','ANTRIEB EINFAHREN RSM 17','RA-BI','=A01+UH000-KF15Q','','','','A','>'
'BG3121','SENSOR OPTISCH RSM 17','OPT. AP110','=A01+UH000-KF11i','','','','',''
'QA3133','ANTRIEB AUSFAHREN RSM 16','RA-BI','=A01+UH000-KF14Q','','','','','<'
'MA3132','ANTRIEB EINFAHREN RSM 16','RA-BI','=A01+UH000-KF14Q','','','','A','>'
'BG3113','SENSOR OPTISCH RSM 16','OPT. AP110','=A01+UH000-KF10i','','','','',''
'QA3127','ANTRIEB AUSFAHREN RSM 15','RA-BI','=A01+UH000-KF13Q','','','','','<'
'MA3126','ANTRIEB EINFAHREN RSM 15','RA-BI','=A01+UH000-KF13Q','','','','A','>'
'BG3111','SENSOR OPTISCH RSM 15','OPT. AP110','=A01+UH000-KF10i','','','','',''
'QA3123','ANTRIEB AUSFAHREN RSM 14','RA-BI','=A01+UH000-KF13Q','','','','','<'
'MA3122','ANTRIEB EINFAHREN RSM 14','RA-BI','=A01+UH000-KF13Q','','','','A','>'
'BG3107','SENSOR OPTISCH RSM 14','OPT. AP110','=A01+UH000-KF09i','','','','',''
'MB3151','WEICHE ABZWEIG RSM 19','SW RSM 19','=A01+UH000-KF16Q','','','','',''
'MB3145','WEICHE ABZWEIG RSM 18','SW RSM 18','=A01+UH000-KF15Q','','','','',''
'MB3141','WEICHE ABZWEIG RSM 17','SW RSM 17','=A01+UH000-KF15Q','','','','',''
'MB3131','WEICHE ABZWEIG RSM 16','SW RSM 16','=A01+UH000-KF14Q','','','','',''
'MB3125','WEICHE ABZWEIG RSM 15','SW RSM 15','=A01+UH000-KF13Q','','','','',''
'MB3121','WEICHE ABZWEIG RSM 14','SW RSM 14','=A01+UH000-KF13Q','','','','',''
'SF3126','ZUG WECHSELN RSM 20','LDT-GN-NO','=A01+UH000-KF11i','-UZ3122','-UZ3122','','',''
'PF3154','ZUG WECHSELN RSM 20','LDT-GN-LED          ','=A01+UH000-KF16Q','','','','',''
'SF3124','ZUG WECHSELN RSM 19','LDT-GN-NO','=A01+UH000-KF11i','-UZ3120','-UZ3120','','',''
'PF3150','ZUG WECHSELN RSM 19','LDT-GN-LED          ','=A01+UH000-KF16Q','','','','',''
'SF3122','ZUG WECHSELN RSM 18','LDT-GN-NO','=A01+UH000-KF11i','-UZ3116','-UZ3116','','',''
'PF3144','ZUG WECHSELN RSM 18','LDT-GN-LED          ','=A01+UH000-KF15Q','','','','',''
'SF3120','ZUG WECHSELN RSM 17','LDT-GN-NO','=A01+UH000-KF11i','-UZ3120','-UZ3102','','',''
'PF3140','ZUG WECHSELN RSM 17','LDT-GN-LED          ','=A01+UH000-KF15Q','','','','',''
'SF3112','ZUG WECHSELN RSM 16','LDT-GN-NO','=A01+UH000-KF10i','-UZ3112','-UZ3112','','',''
'PF3130','ZUG WECHSELN RSM 16','LDT-GN-LED          ','=A01+UH000-KF14Q','','','','',''
'SF3110','ZUG WECHSELN RSM 15','LDT-GN-NO','=A01+UH000-KF10i','-UZ3110','-UZ3110','','',''
'PF3124','ZUG WECHSELN RSM 15','LDT-GN-LED          ','=A01+UH000-KF13Q','','','','',''
'SF3106','ZUG WECHSELN RSM 14','LDT-GN-NO','=A01+UH000-KF09i','-UZ3106','-UZ3106','','',''
'PF3120','ZUG WECHSELN RSM 14','LDT-GN-LED          ','=A01+UH000-KF13Q','','','','',''
'QA3113','ANTRIEB AUSFAHREN RSM 13','RA-BI','=A01+UH000-KF12Q','','','','','<'
'MA3112','ANTRIEB EINFAHREN RSM 13','RA-BI','=A01+UH000-KF12Q','','','','A','>'
'BG3105','SENSOR OPTISCH RSM 13','OPT. AP110','=A01+UH000-KF09i','','','','',''
'MB3111','WEICHE ABZWEIG RSM 13','SW RSM 13','=A01+UH000-KF12Q','','','','',''
'SF3104','ZUG WECHSELN RSM 13','LDT-GN-NO','=A01+UH000-KF09i','-UZ3104','-UZ3104','','',''
'PF3110','ZUG WECHSELN RSM 13','LDT-GN-LED          ','=A01+UH000-KF12Q','','','','',''
'QA3107','ANTRIEB AUSFAHREN RSM 12','RA-BI','=A01+UH000-KF11Q','','','','','<'
'MA3106','ANTRIEB EINFAHREN RSM 12','RA-BI','=A01+UH000-KF11Q','','','','A','>'
'BG3103','SENSOR OPTISCH RSM 12','OPT. AP110','=A01+UH000-KF09i','','','','',''
'MB3105','WEICHE ABZWEIG RSM 12','SW RSM 12','=A01+UH000-KF11Q','','','','',''
'SF3102','ZUG WECHSELN RSM 12','LDT-GN-NO','=A01+UH000-KF09i','-UZ3102','-UZ3102','','',''
'PF3104','ZUG WECHSELN RSM 12','LDT-GN-LED          ','=A01+UH000-KF11Q','','','','',''
'SF3100','ZUG WECHSELN RSM 11','LDT-GN-NO','=A01+UH000-KF09i','-UZ3100','-UZ3100','','',''
'PF3100','ZUG WECHSELN RSM 11','LDT-GN-LED          ','=A01+UH000-KF11Q','','','','',''
'QA3103','ANTRIEB AUSFAHREN RSM 11','RA-BI','=A01+UH000-KF11Q','','','','','<'
'MA3102','ANTRIEB EINFAHREN RSM 11','RA-BI','=A01+UH000-KF11Q','','','','A','>'
'BG3101','SENSOR OPTISCH RSM 11','OPT. AP110','=A01+UH000-KF09i','','','','',''
'MB3101','WEICHE ABZWEIG RSM 11','SW RSM 11','=A01+UH000-KF11Q','','','','',''
'BG3130','SENSOR HAUPTSTR. FB310 ','LT-FB310','=A01+UH000-KF12i','','','','',''
'BG3230','SENSOR HAUPTSTR. FB320 ','LT-FB320','=A01+UH000-KF16i','','','','',''
'BG3131','SENSOR HAUPTSTR. FB311','LT-FB311','=A01+UH000-KF12i','','','','',''
'BG1541','SENSOR AUSFAHRT PUFFER F0902 FLYER 9','LT-EXIT F0902','=A01+UC103-KF02i','','','','',''
'BG1540','SENSOR AUSFAHRT PUFFER F0901 FLYER 9','LT-EXIT F0901','=A01+UC103-KF02i','','','','',''
'MB1574','ANPRESSEN NACHPUFFER F0901 FLYER 9','PRESS F0901','=A01+UC103-KF07Q','','','','',''
'MB1575','ANPRESSEN NACHPUFFER F0902 FLYER 9','PRESS F0902','=A01+UC103-KF07Q','','','','',''
'QA1571','ANTRIEB NACHPUFFER F0707 FLYER 9','M-BI-LE','=A01+UC103-KF07Q','','','','','<'
'MA1570','ANTRIEB NACHPUFFER F0901 FLYER 9','M-BI-RI','=A01+UC103-KF07Q','','','','','>'
'MB1544','ANPRESSEN PUFFER F0901 FLYER 9','PRESS F0901','=A01+UC103-KF04Q','','','','',''
'MB1545','ANPRESSEN PUFFER F0902 FLYER 9','PRESS F0902','=A01+UC103-KF04Q','','','','',''
'QA1561','ANTRIEB PUFFER F0901 FLYER 9','M-BI-RI','=A01+UC103-KF06Q','','','','','>'
'MA1560','ANTRIEB PUFFER F0901 FLYER 9','M-BI-LE','=A01+UC103-KF06Q','','','','','<'
'BG1546','SENSOR AUSFAHRT NACHPUFFER F0902 RF 9','LT-EXIT F0902','=A01+UC103-KF02i','','','','',''
'BG1545','SENSOR AUSFAHRT NACHPUFFER F0901 RF 9','LT-EXIT F0901','=A01+UC103-KF02i','','','','',''
'MB1541','WEICHE ABZWEIG EINFAHRT PUFFER F0902 FLYER 9','SW ENTER F0901','=A01+UC103-KF04Q','','','','',''
'MB1540','WEICHE ABZWEIG EINFAHRT RF 9','SW ENTER RF 9','=A01+UC103-KF04Q','','','','',''
'MB1567','WEICHE ABZWEIG EINFAHRT NACHP. RF 9','SW-STRAIGHT','=A01+UC103-KF06Q','','','','',''
'MB1566','WEICHE ABZWEIG EINFAHRT NACHP. RF 9','SW-BRANCH','=A01+UC103-KF06Q','','','','',''
'KF1555','IF RF 09: START SPULENWECHSEL 2','IF-RELAIS','=A01+UC103-KF05Q','IF RF 09: START SPULENWECHSEL 2','IF RF 09: START EXCHANGE 2','','',''
'DI1554','IF RF 09 : NEUE SPULE','IF-RELAIS','=A01+UC103-KF03i','IF RF 09: NEUE SPULE ','IF RF 09: NEW BOBBIN','','',''
'KF1554','IF RF 09: START SPULENWECHSEL 1','IF-RELAIS','=A01+UC103-KF05Q','IF RF 09: START SPULENWECHSEL 1','IF RF 09: START EXCHANGE 1','','',''
'PF1547','RUNDUMLEUCHTE STÖRUNG FLYER 9','LED-YE_FAULT','=A01+UC103-KF04Q','','','','',''
'SF1553','RESET FLYER 9','IPB-YE-NO','=A01+UC103-KF03i','RESET','RESET','RESET','',''
'PF1553','RESET FLYER 9','IPB-YE-LED','=A01+UC103-KF05Q','','','','',''
'SF1552','NOT HALT FLYER 9','EPB-NC','=A01+UC103-KF03i','NOT-HALT','E-STOP','E-STOP','',''
'BG1556','SENSOR SPULE IN POSITION FLYER 9','BOBBIN IN POS','=A01+UC103-KF03i','','','','',''
'BG1544','SENSOR ZUG IN DOFFER FLYER 9','LT-TRAIN IN DOF','=A01+UC103-KF02i','','','','',''
'BG1543','SENSOR ZUG IN DOFFER PM 9','LT-TRAIN IN DOF','=A01+UC103-KF02i','','','','',''
'MB1551','ABHEBEN ANTRIEBE PM 9','LIFT OFF BS 9','=A01+UC103-KF05Q','','','','',''
'MA1556','ANTRIEBE FLYER 9','M-BI','=A01+UC103-KF05Q','','','','','>'
'MB1502','WEICHE ABZWEIG EINFAHRT PUFFER F0802 FLYER 8','SW ENTER F0802','=A01+UC103-KF00Q','','','','',''
'MB1500','WEICHE ABZWEIG EINFAHRT FLYER 8','SW ENTER RF 8','=A01+UC103-KF00Q','','','','',''
'MB1501','WEICHE ABZWEIG EINFAHRT RF 8','SW ENTER RF 8','=A01+UC103-KF00Q','','','','',''
'MB1534','ANPRESSEN NACHPUFFER F0801 FLYER 8','PRESS F0801','=A01+UC103-KF03Q','','','','',''
'MB1535','ANPRESSEN NACHPUFFER F0802 FLYER 8','PRESS F0802','=A01+UC103-KF03Q','','','','',''
'QA1531','ANTRIEB NACHPUFFER F0802 RF 8','M-BI','=A01+UC103-KF03Q','','','','','>'
'MA1530','ANTRIEB NACHPUFFER F0801 RF 8','M-BI','=A01+UC103-KF03Q','','','','','>'
'MB1504','ANPRESSEN PUFFER F0801 FLYER 8','PRESS F0801','=A01+UC103-KF00Q','','','','',''
'MB1505','ANPRESSEN PUFFER F0802 FLYER 8','PRESS F0802','=A01+UC103-KF00Q','','','','',''
'QA1521','ANTRIEB PUFFER F0802 FLYER 8','M-BI-RI','=A01+UC103-KF02Q','','','','','<'
'MA1520','ANTRIEB PUFFER F0801 FLYER 8','M-BI-LE','=A01+UC103-KF02Q','','','','','<'
'BG1505','SENSOR AUSFAHRT NACHPUFFER F0801 FLYER 8','LT-EXIT F0801','=A01+UC103-KF00i','','','','',''
'BG1506','SENSOR AUSFAHRT NACHPUFFER F0802 FLYER 8','LT-EXIT F0802','=A01+UC103-KF00i','','','','',''
'BG1501','SENSOR AUSFAHRT PUFFER F0802 FLYER 8','LT-EXIT F0802','=A01+UC103-KF00i','','','','',''
'BG1500','SENSOR AUSFAHRT PUFFER F0801 FLYER 8','LT-EXIT F0801','=A01+UC103-KF00i','','','','',''
'SF1511','HAUPTSCHALTER EIN +UC103','I-MS ON','=A01+UC103-KF01i','HAUPTSCHALTER EIN','MAIN SWITCH ON','','',''
'SF1510','MOTORSCHUTZSCHALTER HAT AUSGELÖST','I-CB OK','=A01+UC103-KF01i','MSS IN ORDNUNG','MPS OK','','',''
'PF1510','LM-ÜBERSTROM +UC103','IL-YE-LED','=A01+UC103-KF01Q','LM ÜBERSTROM','IL OVERCURRENT','','',''
'MB1527','WEICHE ABZWEIG EINFAHRT NACHP. RF 8','SW-BRANCH','=A01+UC103-KF02Q','','','','',''
'MB1526','WEICHE ABZWEIG EINFAHRT NACHP. RF 8','SW-STRAIGHT','=A01+UC103-KF02Q','','','','',''
'BG1503','SENSOR ZUG IN DOFFER PM 8','LT-TRAIN IN DOF','=A01+UC103-KF00i','','','','',''
'BG1516','SENSOR SPULE IN POSITION FLYER 8','BOBBIN IN POS','=A01+UC103-KF01i','','','','',''
'BG1504','SENSOR ZUG IN DOFFER FLYER 8','LT-TRAIN IN DOF','=A01+UC103-KF00i','','','','',''
'MB1511','ABHEBEN ANTRIEBE PM 8','LIFT OFF BS 8','=A01+UC103-KF01Q','','','','',''
'MA1516','ANTRIEBE FLYER 8','M-BI','=A01+UC103-KF01Q','','','','','<'
'KF1515','IF RF 08: START SPULENWECHSEL 2','IF-RELAIS','=A01+UC103-KF01Q','IF RF 08: START SPULENWECHSEL 2','IF RF 08: START EXCHANGE 2','','',''
'DI1514','IF RF 08 : NEUE SPULE','IF-RELAIS','=A01+UC103-KF01i','IF RF 08: NEUE SPULE ','IF RF 08: NEW BOBBIN','','',''
'KF1514','IF RF 08: START SPULENWECHSEL 1','IF-RELAIS','=A01+UC103-KF01Q','IF RF 08: START SPULENWECHSEL 1','IF RF 08: START EXCHANGE 1','','',''
'PF1507','RUNDUMLEUCHTE STÖRUNG FLYER 8','LED-YE_FAULT','=A01+UC103-KF00Q','','','','',''
'SF1513','RESET FLYER 8','IPB-YE-NO','=A01+UC103-KF01i','RESET','RESET','RESET','',''
'PF1513','RESET FLYER 8','IPB-YE-LED','=A01+UC103-KF01Q','','','','',''
'SF1512','NOT HALT FLYER 8','EPB-NC','=A01+UC103-KF01i','NOT-HALT','E-STOP','E-STOP','',''
'BG1446','SENSOR AUSFAHRT NACHPUFFER F0702 RF 7','LT-EXIT F0702','=A01+UH000-KF06i','','','','',''
'BG1445','SENSOR AUSFAHRT NACHPUFFER F0701 RF 7','LT-EXIT F0701','=A01+UH000-KF06i','','','','',''
'MB1441','WEICHE ABZWEIG EINFAHRT F0701 RF 7','SW ENTER F0701 ','=A01+UH000-KF06Q','','','','',''
'MB1443','WEICHE ABZWEIG AUSFAHRT NACHP. FLYER 7','SW EXIT RF7','=A01+UH000-KF06Q','','','','',''
'MB1440','WEICHE ABZWEIG EINFAHRT RF 7','SW ENTER RF 7','=A01+UH000-KF06Q','','','','',''
'MB1442','WEICHE ABZWEIG EINFAHRT F0702 RF 7','SW ENTER F0702','=A01+UH000-KF06Q','','','','',''
'MB1474','ANPRESSEN NACHPUFFER F0701 FLYER 7','PRESS F0701','=A01+UH000-KF09Q','','','','',''
'MB1475','ANPRESSEN NACHPUFFER F0702 FLYER 7','PRESS F0702','=A01+UH000-KF09Q','','','','',''
'QA1471','ANTRIEB NACHPUFFER F0707 FLYER 7','M-BI-LE','=A01+UH000-KF09Q','','','','','<'
'MA1470','ANTRIEB NACHPUFFER F0701 FLYER 7','M-BI-RI','=A01+UH000-KF09Q','','','','','>'
'MB1444','ANPRESSEN PUFFER F0701 FLYER 7','PRESS F0701','=A01+UH000-KF06Q','','','','',''
'MB1445','ANPRESSEN PUFFER F0702 FLYER 7','PRESS F0702','=A01+UH000-KF06Q','','','','',''
'QA1461','ANTRIEB PUFFER F0701 FLYER 7','M-BI-RI','=A01+UH000-KF08Q','','','','','>'
'MA1460','ANTRIEB PUFFER F0701 FLYER 7','M-BI-LE','=A01+UH000-KF08Q','','','','','<'
'BG1441','SENSOR AUSFAHRT PUFFER F0702 FLYER 7','LT-EXIT F0702','=A01+UH000-KF06i','','','','',''
'BG1440','SENSOR AUSFAHRT PUFFER F0701 FLYER 7','LT-EXIT F0701','=A01+UH000-KF06i','','','','',''
'BG1456','SENSOR SPULE IN POSITION FLYER 7','BOBBIN IN POS','=A01+UH000-KF07i','','','','',''
'BG1444','SENSOR ZUG IN DOFFER FLYER 7','LT-TRAIN IN DOF','=A01+UH000-KF06i','','','','',''
'BG1443','SENSOR ZUG IN DOFFER PM 7','LT-TRAIN IN DOF','=A01+UH000-KF06i','','','','',''
'MB1451','ABHEBEN ANTRIEBE PM 7','LIFT OFF BS 7','=A01+UH000-KF07Q','','','','',''
'MA1456','ANTRIEBE FLYER 7','M-BI','=A01+UH000-KF07Q','','','','','>'
'MB1467','WEICHE ABZWEIG EINFAHRT NACHP. RF7','SW-STRAIGHT','=A01+UH000-KF08Q','','','','',''
'MB1466','WEICHE ABZWEIG EINFAHRT NACHP. RF7','SW-BRANCH','=A01+UH000-KF08Q','','','','',''
'KF1455','IF RF 07: START SPULENWECHSEL 2','IF-RELAIS','=A01+UH000-KF07Q','IF RF 07: START SPULENWECHSEL 2','IF RF 07: START EXCHANGE 2','','',''
'DI1454','IF RF 07 : NEUE SPULE','IF-RELAIS','=A01+UH000-KF07i','IF RF 07: NEUE SPULE ','IF RF 07: NEW BOBBIN','','',''
'KF1454','IF RF 07: START SPULENWECHSEL 1','IF-RELAIS','=A01+UH000-KF07Q','IF RF 07: START SPULENWECHSEL 1','IF RF 07: START EXCHANGE 1','','',''
'PF1447','RUNDUMLEUCHTE STÖRUNG FLYER 7','LED-YE_FAULT','=A01+UH000-KF06Q','','','','',''
'SF1453','RESET FLYER 7','IPB-YE-NO','=A01+UH000-KF07i','RESET','RESET','RESET','',''
'PF1453','RESET FLYER 7','IPB-YE-LED','=A01+UH000-KF07Q','','','','',''
'SF1452','NOT HALT FLYER 7','EPB-NC','=A01+UH000-KF07i','NOT-HALT','E-STOP','E-STOP','',''
'SF3026','ZUG WECHSELN RSM 10','LDT-GN-NO','=A01+UC200-KF02i','-UZ3026','-UZ3026','','',''
'PF3054','ZUG WECHSELN RSM 10','LDT-GN-LED          ','=A01+UC200-KF05Q','','','','',''
'SF3024','ZUG WECHSELN RSM 9','LDT-GN-NO','=A01+UC200-KF02i','-UZ3024','-UZ3024','','',''
'PF3050','ZUG WECHSELN RSM 9','LDT-GN-LED          ','=A01+UC200-KF05Q','','','','',''
'QA3057','ANTRIEB AUSFAHREN RSM 10','RA-BI','=A01+UC200-KF05Q','','','','','<'
'MA3056','ANTRIEB EINFAHREN RSM 10','RA-BI','=A01+UC200-KF05Q','','','','A','>'
'BG3027','SENSOR OPTISCH RSM 10','OPT. AP110','=A01+UC200-KF02i','','','','',''
'MB3055','WEICHE ABZWEIG RSM 10','SW RSM 10','=A01+UC200-KF05Q','','','','',''
'QA3053','ANTRIEB AUSFAHREN RSM 9','RA-BI','=A01+UC200-KF05Q','','','','','<'
'MA3052','ANTRIEB EINFAHREN RSM 9','RA-BI','=A01+UC200-KF05Q','','','','A','>'
'BG3025','SENSOR OPTISCH RSM 9','OPT. AP110','=A01+UC200-KF02i','','','','',''
'MB3051','WEICHE ABZWEIG RSM 9','SW RSM 09','=A01+UC200-KF05Q','','','','',''
'SF3014','HAUPTSCHALTER EIN +UC200','I-MS ON','=A01+UC200-KF01i','HAUPTSCHALTER EIN','MAIN SWITCH ON','','',''
'SF3017','MOTORSCHUTZSCHALTER HAT AUSGELÖST','I-CB OK','=A01+UC200-KF01i','MSS IN ORDNUNG','MPS OK','','',''
'PF3017','LM-ÜBERSTROM +UC200 RSM 1-10','IL-YE-LED','=A01+UC200-KF01Q','LM ÜBERSTROM','IL OVERCURRENT','','',''
'SF3020','ZUG WECHSELN RSM 7','LDT-GN-NO','=A01+UC200-KF02i','-UZ3020','-UZ3020','','',''
'PF3040','ZUG WECHSELN RSM 7','LDT-GN-LED          ','=A01+UC200-KF04Q','','','','',''
'QA3043','ANTRIEB AUSFAHREN RSM 7','RA-BI','=A01+UC200-KF04Q','','','','','<'
'MA3042','ANTRIEB EINFAHREN RSM 7','RA-BI','=A01+UC200-KF04Q','','','','A','>'
'BG3021','SENSOR OPTISCH RSM 7','OPT. AP110','=A01+UC200-KF02i','','','','',''
'MB3041','WEICHE ABZWEIG RSM 7','SW RSM 07','=A01+UC200-KF04Q','','','','',''
'SF3022','ZUG WECHSELN RSM 8','LDT-GN-NO','=A01+UC200-KF02i','-UZ3022','-UZ3022','','',''
'PF3044','ZUG WECHSELN RSM 8','LDT-GN-LED          ','=A01+UC200-KF04Q','','','','',''
'QA3047','ANTRIEB AUSFAHREN RSM 8','RA-BI','=A01+UC200-KF04Q','','','','','<'
'MA3046','ANTRIEB EINFAHREN RSM 8','RA-BI','=A01+UC200-KF04Q','','','','A','>'
'BG3023','SENSOR OPTISCH RSM 8','OPT. AP110','=A01+UC200-KF02i','','','','',''
'MB3045','WEICHE ABZWEIG RSM 8','SW RSM 08','=A01+UC200-KF04Q','','','','',''
'PF3014','RUNDUMLEUCHTE STÖRUNG RSM 01-10','LED-YE_FAULT','=A01+UC200-KF01Q','','','','',''
'SF3016','RESET/START NACH NOT HALT RSM 1-10','IPB-YE-NO','=A01+UC200-KF01i','RESET','RESET','RESET','',''
'PF3016','RESET/START NACH NOT HALT RSM 1-10','IPB-YE-LED          ','=A01+UC200-KF01Q','','','','',''
'SF3015','NOT HALT RSM 1-10','EPB-NC','=A01+UC200-KF01i','NOT-HALT','E-STOP','E-STOP','',''
'SF3012','ZUG WECHSELN RSM 6','LDT-GN-NO','=A01+UC200-KF01i','-UZ3012','-UZ3012','','',''
'PF3030','ZUG WECHSELN RSM 6','LDT-GN-LED          ','=A01+UC200-KF03Q','','','','',''
'QA3033','ANTRIEB AUSFAHREN RSM 6','RA-BI','=A01+UC200-KF03Q','','','','','<'
'MA3032','ANTRIEB EINFAHREN RSM 6','RA-BI','=A01+UC200-KF03Q','','','','A','>'
'BG3013','SENSOR OPTISCH RSM 6','OPT. AP110','=A01+UC200-KF01i','','','','',''
'MB3031','WEICHE ABZWEIG RSM 6','SW RSM 06','=A01+UC200-KF03Q','','','','',''
'SF3010','ZUG WECHSELN RSM 5','LDT-GN-NO','=A01+UC200-KF01i','-UZ3010','-UZ3010','','',''
'PF3024','ZUG WECHSELN RSM 5','LDT-GN-LED          ','=A01+UC200-KF02Q','','','','',''
'QA3027','ANTRIEB AUSFAHREN RSM 5','RA-BI','=A01+UC200-KF02Q','','','','','<'
'MA3026','ANTRIEB EINFAHREN RSM 5','RA-BI','=A01+UC200-KF02Q','','','','A','>'
'BG3011','SENSOR OPTISCH RSM 5','OPT. AP110','=A01+UC200-KF01i','','','','',''
'MB3025','WEICHE ABZWEIG RSM 5','SW RSM 05','=A01+UC200-KF02Q','','','','',''
'SF3006','ZUG WECHSELN RSM 4','LDT-GN-NO','=A01+UC200-KF00i','-UZ3006','-UZ3006','','',''
'PF3020','ZUG WECHSELN RSM 4','LDT-GN-LED          ','=A01+UC200-KF02Q','','','','',''
'SF3004','ZUG WECHSELN RSM 3','LDT-GN-NO','=A01+UC200-KF00i','-UZ3004','-UZ3004','','',''
'PF3010','ZUG WECHSELN RSM 3','LDT-GN-LED          ','=A01+UC200-KF01Q','','','','',''
'QA3023','ANTRIEB AUSFAHREN RSM 4','RA-BI','=A01+UC200-KF02Q','','','','','<'
'MA3022','ANTRIEB EINFAHREN RSM 4','RA-BI','=A01+UC200-KF02Q','','','','A','>'
'BG3007','SENSOR OPTISCH RSM 4','OPT. AP110','=A01+UC200-KF00i','','','','',''
'MB3021','WEICHE ABZWEIG RSM 4','SW RSM 04','=A01+UC200-KF02Q','','','','',''
'QA3013','ANTRIEB AUSFAHREN RSM 3','RA-BI','=A01+UC200-KF01Q','','','','','<'
'MA3012','ANTRIEB EINFAHREN RSM 3','RA-BI','=A01+UC200-KF01Q','','','','A','>'
'BG3005','SENSOR OPTISCH RSM 3','OPT. AP110','=A01+UC200-KF00i','','','','',''
'MB3011','WEICHE ABZWEIG RSM 3','SW RSM 03','=A01+UC200-KF01Q','','','','',''
'SF3002','ZUG WECHSELN RSM 2','LDT-GN-NO','=A01+UC200-KF00i','-UZ3002','-UZ3002','','',''
'PF3004','ZUG WECHSELN RSM 2','LDT-GN-LED          ','=A01+UC200-KF00Q','','','','',''
'QA3007','ANTRIEB AUSFAHREN RSM 2','RA-BI','=A01+UC200-KF00Q','','','','','<'
'MA3006','ANTRIEB EINFAHREN RSM 2','RA-BI','=A01+UC200-KF00Q','','','','A','>'
'BG3003','SENSOR OPTISCH RSM 2','OPT. AP110','=A01+UC200-KF00i','','','','',''
'MB3005','WEICHE ABZWEIG RSM 2','SW RSM 02','=A01+UC200-KF00Q','','','','',''
'SF3000','ZUG WECHSELN RSM 1','LDT-GN-NO','=A01+UC200-KF00i','-UZ3000','-UZ3000','','',''
'PF3000','ZUG WECHSELN RSM 1                           ','LDT-GN-LED          ','=A01+UC200-KF00Q','','','','',''
'QA3003','ANTRIEB AUSFAHREN RSM 1','RA-BI','=A01+UC200-KF00Q','','','','','<'
'MA3002','ANTRIEB EINFAHREN RSM 1','RA-BI','=A01+UC200-KF00Q','','','','A','>'
'BG3001','SENSOR OPTISCH RSM 1 ','OPT. AP110','=A01+UC200-KF00i','','','','',''
'MA1464','ANTRIEB HAUPTSTR. AUSFAHRT RF - RSM FB212','M-BI FB212','=A01+UH000-KF08Q','','','','','>'
'MA1462','ANTRIEB HAUPTSTR. EINFAHRT FB211','M-BI FB211','=A01+UH000-KF08Q','','','','','<'
'MB1423','WEICHE ABZWEIG FB213','SW FB213','=A01+UH000-KF04Q','','','','',''
'QA1425','ANTRIEB HAUPTSTECKE RF 6','M-BI-RF6 FB63','=A01+UH000-KF04Q','','','','','>'
'MA1424','ANTRIEB HAUPTSTECKE RF 6','M-BI-RF6 FB63','=A01+UH000-KF04Q','','','','','<'
'BG1405','SENSOR AUSFAHRT NACHPUFFER F0601 FLYER 6','LT-EXIT F0601','=A01+UH000-KF03i','','','','',''
'BG1406','SENSOR AUSFAHRT NACHPUFFER F0602 FLYER 6','LT-EXIT F0602','=A01+UH000-KF03i','','','','',''
'MB1401','WEICHE ABZWEIG EINFAHRT PUFFER F0601 FLYER 6','SW F0601','=A01+UH000-KF02Q','','','','',''
'BG1422','SENSOR HAUPTSTR. FB212','LT-FB212','=A01+UH000-KF05i','','','','',''
'MB1400','WEICHE ABZWEIG EINFAHRT FLYER 6','SW ENTER RF6','=A01+UH000-KF02Q','','','','',''
'MB1403','WEICHE ABZWEIG NACHPUFFER F0601-F0602 ','SW EXIT','=A01+UH000-KF02Q','','','','',''
'MB1434','ANPRESSEN NACHPUFFER F0601 FLYER 6','PRESS F0601','=A01+UH000-KF05Q','','','','',''
'MB1435','ANPRESSEN NACHPUFFER F0602 FLYER 6','PRESS F0602','=A01+UH000-KF05Q','','','','',''
'QA1431','ANTRIEB NACHPUFFER F0602 RF6','M-BI','=A01+UH000-KF05Q','','','','','>'
'MA1430','ANTRIEB NACHPUFFER F0601 RF6','M-BI','=A01+UH000-KF05Q','','','','','>'
'MB1404','ANPRESSEN PUFFER F0601 FLYER 6','PRESS F0601','=A01+UH000-KF02Q','','','','',''
'MB1405','ANPRESSEN PUFFER F0602 FLYER 6','PRESS F0602','=A01+UH000-KF02Q','','','','',''
'QA1421','ANTRIEB PUFFER F0602 FLYER 6','M-BI-RI','=A01+UH000-KF04Q','','','','','<'
'MA1420','ANTRIEB PUFFER F0601 FLYER 6','M-BI-LE','=A01+UH000-KF04Q','','','','','<'
'MB1427','WEICHE ABZWEIG EINFAHRT NACHP. RF 6','SW-BRANCH','=A01+UH000-KF04Q','','','','',''
'MB1426','WEICHE ABZWEIG EINFAHRT NACHP. RF 6','SW-STRAIGHT','=A01+UH000-KF04Q','','','','',''
'BG1401','SENSOR AUSFAHRT PUFFER F0602 FLYER 6','LT-EXIT F0602','=A01+UH000-KF03i','','','','',''
'BG1400','SENSOR AUSFAHRT PUFFER F0601 FLYER 6','LT-EXIT F0601','=A01+UH000-KF03i','','','','',''
'KF1415','IF RF 06: START SPULENWECHSEL 2','IF-RELAIS','=A01+UH000-KF03Q','IF RF 06: START SPULENWECHSEL 2','IF RF 06: START EXCHANGE 2','','',''
'DI1414','IF RF 06 : NEUE SPULE','IF-RELAIS','=A01+UH000-KF04i','IF RF 06: NEUE SPULE ','IF RF 06: NEW BOBBIN','','',''
'KF1414','IF RF 06: START SPULENWECHSEL 1','IF-RELAIS','=A01+UH000-KF03Q','IF RF 06: START SPULENWECHSEL 1','IF RF 06: START EXCHANGE 1','','',''
'PF1407','RUNDUMLEUCHTE STÖRUNG FLYER 6','LED-YE_FAULT','=A01+UH000-KF02Q','','','','',''
'SF1413','RESET FLYER 6','IPB-YE-NO','=A01+UH000-KF04i','RESET','RESET','RESET','',''
'PF1413','RESET FLYER 6','IPB-YE-LED','=A01+UH000-KF03Q','','','','',''
'SF1412','NOT HALT FLYER 6','EPB-NC','=A01+UH000-KF04i','NOT-HALT','E-STOP','E-STOP','',''
'BG1403','SENSOR ZUG IN DOFFER PM 6','LT-TRAIN IN DOF','=A01+UH000-KF03i','','','','',''
'BG1416','SENSOR SPULE IN POSITION FLYER 6','BOBBIN IN POS','=A01+UH000-KF04i','','','','',''
'BG1404','SENSOR ZUG IN DOFFER FLYER 6','LT-TRAIN IN DOF','=A01+UH000-KF03i','','','','',''
'MB1411','ABHEBEN ANTRIEBE PM 6','LIFT OFF RF 6','=A01+UH000-KF03Q','','','','',''
'MA1416','ANTRIEBE FLYER 6','M-BI','=A01+UH000-KF03Q','','','','','<'
'KF1295','IF RF 05: START SPULENWECHSEL 2','IF-RELAIS','=A01+UC102-KF05Q','IF RF 05: START SPULENWECHSEL 2','IF RF 05: START EXCHANGE 2','','',''
'DI1294','IF RF 05 : NEUE SPULE','IF-RELAIS','=A01+UC102-KF03i','IF RF 05: NEUE SPULE ','IF RF 05: NEW BOBBIN','','',''
'KF1294','IF RF 05: START SPULENWECHSEL 1','IF-RELAIS','=A01+UC102-KF05Q','IF RF 05: START SPULENWECHSEL 1','IF RF 05: START EXCHANGE 1','','',''
'PF1287','RUNDUMLEUCHTE STÖRUNG FLYER 5','LED-YE_FAULT','=A01+UC102-KF04Q','','','','',''
'SF1293','RESET FLYER 5','IPB-YE-NO','=A01+UC102-KF03i','RESET','RESET','RESET','',''
'PF1293','RESET FLYER 5','IPB-YE-LED','=A01+UC102-KF05Q','','','','',''
'SF1292','NOT HALT FLYER 5','EPB-NC','=A01+UC102-KF03i','NOT-HALT','E-STOP','E-STOP','',''
'BG1286','SENSOR AUSFAHRT NACHPUFFER F0502 RF 5','LT-EXIT F0502','=A01+UC102-KF02i','','','','',''
'BG1285','SENSOR AUSFAHRT NACHPUFFER F0501 RF 5','LT-EXIT F0501','=A01+UC102-KF02i','','','','',''
'BG1302','SENSOR HAUPTSTR. FB214','LT-FB214','=A01+UC102-KF04i','','','','',''
'BG1301','SENSOR HAUPTSTR. FB214','LT-FB214','=A01+UC102-KF04i','','','','',''
'MB1316','WEICHE ABZWEIG FB214','SW FB214','=A01+UC102-KF07Q','','','','',''
'MA1304','ANTRIEB HAUPTSTR. FB214','M-BI FB214','=A01+UC102-KF06Q','','','','','>'
'MA1302','ANTRIEB HAUPTSTR. FB213','M-BI FB213','=A01+UC102-KF06Q','','','','','<'
'MB1314','ANPRESSEN NACHPUFFER F0501 FLYER 5','PRESS F0501','=A01+UC102-KF07Q','','','','',''
'MB1315','ANPRESSEN NACHPUFFER F0502 FLYER 5','PRESS F0502','=A01+UC102-KF07Q','','','','',''
'QA1311','ANTRIEB NACHPUFFER F0502 FLYER 5','M-BI-RI','=A01+UC102-KF07Q','','','','','<'
'MA1310','ANTRIEB NACHPUFFER F0501 FLYER 5','M-BI-LE','=A01+UC102-KF07Q','','','','','<'
'MB1284','ANPRESSEN PUFFER F0501 FLYER 5','PRESS F0501','=A01+UC102-KF04Q','','','','',''
'MB1285','ANPRESSEN PUFFER F0502 FLYER 5','PRESS F0502','=A01+UC102-KF04Q','','','','',''
'QA1301','ANTRIEB PUFFER F0502 FLYER 5','M-BI-RI','=A01+UC102-KF06Q','','','','','<'
'MA1300','ANTRIEB PUFFER F0501 FLYER 5','M-BI-LE','=A01+UC102-KF06Q','','','','','<'
'BG1257','SENSOR HAUPTSTR. FLYER 4','LT-ENTER RF 4','=A01+UC102-KF01i','','','','',''
'BG1281','SENSOR AUSFAHRT PUFFER F0502 FLYER 5','LT-EXIT F0502','=A01+UC102-KF02i','','','','',''
'BG1280','SENSOR AUSFAHRT PUFFER F0501 FLYER 5','LT-EXIT F0501','=A01+UC102-KF02i','','','','',''
'MB1282','WEICHE ABZWEIG EINFAHRT RF 5','SW ENTER RF 5','=A01+UC102-KF04Q','','','','',''
'MB1281','WEICHE ABZWEIG EINFAHRT PUFFER F0502 FLYER 5','SW RF5 F502','=A01+UC102-KF04Q','','','','',''
'MB1280','WEICHE ABZWEIG EINFAHRT PUFFER RF 5','SW ENTER RF 5','=A01+UC102-KF04Q','','','','',''
'MB1307','WEICHE ABZWEIG EINFAHRT NACHP. RF 5','SW-BRANCH','=A01+UC102-KF06Q','','','','',''
'MB1306','WEICHE ABZWEIG EINFAHRT NACHP. RF 5','SW-STRAIGHT','=A01+UC102-KF06Q','','','','',''
'BG1296','SENSOR SPULE IN POSITION FLYER 5','BOBBIN IN POS','=A01+UC102-KF03i','','','','',''
'BG1284','SENSOR ZUG IN DOFFER FLYER 5','LT-TRAIN IN DOF','=A01+UC102-KF02i','','','','',''
'BG1283','SENSOR ZUG IN DOFFER PM 5','LT-TRAIN IN DOF','=A01+UC102-KF02i','','','','',''
'MB1291','ABHEBEN ANTRIEBE PM 5','LIFT OFF BS 5','=A01+UC102-KF05Q','','','','',''
'MA1296','ANTRIEBE FLYER 5','M-BI','=A01+UC102-KF05Q','','','','','>'
'MB1274','ANPRESSEN NACHPUFFER F0401 FLYER 4','PRESS F0401','=A01+UC102-KF03Q','','','','',''
'MB1275','ANPRESSEN NACHPUFFER F0402 FLYER 4','PRESS F0402','=A01+UC102-KF03Q','','','','',''
'QA1271','ANTRIEB NACHPUFFER F0402 FLYER 4','M-BI','=A01+UC102-KF03Q','','','','','>'
'MA1270','ANTRIEB NACHPUFFER F0401 FLYER 4','M-BI','=A01+UC102-KF03Q','','','','','>'
'MB1244','ANPRESSEN PUFFER F0401 FLYER 4','PRESS F0401','=A01+UC102-KF00Q','','','','',''
'MB1245','ANPRESSEN PUFFER F0402 FLYER 4','PRESS F0402','=A01+UC102-KF00Q','','','','',''
'QA1261','ANTRIEB PUFFER F0402 FLYER 4','M-BI-RI','=A01+UC102-KF02Q','','','','','<'
'MA1260','ANTRIEB PUFFER F0401 FLYER 4','M-BI-LE','=A01+UC102-KF02Q','','','','','<'
'MB1240','WEICHE ABZWEIG EINFAHRT FLYER 4','SW ENTER RF4','=A01+UC102-KF00Q','','','','',''
'MB1241','WEICHE ABZWEIG EINFAHRT FLYER 4 F0401','SW ENTER F0401','=A01+UC102-KF00Q','','','','',''
'MB1242','WEICHE ABZWEIG EINFAHRT RF 4','SW ENTER RF 4','=A01+UC102-KF00Q','','','','',''
'BG1246','SENSOR AUSFAHRT NACHPUFFER F0402 RF 4','LT-EXIT F0402','=A01+UC102-KF00i','','','','',''
'BG1245','SENSOR AUSFAHRT NACHPUFFER F0401 RF 4','LT-EXIT F0401','=A01+UC102-KF00i','','','','',''
'SF1251','HAUPTSCHALTER EIN +UC102','I-MS ON','=A01+UC102-KF01i','HAUPTSCHALTER EIN','MAIN SWITCH ON','','',''
'SF1250','MOTORSCHUTZSCHALTER HAT AUSGELÖST','I-CB OK','=A01+UC102-KF01i','MSS IN ORDNUNG','MPS OK','','',''
'PF1250','LM-ÜBERSTROM +UC102','IL-YE-LED','=A01+UC102-KF01Q','LM ÜBERSTROM','IL OVERCURRENT','','',''
'KF1255','IF RF 04: START SPULENWECHSEL 2','IF-RELAIS','=A01+UC102-KF01Q','IF RF 04: START SPULENWECHSEL 2','IF RF 04: START EXCHANGE 2','','',''
'DI1254','IF RF 04 : NEUE SPULE','IF-RELAIS','=A01+UC102-KF01i','IF RF 04: NEUE SPULE ','IF RF 04: NEW BOBBIN','','',''
'KF1254','IF RF 04: START SPULENWECHSEL 1','IF-RELAIS','=A01+UC102-KF01Q','IF RF 04: START SPULENWECHSEL 1','IF RF 04: START EXCHANGE 1','','',''
'PF1247','RUNDUMLEUCHTE STÖRUNG FLYER 4','LED-YE_FAULT','=A01+UC102-KF00Q','','','','',''
'SF1253','RESET FLYER 4','IPB-YE-NO','=A01+UC102-KF01i','RESET','RESET','RESET','',''
'PF1253','RESET FLYER 4','IPB-YE-LED','=A01+UC102-KF01Q','','','','',''
'SF1252','NOT HALT FLYER 4','EPB-NC','=A01+UC102-KF01i','NOT-HALT','E-STOP','E-STOP','',''
'MB1267','WEICHE ABZWEIG EINFAHRT NACHP. RF 4','SW-BRANCH','=A01+UC102-KF02Q','','','','',''
'MB1266','WEICHE ABZWEIG EINFAHRT NACHP. RF 4','SW-STRAIGHT','=A01+UC102-KF02Q','','','','',''
'BG1241','SENSOR AUSFAHRT PUFFER F0402 FLYER 4','LT-EXIT F0402','=A01+UC102-KF00i','','','','',''
'BG1240','SENSOR AUSFAHRT PUFFER F0401 FLYER 4','LT-EXIT F0401','=A01+UC102-KF00i','','','','',''
'BG1243','SENSOR ZUG IN DOFFER PM 4','LT-TRAIN IN DOF','=A01+UC102-KF00i','','','','',''
'BG1256','SENSOR SPULE IN POSITION FLYER 4','BOBBIN IN POS','=A01+UC102-KF01i','','','','',''
'BG1244','SENSOR ZUG IN DOFFER FLYER 4 ','LT-TRAIN IN DOF','=A01+UC102-KF00i','','','','',''
'MB1251','ABHEBEN ANTRIEBE PM 4','LIFT OFF RF 4','=A01+UC102-KF01Q','','','','',''
'MA1256','ANTRIEBE FLYER 4','M-BI','=A01+UC102-KF01Q','','','','','<'
'BG1141','SENSOR HAUPTSTR. FLYER 3 FB216','LT RF3 FB216','=A01+UC101-KF06i','','','','',''
'MB1147','WEICHE ABZWEIG EINFAHRT NACHP. RF 3','SW-BRANCH','=A01+UC101-KF10Q','','','','',''
'MB1146','WEICHE ABZWEIG EINFAHRT NACHP. RF 3','SW-STRAIGHT','=A01+UC101-KF10Q','','','','',''
'KF1135','IF RF 03: START SPULENWECHSEL 2','IF-RELAIS','=A01+UC101-KF09Q','IF RF 03: START SPULENWECHSEL 2','IF RF 03: START EXCHANGE 2','','',''
'DI1134','IF RF 03 : NEUE SPULE','IF-RELAIS','=A01+UC101-KF05i','IF RF 03: NEUE SPULE ','IF RF 03: NEW BOBBIN','','',''
'KF1134','IF RF 03: START SPULENWECHSEL 1','IF-RELAIS','=A01+UC101-KF09Q','IF RF 03: START SPULENWECHSEL 1','IF RF 03: START EXCHANGE 1','','',''
'PF1127','RUNDUMLEUCHTE STÖRUNG FLYER 3','LED-YE_FAULT','=A01+UC101-KF08Q','','','','',''
'SF1133','RESET FLYER 3','IPB-YE-NO','=A01+UC101-KF05i','RESET','RESET','RESET','',''
'PF1133','RESET FLYER 3','IPB-YE-LED','=A01+UC101-KF09Q','','','','',''
'SF1132','NOT HALT FLYER 3','EPB-NC','=A01+UC101-KF05i','NOT-HALT','E-STOP','E-STOP','',''
'BG1005','SENSOR AUSFAHRT NACHPUFFER F0101 RF 1','LT-EXIT F101        ','=A01+UC101-KF00i','','','','',''
'BG1126','SENSOR AUSFAHRT NACHPUFFER F0302 FLYER 3','LT-EXIT F0302','=A01+UC101-KF04i','','','','',''
'BG1125','SENSOR AUSFAHRT NACHPUFFER F0301 FLYER 3','LT-EXIT F0301','=A01+UC101-KF04i','','','','',''
'MB1122','WEICHE ABZWEIG EINFAHRT RF 3','SW ENTER RF 3','=A01+UC101-KF08Q','','','','',''
'MB1121','WEICHE ABZWEIG EINFAHRT PUFFER F0301 FLYER 3','SW ENTER F0301 ','=A01+UC101-KF08Q','','','','',''
'MB1143','WEICHE ABZWEIG EINFAHRT RF3 FB216                ','SW RF3 FB216','=A01+UC101-KF10Q','','','','',''
'MA1144','ANTRIEB HAUPTSTECKE FB215 ','M-BI FB215','=A01+UC101-KF10Q','','','','','<'
'MA1156','ANTRIEB HAUPTSTECKE FB216','M-BI FB216','=A01+UC101-KF11Q','','','','','>'
'MB1120','WEICHE ABZWEIG EINFAHRT FLYER 3                 ','SW ENTER RF 3','=A01+UC101-KF08Q','','','','',''
'MB1154','ANPRESSEN NACHPUFFER F0301 FLYER 3','PRESS F0301','=A01+UC101-KF11Q','','','','',''
'MB1155','ANPRESSEN NACHPUFFER F0302 FLYER 3','PRESS F0302','=A01+UC101-KF11Q','','','','',''
'QA1151','ANTRIEB NACHPUFFER F0302 FLYER 3','M-BI','=A01+UC101-KF11Q','','','','','<'
'MA1150','ANTRIEB NACHPUFFER F0301 FLYER 3','M-BI','=A01+UC101-KF11Q','','','','','<'
'MB1124','ANPRESSEN PUFFER F0301 FLYER 3','PRESS F0301','=A01+UC101-KF08Q','','','','',''
'MB1125','ANPRESSEN PUFFER F0302 FLYER 3','PRESS F0302','=A01+UC101-KF08Q','','','','',''
'QA1141','ANTRIEB PUFFER F0301 FLYER 3','M-BI-RI','=A01+UC101-KF10Q','','','','','>'
'MA1140','ANTRIEB PUFFER F0301 FLYER 3','M-BI-LE','=A01+UC101-KF10Q','','','','','>'
'BG1121','SENSOR AUSFAHRT PUFFER F0302 FLYER 3','LT-EXIT F0302','=A01+UC101-KF04i','','','','',''
'BG1120','SENSOR AUSFAHRT PUFFER F0301 FLYER 3','LT-EXIT F0301','=A01+UC101-KF04i','','','','',''
'MB1131','ABHEBEN ANTRIEBE PM 3','LIFT OFF BS 3','=A01+UC101-KF09Q','','','','',''
'MA1136','ANTRIEBE FLYER 3','M-BI','=A01+UC101-KF09Q','','','','','>'
'BG1136','SENSOR SPULE IN POSITION FLYER 3      ','BOBBIN IN POS','=A01+UC101-KF05i','','','','',''
'BG1124','SENSOR ZUG IN DOFFER FLYER 3','LT-TRAIN IN DOF','=A01+UC101-KF04i','','','','',''
'BG1123','SENSOR ZUG IN DOFFER PM 3','LT-TRAIN IN DOF','=A01+UC101-KF04i','','','','',''
'MB1114','ANPRESSEN NACHPUFFER F0201 FLYER 2','PRESS F0201','=A01+UC101-KF07Q','','','','',''
'MB1115','ANPRESSEN NACHPUFFER F0202 FLYER 2','PRESS F0202','=A01+UC101-KF07Q','','','','',''
'QA1111','ANTRIEB NACHPUFFER F0202 FLYER 2','M-BI-RI','=A01+UC101-KF07Q','','','','','>'
'MA1110','ANTRIEB NACHPUFFER F0201 FLYER 2','M-BI-LE','=A01+UC101-KF07Q','','','','','<'
'MB1084','ANPRESSEN PUFFER F0201 FLYER 2','PRESS F0201','=A01+UC101-KF04Q','','','','',''
'MB1085','ANPRESSEN PUFFER F0202 FLYER 2','PRESS F0202','=A01+UC101-KF04Q','','','','',''
'QA1101','ANTRIEB PUFFER F0202 FLYER 2','M-BI-RI','=A01+UC101-KF06Q','','','','','<'
'MA1100','ANTRIEB PUFFER F0201 FLYER 2','M-BI-LE','=A01+UC101-KF06Q','','','','','<'
'BG1080','SENSOR AUSFAHRT PUFFER F0201 FLYER 2','LT-EXIT F0201','=A01+UC101-KF02i','','','','',''
'BG1081','SENSOR AUSFAHRT PUFFER F0202 FLYER 2','LT-EXIT F0202','=A01+UC101-KF02i','','','','',''
'MB1081','WEICHE ABZWEIG EINFAHRT PUFFER F0201 FLYER 2','SW ENTER F0201','=A01+UC101-KF04Q','','','','',''
'BG1086','SENSOR AUSFAHRT NACHPUFFER F0202 RF 2','LT-EXIT F0202','=A01+UC101-KF02i','','','','',''
'BG1085','SENSOR AUSFAHRT NACHPUFFER F0201 RF 2','LT-EXIT F0201','=A01+UC101-KF02i','','','','',''
'MB1082','WEICHE ABZWEIG EINFAHRT RF 2','SW ENTER RF 2','=A01+UC101-KF04Q','','','','',''
'BG1097','SENSOR HAUPTSTR. FLYER 2              ','LT-ENTER FB  ','=A01+UC101-KF03i','','','','',''
'MB1080','WEICHE ABZWEIG EINFAHRT RF 2','SW ENTER RF2','=A01+UC101-KF04Q','','','','',''
'SF1091','HAUPTSCHALTER EIN +UC101','I-MS ON','=A01+UC101-KF03i','HAUPTSCHALTER EIN','MAIN SWITCH ON','','',''
'SF1090','MOTORSCHUTZSCHALTER HAT AUSGELÖST','I-CB OK','=A01+UC101-KF03i','MSS IN ORDNUNG','MPS OK','','',''
'PF1090','LM-ÜBERSTROM +UC101','IL-YE-LED','=A01+UC101-KF05Q','LM ÜBERSTROM','IL OVERCURRENT','','',''
'MB1107','WEICHE ABZWEIG EINFAHRT NACHP. RF 2','SW-BRANCH','=A01+UC101-KF06Q','','','','',''
'MB1106','WEICHE ABZWEIG EINFAHRT NACHP. RF 2','SW-STRAIGHT','=A01+UC101-KF06Q','','','','',''
'KF1095','IF RF 02: START SPULENWECHSEL 2','IF-RELAIS','=A01+UC101-KF05Q','IF RF 02: START SPULENWECHSEL 2','IF RF 02: START EXCHANGE 2','','',''
'DI1094','IF RF 02 : NEUE SPULE','IF-RELAIS','=A01+UC101-KF03i','IF RF 02: NEUE SPULE ','IF RF 02: NEW BOBBIN','','',''
'PF1087','RUNDUMLEUCHTE STÖRUNG FLYER 2','LED-YE_FAULT','=A01+UC101-KF04Q','','','','',''
'KF1094','IF RF 02: START SPULENWECHSEL 1','IF-RELAIS','=A01+UC101-KF05Q','IF RF 02: START SPULENWECHSEL 1','IF RF 02: START EXCHANGE 1','','',''
'SF1093','RESET FLYER 2','IPB-YE-NO','=A01+UC101-KF03i','RESET','RESET','RESET','',''
'PF1093','RESET FLYER 2','IPB-YE-LED','=A01+UC101-KF05Q','','','','',''
'SF1092','NOT HALT FLYER 2','EPB-NC','=A01+UC101-KF03i','NOT-HALT','E-STOP','E-STOP','',''
'BG1096','SENSOR SPULE IN POSITION FLYER 2        ','BOBBIN IN POS','=A01+UC101-KF03i','','','','',''
'BG1084','SENSOR ZUG IN DOFFER FLYER 2  ','LT-TRAIN IN DOF','=A01+UC101-KF02i','','','','',''
'BG1083','SENSOR ZUG IN DOFFER PM 2','LT-TRAIN IN DOF','=A01+UC101-KF02i','','','','',''
'MB1091','ABHEBEN ANTRIEBE PM 2','LIFT OFF RF 2','=A01+UC101-KF05Q','','','','',''
'MA1096','ANTRIEB FLYER 2','M-BI','=A01+UC101-KF05Q','','','','','<'
'QA1025','ANTRIEB HAUPTSTR. RF 1','M RF1','=A01+UC101-KF02Q','','','','','>'
'MA1024','ANTRIEB HAUPTSTR. RF 1','M RF1','=A01+UC101-KF02Q','','','','','>'
'MB1027','WEICHE ABZWEIG EINFAHRT NACHP. RF 1','SW-STRAIGHT','=A01+UC101-KF02Q','','','','',''
'MB1026','WEICHE ABZWEIG EINFAHRT NACHP. RF 1','SW-BRANCH','=A01+UC101-KF02Q','','','','',''
'PF1007','RUNDUMLEUCHTE STÖRUNG FLYER 1','LED-YE_FAULT','=A01+UC101-KF00Q','','','','',''
'SF1013','RESET FLYER 1','IPB-YE-NO','=A01+UC101-KF01i','RESET','RESET','RESET','',''
'PF1013','RESET FLYER 1','IPB-YE-LED','=A01+UC101-KF01Q','','','','',''
'SF1012','NOT HALT FLYER 1','EPB-NC','=A01+UC101-KF01i','NOT-HALT','E-STOP','E-STOP','',''
'KF1015','IF RF 01: START SPULENWECHSEL 2','IF-RELAIS','=A01+UC101-KF01Q','IF RF 01: START SPULENWECHSEL 2','IF RF 01: START EXCHANGE 2','CUANDO 01: LIBERAR CAMBIOS DE BOBINAS 2','',''
'DI1014','IF RF 01 : NEUE SPULE','IF-RELAIS','=A01+UC101-KF01i','IF RF 01: NEUE SPULE ','IF RF 01: NEW BOBBIN','CUANDO 01: LLAMAR NUEVA BOBINA','',''
'KF1014','IF RF 01: START SPULENWECHSEL 1','IF-RELAIS','=A01+UC101-KF01Q','IF RF 01: START SPULENWECHSEL 1','IF RF 01: START EXCHANGE 1','CUANDO 01: LIBERAR CAMBIOS DE BOBINAS 1','',''
'MB1034','ANPRESSEN NACHPUFFER F0101 FLYER 1','PRESS F0101','=A01+UC101-KF03Q','','','','',''
'MB1035','ANPRESSEN NACHPUFFER F0102 FLYER 1','PRESS F0102','=A01+UC101-KF03Q','','','','',''
'QA1031','ANTRIEB NACHPUFFER F0102 FLYER 1','M-BI','=A01+UC101-KF03Q','','','','','<'
'MA1030','ANTRIEB NACHPUFFER F0101 FLYER 1','M-BI','=A01+UC101-KF03Q','','','','','<'
'MB1004','ANPRESSEN PUFFER F0101 FLYER 1 ','PRESS F0101','=A01+UC101-KF00Q','','','','',''
'MB1005','ANPRESSEN PUFFER F0102 FLYER 1 ','PRESS F0102','=A01+UC101-KF00Q','','','','',''
'QA1021','ANTRIEB PUFFER F0102 FLYER 1','M-BI-RI','=A01+UC101-KF02Q','','','','','>'
'MA1020','ANTRIEB PUFFER F0101 FLYER 1','M-BI-LE','=A01+UC101-KF02Q','','','','','>'
'BG1000','SENSOR AUSFAHRT PUFFER F0101 FLYER 1','LT-EXIT F0101','=A01+UC101-KF00i','','','','',''
'BG1001','SENSOR AUSFAHRT PUFFER F0102 FLYER 1','LT-EXIT F0102','=A01+UC101-KF00i','','','','',''
'MB1001','WEICHE ABZWEIG EINFAHRT PUFFER F0101 FLYER 1','SW ENTER F0101','=A01+UC101-KF00Q','','','','',''
'MB1000','WEICHE ABZWEIG EINFAHRT RF 1','SW ENTER RF 1','=A01+UC101-KF00Q','','','','',''
'BG1006','SENSOR AUSFAHRT NACHPUFFER F0102 RF 1','LT-EXIT F102','=A01+UC101-KF00i','','','','',''
'MB1011','ABHEBEN ANTRIEBE PM 1 ','LIFT OFF BS 1','=A01+UC101-KF01Q','','','','',''
'BG1003','SENSOR ZUG IN DOFFER PM 1','LT-TRAIN IN DOF','=A01+UC101-KF00i','','','','',''
'MA1016','ANTRIEB FLYER 1 ','M-BI','=A01+UC101-KF01Q','','','','','>'
'BG1016','SENSOR SPULE IN POSITION RF 1','BOBBIN IN POS','=A01+UC101-KF01i','','','','',''
'BG1004','SENSOR ZUG IN DOFFER FLYER 1','LT-TRAIN IN DOF','=A01+UC101-KF00i','','','','',''
"""
    
    
    textarray = textlines.splitlines()

    exporter = ExcelConverter()
    for etype in export_type_arr:
        export_path = f"work/excel_{etype}.xlsx"
        exporter.export_excel(textarray, etype, export_path)