aktuelle Wetterdaten in Siemens S7 einlesen

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Volker,
immer wenn ich in irgend einer Art und Weise das Skript "holen" aufrufen will, gibts beim Generieren immer die Fehlermeldung mit dem Verweis auf das genannte Skript?!?!?!
Ich habe es mit einer Schaltfläche und mit dem Aufgabenplaner versucht, beides ohne Erfolg....
Hast du eine Idee woran es liegen kann?
Gruß
DerMatze
 
Hi Matze,
kann es sein, daß der call warte in z.10 bzw15 warten heißen müßte ?
Muß dazu sagen, daß ich nur eine Vermutung äußere, und mich mit Skripten nicht so wirklich auskenne.

gruß Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
kann es sein, daß der call warte in z.10 bzw15 warten heißen müßte ?

Nein, das passt schon, da das aufgerufene Skript "warte" heißt.

Was mich nur wundert, egal welches Skript ich mit der Schaltfläche verknüpfe, es gibt immer eine Fehlermeldung mit dem Verweis auf das aufgerufene Skript...?
Hat evtl. WinCC flex ein Problem mit der Syntax?

Gruß
DerMatze
 
Hallo Matze,

wie lautet denn die"Fehlermeldung"?
Wie verknüpfst Du die Skripte mit Schaltflächen? Tippst Du etwas oder klickst Du den Skriptaufruf aus Auswahllisten zusammen?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So hab mir mal das Projekt angeschaut .....

Warum Skript Warten / Holen / Einlesen und ne externe exe ?????:confused:

Hab mal auf die schnelle beim Kaffee das Skript aufgebohrt .......
Nun 1 Skript und alles drin....

Ev. noch ein wenig hübsch machen (Error handling u.s.w.) aber Läuft.

:s10:

Code:
'################################################################
'#                                                 Wetterdaten lesen                                                                #
'################################################################


Const DownloadDest = "http://www.weather365.net/foreign/city6a.php?cityid=35377"
Const LocalFile = "C:\wetter3tg.htm"
Const DownloadType = "binary"
Dim strURL


  Dim xmlhttp

  Set xmlhttp=CreateObject("MSXML2.XMLHTTP.3.0")
  strURL = DownloadDest

  
  xmlhttp.open "GET", strURL, False
  xmlhttp.send
  
  If xmlhttp.status = 200 Then
    Dim FSO
    Set FSO=CreateObject("Scripting.FileSystemObject") 
    If FSO.FileExists(LocalFile) Then
      FSO.DeleteFile LocalFile
    End If
    Set FSO=Nothing
    
Dim objStream
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Type = 1 'adTypeBinary
    objStream.Open
    objStream.Write xmlhttp.responseBody
    objStream.SaveToFile LocalFile
    objStream.Close
    Set objStream = Nothing
End If

Set xmlhttp=Nothing


'################################################################
'#                Daten aus wetter3tg.htm Filtern                    #
'################################################################


Dim FSO2
Dim indatei



Set FSO2 = CreateObject("Scripting.FileSystemObject")
Set indatei = FSO2.OpenTextFile("C:\wetter3tg.htm",1)


Dim startpos, inzeile, endpos

Do While indatei.AtEndOfStream <> True
  startpos = 0
  inzeile = LTrim(indatei.ReadLine)

'ort
  startpos = InStr(inzeile,"id=ort")
  If startpos > 0 Then
    startpos = InStr(inzeile,"_blank")
    endpos=InStr(startpos+8,inzeile,"<")
    SmartTags("wetter.ort") = Mid(inzeile,startpos+8,endpos-startpos-9)
  End If


'heute
  startpos = InStr(inzeile,"day1a")
  If startpos > 0 Then
    SmartTags("wetter.tag1_tag") = Mid(inzeile,startpos+7,2)
  End If
  startpos = InStr(inzeile,"day1b")
  If startpos > 0 Then
    endpos=InStr(startpos+14,inzeile,Chr(34))
    SmartTags("wetter.tag1_wetter") = Mid(inzeile,startpos+14,endpos-startpos-14)
  End If
  startpos = InStr(inzeile,"day1c")
  If startpos > 0 Then
    endpos=InStr(inzeile,"&deg")
    SmartTags("wetter.tag1_temax") = Mid(inzeile,startpos+7,endpos-startpos-7)
  End If
  startpos = InStr(inzeile,"day1d")
  If startpos > 0 Then
    endpos=InStr(inzeile,"&deg")
    SmartTags("wetter.tag1_temin") = Mid(inzeile,startpos+7,endpos-startpos-7)
  End If

'morgen
  startpos = InStr(inzeile,"day2a")
  If startpos > 0 Then
    SmartTags("wetter.tag2_tag") = Mid(inzeile,startpos+7,2)
  End If
  startpos = InStr(inzeile,"day2b")
  If startpos > 0 Then
    endpos=InStr(startpos+14,inzeile,Chr(34))
    SmartTags("wetter.tag2_wetter") = Mid(inzeile,startpos+14,endpos-startpos-14)
  End If
  startpos = InStr(inzeile,"day2c")
  If startpos > 0 Then
    endpos=InStr(inzeile,"&deg")
    SmartTags("wetter.tag2_temax") = Mid(inzeile,startpos+7,endpos-startpos-7)
  End If
  startpos = InStr(inzeile,"day2d")
  If startpos > 0 Then
    endpos=InStr(inzeile,"&deg")
    SmartTags("wetter.tag2_temin") = Mid(inzeile,startpos+7,endpos-startpos-7)
  End If

'übermorgen
  startpos = InStr(inzeile,"day3a")
  If startpos > 0 Then
    SmartTags("wetter.tag3_tag") = Mid(inzeile,startpos+7,2)
  End If
  
  startpos = InStr(inzeile,"day3b")
  If startpos > 0 Then
    endpos=InStr(startpos+14,inzeile,Chr(34))
    SmartTags("wetter.tag3_wetter") = Mid(inzeile,startpos+14,endpos-startpos-14)
  End If
  startpos = InStr(inzeile,"day3c")
  If startpos > 0 Then
    endpos=InStr(inzeile,"&deg")
    SmartTags("wetter.tag3_temax") = Mid(inzeile,startpos+7,endpos-startpos-7)
  End If
  startpos = InStr(inzeile,"day3d")
  If startpos > 0 Then
    endpos=InStr(inzeile,"&deg")
    SmartTags("wetter.tag3_temin") = Mid(inzeile,startpos+7,endpos-startpos-7)
  End If

Loop  

Set FSO2=Nothing
 
Zuletzt bearbeitet:
Hallo Matze,

wie lautet denn die"Fehlermeldung"?
Wie verknüpfst Du die Skripte mit Schaltflächen? Tippst Du etwas oder klickst Du den Skriptaufruf aus Auswahllisten zusammen?

Harald

Hallo Harald,

ich wähle es unter: Ereignisse/Drücken/Benutzerscripte/holen aus.

Script_Error.jpg

MfG
 
Zuletzt bearbeitet:
Ev. noch ein wenig hübsch machen (Error handling u.s.w.) aber Läuft.

Also ich dreh noch durch - ich bin anscheinent zu blöd um ein Skript in WinCC flex zu starten...?!
Ich habe ein neues Skript (Wetterdaten) mit den Code ("alles in einem") angelegt, dann habe ich es im Aufgabenplaner stündlich aufrufen wollen. Und siehe da, beim Generieren wieder diese Fehlermeldung....:sb5:

Was mache ich falsch??????

Error.jpg

Gruß
DerMatze
 
beim Generieren wieder diese Fehlermeldung....:sb5:

Was mache ich falsch??????
Es ist so einfach, detaillierte Fehlerausgaben zu erhalten:
WinCC flexible Generator Ausgabe schrieb:
Generator . Skript holen wurde mit Fehlermeldungen kompiliert.
- öffne das in der Fehlermeldung angegebene Skript (eventuell mit Doppelklick auf die rote Zeile?)
- prüfe das Skript mit "Skript > Syntax überprüfen"
- es werden höchstwahrscheinlich detailliertere Fehlermeldungen mit Zeilennummer angezeigt
- gehe mit Doppelklick auf die Fehlermeldung zur Fehlerzeile. Der Fehler ist mit roter Schlangenlinie unterstrichen.
- beseitige die Fehlerursache

Wenn Du die Fehlermeldung oder -ursache nicht verstehst, dann zeige uns einen Screenshot mit der Ansicht des geöffneten Skriptes und den Fehler-Ausgabemeldungen.

Fehler im Bild Wetter_Script_Error.jpg in Deinem Beitrag #29:
- Du hast ein Skript "warten" - das muß "warte" heißen
- sämtliche SmartTags("wetter...") werden angemeckert - die Variablen existieren nicht oder sind in einem falschen Unterordner
Hast Du die 15 internen Variablen "wetter...." nun erfolgreich importiert/angelegt?
Beim Skript "warte" hast Du einen Übergabe-Parameter "zeit" angelegt?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
alle skripte sind in flex getestet. wenn du den inhalt der gezippten dateien korrekt kopierst muss das funktionieren.
 

Anhänge

  • Zwischenablage02.jpg
    Zwischenablage02.jpg
    64,7 KB · Aufrufe: 48
  • Zwischenablage03.gif
    Zwischenablage03.gif
    21,6 KB · Aufrufe: 54
Zuletzt bearbeitet:
bild 3+4 hat irgendwie nicht in die vorige gepasst
 

Anhänge

  • Zwischenablage04.jpg
    Zwischenablage04.jpg
    46,4 KB · Aufrufe: 33
  • Zwischenablage065.gif
    Zwischenablage065.gif
    23,4 KB · Aufrufe: 33
- sämtliche SmartTags("wetter...") werden angemeckert - die Variablen existieren nicht oder sind in einem falschen Unterordner

OK, das war ein grober Fehler, ich hatte die Variablen in einem Unterordner --> alle tags überarbeitet = i.O.

Beim Skript "warte" hast Du einen Übergabe-Parameter "zeit" angelegt?
Übergabe Parameter angelegt = i.O.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
bild 3+4 hat irgendwie nicht in die vorige gepasst

Nun konnte ich ein fehlerfreies Generieren durchführen - soweit so gut
ABER wenn ich nun mit der Schaltfläche das Skript "holen" starte läuft die Zeit runter und im Status 4 gibts die Fehlermeldung

Error.jpg

Gruß
DerMatze
 
Zuletzt bearbeitet:
Hier noch der Quellcode vondem externen Skript, die rot markierte Zeile wird "angemeckert"

Code:
'extrahiert aus der antwort http://www.weather365.net/foreign/city6a.php?cityid=15060
'die daten
'on error resume next
Set fso = CreateObject("Scripting.FileSystemObject")
set indatei = fso.openTextFile("D:\wetter3tg.htm",1)
set outdatei = fso.CreateTextFile("D:\wetter3tg.txt",true)

do while indatei.atendofstream <> true
  startpos = 0
  inzeile = ltrim(indatei.readline)

'ort
  startpos = instr(inzeile,"id=ort")
  if startpos > 0 then
    startpos = instr(inzeile,"_blank")
    endpos=instr(startpos+8,inzeile,"<")
    ort = mid(inzeile,startpos+8,endpos-startpos-9)
    outdatei.writeline ort
  end if


'heute
  startpos = instr(inzeile,"day1a")
  if startpos > 0 then
    tag1_tag = mid(inzeile,startpos+7,2)
    outdatei.writeline tag1_tag
  end if
  startpos = instr(inzeile,"day1b")
  if startpos > 0 then
    endpos=instr(startpos+14,inzeile,chr(34))
  [COLOR=#ff0000]  tag1_wetter = mid(inzeile,startpos+14,endpos-startpos-14)[/COLOR] 
    outdatei.writeline tag1_wetter
  end if
  startpos = instr(inzeile,"day1c")
  if startpos > 0 then
    endpos=instr(inzeile,"&deg")
    tag1_temax = mid(inzeile,startpos+7,endpos-startpos-7)
    outdatei.writeline tag1_temax
  end if
  startpos = instr(inzeile,"day1d")
  if startpos > 0 then
    endpos=instr(inzeile,"&deg")
    tag1_temin = mid(inzeile,startpos+7,endpos-startpos-7)
    outdatei.writeline tag1_temin
  end if

'morgen
  startpos = instr(inzeile,"day2a")
  if startpos > 0 then
    tag2_tag = mid(inzeile,startpos+7,2)
    outdatei.writeline tag2_tag
  end if
  startpos = instr(inzeile,"day2b")
  if startpos > 0 then
    endpos=instr(startpos+14,inzeile,chr(34))
    tag2_wetter = mid(inzeile,startpos+14,endpos-startpos-14)
    outdatei.writeline tag2_wetter
  end if
  startpos = instr(inzeile,"day2c")
  if startpos > 0 then
    endpos=instr(inzeile,"&deg")
    tag2_temax = mid(inzeile,startpos+7,endpos-startpos-7)
    outdatei.writeline tag2_temax
  end if
  startpos = instr(inzeile,"day2d")
  if startpos > 0 then
    endpos=instr(inzeile,"&deg")
    tag2_temin = mid(inzeile,startpos+7,endpos-startpos-7)
    outdatei.writeline tag2_temin
  end if

'übermorgen
  startpos = instr(inzeile,"day3a")
  if startpos > 0 then
    tag3_tag = mid(inzeile,startpos+7,2)
    outdatei.writeline tag3_tag
  end if
  startpos = instr(inzeile,"day3b")
  if startpos > 0 then
    endpos=instr(startpos+14,inzeile,chr(34))
    tag3_wetter = mid(inzeile,startpos+14,endpos-startpos-14)
    outdatei.writeline tag3_wetter
  end if
  startpos = instr(inzeile,"day3c")
  if startpos > 0 then
    endpos=instr(inzeile,"&deg")
    tag3_temax = mid(inzeile,startpos+7,endpos-startpos-7)
    outdatei.writeline tag3_temax
  end if
  startpos = instr(inzeile,"day3d")
  if startpos > 0 then
    endpos=instr(inzeile,"&deg")
    tag3_temin = mid(inzeile,startpos+7,endpos-startpos-7)
    outdatei.writeline tag3_temin
  end if


loop  
outdatei.close
 
poste mal die heruntergeladene wetter3tg.htm und die erzeigte wetter3tg.txt.

und aktiviere mal oben im script on error resume next. wie sieht das ergebnis dann aus?

habe das mal mit deiner stadt-id probiert. funktioniert einwandfrei.
und nimm die externen scripte genau so wie ich se gepostet habe.
anbei mein wccf-projekt (flex 2008 sp2)
 

Anhänge

  • Zwischenablage02.gif
    Zwischenablage02.gif
    7,1 KB · Aufrufe: 43
  • wetter.zip
    1,7 MB · Aufrufe: 35
Zuviel Werbung?
-> Hier kostenlos registrieren
poste mal die heruntergeladene wetter3tg.htm und die erzeigte wetter3tg.txt.

Hallo und danke für deine Geduld.
Also das ist der Code von der wetter3tg.htm_
Code:
<!DOCTYPE  html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html  xmlns="http://www.w3.org/1999/xhtml"><head><META  HTTP-EQUIV="Content-Type" CONTENT="text/html;  charset=ISO-8859-1"><title>www.weather365.net aktuelles Wetter  </title><style type="text/css"  style="display:none">body{font-size:8pt;font-family:Arial,Helvetica,sans-serif;padding:0;margin:0;}a{text-decoration:none;color:#555;}img{border:0   none;}#box{position:absolute;left:0px;top:0px;width:160px;height:112px;}#ort{position:relative;left:6px;top:2px;width:170px;font-weight:bold;}#wa{position:absolute;left:6px;top:100px;width:110px;}#copy{position:absolute;right:10px;top:100px;font-size:7pt;text-align:right;}#box1{position:absolute;left:4px;top:18px;width:146px;height:78px;border:1px  solid #000;border-width:1px  0;}#max{position:absolute;left:2px;top:52px;width:20px;text-align:right;}#min{position:absolute;left:2px;top:64px;width:20px;text-align:right;}#day1a{position:absolute;left:39px;top:4px;width:34px;}#day1b{position:absolute;left:33px;top:18px;width:30px;}#day1c{position:absolute;left:29px;top:52px;width:34px;font-size:7pt;text-align:right;}#day1d{position:absolute;left:29px;top:64px;width:34px;font-size:7pt;text-align:right;}#day1e{position:absolute;left:29px;top:76px;width:34px;font-size:7pt;text-align:right;}#day2a{position:absolute;left:80px;top:4px;width:34px;}#day2b{position:absolute;left:74px;top:18px;width:30px;}#day2c{position:absolute;left:70px;top:52px;width:34px;font-size:7pt;text-align:right;}#day2d{position:absolute;left:70px;top:64px;width:34px;font-size:7pt;text-align:right;}#day2e{position:absolute;left:70px;top:76px;width:34px;font-size:7pt;text-align:right;}#day3a{position:absolute;left:121px;top:4px;width:34px;}#day3b{position:absolute;left:115px;top:18px;width:30px;}#day3c{position:absolute;left:111px;top:52px;width:34px;font-size:7pt;text-align:right;}#day3d{position:absolute;left:111px;top:64px;width:34px;font-size:7pt;text-align:right;}#day3e{position:absolute;left:111px;top:76px;width:34px;font-size:7pt;text-align:right;}
</style>
</head><body><div  id="box"><div id=ort><a  href="http://www.weather365.net/index.php?cityid=15060&option=com_wxcity&Itemid=153"  target="_blank">Flechtingen </a></div><!--<div  id=wa><a  href="http://www.weather365.net/index.php?cityid=15060&option=com_wxcity&Itemid=153"  target="_blank"> ... weitere Aussichten  </a></div>  --><div id=copy><a href="http://www.weather365.net"  target="_top">© 2013  WEATHER365.net</a></div><!-- <div id=copy><a  href="http://www.weather365.net/de/orkantief-andrea-5.-6.-jan-2012-windfeld-verlauf.html"  target="_top"> ==> ORKAN ANDREA AKTUELL</a></div>  --><div id="box1"><div id="max">Max</div><div  id="min">Min</div><div id="day1a">DI</div><div  id="day1b" title="stark bewölkt"><a  href="http://www.weather365.net/index.php?cityid=15060&option=com_wxcity&Itemid=153"  target="_blank"><img  src="http://1.1.1.4/bmi/www.weather365.net/components/com_wxcity/wicons/wx_8.gif"  alt="stark bewölkt" /></a></div><div  id="day1c">0.7°C</div><div  id="day1d">-6.9°C</div><div  id="day2a">MI</div><div id="day2b" title="stark  bewölkt"><a  href="http://www.weather365.net/index.php?cityid=15060&option=com_wxcity&Itemid=153"  target="_blank"><img  src="http://1.1.1.4/bmi/www.weather365.net/components/com_wxcity/wicons/wx_8.gif"  alt="stark bewölkt" /></a></div><div  id="day2c">1.2°C</div><div  id="day2d">-4.1°C</div><div  id="day3a">DO</div><div id="day3b" title="stark  bewölkt"><a  href="http://www.weather365.net/index.php?cityid=15060&option=com_wxcity&Itemid=153"  target="_blank"><img  src="http://1.1.1.4/bmi/www.weather365.net/components/com_wxcity/wicons/wx_8.gif"  alt="stark bewölkt" /></a></div><div  id="day3c">1.5°C</div><div  id="day3d">-3.6°C</div></div></div></body></html>

und die daraus resultierende wetter3tg.txt
Code:
os



os



os



Flechtingen
DI
stark bewölkt
0.7

MI
stark bewölkt


DO
stark bewölkt

und aktiviere mal oben im script on error resume next. wie sieht das ergebnis dann aus?

dann war es so,

WinCC_Wetter.jpg
... und die unter #35 geschilderte Fehlermeldung blieb aus.

Die Skripte sind so wie du sie gepostet hast, ich musste lediglich den Pfad der Partition von "C:\" auf "D:\" ändern.

Ich nehme mir mal dein WinCCflex Projekt vor.
Danke und bis später.

Gruß
DerMatze
 
Zuletzt bearbeitet:
Hallo Volker,

also dein Projekt sieht so aus, wenn ich es gestartet habe.

Ich habe dazu alle Einstellungen unverändert gelassen (Partition C:\, Orts ID)
Vielleicht liegt es an Win7 aber ich kann die wetter3tg.htm und die wetter3tg.txt unter C:\ nicht entdecken.
Kann das Betriebssystem auch dazwischen funken?
Ich werds mal auf einem XP Rechner probieren.

MfG
DerMatze
 

Anhänge

  • WinCC_Wetter.jpg
    WinCC_Wetter.jpg
    310,4 KB · Aufrufe: 43
  • Skript Assistent.pdf
    242,6 KB · Aufrufe: 27
Zuletzt bearbeitet:
Sooo, nun bin ich eine Erkenntnis schlauer.
Ich habe das Projekt mal auf eine XP Maschine getestet und siehe da, es funktioniert!!!!!
Keine Fehlermeldung unter XP.
Error.jpg

Somit scheint Win7Pro diese Fehlermeldung zu erzeugen, evtl. liegt es an der Benutzerkontensteuerung (Adminrechte)?
Ich werde der Ursache versuchen auf den Grund zu gehen.

An dieser Stelle möchte ich Euch nocheinmal für die Unterstützung danken!

Gruß
DerMatze
 
Zurück
Oben