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

Seite 17 von 21 ErsteErste ... 71516171819 ... LetzteLetzte
Ergebnis 161 bis 170 von 207

Thema: 840D sl NCU Variablen und Antriebsparameter lesen/schreiben

  1. #161
    Registriert seit
    22.11.2007
    Beiträge
    731
    Danke
    6
    Erhielt 89 Danke für 62 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ist in der Tat schon nochmal deutlich schneller geworden. So funktioniert das gut! 200ms, damit kann ich arbeiten
    wenn wir jetzt noch 2 Kanäle zum testen hätte könnte ich möglicherweise 1 Splitting wieder entfernen (oder als Option reinbringen) = noch etwas schneller
    und H-Variablen damit wir wirklich testen können ob das so funktioniert

    die nächsten Tests sind einfach - nur noch mit SMART Testen und schauen ob du irgendwie Fehler provozieren kannst
    Angehängte Dateien Angehängte Dateien
    Geändert von LowLevelMahn (02.02.2016 um 09:48 Uhr)

  2. #162
    Registriert seit
    17.11.2015
    Beiträge
    50
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Kennst du denn noch irgendwelche anderen H-Variablen, die ich noch testen könnte?
    Ich glaube gesehen zu haben, dass bei der älteren Maschine (Grob) 2 Kanäle eingerichtet sind, wobei aber alle Achsen dem 1. zugeordnet sind und der 2. sozusagen leer ist. Das Konzept hinter diesen Kanälen leuchtet mir auch noch nicht wirklich ein.. wofür braucht man denn mehrere?

  3. #163
    Registriert seit
    22.11.2007
    Beiträge
    731
    Danke
    6
    Erhielt 89 Danke für 62 Beiträge

    Standard

    Kennst du denn noch irgendwelche anderen H-Variablen, die ich noch testen könnte?
    const nck_var_t motorTemperature(eNCK_AreaMainDrive, eNCK_BlockS, 1, 1702, 1, eNCK_MDB_UInt16, 2, "motorTemperature");
    const nck_var_t firmwareDate(eNCK_AreaMainDrive, eNCK_BlockS, 1, 1798, 1, eNCK_MDB_UInt16, 2, "firmwareDate");
    const nck_var_t firmwareVersion(eNCK_AreaMainDrive, eNCK_BlockS, 1, 1799, 1, eNCK_MDB_UInt16, 2, "firmwareVersion");


    Ich glaube gesehen zu haben, dass bei der älteren Maschine (Grob) 2 Kanäle eingerichtet sind, wobei aber alle Achsen dem 1. zugeordnet sind und der 2. sozusagen leer ist.

    in der Grob1.txt aus
    Test_Ergebnisse10.zip gibt es aber kein c[2]rpa[0] => AGL40_NO_DATA_ERROR - normalerweise bedeutet es das du keinen 2. Channel hast

    bau mal die ein
    const nck_var_t maxnumDrives(eNCK_AreaNCK, eNCK_BlockY, 1, 17, 1, eNCK_MDB_UInt16, 2, "maxnumDrives");
    const nck_var_t maxNoOfChannels(eNCK_AreaNCK, eNCK_BlockY, 1, 68, 1, eNCK_MDB_UInt16, 2, "maxNoOfChannels");

    Das Konzept hinter diesen Kanälen leuchtet mir auch noch nicht wirklich ein.. wofür braucht man denn mehrere?

    Channels auf der NC sind wie Threads auf dem PC - z.B. während die Maschinen was macht möchtest du mit anderen Achsen reinfahren und Teil vorbereiten oder sowas - klar geht das auch mit einem Channel(Thread)
    aber manchmal ist es doch schöner/einfacher - das gibt es dann so SETM, WAITM-Befehle (und weiteres) für die Sychronisation

    https://www.youtube.com/watch?v=Bs8nNZaiDCQ
    Geändert von LowLevelMahn (03.02.2016 um 09:59 Uhr)

  4. #164
    Registriert seit
    17.11.2015
    Beiträge
    50
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ok, teste ich und Danke für die Erklärung zu den Kanälen.

  5. #165
    Registriert seit
    22.11.2007
    Beiträge
    731
    Danke
    6
    Erhielt 89 Danke für 62 Beiträge

    Standard

    ich bin gespannt ob du "sinnvolle" Werte bekommt

  6. #166
    Registriert seit
    22.11.2007
    Beiträge
    731
    Danke
    6
    Erhielt 89 Danke für 62 Beiträge

    Standard

    https://cache.industry.siemens.com/d...BA_0510_de.pdf - da findet man 1798 und 1799

    also

    Code:
      {
    //firmwaredate
        unsigned short date = 22075;
        int tag = date / 1000;
        int rest = date % 100;
        int monat = rest / 10;
        int jahr = rest % 10;
        printf("%02d.%02d.%d\n", tag, monat, jahr);
      }
      {
    //firmware_version
        unsigned short version = 21000;
        int major = version / 10000;
        int rest = version % 10000;
        int minor = rest / 100;
        int build = rest % 100;
        printf("%d.%d/%d\n", major, minor, build);
      }
    Geändert von LowLevelMahn (03.02.2016 um 12:08 Uhr)

  7. #167
    Registriert seit
    17.11.2015
    Beiträge
    50
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Also, bislang folgendes:
    Habe versucht für die AreaMainDrive funktionierende Variablen zu finden. Auf den BlockM kann man damit genauso zugreifen wie über FeedDrive,
    auf die 0x8er Blöcke kann man über MainDrive nicht zugreifen. Im BlockS habe ich unabhängig von Achse (=Unit) keine Variablen gefunden.

    Ich denke die Grob verfügt schon über 2 Kanäle, kann die nämlich im HMI auswählen..
    Der RPA(0) im C2 ist =0, kann man auch lesen (Channel-No. = Unit).
    Versuche ich RPA(0) C3 zu lesen kommt ein Fehler, C2 gibt 0.

    Was allerdings funktioniert und auch Daten liefert: Über AreaChannel / BlockM für Channel 2 (=Unit2) die Kanalspezifischen-MD's zu lesen, z.B. 20060[0] (Spalte=20060, Zeile=1) "Geometrieachsname im Kanal" --> liefert "X" oder 20070[4] (Spalte=20070, Zeile=5) "Maschinenachsnummer gültig im Kanal" liefert bei Channel / Unit =1 den Wert 5, bei Channel / Unit =2 den Wert 2, entsprechend der Anzeige im HMI.

  8. #168
    Registriert seit
    17.11.2015
    Beiträge
    50
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Nachtrag: Der Parameter "current_cycle_time" AreaMainDrive/BlockM/Spalte 1000 hat ja immer 0 geliefert.
    Im HMI steht bei mir unter p1000 "Makro Konnektoreingänge (...)" mit Wert 0, versuche ich den nächsten Parameter p1082 "Maximaldrehzahl" mit Spalte =1080 zu lesen bekomme ich den korrekten Wert (5928 [U/min]). Die gelesene 0 war also wohl immer korrekt, nur nicht der gesuchte Parameter...

  9. #169
    Registriert seit
    22.11.2007
    Beiträge
    731
    Danke
    6
    Erhielt 89 Danke für 62 Beiträge

    Standard

    einfach mal alles rein machen was so geht und mit der Spinner und Grob Wireshark + out.txt

  10. #170
    Registriert seit
    17.11.2015
    Beiträge
    50
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nochmal ein Test mit mehreren Channels und AreaMainDrive - Das SMART-Read scheint zu funktionieren
    Welches Splitting könnte ich evtl. noch weglassen?

    Release_Test_2.zip

Ähnliche Themen

  1. OPC Variablen via C++ lesen und schreiben
    Von AkrapovicSPS im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 12.09.2013, 08:38
  2. Variablen schreiben und lesen aus TwinCat3-Projekt
    Von patzer103040 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 08.04.2013, 12:11
  3. C#-Variablen in TwinCAT lesen und Schreiben
    Von kcirtap im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 29.11.2010, 10:18
  4. GUDs lesen und schreiben 840D
    Von PG710 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.12.2008, 12:12
  5. Antworten: 0
    Letzter Beitrag: 08.11.2008, 08:36

Stichworte

Lesezeichen

Berechtigungen

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