Sonstiges Sinumerik Nck Reset über Ag Link

G

Gelöschtes Mitglied 112023

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich Programmiere gerade ein Fernwartungstool in C# und möchte geren über eine Ag Link verbindung den Pi Dienst für den Nck Reset auslösen.
Leider bekomme ich immer die Fehlermeldung -- Ungültiger Kontext.

Verbindung zur Plc und zur Nck stehen...

Code snippet :

//--- Nck Reset
public bool NckReset()
{
Int32 result = 0;
Byte[] data = new byte[15]; ; // This data must be initialized before using
data[0] = 0;
data[1] = 3; // Bereich / Einheit
data[2] = 75; // Char K
data[11] = 1; // Klassifizierung
data[12] = 4; // WORD Spezifikation Unit=0, WVar1=0

String cmd = "_N_IBN_SS"; // Insert name of the service here

result = AGL4.NCK_PI_StartAll(connNrNc, data, cmd, timeout);
if (result != AGL4.AGL40_SUCCESS)
{
String errormsg = "";
AGL4.GetErrorMsg(result, out errormsg);
Console.WriteLine("Nck Reset Fehlgeschlagen -- " + errormsg);
return false;
}
else { return true; }
}

Hat diesbezüglich schon jemand Erfahrungen gesamelt ?
Freue mich über jede Auskunft !

LG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
bZc9e59pihUAAAAASUVORK5CYII=

Interessant wäre welche Parameter im data Array verlang werden?

LG
 
ein screenshot von der Aufzeichnung ist im Anhang

LG
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    17,6 KB · Aufrufe: 21
so muss der Request in Wireshark aussehen:

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F


00000000  32 01 00 00 CB 06 00 1A 00 00 28 00 00 00 00 00  2...Ë.....(.....
00000010  00 FD 00 06 [B]03 4B 30 30 01 30[/B] 09 5F 4E 5F 49 42  .ý...K00.0._N_IB
00000020  4E 5F 53 53                                                         N_SS



davon sind das die Parameter
[B]03 4B 30 30 01 30[/B]

also
[B]03 "K00"  01 "0"[/B]

also denke ich das dein data eher so aussehen muss

Byte[] data = new byte[6];
data[0]=3; // laenge von "K00"
data[1]=0x4B; 'K'
data[2]=0x30; '0'
data[3]=0x30; '0'
data[4]=1; // laenge von "0"
data[5]=0x30; '0'

einfach mal probieren und schauen das dein Request in Wireshark so aussieht wie mein Beispiel

btw: ab AGLink 5.1 gibt es die Funktion: AGL_NCK_PI_IBN_SS(connection, 0)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
mit meinen data Array habe ich schon richtig gestellt jedoch ohne Erfolg

data[0] = 3; // Stringlänge
data[1] = 75; // K
data[2] = 48; // 0
data[3] = 48; // 0
data[4] = 1; // Stringlänge
data[5] = 56; // 8
_N_IBN_SS(K00,8)

oder

data[0] = 3; // Stringlänge
data[1] = 75; // K
data[2] = 48; // 0
data[3] = 48; // 0
data[4] = 1; // Stringlänge
data[5] = 49; // 1
_N_IBN_SS(K00,1)

ist der erste bereich sicher K00 ?

LG
 
ist der erste bereich sicher K00 ?

ja das ist richtig, der Hexdump ist aus einem funktionierenden Reset - kommt bei dir das gleiche raus wie in meinem Dump wenn du es im Wireshark vergleichst?

?? = egal, ist eine sequence nummer, der Rest muss 100% identisch sein


hex: 32 01 00 00 ?? ?? 00 1A 00 00 28 00 00 00 00 00 00 FD 00 06 03 4B 30 30 01 30 09 5F 4E 5F 49 42 4E 5F 53 53
ascii: 2...Ë.....(......ý...K00.0._N_IBN_SS
 
Ja mein Dump sieht genau so aus

screenshot im Anhang
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    5,5 KB · Aufrufe: 12
Merkwürdig!!!

die Zugriffsstufe ist Hersteller, ich verwende die Nc Verbindungsnummer und per Softkey genau so wie per Plc PiDienst funktioniert es reibungslos.

Der Dienst fürs anmelden funktioniert auch - NCK_PI_LOGIN(connNrNc, Password, timeout);

Ich nutze - NCK_PI_StartAll(connNrNc, data, cmd, timeout);
 
Welche AGLink Version?

Ethernet/Profibus?

Welches HMI (Advanced/Operate?) - irgendwas super neues?

Kannst du vielleicht ein Wireshark-Log von einem Reset per HMI machen? dann sieht man was da anders ist
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meine AGLink Version der DLL ist 4.0
ich habe eine Tcp/Ip Verbindung aufgebaut auf die X120
die Sinumerik Version ist 4.7 also mit Operate auch mit 4.7

hätte ich schon versucht jedoch denke ich das ich es nicht mitschneiden kann?
 
Aus irgend einen Grund hat sich die ausgelesene Verbindungsnummer abgelöscht.
Jetzt funktionierts :)

vielen vielen danke für die Unterstützung !!!

LG
 
Ich denke, die ConnNr hat er in seinem Code verbogen. Dann existiert keine Verbindung und es kann kein Befehl ausgeführt werden.
 
Zurück
Oben