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

Ergebnis 1 bis 7 von 7

Thema: Zugriff auf Prozessabbild eines BC9050 in C#

  1. #1
    Registriert seit
    10.01.2012
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Tag zusammen,
    ich bin neu hier und auch noch nicht besonders bewandert mit dem Thema Beckhoff. Ich hoffe ich drücke mich verständlich aus und ihr könnt mir helfen. Zu meinem Problem:
    Ich habe eine Beckhoff BC9050 mit mehreren Klemmen, die ich mit C# mittels TwinCatADS auslese und schreibe. Das klappt auch alles ganz hervorragend. Leider schaffe ich es mit dem "Read" beim Auslesen immer nur eine Variable gleichzeitig auszulesen. Ich müsste aber irgendwie das gesamte Prozessabbild auslesen können, um auf einen Schlag alle, zu dem Zeitpunkt aktuellen, Werte zu haben. Sonst bekomme ich nämlich falsche Ergebnisse, da ich meherer Counter verwende und diese ja, wenn ich sie nacheinander per "Read" auslese, weiterlaufen und ich so keine genauen Berechnungen machen kann.
    Gibt es da irgendeine Möglichkeit? Also sozusagen ein Snapshot des Prozessabbildes?

    Hoffe ihr habt mich verstanden. Sonst muss ich noch mal versuchen es irgendwie verständlicher auszudrücken.

    Schon mal vielen Dank für Rückmeldungen im Voraus!!

    Mfg KAMPI
    Zitieren Zitieren Zugriff auf Prozessabbild eines BC9050 in C#  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Ich denke das ADS-Summenkommando ist da was für dich:

    http://infosys.beckhoff.com/content/...9.htm?id=11602

    Damit kannst du 500 Variablen (max 2048kb) in einem Rutsch lesen oder schreiben. Die Werte stammen dann alle aus dem gleichen Zyklus.

  3. Folgender Benutzer sagt Danke zu MasterOhh für den nützlichen Beitrag:

    kampi (10.01.2012)

  4. #3
    kampi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.01.2012
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die schnelle Antwort.
    Das sieht doch schon mal brauchbar aus
    Ein kleines Problem könnte sein, dass ich nicht mit Handles, etc. arbeite, sondern bisher das "Read" direkt mit dem Index/Offset/Datentyp der zu lesenden Variable benutze. Hoffe, dass sich das Beispiel auch in dieser Form adaptieren lässt.

    Mfg KAMPI

  5. #4
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Wenn du dir das Beispiel genau ansiehst, wirst du sehen das genau das dort gemacht wird.
    Die Handles sind nur ein Zwischenschritt mit denen dann Index, Offset und Länge der einzelnen Vars ermittelt wird.
    Lässt du diesen Schritt weg, bist du da wo du hin möchtest....

  6. #5
    kampi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.01.2012
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja, habe ich in der Zwischenzeit auch gesehen
    Werde es später mal ausprobieren.

    Vielen Dank noch mal!

    Mfg KAMPI

  7. #6
    kampi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.01.2012
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So habe es mal ausprobiert. Leider bekomme ich beim "ReadWrite" Befehl einen Errors "Ads-Error 0x33180701". Darüber habe ich aber nichts im Netz gefunden.
    Hat jemand eine Ahnung, was das sein könnte?

    Danke für eure Hilfe im Voraus.

    Mfg KAMPI

  8. #7
    kampi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.01.2012
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    nach einer kleinen Pause beschäftige ich mich wieder mit dem Thema.
    Bin jetzt (vielleicht) einen Schritt weiter. Jetzt bekomme ich bei dem unteren Beispiel den Fehler "ADS Error 0x710 - Symbol could no be found". Aber die Varible gibt es. Was übersehe ich da?

    Code:
    try          
    {
    // Connect to PLC                
    adsClient = new TcAdsClient();                
    adsClient.Connect("172.16.1.128.1.1", 800);                 
    // Fill structures with name and size of PLC variables                
    variableNames = new string[] { "MAIN.TimeCounterMaster" };                
    variableLengths = new int[] { 4 };                 
    // Write handle parameter into structure                
    variables = new VariableInfo[variableNames.Length];                
    for (int i = 0; i < variables.Length; i++)                
    {                    
    variables[i].indexGroup = (int)AdsReservedIndexGroups.SymbolValueByHandle;                    
    variables[i].indexOffset = adsClient.CreateVariableHandle(variableNames[i]);  <-----------Hier kommt die Exception                    
    variables[i].length = variableLengths[i];                
    }            
    }            
    catch (Exception err)            
    {                
    MessageBox.Show(err.ToString());                
    adsClient = null;            
    }
    Vielen Dank für eure Anregungen im Voraus.

    Mfg KAMPI
    Geändert von kampi (27.01.2012 um 10:05 Uhr)

Ähnliche Themen

  1. externer Zugriff auf globale Variablen
    Von patti_9000 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 28.02.2013, 07:54
  2. Zugriff auf OPC Variablen
    Von mariobc im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 10.10.2011, 19:33
  3. Zugriff auf einzelne bits eines Realwerts
    Von Züttu im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 12.01.2011, 08:22
  4. Zugriff auf einen Array eines UDT`s
    Von Andreas- im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.09.2009, 19:02
  5. Zugriff auf Temporäre Variablen eines FC
    Von Fluffi im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.05.2009, 07:52

Lesezeichen

Berechtigungen

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