Hab noch ein wenig rumprobirt die Werte werden nur angenommen wen %r eingegeben ist, gesendet wird 1,012E+2 in KUKA bekomme ich 2,563649E-09 angezeigt.
Wen nicht %r angegeben ist kommt wie oben die Fehlermeldung, Komischerweise steht in der Fehlermeldung der richtige wert.
-
-
Das einlese Verursacht Probleme da vom Kamera Programm nur String gesendet wird. Kann diesen nun in ein CHAR auffangen. Jetzt brauch ich eine Möglichkeit diesen so umzuwandeln das damit gerechnet werden kann, versuche mit SREAD und Umwandelung Schlagen immer fehl.
DECL REAL XWert
SREAD(CharX[],STAT,OFFSET,“%f“,XWert)
Fehlermeldung : Unzulässige Variablenkombination “…fProblem gefunden: Die Kamer gibt den Wert mit , aus die Umwandelung funktioniert aber nur wen ein . vorhanden ist. Wen ich nun das , durch den . tausche läuft das Programm durch und gibt mir meinen wert aus
-
So bin mit meine Projekt nun an Anfang der Dokumentation angelangt nun möchte ich gerne ein paar schöne Bilder von z.b. Tasten oder Elementen die auf den Display angezeigt werden in die Dokumentation mit einbinden. Von Videospielen ist mir bekannt das Hersteller oft Pakete zum Download anbinden die solche Bilder, Symbole enthalten gibt’s sowas auch von KUKA?
-
windows-screenshots vom KUKA?
-
Die Bilder sind leider etwas Pixelig.
-
Durchsuche deinen Roboter nach Bildern. Da sind im Normalfall alle Standard-Softkeys usw. drauf.
-
Hallo
ist es möglich den Empfangspuffer zu löschen.
Mein Programm läuft als Schlaufe durch und fragt immer bei der Kamera nach ob noch Daten vorhanden sind nun bekomme ich aber immer die gleichen auch wen die Kamera bereits die Daten für kein Objekt gefunden sendet.
Habe den Befehl „WAIT FOR $DATA_SER3 > 0“
Wen die Kamera keine Daten sendet bleibt das Programm hier stehen. Wen sie aber Daten sendet werden immer die zuerst empfangenen verwendet, nun ist meine Vermutung das die Daten im Eingangspuffer liegen und nicht gelöscht werden.Das Kamera Programm wurde mit anderen (nicht Roboter) Programmen getestet hier werden die richtigen Daten übermittelt.
-
laut Doku:
Wenn Daten eintreffen, wird die Systemvariable vom Kanaltreiber hochge-
zählt. Die Daten können dann mit einem Interrupt-Programm gelesen werden.
Beim Warmstart, Öffnen und Schließen eines Kanals werden die Variablen mit
0 initialisiert. -
Mein Kanal wird Geöffnet eine Anfrage an die Kamera gesendet nun wird wie oben beschrieben auf Daten gewartet diese werden mit 4 CREAD befehlen in 4 CHARS geschrieben anschleifend wird der Kanal wieder geschlossen. Danach kommen noch 5 IF schleifen.
Um alles beschriebene liegt noch eine REPEAT Schleife. Beim neuanwählen funktioniert es auch das erste mall und danach nichtmer (hier erscheinen immer die Daten die beim ersten mall gelesen wurden). Die CHARS werden zuvor alle mit 0 Überschreiben dies ist auch in der Variablenanzeige SichtbarCOPEN(:SER_3,HANDLE)
CWRITE(HANDLE,SW_T,MW_T,"%r",99)
WAIT FOR $DATA_SER3 >0
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%1.6r",Wert1[])
MR_T = #SEQ
OFFSET = 6
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%1.6r",Wert2[])MR_T = #SEQ
OFFSET = 12
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%1.6r",Wert3[])CCLOSE(HANDLE,SC_T)
-
COPEN(:SER_3,HANDLE)CWRITE(HANDLE,SW_T,MW_T,"%r",99)
WAIT FOR $DATA_SER3 >0
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%1.6r",Wert1[])
MR_T = #SEQ
OFFSET = 6
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%1.6r",Wert2[])MR_T = #SEQ
OFFSET = 12
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%1.6r",Wert3[])CCLOSE(HANDLE,SC_T)
Versuch doch mal:
MR_T = #Abs
OFFSET = 0
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%1.6r%1.6r%1.6r",Wert1[]Wert2[]Wert3[]) -
Hab das Lese Programm nun in ein Globales Unterprogramm verschoben und nach den WAIT FOR $DATA_SER3 >0 noch eine Wartezeit eingebaut nun nun funktioniert alles super.
Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren
Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen