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

Seite 13 von 21 ErsteErste ... 31112131415 ... LetzteLetzte
Ergebnis 121 bis 130 von 207

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

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du hast recht - "Normale" NCK Abfragen mit mehr als 18 Parametern werden auch gesplittet.
    Jedoch keine Zugriffe auf die eNCK_AreaFeedDrive / BlockM, Block0x82, Block0x83...
    Woher kommt das denn?!! Ich hatte vermutet, dass das AGLink einfach stur das RW-NCK-Array in 18-Variablen große Stücke teilt, egal welcher Bereich oder Block abgefragt wird.. Aber scheinbar ist dem nicht so? Findet da noch irgendwie eine Optimierung statt?


    es werden immer so viele Variablen in eine PDU gesteckt wie reinpassen, bei deinem Test 11 passt sogar noch mehr rein (darum kein Splitting) und von der NC kommt "Wrong kontext" (0x8104) was soviel heisst wie "Mag ich nicht machen"
    es sieht nicht so aus als würde AGLink etwas falsch machen (sonst würde es eher Protokoll-Fehler geben) - soweit ich das verstanden habe gibt es keine bereichsbezogene Joberstellung - nur bei der Datenverarbeitung nach dem Response wird Endian-gedreht - aber die NC liefert eh nur einen Fehler, da kommen ja keine Daten

    die Drive-Blöcke sind irgendwie "besonders", verhalten sich anders als alle anderen Blöcke mit denen ich so Kontakt hatte
    z.B. sind nur die Daten aus den 0x8x-Blöcken Endian-geswappt (alle anderen NC-Blöcke kommen im x86-Format), ich habe hier einen Test der 800 Variablen als ein Auftrag aus den unterschiedlichsten Blöcken ließt (aber eben keine 0x8x-Blöcke) und alles läuft so wie man es erwartet, ich vergleiche die Ergebnisse automatisch mit Single-Reads und alles passt

    Es könnte sein das im Drives Bereich die Regel gilt: max 18 Variablen (Ich hab schon mal in irgendeiner Doku gelesen das man NC-Alarme nicht mit anderen Variablen in einer Abfrage mischen darf - so wirkt das hier auch, nur noch mit einer Mengenbegrenzung was sehr verwunderlich ist)

    ich schau mal in die Logs

    Würde mich schonmal interessieren ob in der aktuellen Version auch noch solche Bugs hat, bzw. wie die sich verhält...
    würde mich auch - ein Update muss man glaube ich kaufen
    Geändert von LowLevelMahn (22.01.2016 um 16:03 Uhr)

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

    Standard

    sind 19 Variablen genau die Grenze? was passiert wenn du 20 Byte oder besser String-Werte(wie finden?) aus dem Antrieb abfragst, geht es dann?

  3. #123
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Mehr als 19 Bereiche passen in die Anfrage-PDU mit 240 Bytes schon gar nicht hinein.

    Edit:
    Bei NCK schon, da ist ein Bereich ja nur 10 anstatt 12 Bytes lang.
    Geändert von Thomas_v2.1 (22.01.2016 um 16:15 Uhr)
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

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

    Standard

    @Thomas_v2.1

    ja du hast recht - aber dein Dissector zeigt 22 variablen und die pdu groesse stimmt - aus Post #120, Test6_Spinner.pcapng, Paket 54 - macht du keine Prüfung?

    Edit: ich war auch kurz verwirrt - ich sage alles ist in Ordnung - nur die NC verhält sich bei diesen Blöcken anders
    Geändert von LowLevelMahn (22.01.2016 um 16:27 Uhr)

  5. #125
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von LowLevelMahn Beitrag anzeigen
    @Thomas_v2.1

    ja du hast recht - aber dein Dissector zeigt 22 variablen und die pdu groesse stimmt - aus Post #120, Test6_Spinner.pcapng, Paket 54 - macht du keine Prüfung?
    Ja, habs oben noch ergänzt.
    Nein, es gibt keine Prüfung. Wird über eine Grenze zugegriffen fängt das die Funktion ab welche die Bytes aus dem Puffer holt, und dann gibt es einen Dissector Error. Das ist bei eigentlich Standardvorgehensweise in den dissector-codes. Für solche Unstimmigkeiten im Protokoll wäre das "Expert Info" Feld zuständig (z.B. PDU länger/kürzer als angegeben), ich nutze das aber nicht.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  6. #126
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Habe mir das Log angesehen. Da sollte kein Fehler kommen. Sieht für mich eher aus, wie wenn die NCK hier zusätzliche Einschränkungen bei diesen Bereichen hat. Bitte einmal mit 20 bzw. 21 Variablen testen und das Log einstellen. Dann kann ich sehen, wo die exakte Grenze liegt. Eventuell kann ich das dann in ACCON-AGLink abfangen.
    Tritt das bei allen Firmwaren auf oder ist dies firmwareabhängig?
    Rainer Hönle
    DELTA LOGIC GmbH

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

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

    Standard

    d.h. fuer einen Leseauftrag in diesem Bereich könnte gelten:
    -alle Variablen müssen die gleiche Unit haben?
    -maximal 20 Stück?

    die Frage ist:
    -ist das bei allen Variablen aus den 0x8x-Bereichen so?
    -ist das für jede Firmware gültig (können das neuere vielleicht doch?)

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

    Standard

    hab noch in eine Doku was gefunden

    https://cache.industry.siemens.com/d...3_PL_de-DE.pdf

    unter: 2.12.2 FB 2: GET NC-Variable lesen

    Beim Lesen von kanalspezifischen Variablen dürfen in einem Auftrag (FB 2-Aufruf) über Addr1 bis Addr8 nur Variablen von genau einem Kanal adressiert werden.
    ...
    Bei den Bereichen V bzw. H dürfen nicht verschiedene logische Achsnummern in einem Auftrag zugeordnet werden (bei Nichteinhaltung: Error:= TRUE, State:= W#16#02).
    und du bewegst dich ja im V oder H Bereich

    und darunter stehen im PFD noch erlaubte Gruppen-Mischungen
    Geändert von LowLevelMahn (25.01.2016 um 10:13 Uhr)

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

    Standard

    Ok, den letzten Post hab ich verstanden, das davor eher nicht so ganz..
    Der Auszug aus der Doku erklärt also, warum in einem Auftrag immer nur eine Unit gelesen werden kann, weil es von Siemens schlichtweg nicht vorgesehen / erlaubt ist. (warum auch immer?)
    Außerdem ist offenbar die Anzahl der Variablen, die pro Anfrage von der PLC bzw. NCK gelesen werden können beschränkt, und zwar auf max. 18 Variablen.
    Wie mein letzter Test gezeigt hat, splittet AGLink daher Aufträge mit mehr als 18 Variablen in mehrere Anfragen, sowohl bei der PLC wie auch bei der NCK.
    Ausnahme: Die V / H Bereiche der NCK.
    Aber warum? Kontrolliert die Funktion, die im AGLink das Splitting bewirkt, welcher Bereich abgefragt wird?
    Ich bin davon ausgegangen, dass die Aufträge einfach "doof" in 18er Blöcke zerlegt werden, ohne zu berücksichtigen welche Variablen aus welchen Bereichen gelesen werden sollen??!

    Ich habe die Tests mal noch etwas erweitert, und teste auch das Verhalten im BlockM, Ergebnisse folgen.
    Wäre es dann möglich im AGLink Mechanismen zu integrieren, die dafür sorgen, dass die Maximalzahl von 18 Variablen auch bei V/H nicht überschritten, und keine unterschiedlichen Units in einer Anfrage gemischt werden?
    Ich mache das momentan recht umständlich (zahlreiche verschachtelte Schleifen) in meinem Code, was sicher auch zu meinen schlechten Timing-Ergebnissen beiträgt...

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ACCON-AGLink splittet die Anfrage wenn entweder der Request oder der Response nicht mehr in ein Paket passen würde. Dies sind bei der PLC der NCK 19 Variablen. Die Anfrage einer NCK-Variablen ist pro Variable um zwei Bytes kleiner als die Anfrage eine PLC-Variablen. Deshalb passen bei einer NCK-Anfrage mehr Variablen in einen Request. Bei "normalen" NCK-Variablen scheint dies alles zu klappen. Nur in den speziellen Bereichen scheint es noch weitere Grenzen zu geben. Deshalb auch meine Bitte, einmal 20 und 21 Variablen anzufragen. Denn 19 schein zu klappen, 22 geht schief (obwohl es in den normalen Bereichen gut geht). Wo genau liegt die Grenze? Ist dies firmwareabhängig? Wenn das alles klar ist, kann ich ggf. eine entsprechende Anpassung in ACCON-AGLink einbauen.
    Grundsätzlich macht ACCON-AGLink an dieser Stelle, was die Paketgröße anbelangt, alles richtig. Eine "doofe" Zerteilung halte ich nicht für sinnvoll, da die Perfomance leiden wird. Deshalb müssen wir die exakten Einschränkungen wissen.
    Ich hoffe, die Zusammenhänge sind jetzt etwas klarer.
    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. 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
  •