Hallo,
Ich muss fuer meine Firma einen KUKA KR5 SIXX R650 Programmieren. Unser Controller ist der KRC 2 sr.
Ich kommuniziere mit meinem C#-Programm mit dem "Joblist Manger Socket Interface".
Hierzu verschicke ich XML-Telegramme um JOBTYP C2R_jobList[128] zu fuellen.
JOBTYP ist eine Struktur und ist wie folgt in der $CONFIG.DAT definiert:
C2R_jobList ist in der .DAT-File meines KRL-Programms global deklariert und in der .SRC-File sind alle Variabeln der 128 Felder mit 0 initialisiert.
Ein Telegram sieht so aus:
<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>
<SetMultiVar>
<SetVar VarName="C2R_jobList[n].type" VarValue="10" />
<SetVar VarName="C2R_jobList[n].value" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.X" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.Y" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.Z" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.A" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.B" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.C" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.E1" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.E2" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.E3" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.E4" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.E5" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.E6" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.S" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos1.T" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.X" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.Y" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.Z" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.A" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.B" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.C" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.E1" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.E2" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.E3" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.E4" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.E5" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.E6" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.S" VarValue="10" />
<SetVar VarName="C2R_jobList[n].pos2.T" VarValue="10" />
</SetMultiVar>
Alles anzeigen
Erst habe ich probiert alle 128 Felder (1-128) mit einem Telegramm zu fuellen. Jedoch konnte ich lediglich die ersten 2 Felder fuellen.
Danach habe ich probiert, jedes Feld mit einem eigenen Telegramm (wie oben angegeben) zu fuellen. Jedoch funktionert dies nicht zuverlaessig. Absolut zufaellig kann das Telegramm verschickt werden oder auch nicht. Wenn es nicht funktioniert bekomme ich eine Message zurueck, dass das XML-Telegramm nicht gueltig sei.
Ich vermute irgendwie, dass der Buffer im KRC voll laeuft. Jedoch darf laut Doku ein Telegramm 4096 byte groß sein. Mein Telegramm beinhaltet jedoch nur rund 1700 Zeichen.
Hat jemand eine Erklaerung und vielleicht auch eine Loesung fuer dieses Problem?
Vielen Dank schon mal fuer eure Antworten!
Gruß Harry