SIMATIC HMI Miniweb on HMI_Panel

Status
Niet open voor verdere reacties.

Georgyboy

Gebruiker
Lid geworden
6 jan 2007
Berichten
883
Besturingssysteem
Windows 11
Office versie
365
Goeiedag,
We hebben een toesten waar we iedere dag een csv file krijgen in:
“ SIMATIC HMI Miniweb on HMI_Panel”
Kunnen we alles csv bestanden in 1 keer downloaden?
En kunnen we nadien dit automatisch naar een map exporteren?
We zouden graag de bestanden vanaf de éérste dag expoteren naar een map.
Kan dit?
Zo ja? Met een Excel VBA code of met een commando in “OpdrachtPrompt” ? of ?

Alvast bedankt!
 

Bijlagen

  • AC Rapporten.docx
    171,3 KB · Weergaven: 18
Dankjewel alphamax,

Sorry dit bevat vertrouwelijke info
Code:
Helaas heb ik geen inloggegevens en ook geen testpagina
Dacht dat het misschien met een schript of code kon.

Denk dat we misschien zo verder doen om de nodige bestanden aan te klikken en dan verder te bewerken?
Of misschien is er nog een andere oplossing?

Toch bedankt!

Groeten,
Georgyboy
 
Dacht dat het misschien met een schript of code kon.
webscraping is een script of code, maar zonder de html code van de pagina is het niet mogelijk om code te schrijven.
Of misschien is er nog een andere oplossing?
zie de links

Google maar eens "miniweb file browser" en je vindt veel miniweb pagina's van andere bedrijven.
 
Laatst bewerkt:
Dank alphamax dat ik weer mag bijleren in deze voor mij deels onbekende materie.

Dank voor de tips,
Denk dat het gevoelig ligt de HTML code te publiceren vanwege de bestanden met info?
Zou er zeker toestemming moeten voor vragen.

Groeten,
Georgyboy
 
Toestemming hoef je niet meer te vragen, hiermee zou het kunnen.
Code:
Public Sub DownloadCSV()
    sURL = "http://??.??.??.??/StorageCardSD" 'jouw IP adres
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate sURL
        Do
            DoEvents
        Loop While .Busy And .ReadyState <> 4
        For Each oLink In .Document.Links
            If oLink Like sURL & "/*.csv" Then
                oLink.Click
                Application.Wait DateAdd("s", 1, Now)
                Application.SendKeys "%s"
            End If
        Next
    End With
End Sub
Volg wel eerst deze instructies, zie https://www.sevenforums.com/tutoria...-notify-when-downloads-complete-turn-off.html, hoofdstuk "option two", om de vervelende gele download balk onderaan uit te schakelen.

Het kan zijn dat je de code 2 keer moet laten lopen, de eerste keer om in te loggen, de tweede keer om te downloaden.
 
Laatst bewerkt:
Hallo alphamax,

Dank voor je hulp :)
Ondanks je deskundige hulp zit ik nog in de knoop.

Sorry, sorry, sorry

dit lukt me niet:
HTML:
2. To Turn On "Notify when Downloads Complete" in IE9, IE10, and IE11
NOTE: This is the default setting.
A) Click/tap on the download button below to download the file below, and go to step 4 below.
Turn_On_IE_Notify_Download_Complete.reg

 Download

3. To Turn Off "Notify when Downloads Complete" in IE9, IE10, and IE11
A) Click/tap on the download button below to download the file below, and go to step 4 below.
Turn_Off_IE_Notify_Download_Complete.reg

 Download

4. Save the .reg file to your desktop.

5. Double click/tap on the downloaded .reg file to merge it.

6. If prompted, click/tap on Run, Yes (UAC-Windows 7/8) or Continue (UAC-Vista), Yes, and OK to approve merging the .reg file.

7. You can now delete the downloaded .reg file if you like.

Wel gedaan :
1) IP adres
2) Uitgevinkt : zie bijlage

Bij uitvoeren van jouw code krijg ik volgende melding:

HTML:
Deze pagina is niet bereikbaar

•Controleer of het webadres http://.... ....... ..............  juist is
•Met Bing zoeken naar deze site
•Vernieuw de pagina

Standaard gebruik ik "google chrome"
 

Bijlagen

  • Melden wanneer het downloaden is voltooid.jpg
    Melden wanneer het downloaden is voltooid.jpg
    56,7 KB · Weergaven: 18
dit lukt me niet:
HTML:
2. To Turn On "Notify when Downloads Complete" in IE9, IE10, and IE11
NOTE: This is the default setting.
A) Click/tap on the download button below to download the file below, and go to step 4 below.
Turn_On_IE_Notify_Download_Complete.reg

 Download

3. To Turn Off "Notify when Downloads Complete" in IE9, IE10, and IE11
A) Click/tap on the download button below to download the file below, and go to step 4 below.
Turn_Off_IE_Notify_Download_Complete.reg

 Download

4. Save the .reg file to your desktop.

5. Double click/tap on the downloaded .reg file to merge it.

6. If prompted, click/tap on Run, Yes (UAC-Windows 7/8) or Continue (UAC-Vista), Yes, and OK to approve merging the .reg file.

7. You can now delete the downloaded .reg file if you like.
Dit hoeft niet, want dit is "option one" van de link.
Wel gedaan :
1) IP adres
2) Uitgevinkt : zie bijlage
Dit is goed, want dit is "option two" van de link.

Bij uitvoeren van jouw code krijg ik volgende melding:

HTML:
Deze pagina is niet bereikbaar

•Controleer of het webadres http://.... ....... ..............  juist is
•Met Bing zoeken naar deze site
•Vernieuw de pagina

Standaard gebruik ik "google chrome"

Ben je ingelogd op de siemens pagina in internet explorer?
 
Laatst bewerkt:
Met automatisch inloggen, getest met windows11en, office2007nl, Internet Explorer 11 (IE mode). zie https://docs.microsoft.com/en-us/deployedge/edge-ie-mode
Code:
Public Sub DownloadCSV2()
    sURL = "http://??.???.???.??/StorageCardSD"    'jouw IP adres
    sName = "?????????????"
    sPasswort = "???"
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate sURL
        Do
            DoEvents
        Loop While .Busy And .ReadyState <> 4
        Application.Wait DateAdd("s", 3, Now)
        With .Document.LoginForm
            .Login.Value = sName
            .Password.Value = sPasswort
            .Submit
        End With
        Do
            DoEvents
        Loop While .Busy And .ReadyState <> 4
        Application.Wait DateAdd("s", 3, Now)
        For Each oLink In .Document.Links
            If oLink Like sURL & "/*.csv" Then
                oLink.Click
                Application.Wait DateAdd("s", 1, Now)
                Application.SendKeys "%s"
            End If
        Next
    End With
End Sub
Deze code blijft werken totdat siemens iets veranderd aan de site.
 
Laatst bewerkt:
Code:
With CreateObject("InternetExplorer.Application")
        .Visible = True
Opent internet explorer;
Code:
        .Navigate sURL
Open de URL;
Code:
       Do
            DoEvents
        Loop While .Busy And .ReadyState <> 4
        Application.Wait DateAdd("s", 3, Now)
Wachtlus, bij een trage verbinding zou je 3 (seconden) kunnen veranderen in 10 (seconden);
Code:
        With .Document.LoginForm
Als je hier een foutmelding krijgt (fout 438?) dan is de URL niet geladen.
Of de URL klopt niet, of de wachttijd is te kort.

Siematic HMI Miniweb.jpg

Zo zou je pagina eruit moeten zien na bovenstaande stappen.

Tip, met F8 kan je per stap door de code lopen, zie https://www.youtube.com/watch?v=FJEEZu4t8pI
 
Laatst bewerkt:
Dankjewel Alphamax :)

De code loopt geweldig op het werk (daar waar de installatie staat)

Bij het testen vb thuis loopt het vast op:

Bij F8 op :
HTML:
    .Navigate sURL

Bij F5 (automatisch) op:
HTML:
With .Document.LoginForm

Code:
Public Sub DownloadCSV2()
    sURL = "http://xxx.xxx.0.xxx/StorageCardSD"   'jouw IP adres
    sName = "xxxxxxxxx"
    sPasswort = "xxx"
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate sURL
        Do
            DoEvents
        Loop While .Busy And .ReadyState <> 4
        Application.Wait DateAdd("s", 3, Now)
        With .Document.LoginForm
            .Login.Value = sName
            .Password.Value = sPasswort
            .Submit
        End With
        Do
            DoEvents
        Loop While .Busy And .ReadyState <> 4
        Application.Wait DateAdd("s", 3, Now)
        For Each oLink In .Document.Links
            If oLink Like sURL & "/*.csv" Then
                oLink.Click
                Application.Wait DateAdd("s", 1, Now)
                Application.SendKeys "%s"
            End If
        Next
    End With
End Sub

Voor mij is het anders prima en zet ik de vraag op opgelost, tenzij je nog een tip zou hebben om dit ook op te lossen.

PS dank voor je tijd, geweldig leerrijke info en geduld :thumb:

Groeten,
Georgyboy
 
Misschien kan je vanuit het werk, binnen de beveiliging, wel het IP-adres bereiken.
En lukt dat thuis, buiten de beveiliging, niet.
 
Dankjewel Alphamax :)

Op het werk gaat het 3 x sneller om de gegevens te hebben,
Maar heb vooral weer veel mogen leren waarvoor dank.

Waarschijnlijk wel:
Code:
Misschien kan je vanuit het werk, binnen de beveiliging, wel het IP-adres bereiken.
En lukt dat thuis, buiten de beveiliging, niet.

Heb misschien nog een bijkomende vraag al het kan?
1) Eens het bestand geopend is zien we per dag 1 csv file
2) die kunnen we downloaden door er op één voor één op te klikken
dan zijn ze in de map "downloads"
3) deze kunnen we dan selecteren en naar de gewenste map(pen) verplaatsen.

Vragen:
1) Kunnen we via jou code (aangepast weliswaar) of een bijkomende 2° code alle csv bestanden selecteren en direct naar de gewenste map(pen) exporteren?
2) Kunnen we eens alles geïmporteerd is de csv bestanden vb van de laatste week naar 1 map exporteren? om dit 1 x per week te doen?
vb naar map 2022 week 9 (vorige week)

Indien niet mogelijk, te veel tijd voor je, ......., dan mag ik deze vraag anders als opgelost plaatsen :)

Sorry voor deze bijkomende vragen, het is zo fantastisch dat je steeds meer wil weten :p
Dank aan ieder op dit ook zo geweldig forum om zoveel te mogen leren van uitgewerkte opgeloste praktijk voorbeelden.

Groeten,
Georgyboy:thumb:
 
Laatst bewerkt:
Hebben die csv-bestanden een benaming waar je de datum uit kan afleiden?
 
Goedemorgen,

Ja die is er vb Alco_Datalog_9-2-2022.csv


Alvast bedankt!

Groeten,
Georgyboy
 

Bijlagen

  • Download van files.docx
    54,4 KB · Weergaven: 16
Kopieert alle Alco_Datalog_*?-*?-20??.csv bestanden van folder "downloads" naar een subfolder 2022W?? van sFolderTo.
Weeknummer is volgens de iso-8601-norm (gangbaar de zakelijke benelux)

Code:
Public Sub DownloadToFolderWeek()
    sFolderTo = "C:\Users\Name\Documents\Siemens" 'aanpassen

    sFolderFrom = Environ("USERPROFILE") & "\Downloads"
    aFilesFrom = Split(CreateObject("WScript.Shell").Exec("cmd /c dir """ & sFolderFrom & "\Alco_Datalog_*?-*?-20??.csv"" /B").StdOut.ReadAll, vbCrLf)

    For i = LBound(aFilesFrom) To UBound(aFilesFrom) - 1
        sFileFrom = aFilesFrom(i)
        aFileFrom = Split(Replace(Split(sFileFrom, ".")(0), "Alco_Datalog_", ""), "-")
        vWeek = DateSerial(aFileFrom(2), aFileFrom(1), aFileFrom(0))
        sFolderWeekTo = sFolderTo & "\" & Format(vWeek, "yyyy\Www", vbMonday, vbFirstFourDays)
        If Dir(sFolderWeekTo, vbDirectory) = vbNullString Then 'bestaat de map al?
            MkDir sFolderWeekTo
        End If
        FileCopy sFolderFrom & "\" & sFileFrom, sFolderWeekTo & "\" & sFileFrom
    Next

End Sub
 
Laatst bewerkt:
Dankjewel Alphamax,

Jammer genoeg slaag ik er zelf niet in je code te doen werken (het zal wel aan mij wel liggen),
Verschillende malen getest via F5 (direct code starten) en meermaals via F8 (per stap), alles verloopt foutloos.
Is het mogelijk dat ik een fout maak bij de bron en/of doelmap?
In bijlage voorbeeld

Bronmap: C:\Users\georges (systeemmap)
Downloads
Doelmap : C:\Rapporten\2022W09

Groeten,
Georgyboy
 

Bijlagen

  • Bronmap.docx
    77,5 KB · Weergaven: 11
Bij sFolderTo is C:\Rapporten voldoende, de code maakt de submappen 2022W01, 2022W02, 2022W03 etc.
Bestaat de map C:\Rapporten?

sFolderFrom = Environ("USERPROFILE") & "\Downloads" is de map C:\Users\georges\Downloads
Bestaat de map C:\Users\georges\Downloads

Zitten er Alco_Datalog_*?-*?-20??.csv bestanden in C:\Users\georges\Downloads
 
Alternatief: ( 1 keer per maand uitvoeren)

Code:
Sub M_snb()
  c00=format(date,"yyyymm")
  c01=format(date,"m-yyyy")

  shell "cmd /c copy G:\OF\Alco_Datalog_*-" & c01 & ".csv G:\Alco" & c00 & ".csv"
  kill "G:\OF\Alco_Datalog_*-" & c01 & ".csv"
End Sub
 
Goedemorgen,

Dankjewel alphamax!
Ik moet ergens nog iets fout doen om het fantastisch resultaat van Je werk en kennis te verkrijgen?

Dankjewel snb,

loop hier vast

Code:
Sub M_snb()
  c00=format(date,"yyyymm")
  c01=format(date,"m-yyyy")

  shell "cmd /c copy G:\OF\Alco_Datalog_*-" & c01 & ".csv G:\Alco" & c00 & ".csv"
[COLOR="#FF0000"]  kill "G:\OF\Alco_Datalog_*-" & c01 & ".csv"[/COLOR]
End Sub

meer info in bijlage,

Alvast bedankt!
Groeten, Georgyboy
 

Bijlagen

  • Gaarlijn fouten VBA.docx
    62,4 KB · Weergaven: 9
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan