Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...
Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...
Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Interpreter ruft diese Methode vor Beginn der Simulation auf, so dass bei<br />
Ausführung der Simulation bereits alle CNC- Quelltexte geparst sind.<br />
Die DefaultCNCCommand- Implementierung geht davon aus, dass die CNC-<br />
Programme in der Struktur:<br />
„Gelenkbezeichnung Neuer_Wert benötigte_Zeit_in_ms“<br />
,also bspw. in der Form „Arm1 +45 3000“ vorliegen.<br />
public class DefaultCNCCommand extends CNCCommand {<br />
}<br />
// Gelenkverbindung<br />
Joint joint;<br />
// neuer Absolutwert<br />
double value;<br />
// Gesamtlaufzeit<br />
int totalTime;<br />
// parst die CNC-Quelle<br />
public void create(CNCSourceLine line) throws CNCException {<br />
}<br />
// Zeilentext holen<br />
String lineText = line.getText();<br />
// Gelenkname, Neuer Wert und Zeit identifizieren<br />
String gelenkName = ...<br />
value = ...<br />
totalTime = ...<br />
// betr<strong>of</strong>fenes Gelenk holen<br />
joint= joints.getJointByName(gelenkName);<br />
// führt das Kommando aus<br />
public void execute(int t0, int t1) {<br />
}<br />
// Interpolation bestimmen<br />
double anteil = (t1 - t0) / totalTime;<br />
// delta = Sollwert – IstWert_zu_Kommandobeginn<br />
double delta = value - getState(joint);<br />
// neuen Wert setzen<br />
joint.setValue(delta * anteil + joint.getValue());<br />
// liefert die Gesamtlaufzeit des Kommandos<br />
public int getTotalTime() {<br />
return totalTime;<br />
}<br />
...<br />
Abb. 4-22 DefaultCNCCommand- Implementierung<br />
Die Methode execute berechnet folglich den Interpolationswert (anteil) und<br />
anschließend die Differenz zwischen Sollwert und Istwert. Der Istwert<br />
entspricht hier dem Wert unmittelbar vor der Ausführung des Kommandos und<br />
85