IP Adresse über HMI Skript ermitteln

Contor

Level-1
Beiträge
47
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
IP Adresse über VB Skript ermitteln

Guten Tag,
ich bin neu bei euch und habe gleich direkt mal eine Frage!
Ist es möglich über ein Skript in WinCC Flex die Ip Adresse des Panels zu ermitteln welches angeschlossen ist?
Danke.
 
Zuletzt bearbeitet:
einen direkten befehl dafür gibt es nicht.
du kannst das über einen umweg machen

führe folgenden befehl aus:
ipconfig > c:\ip.txt

der ausgabewert wird in der ip.txt gespeichert.
die kannst du dann per skript öffnen und auswerten.

EDIT:
so gehts unter win-ce
PHP:
StartProgram "cmd.exe", " /c ipconfig.exe > storage card cf\ip.txt", hmiShowMaximizedAndInactive, hmiNo
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Volker,
danke für deine prompte antwort! Ich habe das jetzt auch soweit hinbekommen. Ich habe also jetzt die txt Datei mit den gewünschten Infos. Nun möchte ich gern per Skript die txt Datei öffnen und die IP Adresse auslesen. Wenn dies geschehen ist soll sich die HMI anhand einer einfachen if then else bedingung automatisch als jeweiliger Beutzer anmeleden. Das Problem ist jetzt das auslesen der txt Datei und die IPadresse in eine Variable zu speichern.
Ich hoffe ihr könnt mir helfen
Danke
 
Ich habe es hinbekommen!
mein Text dazu
Code:
  Const ForReading = 1, ForWriting = 2
  
  Dim fso, MeineDatei, i, j, l, l2 
  
  
  zaehler = 0
  
  Hilfsvariable1 = "IP-Adresse"
  
  
  Set fso = CreateObject("Scripting.FileSystemObject")
  
  Set MeineDatei = fso.OpenTextFile("C:\Programme\SIEMENS\STEP7\S7Proj\Test_Dia\ip.txt", ForReading)
 
   i = 0 
   
    Do While Not MeineDatei.AtEndOfStream
        
          LeseZeile = MeineDatei.ReadLine()
          
          If InStr(1,LeseZeile, Hilfsvariable1) <> 0 Then
                      
                 Hilfsvariable2 = "Suchstring gefunden " & "in Zeile: " & i
                                  
                 Exit Do
                 
          End If
          
          i = i+1
          
    Loop
 

     
    LaengeLeseZeile = Len(LeseZeile)
     
     
     
     For j = 1 To LaengeLeseZeile
     
                
     
               Hilfe1 = Right(LeseZeile, LaengeLeseZeile - j)
                              
               Hilfe2 = Left(Hilfe1, 1)
                                       
                
                
           
                
                If Hilfe2 = "0" Then j = LaengeLeseZeile
                    
                If Hilfe2 = "1" Then j = LaengeLeseZeile
                    
                If Hilfe2 = "2" Then j = LaengeLeseZeile
                  
    
        
      
        
      Next
       
       
       LaengeHilfe1 = Len(Hilfe1)
       
       
       For l = 1 To LaengeHilfe1
     
                
     
               Hilfe3 = Right(Hilfe1, l)
                              
               Hilfe4 = Left(Hilfe3, 1)
                                       
                zaehler = zaehler +1
                
           
                
                If Hilfe4 = "0" Then l = LaengeHilfe1
                    
                If Hilfe4 = "1" Then l = LaengeHilfe1
                    
                If Hilfe4 = "2" Then l = LaengeHilfe1
                    
                If Hilfe4 = "3" Then l = LaengeHilfe1
                    
                If Hilfe4 = "4" Then l = LaengeHilfe1
                    
                If Hilfe4 = "5" Then l = LaengeHilfe1
                    
                If Hilfe4 = "6" Then l = LaengeHilfe1
                    
                If Hilfe4 = "7" Then l = LaengeHilfe1
                    
                If Hilfe4 = "8" Then l = LaengeHilfe1
                    
                If Hilfe4 = "9" Then l = LaengeHilfe1
                  
       Next
        
        Hilfsvariable3 = LaengeHilfe1 - zaehler +1
        
        Hilfsvariable4 = Left(Hilfe1,Hilfsvariable3)    
        
IPadresse = Hilfsvariable4
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schön. sieht aber sehr lang aus.

PHP:
    Do While Not MeineDatei.AtEndOfStream
        
          LeseZeile = MeineDatei.ReadLine
          LaengeLeseZeile = Len(LeseZeile)

          If left(ltrim(LeseZeile), 10) = "IP Adressse" Then
                 position= instr(LeseZeile, ":") 'doppelpunkt finden
                 IP = right(LaengeLeseZeile - position - 2)
                 Exit Do
          End If
    Loop
 
Zuletzt bearbeitet:
Danke für deine Hilfe!
ich habe da geich direkt mal die nächste Frage!

Ich habe eine Steurung und mehrere Panels ( 8 ) . Alle Panels sollen das gleiche Projekt haben. Wenn ich nun abe eine Änderung durchführen muss, dann muss ich das ganze 8mal machen,.... gibt es nicht auch ein Variante die dies vereinfacht? hat jemand eine Idee dazu?
 
dann mach doch nur 1 hmi-projekt. ich gehe mal davon aus, dass das in s7 integriert ist.
in flex ist unter verbindungen dein panel an eine station gekoppelt. vor dem übertragen an die panels
gehst du auf station und wählst keine station. nun kannst du die adresse des bediengerätes ändern.
alle 8 panels entsprechend übertragen und anschließend die station wieder mit der steuerung verbinden
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe ein HMI Projekt und das ist wie du richtig davon ausgegangen bist in ein S7 Projekt integriert. Wenn ich deine Methode richtig verstaden habe, dann muss ich ja trotzdem alles 8mal laden und die ip verändern!? oder bin ich da auf dem holzweg ?
 
ja die adresse musst du schon ändern.
ich verstehe das jetzt so, dass du 8 hmi projekte hast die nachgepflegt werden müssen.
da ist es schon einfacher 1 hmi projekt zu haben und nur fürs übertragen die adresse zu ändern.
 
gut genau diese möglichkeit hatte ich ansich auch in betracht gezogen,... da haben wir wohl aneinander vorbeigeredet! Du meinst also eine noch einfachere Lösung wird es nicht geben oder hast du vllt noch eine andere idee?
 
Zurück
Oben