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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 30

Thema: Merker lesen mit Libnodave

  1. #1
    Registriert seit
    09.08.2006
    Beiträge
    125
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe folgendes problem: Ich möchte MD132 (Realwert) aus einer 3152dp lesen. SPS hängt via cp343 am ethernet. Die Verbindung via Libnodave steht auch. Ich kann auch werte aus DB's lesen jedoch nicht aus dem Merkerbereich.

    Ich nutze Folgende Libnodave einstellungen.

    DaveFlags
    DaveDB ist 0
    daveProtoISOTCP

    Dazu folgender Delphi7 Code

    procedure TForm1.NoDave1Read(Sender: TObject);
    begin
    nodave1.ReadBytes(DaveFlags,0,132,4);
    Gauge1.Value:= NoDave1.GetFloat(132);
    edit2.Text:= intToStr(noDave1.CycleTime);
    edit1.Text:= FloatToStr(NoDave1.GetFloat(132));
    end;

    Wenn ich "nodave1.ReadBytes(DaveFlags,0,132,4);" auskommentiere dann startet die exe und edit2 wird sauber angezeigt. Nehm ich Read Bytes wieder in den Code dann hängt sich die Anwendung beim starten auf.

    Weiss jemand was ich hier falsch mache ?!
    Zitieren Zitieren Merker lesen mit Libnodave  

  2. #2
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard

    Zitat Zitat von Snoopy123123 Beitrag anzeigen
    procedure TForm1.NoDave1Read(Sender: TObject);
    begin
    nodave1.ReadBytes(DaveFlags,0,132,4);
    Gauge1.Value:= NoDave1.GetFloat(132);
    edit2.Text:= intToStr(noDave1.CycleTime);
    edit1.Text:= FloatToStr(NoDave1.GetFloat(132));
    end;
    Delphi ist nicht gerade mein Fall, aber schreib mal bei
    Code:
    Gauge1.Value:= NoDave1.GetFloat(132);
    stat der 132 eine 0 rein.
    Es ist nicht schwierig, mit noch nicht erreichten Zielen zu Leben; schwierig ist, ohne Ziele zu Leben !
    (Günther Kraftschik)

  3. #3
    Snoopy123123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    125
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Nein dann funktioniert es auch nicht !

    Sobal nodave1.ReadBytes(DaveFlags,0,132,4); drinsteht startet die anwendung nicht mehr. in Dave Read Bytes sollte ja ( Dave Area, DB, Start, Size) drinnstehen. Ich hab irgednwo gelesen das wenn auf den Merkerbereich zugegriffen wird in DB ein "0" drinstehen muss. Wenn ich DaveRead mit einem DaveDB aufrufe funktioniert es einwandfrei.

    Ich bin Ratlos ?!?

  4. #4
    Registriert seit
    03.09.2008
    Beiträge
    48
    Danke
    7
    Erhielt 2 Danke für 2 Beiträge

    Standard

    procedure TNoDave.DoReadBytes(Area: TNoDaveArea; DB, Start, Size: Integer; Buffer: Pointer);

    wenn du den internen Buffer nutz dann ist buffer = null wenn nciht da deinen Puffer angeben in den geschrieben werden soll. Evtl. liegt es daran.

    P.S.: kein plan von Delphi
    und DaveFlags muss 0x83 entsprechen.

    Gruß Key
    Geändert von Key (10.07.2009 um 10:53 Uhr)

  5. #5
    Snoopy123123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    125
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Ich nutze den internen Buffer. Bei delphi kann mann die Angabe weglassen, dann ist der automatisch null [optionale uebergabevariable].

    also daran liegts nicht.

    noch jemand ne idee ???

  6. #6
    Snoopy123123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    125
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Wollte mich nochmal melden da ich imme noch nicht weiter gekommen bin. Weiss niemand was ich hier falsch mache ?

  7. #7
    Registriert seit
    17.09.2003
    Beiträge
    31
    Danke
    1
    Erhielt 5 Danke für 4 Beiträge

    Standard

    hallo,

    blöde frage, wenn es mit dem db klappt, warum machst du auf der sps nicht
    einen transferbefehl von md132 in einen datenbausteinbereich?

    mfg

  8. #8
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Standard

    Hi,

    ich kann pm nur zustimmen.

    Für eine Kommunikation SPS<->HMI würde ich mir sowieso immer einen DB dafür anlegen.
    Das ist übersichtlicher (auch in der selbstgeschriebenen Visu)!
    Denn dann hast du alles, was du für die Visu brauchst, in einem DB, den du abfragen kannst. Aber auch in diesen DB kannst du Werte von der Visu schreiben und im SPS-Programm verwenden.

    Gruß,
    poppycock
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.

  9. #9
    Snoopy123123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    125
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Es geht mir hier weniger darum wie finde ich einen Weg damit mein Programm läuft. Den habe ich schon lange gefunden.

    Ich wüsste gerne was ich mit Libnodave falsch mache und weshalb das mit dem Merkerbereich nicht funktioniert.

    Ausserdem gibts auch fälle ich denen man das SPS Programm nicht anfassen darf weils schon en alter schinken ist und es ja ach so gut läuft

  10. #10
    Registriert seit
    17.09.2003
    Beiträge
    31
    Danke
    1
    Erhielt 5 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hast du den beitrag schon gelesen?

    http://sps-forum.de/showthread.php?t=16362

    mache leider selber nichts mit delphi sondern vb.
    merker auslesen habe ich auch noch nie gebraucht...

Ähnliche Themen

  1. SZL lesen mit LibNoDave
    Von GvOdin im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 29.01.2014, 10:57
  2. Daten lesen aus DB mit libnodave
    Von Proxy im Forum Hochsprachen - OPC
    Antworten: 12
    Letzter Beitrag: 18.09.2013, 07:02
  3. libnodave s7-1200 DB lesen
    Von bommel im Forum Hochsprachen - OPC
    Antworten: 19
    Letzter Beitrag: 11.11.2010, 18:21
  4. RLO van timer lesen mit libnodave
    Von Ruud im Forum Hochsprachen - OPC
    Antworten: 15
    Letzter Beitrag: 20.12.2009, 10:26
  5. Merker/Datenbaustein/libnodave S7-200
    Von rampage im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 23.09.2008, 00:18

Lesezeichen

Berechtigungen

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