Hallo Allerseits,
mein damaliger Hiwi und ich haben mit viel Unterstützung von euch ein Robotersystem zur automatischen Entleerung von Sorterendstellen entwickelt und hatten damals vor allem viele Fragen zur seriellen Schnittstelle z.B unter
http://www.roboterforum.de/rob…t_kuka_krc_1-t1485.0.html
Inzwischen läuft das System seit geraumer Zeit recht gut, nur man ist ja nie zufrieden. Um die Zykluszeiten weiter zu reduzieren bleibt inzwischen nur noch eine Reduzierung der Kommunikationszeiten über. Bei unserem System (KR 6/2 gesteuert mit einer KRC 1 (Software 4.1.5) ) legt nämoich der Robi bei jeder Kommunikation eine Gedenksekunde von etwa 0,5 s ein.
Nun die Preisfrage: Gibt es prinzipielle Möglichkeiten um die serielle Kommunikation zu beschleunigen? (Baudrate erhöhen (derzeit 9600) o.ä? Da ohnehin nur max etwa 20 Zeichen übertragen werden, habe ich bis jetzt den Flaschenhals nicht in der Baudrate gesehen)
Derzeit sieht das so aus:
108 ;Sprungmarke für die Abfrageroutine
109 EINLESEN:
110
111 ;Öffnen des seriellen Ports 2
112 COPEN(:SER_2,HANDLE)
113 IF HANDLE==0 THEN
114 HALT
115 ENDIF
116
117 ;Definition der Parameter für den CREAD Befehl
118 TIMEOUT=0.0
119 MODUS=#ABS
120 OFFSET=0
121
122 ;Warteschleife für den CREAD Befehl
123 WAIT FOR $DATA_SER2>0
124
125 ;Leseanweisung und Zuordnung der gelesenen Werte zu Variablen
126 CREAD(HANDLE,STATUS,MODUS,TIMEOUT,OFFSET,"%d%d%d%d%d%d%d%d%d%d",BASE,XPOS,YPOS,ZPOS,DEGA,APOS,BPOS,CPOS,DEGB,UGA)
127
128 ;Berechnung der Prüfsumme
129 CHECK=BASE+XPOS+YPOS+ZPOS+DEGA+APOS+BPOS+CPOS+DEGB
130
131 ;Schleife zur Wertekontrolle
132 IF CHECK==UGA THEN
133
134 ;Definition der Parameter für den CWRITE Befehl
135 MODUS=#SYNC
136
137 ;Senden der Prüfsumme
138 CWRITE(HANDLE,STATUS,MODUS, "%s",OK[])
Hat irgendwer einen netten Vorschlag oder muss man mit der Gedenksekunde einfach leben?
Vielen Dank und viel Grüße
Andreas