Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Libnodave und schreibgeschützte Bausteine?

  1. #1
    Registriert seit
    10.04.2006
    Beiträge
    137
    Danke
    6
    Erhielt 14 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    wieder einmal eine LibNoDave- Frage
    Habe schon ein wenig gesucht, bin aber nicht so recht fündig geworden...

    Folgendes Problem:
    Ich möchte mit LibNoDave einen Wert in einen DB schreiben. Soweit kein Problem.
    Nun hatte mein Kollege aber den DB als 'schreibgeschützt in der AS' vermerkt (DB- Eigenschaften).
    Effekt: LibNodave schreibt lustig 'rein und die CPU stürzt ab. DB anschliessend in der Steuerung nicht mehr vorhanden (Nach Reboot).

    Eigentlich soll so etwas ja nicht vorkommen. Es würde mich aber trotzdem interessieren ob die Möglichkeit besteht diesen Schreibschutz mit LibNoDave auszulesen um einen solchen Absturz zu verhindern...

    Ich verwende LibNodave unter Delphi mit der Komponente. Steuerung ist eine 416F...

    Gruss Cliff
    Zitieren Zitieren Libnodave und schreibgeschützte Bausteine?  

  2. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Ich hab bei mir in meiner Biblithek welche auf libnodave aufsetzt (siemensplctoolboxlib.codeplex.com) zumindest das senden des Passworts an die CPU implementiert, dann kannst du dir das schreiben freischalten:

    Code:
    public void PLCSendPassword(string pwd)
            {
                libnodave.PDU myPDU = new libnodave.PDU();
    
                //PDU Header
                byte[] para;
                //PDU Data
                byte[] data;
    
                para = new byte[] { 0x00, 0x01, 0x12, 0x04, 0x11, 0x45, 0x01, 0x00 };            
                data = Helper.EncodePassword(pwd);
                _dc.daveBuildAndSendPDU(myPDU, para, data);
    
                byte[] rdata, rparam;
                int res = _dc.daveGetPDUData(myPDU, out rdata, out rparam);
    
                if (rparam[10] == 0xd6 && rparam[11] == 0x02)
                    throw new Exception("Wrong Password");
            }
    
    
     static public byte[] EncodePassword(string pwd)
            {
                byte[] ASCIIByteArray = System.Text.ASCIIEncoding.ASCII.GetBytes(pwd);
    
                byte[] retByteArray = new byte[] { 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75 };
    
                int i = 0;
                foreach (byte b in ASCIIByteArray)
                {
                    retByteArray[i++] = (byte)((b ^ 0x55));
                }
                retByteArray[2] = (byte)(retByteArray[2] ^ retByteArray[0]);
                retByteArray[3] = (byte)(retByteArray[3] ^ retByteArray[1]);
                retByteArray[4] = (byte)(retByteArray[4] ^ retByteArray[2]);
                retByteArray[5] = (byte)(retByteArray[5] ^ retByteArray[3]);
                retByteArray[6] = (byte)(retByteArray[6] ^ retByteArray[4]);
                retByteArray[7] = (byte)(retByteArray[7] ^ retByteArray[5]);
    
                return retByteArray;
            }
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Hmm...  

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.297
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Zitat Zitat von Cliff Beitrag anzeigen
    Nun hatte mein Kollege aber den DB als 'schreibgeschützt in der AS' vermerkt (DB- Eigenschaften).
    Effekt: LibNodave schreibt lustig 'rein und die CPU stürzt ab. DB anschliessend in der Steuerung nicht mehr vorhanden (Nach Reboot).
    [...]
    Steuerung ist eine 416F...
    Sowas muß eigentlich die CPU-Firmware zuverlässig verhindern bzw. den Schreibauftrag einfach nicht ausführen.
    Wie äußert sich der "Absturz"? Die CPU geht sauber in STOP mit Diagnosepuffer-Eintrag oder was?
    Kannst Du uns die genaue CPU-Bestellnummer und die Firmware-Version verraten?
    Ist auf der CPU ein Safety-Programm drauf?
    Hat Libnodave irgendeine Fehlernummer gemeldet?

    @Jochen Kühner
    Wenn ein DB die Bausteineigenschaft 'schreibgeschützt in der AS' hat, dann kann man nicht mit einem CPU-Passwort das Beschreiben von DB-Werten erzwingen - falls die CPU überhaupt ein Passwort hat. Einen 'schreibgeschützt in der AS'-DB kann man von außen nur komplett überschreiben, man muß den gesamten DB neu in die CPU laden.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    @Jochen Kühner
    Wenn ein DB die Bausteineigenschaft 'schreibgeschützt in der AS' hat, dann kann man nicht mit einem CPU-Passwort das Beschreiben von DB-Werten erzwingen - falls die CPU überhaupt ein Passwort hat. Einen 'schreibgeschützt in der AS'-DB kann man von außen nur komplett überschreiben, man muß den gesamten DB neu in die CPU laden.

    Harald
    Ahhh, da hab Ich mich verlesen. Dachte es ging ums CPU Passwort...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  5. #5
    Cliff ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    10.04.2006
    Beiträge
    137
    Danke
    6
    Erhielt 14 Danke für 9 Beiträge

    Standard

    Moin,
    so länger nicht geschaut:

    Die CPU ist eine 416F-3 PN/DP, aktuellste Firmware (6.0.2).
    Die CPU stürzt unter Einschaltung sämtlicher Blinkleuchten ab.
    Die Kommunikation zur CPU (Ethernet) geht verloren. Sie reagiert nicht auf den 'Start/Stop'- Schalter.
    Nach Power Down/Up ist der beschriebene DB aus dem Speicher verschwunden.

    Fehlerstack kann ich im Moment leider nicht auslesen...

    LibNoDave gibt keinerlei Fehlermeldung heraus. Man merkt lediglich das der Schreibzugriff länger dauert.

    Habe mir im Moment damit beholfen das ich den Haken 'Schreibgeschützt in der AS' entfernt habe. Macht sowieso keinen Sinn da der Baustein ja beschrieben werden soll.

    Gruss Cliff

  6. #6
    Registriert seit
    08.12.2004
    Beiträge
    94
    Danke
    2
    Erhielt 16 Danke für 14 Beiträge

    Standard

    Ob ein DB schreibgeschützt ist oder nicht steht im Bausteinheader des OBs, auf Offset 33: 0=normaler DB, 1=schreibgeschützt in AS.

    Um diesen "Schreibschutz" im PC zu prüfen, ist es notwendig den Bausteinheader in den PC zu lesen. Dazu gigbt es in libnodave evtl. eine Funktion. In der Lib von J.Kühner wird es sehr warscheinlich solch eine Funktion geben.

    Es ist natürlich ein Hammer das eine Siemens 416F-CPU alle viere von sich streckt, wenn jemand ein Schreibkommando auf einen geschützten DB losläßt.
    Dass die gleich komplett abstürzt dürfte wohl nicht sein.

    mfG. klaly

  7. #7
    Cliff ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    10.04.2006
    Beiträge
    137
    Danke
    6
    Erhielt 14 Danke für 9 Beiträge

    Standard

    Moin klaly,

    muss mir die andee Lib wohl noch einmal anschauen, obwohl - Eigentlich soll es nur ein Tool werden um bei der Inbetriebnahme einmalig grosse Datenmengen in die SPS zu schreiben...

    Habe übrigens eben den Fehler noch einmal nachgestellt:
    Fehlermeldung SPS:
    Ereignis ID: 16# 4520
    DEFEKT: Stop nicht erreichbar

    Das beste:
    In der Hilfe folgender Text: Angeforderter Betriebszustand: DEFKT

    Gruss Cliff

  8. #8
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.235
    Danke
    634
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Ich bin auch klaly's Meinung. Egal welcher Blödsinn von außen kommt, der Christbaum geht zu Weihnachten an, aber nicht in wegen einem solchen Zugriff.

    @Cliff:
    Mich würde ein wireshark-Log der Christbaumverursachung interessieren. Eventuell kommt ja eine seltsame Fehlermeldung und die Gute wartet auf eine seltsame Quittierung. Wäre so etwas machbar?
    Wie reagiert eigentlich ein Siemens-Tool (WCF, ..) beim Schreiben in einen schreibgeschützten DB? Auch hier wäre ein Log interessant.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  9. #9
    Cliff ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    10.04.2006
    Beiträge
    137
    Danke
    6
    Erhielt 14 Danke für 9 Beiträge

    Standard

    Der Meinung bin ich eigentlich auch. Hätte erwartet das die S7 den Zugriff abweist und LibNoDave mit einer Fehlermeldung zurück kommt...

    Habe einmal einen Wireshark Abzug beigelegt.

    Gruss Cliff
    Angehängte Dateien Angehängte Dateien

  10. #10
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.235
    Danke
    634
    Erhielt 955 Danke für 769 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Cliff Beitrag anzeigen
    Habe einmal einen Wireshark Abzug beigelegt.

    Gruss Cliff
    Im Log ist nur die Anfrage zum Variablenschreiben drin und keinerlei Reaktion von der SPS.
    Wenn die wirklich nicht mehr zum Antworten kommt und gleich Weihnachten feiert, dann ist
    dies ein gnadenloser Bug in der Firmware.
    Ich vermisse auch den Verbindungsaufbau im Log, damit ich sehen kann wie mit dem Teilchen geredet
    bzw. dass alles Wichtige protokolliert wird.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 09.09.2010, 00:27
  2. ÄÖnderungen am libnodave.net.cs File von libnodave
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 12.05.2010, 16:56
  3. Bausteine mit Libnodave übertragen
    Von ronnie.b im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 08.03.2008, 10:58
  4. Antworten: 0
    Letzter Beitrag: 23.05.2006, 10:56
  5. mit libnodave komplette Bausteine sichern
    Von Tupo13 im Forum Hochsprachen - OPC
    Antworten: 79
    Letzter Beitrag: 07.02.2006, 07:14

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •