Dokumentation der virtuellen Ein-/Ausgänge

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Michael Sommer
    Lox Guru
    • 25.08.2015
    • 1942

    Dokumentation der virtuellen Ein-/Ausgänge

    Hallo Miteinander,
    In der Doku von Loxone gibt es ja diverse SPS-Befehle z. B. für das auflisten aller Ein- bzw. Ausgänge. Nur ist dies Liste recht unübersichtlich, weil die eingetragen Daten hintereinander als Textdatei gelistet werden, also nicht strukturiert eingetragen werden.

    Im Miniserver Peripheriebaum werden ja alle VI- bzw. VA-Befehle angezeigt, jedoch nur mit den in den Eigenschaften eingetragenen Bezeichnungen. Welcher VI-/VA das ist, sieht man erst wenn man den jeweiligen „Virtuellen“ öffnet.

    Kennt jemand eine Möglichkeit wie man diese strukturiert z.B. nach Virtuellen Eingängen usw. darstellen kann. Ideal wäre eine Liste mit einer nummerierten Anschlussbelegung, angefügt dazu den in den Eigenschaften eingetragenen Text wie z.B:
    (VI1): Sollwerteinstellung xy
    (VI2): Automatikbetrieb xyz
    usw.

    Gruß Michael

    Haustechnik UG: MS2, 7 Extensionen, WAGO 750er I/O-Module, 19"-Notbedienebene, EMA-Anlage
    ELT-Allgemein UG: MS1, 4 Extensionen Notbedienebene, RM+WM-Anlage, Mehrere Shellys
    Wohnung OG: MS1, 8 Extensionen, Notbedienebene, Mehrere Shellys
    Wohnung EG: konvent. E-Installation, Autarke EZR-Regelkreise (0-10V) für Stat.-HZG mit Aufschaltung (Schwellwert) des Heizkreises auf den Miniserver UG, Zeitsteuerung EG-Wohnung aus Miniserver UG). Mehrere Shellys
    LoxBerry-Nutzer: Stats4Lox,
    Testserver: 2xMS-GEN1
  • romildo
    Lebende Foren Legende
    • 25.08.2015
    • 5130

    #2
    Hallo Michael,
    sofern ich das richtig verstanden habe, würde es Dir reichen, wenn zu der Eigenschaft "Bezeichnungen" auch noch die Eigenschaft "Anschluss" aufgelistet wäre.
    Direkt aus Loxone kenne ich keine Möglichkeit, mit Zuhilfenahme von Excel wäre dies aber einfach möglich.
    lg Romildo

    Kommentar


    • Michael Sommer
      Michael Sommer kommentierte
      Kommentar bearbeiten
      Hallo Romildo,
      danke erst eimal für deine Antwort:
      Im Prinzip ist es wie Du es beschreibst. Ideal wäre wenn zum Beispiel der "Anschluss (VI1)" am Anfang und danach der Bezeichnungstext in jeweils einer separaten Zeile aufgelistet wird.

      Excel nutze ich zwar für vieles, jedoch reicht mein Wissen darüber nicht aus, um das Ganze mittels Makro strukturiert aufzubauen.
      Gruß Michael
  • romildo
    Lebende Foren Legende
    • 25.08.2015
    • 5130

    #3
    Sofern Du es nur ab und zu mal benötigst, braucht es nicht zwingend ein Makro, das geht auch mit wenigen Schritten direkt.
    Du rufst die Daten mittels

    ab, nimmst die gewünschten Daten in den Zwischenspeicher und legst sie im Excel in die Zelle A1 ab.
    Du markierst die Zelle A1 und drückst unter Daten auf Text in Spalten, dann Schritt 1 = getrennt, weiter, Schritt 2 = Komma, fertig stellen.
    Dann kopierst Du Zeile 1 und fügst sie mittels rechter Maustaste Einfügeoptionen: Transponieren in Zelle A2 ein.
    Dann nochmals Text in Spalten wählen, diesmal aber in Schritt 2 = Andere: ( ,fertig stellen.
    Nun noch in Spalte B mittels Ersetzen die ) entfernen.
    Die Zeile 1 beinhaltet immer noch die Ursprungsdaten Du kannst diese Zeile jetzt löschen.
    Als Ergebnis sollte jetzt in Spalte A die Bezeichnung und in Spalte B der Anschluss stehen.

    Wenn ich es zu kompliziert erklärt habe, kannst Du mir mittels http://miniserver/dev/sps/enumin einen Auszug, oder einen Teil davon, schicken und ich schicke dir dann das Ergebnis zur Ansicht.
    lg Romildo

    Kommentar


    • Michael Sommer
      Michael Sommer kommentierte
      Kommentar bearbeiten
      Hallo Romildo,
      danke erst einmal. Ich werde das erst einmal selbst versuchen. Wie heisst es so schön: Man wächst mit der Aufgabe, Mal sehen ob es klappt. Wenn nicht, komme ich auf deinen Vorschlag zur Hilfe zurück.
      Gruß Michael
  • romildo
    Lebende Foren Legende
    • 25.08.2015
    • 5130

    #4
    Finde ich gut, wenn Du es selber versuchen möchtest.
    Wenn Du willst, kannst es auch gleich mal mit einem einfachen Makro versuchen

    Code:
    Sub Aufbereiten()
    
    Range("A1").Replace What:="<LL control=""dev/sps/enumin"" value=""", Replacement:=""
    Range("A1") = Left(Range("A1").Value, Len(Range("A1").Value) - 14)
    Range("A1").TextToColumns , , , 0, 0, 0, 1, 0, 0
    Rows("1:1").Copy
    Range("A2").PasteSpecial Transpose:=True
    Selection.TextToColumns Destination:=Range("A2"), Other:=True, OtherChar:="("
    Columns("B:B").Replace What:=")", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows
    Range("A1").TextToColumns , , , 0, 0, 0, 0, 0, 0
    Rows("1:1").Delete Shift:=xlUp
    Columns("B:B").Cut
    Columns("A:A").Insert Shift:=xlToRight
    Columns("A:A").EntireColumn.AutoFit
    Columns("B:B").EntireColumn.AutoFit
    
    End Sub
    Versuch:
    Im Browser http://miniserver/dev/sps/enumin aufrufen, den als Antwort erscheinenden Text komplett kopieren und in die Zelle A1 von Excel einfügen.
    Danach das Makro starten.
    lg Romildo

    Kommentar


    • simon_hh
      simon_hh kommentierte
      Kommentar bearbeiten
      makro funktioniert
      tolle Sache von Dir romildo

    • Michael Sommer
      Michael Sommer kommentierte
      Kommentar bearbeiten
      Hallo Romildo,
      Die von Dir beschriebene Variante im Beitrag 3 habe ich hinbekommen. Danke noch dafür. Wenn man weis wie es geht, ist es gar nicht so kompliziert.

      Auf Grund der in den Eigenschaften „Bezeichnungen“ enthalten Texte war die Formatierung nicht durchgängig. Ich meinen Bezeichnungstexten sind auch Klammern enthalten, die die Auflistung wohl dreizeilig aufgebaut haben. Da die Reihenfolge „Text / Klammertext / Anschluss“ von Loxone ausgegeben wurde, ist das korrekt. Die entsprechenden“ Anschlüsse“ habe ich manuell verschoben.

      Egal, jetzt habe ich eine Auflistung aller Ein-/Ausgangsdaten wie ich es benötige.

      Das Makro aus Beitrag 4 habe ich noch nicht getestet. Aufgeschoben ist aber nicht aufgehoben.

      Gruß Michael

    • romildo
      romildo kommentierte
      Kommentar bearbeiten
      Das Makro macht nichts anderes als das, was in Post#3 von Hand gemacht wird.
      Schön, wenn es so weit funktioniert.

      Ich habe es nur kurz mit den Daten von meinem Testserver getestet.
      Da habe ich glücklicherweise keine zusätzlichen Klammern in der Bezeichnung

      Da die Ausgangsbezeichnung jeweils am Ende steht, müsste man vermutlich das Pferd von hinten aufzäumen.
      Da gäbe es sicher noch viel Potenzial um das wirklich zu automatisieren
  • romildo
    Lebende Foren Legende
    • 25.08.2015
    • 5130

    #5
    Dieses Makro müsste jetzt auch funktionieren, wenn zusätzliche Klammern in der Bezeichnung vorhanden sind.
    Code:
    Sub Aufbereiten()
    
    Dim Text As String
    Dim Anschluss As String
    Dim Bezeichnung As String
    Range("A1").Replace What:="<LL control=""dev/sps/enumin"" value=""", Replacement:=""
    Range("A1").Replace What:="<LL control=""dev/sps/enumout"" value=""", Replacement:=""
    Range("A1") = Left(Range("A1").Value, Len(Range("A1").Value) - 14)
    
    Text = Range("A1")
    LetzteZeile = Len(Text)
    i = 2
    While LetzteZeile > 0
    Anschluss = Text
    Anschluss = Mid(Anschluss, InStrRev(Anschluss, "(") + 1)
    Anschluss = Left(Anschluss, Len(Anschluss) - 1)
    Text = Left(Text, Len(Text) - Len(Anschluss) - 3)
    Cells(i, 1) = Anschluss
    Bezeichnung = Text
    Bezeichnung = Mid(Bezeichnung, InStrRev(Bezeichnung, ",") + 1)
    If Len(Text) < Len(Bezeichnung) + 2 Then
    Cells(i, 2) = Bezeichnung
    LetzteZeile = 0
    Else
    Bezeichnung = Right(Bezeichnung, Len(Bezeichnung) - 1)
    Text = Left(Text, Len(Text) - Len(Bezeichnung) - 2)
    Cells(i, 2) = Bezeichnung
    LetzteZeile = Len(Text)
    End If
    i = i + 1
    Wend
    Range("A1") = "Anschluss"
    Range("B1") = "Bezeichnung"
    Range("A1:B1").Font.Bold = True
    Columns("A:B").EntireColumn.AutoFit
    
    End Sub
    Zuletzt geändert von romildo; 07.06.2022, 21:10.
    lg Romildo

    Kommentar


    • Michael Sommer
      Michael Sommer kommentierte
      Kommentar bearbeiten
      Hallo Romildo,
      ich danke für deine überarbeitete Lösung. Diese Woche komme ich vermutlich nicht dazu, das Makro inkl. der Ausführung zu testen.
      Ich melde mich aber auf jeden Fall.
      Gruß Michael (der jetzt sich in der Garten-Neuanlegung austoben darf (muss))

    • romildo
      romildo kommentierte
      Kommentar bearbeiten
      Hallo Michael,
      lass dir ruhig Zeit, ich benötige es nicht und du kannst es dann ja mal testen, wenn du bedarf hast.
      Viel Spaß im Garten

    • Michael Sommer
      Michael Sommer kommentierte
      Kommentar bearbeiten
      Tja mit Spaß hat das nichts zu tun, wenn man alte Sandsteine schleppen und nach Bearbeitung das Ganze auch noch als ordentlich aufgebaute Bruchsteinmauer ausschauen soll. Danach den Terrassenvorberich neu anlegen und bepflanzen. Für mich ist das "Strafarbeit".
      Gruß Michael
Lädt...