Getränketypen sind im Code hinterlegt. Eine Änderung oder Ergänzug bennötigt einige Änderungen im File “bar_BarShelf.h” und “bar_BarShelf.c” und “bar_HMI.c”. Nachfolgend wird das Hinzufügen eines Getränkes erklärt. Das Abändern eines Getränkes erfolgt im selben Muster.
Alle absoluten Positionen die der Roboter einnehmen kann, sind im File “bar_RobotPoses.c” hinerlegt. Diese Positionen werden über Labels (bar_robotSitePositions_t) abgerufen und als Datenstruktur zurückgegeben. Um eine neue Position zu erfassen, wird diese in der Funktion “bar_RobotGetJointPose()” erfasst und ein dazugehöriges Label im Enum “bar_robotSitePositions_t” eingetragen. Die Labels sind im File “bar_RobotPoses.h” definiert und beschrieben. Der Aufruf der Position erfolgt nach folgendem Muster:
// beispiel zum Anfahren von position P_2 SiteMng_RobotSetJoint(bar_RobotGetJointPose(P_2),5000,0);
Label Präfix | Ort |
---|---|
P_x | Park und Park-Transfer Positionen |
P_Ax | Förderband Positionen |
P_Cx | Waage Positionen |
P_CPx | Waage Positionen, für den einschenk Prozess |
P_Dx | Drehtisch Positionen |
P_Ex | Glasregal Positionen |
Es können zusätzliche Subprogramme eingebunden werden, indehm im Ordner “src→Bar→Programs” ein weiteres C File erstellt wird. Dieses wird am besten von einem Bestehenden Programm überommen. Ein Subprogram wird in seinem eigenen Task ausgeführt. Die Übergeordnete Steuerung wird durch die Main FSM durchgefürt. Dort müssen die Zustände “BAR_MAIN_FSM_START_PROG_S” und “BAR_MAIN_FSM_RUN_PROG_S” mit den Start, Stop, und Run Funktionen des Subprograms erweitert werden. Um einem Subprogram Daten zu übergeben, kann der SiteState Datenstruktur under “.program” weitere Flags und Variablen hinzugefügt werden.