Jochen Kühner
Level-3
- Beiträge
- 4.293
- Reaktionspunkte
- 527
Hallo Jochen,
Ich versuche gerade einen String von der NC zu lesen.
Wenn ich im PLCNckTag zusätzlich zum Typ String noch die "ArraySize = 20" mitgebe, kommt im Buffer der Text auch an.
Beim Umwandeln des Strings kommt es aber zu einem Exception:
{"Der Index und die Anzahl müssen sich auf eine Position im Puffer beziehen.\r\nParametername: bytes"}
@Jochen
Hier die Infos zu den Beschränkungen:
Endianess? Sind die gelesen werte nun richtig wie Ich SIe ausgebe (in der Value Property), oder sind die Bytes vertauscht?
PLCNckTag.NckArea == 5 || PLCNckTag.NckArea == 6 -> dürfen nicht in Kombination mit anderen Bereichen gelesen werdenLimitierungen für die "PLCNckTag" sind wie folgt:
- Die Bereiche FeedDrive und MainDrive dürfen jeweils immer nur einzeln, nicht in Kombination mit anderen Bereichen gelesen werden. Bei anderen Bereichen ist das egal
PLCNckTag.NckUnit -> alle NckUnit in einem Auftrag müssen gleich sein
- Das gleichzeitige Lesen von Variablen aus mehreren Units in einem Auftrag ist NIE erlaubt, egal aus welchem Bereich
PLCNckTag.NckArea == 5 || PLCNckTag.NckArea == 6 -> dürfen max. 19 Variablen auf einmal gelesen werden, egal welcher Datentyp (Wobei die HMI maximal 17 Variablen liest)
- In den Bereichen FeedDrive und MainDrive dürfen max. 19 Variablen auf einmal gelesen werden, egal welcher Datentyp
PLCNckTag.NckArea == 5 || PLCNckTag.NckArea == 6 -> Endian-Verdreht wie Sps, die anderen Bereiche sind x86
- Die Endian-Verdrehung betrifft (glaube ich) alles in den Bereichen MainDrive und FeedDrive, nicht nur die 0x8Y Blöcke
Leider nicht. PLC und NC sind bei der 840d ja im selben Gehause.Werden die Daten übers Netzwerk übertragen? Wenn ja, dann einen Mitschnitt machen und hier einstellen.
Du könntest mal in die aufgerufenen FBs hineinschauen, und dort prüfen ob dort zumindest im Ansatz Telegrammaufbauten wiederzufinden sind die womöglich auch übers Netzwerk funktionieren könnten.Leider nicht. PLC und NC sind bei der 840d ja im selben Gehause.
Du könntest mal in die aufgerufenen FBs hineinschauen, und dort prüfen ob dort zumindest im Ansatz Telegrammaufbauten wiederzufinden sind die womöglich auch übers Netzwerk funktionieren könnten.
Bzw. wenn der intern aufgerufene FB15 für die NCK-Kommunikation die wir hier gelöst haben verwendet wird, ist der Aufbau evtl. identisch, und es müssen nur entsprechende Werte für die Parameter eingetragen werden.
L DINO
T #C_LInstanzDb
TAR2
T #AR2_rett
SRD 3
T #C_LInstanzOff
L W#16#8005
T #C_LBlockNo
L 15
T #BpBlockNo
UC FB [#BpBlockNo]
L #C_LBlockFB15Return
L B#16#0
==I
SPBNB end
UN #Error
SAVE
end: LAR2 #AR2_rett
BE
Wie auch immer. Wenn du das in/mit libnodave komplett umgesetzt haben möchtest, musst du dich da schon selber reinfuchsen. Ohne direkten Zugriff auf eine NC, und dann noch über den Umweg über Jochen und seine Bibliothek sind wir andernfalls noch Jahre mit dem Pingpongspielen beschäftigt.
Thomas_v2.1 schrieb:Ich selber habe auch nur insofern Interesse daran, dass ich das in Wireshark korrekt anzeigen kann.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?