• 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. });

    Dieser Beitrag wurde bereits 4 Mal editiert, zuletzt von Marcus2010 ()

  • 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.

  • 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 ?

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Marcus2010 ()

  • 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.

  • Bin nicht so der sysadmin, aber aus meiner Sicht:


    - Du hast Files und Webseite auf demselben Rechner

    - Der Fritzbox Filebrowser lässt sich so konfigurieren, dass er die CORS-Header setzt

    - Du mountest die Fritzbox auf dem Webserver als Laufwerk und greifst so auf die Files zu

    - Du lieferst die Files von der Fritzbox per Webserver und PHP aus (wenn die so was hat) und setzt dabei die CORS-Header richtig

    - Du liest die Files gleich auf der Fritzbox mit PHP aus und lieferst die Daten, setzt dabei die die CORS-Header richtig

  • So solls ungefähr sein

    Schema.png

    Der Html Quellcode wird auf die S7 1200 übertragen und jede Codeänderung muss erneut übertragen werden.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Marcus2010 ()

  • Glaube die S7 1200 kann kein Php.

    Aber doch scheinbar http. Dann Bau' dir doch ein Gateway (Die Sprache ist völlig egal), das die .csv vom NAS bereit stellt und die benötigten CORS header setzt.


    Wie Jonas3344 meinte:

    - Du lieferst die Files von der Fritzbox per Webserver und PHP aus (wenn die so was hat) und setzt dabei die CORS-Header richtig

    nur ist hier PHP nicht entscheidend sondern, dass die CORS Header gesetzt sind.

  • 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.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Marcus2010 ()

  • 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

    Dieser Beitrag wurde bereits 3 Mal editiert, zuletzt von Marcus2010 ()

  • 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

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Marcus2010 ()

  • Meinst du so ?

    Ja, das war die Idee.


    Zu deinen Lösungsansätzen: Wenn ich das Problem nicht kenne, kann ich nichts zu den Lösungen sagen.

    Es geht wohl um das archivieren, von alten Einträgen? Ergibt sich das Problem erst durch die Lösung mit dem extra Server,