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

Seite 18 von 21 ErsteErste ... 81617181920 ... LetzteLetzte
Ergebnis 171 bis 180 von 207

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

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    bisher splitte ich auch die Channels - mach mal einen Test ob du Unit-gemixte Channel-Variablen im BLOCK-Mode lesen kannst (dein letzten Test kopieren, nur Channel-Variablen unterschiedlicher Units, und nicht mit ::SMART sondern ::BLOCK) geht das?

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

    Standard

    Nein, das geht nicht, siehe Ergebnisse.
    Verschiedene Blöcke auf ein mal aus dem gleichen Channel funktioniert,
    der gleiche Block aus mehreren Channels gleichzeitig geht NICHT.

    Also muss das Splitting so bleiben... richtig?
    Was muss nun noch getestet werden damit das Splitting übernommen werden könnte?

    Release_Test_3.zip

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

    Standard

    Verschiedene Blöcke auf ein mal aus dem gleichen Channel funktioniert,
    der gleiche Block aus mehreren Channels gleichzeitig geht NICHT.

    also
    verschiedene Blöcke, gleicher Channel = OK
    gleiche Blöcke, verschiedene Channels = geht nicht (muss also gesplittet werden)
    verschiedene Blöcke, verschiedene Channels = ???

    Was muss nun noch getestet werden damit das Splitting übernommen werden könnte?
    ich denke wenn du (bis auf den ??? Fall) nichts mehr findest könnte man es integrieren - jetzt fehlt noch Feedback von den Deltalogics dazu - und Zeit

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

    Standard

    verschiedene Blöcke, verschiedene Channels = ???
    Gerade getestet, funktioniert auch nicht!

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

    Standard

    also würde ich sagen das Splitting kann so bleiben

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

    Standard

    Splitting ist noch nicht ganz richtig - ich bastel noch ein bisschen

    Update: ist doch ok!

    Update: du kannst auf jeden Fall noch die anderen Variablen von mir maxChannels, maxDrives (was davon eben funktiniert) usw. einbauen - dann haben die Deltalogics gleich mehr (sinnvolles) zu testen
    Geändert von LowLevelMahn (05.02.2016 um 10:09 Uhr)

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

    Standard

    So, kurzes update: Ich hab die letzten Tage noch einiges getestet, bisher hat alles funktioniert, keine Fehler!
    Bereite gerade noch einen letzten "großen" Test vor wo ich alle Variablen reinpacke die mir bisher untergekommen sind...
    Wenn ich dann morgen oder am Freitag nochmal an die Maschine komme lasse ich den laufen und berichte.

  8. #178
    Hans54216 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.04.2013
    Beiträge
    208
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Ich komme nach längerem wieder dazu Antriebsparameter per externen Programm zu lesen.

    Ich hab mir in der PLC einen FB geschreiben, der mir bestimmte Antriebsparameter per FB2 liefert. Anhand eines Übergabeparameters wähle ich die Achse aus.

    Zum Testen greife ich wieder auf altbekannten Parameter r0035 zurück.

    Code:
    bereich_u_einheit : BYTE := B#16#A1;
    In der PLC rechne ich nun 0xA0 + Achsnummer und bekomme meine gewünschte Temperatur.

    Wenn ich dies nun in meinem externen Programm mache kommt der falsche Wert oder Zugriffsfehler.

    Code:
                byte bereich_u_einheit = byte.Parse("A1", System.Globalization.NumberStyles.HexNumber);
                byte _bereich = (byte)((bereich_u_einheit & 0xE0) >> 5);      // (bereich_u_einheit & 2#11100000) schiebe rechts um 5 Bit
                byte _einheit = (byte)(bereich_u_einheit & 0x1F);                 // & 2#00011111
    Hab mir die Wireshark des HMI angesehen und folgendes herausgefunden.

    Achsen: AX1 AX2 AX3 AX5 AX7 AX8 AX12 AX23 AX25
    Name: X_1_ Y_1_ Z_1_ B_1_ A_1_ SP1 Q_1_ Y_2_ ZM1_
    DP: DP3.SLAVE3: DRV_3.3:4(11) DP3.SLAVE3: DRV_3.3:5(12) DP3.SLAVE3: DRV_3.3:7(13) DP3.SLAVE15: DRV_3.15:4(15) DP3.SLAVE15: DRV_3.3:5(17) DP3.SLAVE3: DRV_3.3:3(1 DP3.SLAVE15: DRV_3.15:2(22) DP3.SLAVE3: DRV_3.3:6(33) DP3.SLAVE15: DRV_3.15:3(35)
    NCK Area: 5 5 5 5 5 5 5 5 5
    Unit: 2 3 5 8 9 1 6 4 7
    Column: 35 35 35 35 35 35 35 35 35
    Line: 1 1 1 1 1 1 1 1 1
    Module: 0x82 0x82 0x82 0x82 0x82 0x82 0x82 0x82 0x82
    LineCount: 1 1 1 1 1 1 1 1 1

    Nun meine Frage.

    In der PLC entspricht "_bereich" der Achsnummer.
    Im S7Com "_bereich" -> "Unit" jedoch nicht.

    Wie komme ich nun anhand der Achsnummer auf die richtige Unit?

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

    Standard

    Edit: hab nicht richtig nachgedacht - 0xA0 ist deine Bereich=5 und dahinter kommt dann die Achsen-Nummer

    kannst du das Wireshark-Log hier einstellen - und genau den PLC-Code den du fuer den Zugriff verwendest (der Schlussendliche aufruf an den FB2)?
    User st_rupp hatte mal gemeint die Unit könnte dem DO-Index (keine Ahnung was das ist?) entsprechen





    Geändert von LowLevelMahn (16.02.2016 um 16:00 Uhr)

  10. #180
    Hans54216 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.04.2013
    Beiträge
    208
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hab von unserem Antriebler gerade die Lösung bekommen.
    Die Unit bezieht sich auf die Achstopologie.

    Heist auf deutsch:
    Die Antriebe werden in der Reihenfolge Nummeriert, in der Sie mit der NC verbunden sind.

    Bei der 840d bekommen die Antriebe je nach NC bzw NX einen fortlaufenden Adressbereich zugewiesen. Beginnent bei 4100.
    Diese Adressen sind dem Busssteckplatz fest zugewiesen und auch in der Hardwarekonfig hinterlegt.

    Ich vermute mal das Siemens anhand der Hardwarekonfig die richtige Unit zur Achsnummer ermittelt.

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