Beiträge von Marcus2010

    Naja ich müsste den einen Server einrichten, was ich noch nicht gemacht habe und auch mit der SPS für eine TCP oder UDP über Ethernet Verbindung einrichten, was ich ebenso noch nicht gemacht hab,

    Wollte das Problem lösen mit den Mitteln, die ich aktuell habe. Und da es für mich Privat ist hab ich auch keinen Termindruck, Und kann selber Entscheiden wie was umgesetzt wird.

    Mir fällt auf die Fritzbox hätte einen FTP Server. Den müsste ich einschalten und dann könnte man probiern ob man da die CSV einbinden kann. Um zu überprüfen ob es an der SPS liegt oder an der Fritzbox ( um den Post 3 zu Überprüfen )

    Meinst du so ? Steuerungsseite und Graphen in einem.


    Schema.png


    Die CSV werden nicht automatisch auf den NAS abgelegt, ich lad sie alle 3-4 Tage von der SPS und lösche dort die alten csv Logs und lege sie Manuell auf meinen Rechner und dem NAS ab.



    Weitere wären :

    1. Auf die Funktion verzichten.

    2. Eine teure Speicherkarte in die SPS stecken.

    3. 2 Seiten ( Einmal nur Graf und einmal nur Steuerungsseite)

    4. Da die Logs auf meinen Rechner sind ich schreib mir ein Scilab Script und lass mir dort einen Graph erstellen. ( Script für meine alten Csv. wo alle Werte in einem Log sind hab ich noch, und müsste für die neuen Logs nochmal das Script anpassen)


    Glaube Punkt 4 wäre die besste Lösung. ( Im Zip wäre das Scilabscript ein CSV mit dennen das Script läuft (Wenn ihr in File euren Speircherort + Dateinamen eingebt) und drei neue logs auf die das Script geändert werden muss)

    Habe die Csv mal aufgeteilt auf 3 wegen der grröße bzw. laden der Seite auf der Webseite ist schneller.

    Graph sieht dann in etwa so aus mit Scilab am Rechner erzeugt.

    25_02_2018_1.png

    Logs auf den Webserver die noch nicht gelöscht wurden, werden weiterhin als Graf angezeigt ( Wie aktuell auch und die heruntergeladenen dann in Scilab.

    Dateien

    Dein Link geht nicht (Page not found)

    meinst du das hier

    https://developer.mozilla.org/…s/CORSFehltQuelleErlauben

    Wie gesagt im Serverheader kann ich nichts setzen da ich da Softwaretechnisch nicht hinkomm.


    Ich geb der Software für die S7 1200 nur das Verzeichnis meines Html Codes (Grün) und Startseite (Blau). Anschließend werden für die S7 1200 Datenbausteine generiert, kompiliert und Übertragen, dass ist alles was ich da machen kann. Und Natürlich die SPS mit einem Programm bespielen,


    2021.02.01-15.41.png


    Dann wäre es in meinen Fall nicht möglich, das Csv von einem anderen Speicherort (NAS) zu nehmen.

    Und ich müsste meine Seite auf einen anderen Server laufen lassen, wo ich die Csv auf der selben Quelle ablegen kann. Somit bräuchte is das nicht.

    Das Problem liegt an der S7 1200, die hat nur 4 Mb Internen Speicher wäre erweiterbar, aber leider nur mit SD Karten von Siemens oder Helmholz. Und die sind da nicht grad billig. Sind auch komische Speichergrößen wie 12 Mb .

    256 Mb wären 301 € und 2 GB 561 € (128, 512 und 1 Gb gibt’s gar nich)

    https://www.automation24.de/speicherkarten-zubehoer?Page=1&Items=25&Filter={%22560%22:[2411],%22category%22:[93]}&view=classic

    Und wo genau setzt ich den CORS Header ? Schon im <head> der Html Seite ? An andere Stellen komm ich Softwaretechnisch nicht hin, muss also ins html Dokument rein.

    Weiß nur das die FB einen Mediaserver hat und ein Linux drauf ist. Wenn man da sein "eigenes" Linux mit den demetsprechenden Paketen draufjagt ist sicherlich vieles möglich https://freetz.github.io/wiki/packages. Ob das die Standardlinux von AVM kann, bezweifle ich fast bzw. wär mir nicht bekannt.

    Die Webseite läuft auf einer Siemens S7 1200 und ist nur im Heimnetz oder über VPN erreichbar über die IP Adresse im Adressfeld der Browser. Alle Ip Adressen in meinen Netz sind Statisch vergeben und DHCP ist gernerell aus.

    Und das heißt die Fritzbox umkonfigurieren , wenn dies überhaupt möglich sei ? Oder ein anderen Nas einsetzen ? Bsp nen kleinen Ardurino und da eine Festplatte dranhängen und einrichten ?

    Ich hätte für den Browser auch zwei Add Ons installiert. Cors Everywhere und Allow Cors: Access-Control-Allow-Origin. Beide aber ohne Erfolg.

    Folgender Fehler in einer Webseite


    Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf https://qji0xmvhmtbrhkhu.myfri…a?id=2caeb6826d6e63fe.csv. (Grund: CORS-Anfrage schlug fehl).


    Die Csv liegt auf einen NAS ( Fritzbox ) und sollte als Graf dargestellt werden. Im Folgenden ein Link zu der Doku der grafischen Darstellung https://c3js.org/samples/data_url.html


    Interne URL, welche die geht ( Aufgrund von wenig internen Speicher liegen die meisten Csv auf einen Nas und können nicht mehr dargestellt werden.

    https://192.168.178.80/FileBro…ath=%2FDataLogs%2FTemp_:="Datenlog_DB".Datum_Auswahl:.csv


    Die externe Quelle sollte auch über Die IP erreichbar sein und nicht über einen Freigabelink da ich in einem Verzeichnis mehrere Csv auswählen möchte.

    Der links soll nun auch durch

    url: 'https://qji0xmvhmtbrhkhu.myfritz.net:47754/nas/filelink.lua?id=2caeb6826d6e63fe.csv',
    ersetzt werden was aber leider ein Freigabelink übers Internet ist, daher wäre mir eine Form wie hier lieber
    http://192.168.178.1/nas/#/ + Speicherpfad.


    Code
    1. // Externe Quelle von den CSV
    2. var chart = c3.generate({
    3. data: {
    4. url: 'https://qji0xmvhmtbrhkhu.myfritz.net:47754/nas/filelink.lua?id=2caeb6826d6e63fe.csv',
    5. // leider dann nur eine Csv möglich, da die Id zufällig generiert wird wenn man freigibt und dann eine Id - Datum Zuordnungsliste benötigen würde.
    6. bzw:
    7. url: 'http://192.168.178.1/nas/#/ Speicherpfad.',
    8. // Und der SPS Variable :="Datenlog_DB".Datum_Auswahl: um das Datum in Dateinamen zu ändern
    9. }
    10. });

    Fehler gefunden :) ( hab alles nochmal in einer VM, da dort die Projektierungssoftware ist und da ist noch die alte Funktion drin, für den neuen Aufruf. Kann dann auch nicht gehen :) Ich änder mal die function onofflight auf den neuen Aufruf um, dann müsste es laufen.


    <script>

    onofflight("0","Test1");

    onofflight("1","Test2");

    onofflight("0","Test3");

    </script>


    mit ( im einer externen Js Datei )


    function onofflight(Status,Name)

    {

    {

    if (Status =='0')

    {

    document.getElementById(Name).setAttribute("fill", "white");

    }

    if (Status =='1')

    {

    document.getElementById(Name).setAttribute("fill", "yellow");

    }

    }

    Der Code wird so geschrieben


    <script>
    SetStatus("0",":="Db_fuer_Webpage".Licht_Holzlager.Read:", "Lumberyardbutton", "Aus", "Ein","0");

    SetStatus("0",":="Db_fuer_Webpage".Licht_Garten.Read:", "Backyardbutton", "Aus", "Ein","0");

    SetStatus("0",":="Db_fuer_Webpage".Licht_Einfahrt.Read:", "Frontyardbutton", "Aus", "Ein","0");

    SetStatus("0",":="Db_fuer_Webpage".Licht_Garage.Read:", "Garagebutton", "AUs", "Ein","0");

    </script>


    Und sieht dann in der SPS z.B. so aus (Posting 12 ) 3 Buttons Grün und einer aus ( Im Bild sind aber alle aus) und gleiche Funktion ist auch bei Posting 11 im für die Buttons im Einsatz.


    <script>
    SetStatus("0","1", "Lumberyardbutton", "Aus", "Ein","0");

    SetStatus("0","0", "Backyardbutton", "Aus", "Ein","0");

    SetStatus("0","1", "Frontyardbutton", "Aus", "Ein","0");

    SetStatus("0","1","Garagebutton", "AUs", "Eind,"0");

    </script>

    ja trocken heißt ohne SPS Umgebung, das Projektierungsprogramm der SPS erzeugt daten aus dem Code der Webseite und der wird dan übertragen und die Webseite der SPS ist über die IP im Netzwerkt bzw. über VPN erreichbar.


    ja bei 11 ist die Webseite links über die Ip geöffnet und recht normaler Speicherpfad auf C

    zu Posting 12 die Scripts SetStatus (erstes Script nach </html> ) gehen ( Linkes Bild im Posting 13 die Buttonsfärbung und Text )

    Debugging ist im Browser möglich.