libnodave und inhalt der PDUs

LowLevelMahn

Level-1
Beiträge
766
Reaktionspunkte
90
Zuviel Werbung?
-> Hier kostenlos registrieren
@Zottel

um was gehts:
ich will immer noch NC-Code auf eine NCK 840D bringen ohne die HMI Schnittstellen (MCDomain,OPC..., usw) zu verwenden

war gerade dabei den payload des PDU headers zu analysieren
- hab dann aber gemerkt das du das ja schon gemacht hat :)

Code:
#pragma pack(1)
struct pdu_10
{
  unsigned char always0x32;
  unsigned char type;
  unsigned char unknown[2];
  unsigned short seq;
  unsigned short plen;
  unsigned short dlen;
};
meine Frage: der header passt aber meine (short) sequence scheint ein anderes format zu haben als parameter-len und data-len

ein kleiner Auszug von drei playload buffern

Code:
pdu_type: 3 sequence: 100 plen: 8 ldata: 0
32 03 00 00 64 00 00 08 00 00 00 00 F0 00 00 06 00 06 00 F0 

pdu_type: 3 sequence: 100 plen: 2 ldata: 6
32 03 00 00 64 00 00 02 00 06 00 00 04 01 FF 09 00 02 01 00 

pdu_type: 7 sequence: 607 plen: 12 ldata: 10
32 07 00 00 5F 02 00 0C 00 0A 00 01 12 08 12 02 01 61 00 00 00 00 FF 09 00 06 00 01 0A 09 00 00
die sequence ist einfach nur ein unsigned short, die plen und dlen auch - aber da kommen erst sinnvolle werte nach konvertierung mit daveSwapIed_16 raus

wenn ich daveSwapIed_16 auf die sequence anwende wirds sinnfrei

kann das sein?
 
Seq ist nur zur Identifizierung und wird im Antwortpaket genauso zurückgeschickt. Wert ist hier (fast) egal. Die Werte von plen und dlen liegen im Netzformat vor und müssen konvertiert werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok danke - darfst du noch mehr geheimnisse preisgeben?

weiss du auch möglicherweise wie das mapping von opc variablen passiert?

ich kann diese /plc/datablock[c200,1.1] variablen nicht wie den nc-code in meinem s7onlinx.dll log finden

falls keine infos trotzedem danke...

btw: ich bin für jede form von doku offen - falls was rummliegt :)
 
Mit der NC kenn ich mich gar nicht aus. Vielleicht ist diese ähnlich der "normalen" S7. Die Codierung der Daten steht im libnodave Quellcode drin.
Welcher Operand steckt eigentlich hinter /plc/datablock[c200,1.1]?
 
>Mit der NC kenn ich mich gar nicht aus. Vielleicht ist diese ähnlich der >"normalen" S7. Die Codierung der Daten steht im libnodave Quellcode drin.
einiges steht drinn und passt auch - ich hab nur mehr(andere) daten - mit leicht veränderten pdus usw.

>Welcher Operand steckt eigentlich hinter /plc/datablock/bit[c200,1.1]?
bit - vergessen

die sind wie in s7 schreibweise (DBX...) kodiert - aber ich hab da noch ganz viele andere arten z.B. /machine/axis_pos[1,...] usw ca. 1500 - scheinen irgendwie auch über db gelöst zu sein - naja mal schauen was die analyse ergibts -> und viele von den areas sind nicht in libnodave aufgeführt

trotzdem danke
 
Zurück
Oben