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): """ Wrapper, der aufgerufen wird und in sich die Aufbereitung der Daten und das Abspeichern als Excel abruft. """ # Daten vorbereiten dataframes = self._prep_data(data, export_type) # Excel Datei schreiben und speichern self._write_excel(dataframes, export_type, export_path) def _write_excel(self, dataframes, export_type, export_path): """ Erzeugung der Excel-Datei im gewünschten Muster """ 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) 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) 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) 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 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)