Home
CoDeSys_SoftMotion_V23_D - Vorlesungen an der HTW Berlin
Contents
1. Ein Ausg nge VAR _IN OUT des Bausteins CamTablelD MC_CAM_ID Kurvenscheibe Ausgang von MC_CamTableSelect Master AXIS_REF Master Achse SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib Slave AXIS_REF Achse f r die die Kurvenscheiben Sollposition ausgerechnet wird Eing nge VAR _IN des Bausteins nicht aufgef hrte entsprechen denen bei MC Camin Enable BOOL Aktiviert den Baustein Ausg nge des Bausteins fStartPosition LREAL Berechnete Sollposition f r den Slave Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer SMC_CAMBounds Dieser Baustein berechnet die maximalen Sollwerte von Position Geschwindigkeit und Beschleunigung Verz gerung des Slaves wenn dieser ber eine gegebene Kurvenscheibe absolut an einen Master gebunden ist der mit vorgegebener maximaler Geschwindigkeit und Beschleunigung Verz gerung bewegt wird Dieser Baustein ist u a dann besonders hilfreich wenn eine Kurvenscheibe online erstellt bzw ver ndert wird und man die Einhaltung von Maximalwerten vorab berpr fen will Eing nge VAR IN des Bausteins bExecute BOOL Aktiviert die Berechnung dMasterVelMax LREAL Default 1 Maximale Geschwindigkeit Absolutwert des Masters u s dMasterAccMax LREAL Default 0 Maximale Beschleunigung Verz gerung Absolutwert des Masters u s dMasterScaling dSl
2. welche Parameter zu bertragen sind und welchen Wert diese bekommen sollen So sind h ufig f r die Erstinbetriebnahme auch bei mehreren seriengleichen Maschinen und beim Austausch der Antriebe die antriebsspezifischen Tools notwendig In SoftMotion ist deshalb eine Funktionalit t integriert die dies zumindest teilweise bernimmt SoftMotion in CoDeSys 2 3 2 27 Parametrierung des Antriebs Deshalb gibt es folgende Varianten A Der Anwender konfiguriert den Antrieb mit dem Tool des Antriebsherstellers Er geht mit einem SoftMotion Projekt bei dem die Antriebe registriert sind online und ruft einen Baustein auf der alle Antriebsparameter liest und in ein XML File speichert welches der Anwender von der Steuerung zur ckliest und im entsprechenden Konfigurationsdialog einliest Dann sind alle n tigen Parameter im Projekt gespeichert und werden bei jedem Start bertragen Weder bei der Erstinbetriebnahme von weiteren Maschinen noch beim Ersetzen eines defekten Antriebs w rde das Inbetriebnahme Tool gebraucht werden B Der Anwender konfiguriert den Antrieb mit dem Tool des Antriebsherstellers In seiner Applikation sieht er vor dass der Anwender ber einen FB die Parameter des Antriebs in ein ASCII File auf die Steuerung speichern kann Im Gegensatz zu A liegen die Parameter in einem File auf der Steuerung und nicht innerhalb der Applikation Beide L sungen haben Vor und Nachteile Um bei A einen Parameter nachtr glich zu
3. Der Baustein legt durch die vorgegebenen Punkte eine stetig differenzierbare Kurve aus Parabeln Die Position der Achse berechnet sich aus der Position am Start und dem Integral ber die Geschwindigkeit Mo YELOGITYFRO FILE Execute BOOL Done BOOL ArraySize IMT CommandAborted BQL Scale LREAL Error BOOL Offset LREAL Errorlo WORD Axis AXIS_REF WARLUMLOUT Axis ASIS_REF WARLUMLOUT TimeYelocity MC_TY_REF MARIN OUT TimeYelocity MC _TY_REF MAR _IN_OLUT 5 12 SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib MC_AccelerationProfile Dieser Baustein der SM_PLCopen lib funktioniert analog zum Baustein MC_PositionProfile Allerdings werden in der Eingangsvariablen der Struktur MC_TA_REF hier die Punkte ber ihre Beschleunigungen festgelegt MC_TA_REF enth lt folgende Variablen Variable Typ imitwert_ Beschreibung Number _of_pairs w e Anzahl Profil Punkte IsAbsolute BOOL TRUE Positionen absolut oder relativ MC_TA Array ARRAYI1 100 Punkte OF SMC_TA SMC_TA enth lt folgende Variablen Variable Typ __linitwert Beschreibung delta_time TIME Zeit zwischen Erreichen des vorigen und dieses Punktes REAL a Absolut Relativ Beschleunigung des Punktes Der Baustein legt durch die vorgegebenen Punkte eine stetige Kurve aus Geraden Die Geschwindigkeit der Kurve ergibt sich aus der Geschwindigkeit am Start des Profils und dem Integral ber die Beschleunigung Die Position der Achse berechn
4. bergang von Kurve1 und Kurve2 der Slave auf Position 90 W rde man jetzt Kurve2 im Modus absolute starten w rde sich die graue Kurve und damit ein Positionssprung ergeben Man k nnte sich aber z B dadurch behelfen dass man einen entsprechenden Slave Offset von 90 programmiert Kurvenscheiben Datenstrukturen Beim bersetzen des Projekts wird aus den im CAM Editor programmierten Kurven eine Globale Variablenliste Register Ressourcen in CoDeSys mit dem Namen CAM Data generiert Hier wird die Beschreibung jeder Kurvenscheibe in jeweils einer Struktur entsprechend den Einstellungen im Dialog bersetzungsoptionen abgelegt und so dem IEC Programm bzw den Kurvenscheiben Bausteinen zur Verf gung gestellt F r ein fehlerfreies bersetzen m ssen die entsprechenden Strukturdefinitionen im IEC Programm vorhanden sein Sehen Sie hierzu auch die Programmiierbeispiele in Kapitel 11 Zudem wird beim bersetzen eine Datenstruktur _SMC_CAM LIST ARRAY OF POINTER TO MC_CAM _REF angelegt die auf die einzelnen Kurvenscheiben ber Pointer verweist SoftMotion in CoDeSys 2 3 Kapitel 4 Der CAM Editor in CoDeSys Nat rlich k nnen die entsprechenden Datenstrukturen auch aus dem IEC Programm zur Laufzeit erstellt bzw bef llt werden Aus diesem Grund werden sie im folgenden genauer beschrieben Nicht aufgef hrte Variablen der Struktur sind nur von interner Bedeutung MC_CAM_REF Diese Datenstruktur repr sentiert eine allgemeine Ku
5. dx dr dr drix Amy ratio din fsek Drive AMlS_REF WARLUN OUT din fselr Drive ASIS_REF WARLUN_OUTI Drives AXIS_REF WARUNLOUT Drive AMlIS_REF WARLUN OUT Driver AXIS_REF WARUN OUT Drived AMIS_REF WARUN OUT dOffsetX dOffsetY dOffsetZ LREAL Offset f r x y und Z Achse Gleiche Werte wie bei SMC_TRAFO_Gantry3 minX maxX minY maxY LREAL Bewegungsbereich f r Visualisierung DriveX DriveY DriveZ AXIS_REF X Y z Achse dx dy dz LREAL X Y Z Position in Weltkoordinaten dnx dny dnOffsetX dnOffsetY LREAL genormte x und y Position 0 1 und Offset f r Visualisierung ratio LREAL Verh ltnis zwischen x Intervall und y Intervall f r Visualisierung GantryCutter Die Bausteine SMC_TRAFO lt n gt _Gantry lt n gt existieren auch als SMC_TRAFO lt n gt _GantryCutter lt n gt Diese Bausteine enthalten Transformationen f r Portalsysteme mit einer Rotationsachse die so gesteuert wird dass sie entlang der aktuellen Bahntangente zeigt Sie enthalten als zus tzliche Eing nge die Rotationsachse DriveR die als rotatorische Achse mit der Periode 360 angelegt sein muss einen Offset dOffsetX und die Drehrichtung iDirectionR Der R ckw rtstransformationsbaustein ben tigt zudem den Vektor der aktuellen Bahntangente v der als Ausgang am Interpolator anliegt SMC_TRAFOV_Gantry Einige der oben beschriebenen R ckw rtstransformationen sind in einer Version vorhanden in w
6. sein wie die Summe aller SMC_Geolnfo Objekte die in den Buffern der Bausteine SMC_NCDecoder und der Bahnvorverarbeitungs Bausteine angelegt sind Eing nge des Bausteins bEnable BOOL Der Baustein ist aktiv wenn dieser Eingang auf TRUE steht IActObjectSourceNo INT Zeilennummer die der Interpolator aktuell bearbeitet uiNumberOfBufferEntries UINT Gr e des in pBuffer bergebenen Arrays pBuffer POINTER TO SMC_GCODEVIEWER_ DATA Adresse des Arrays welches als Buffer f r den Baustein reserviert wurde Ein Ausgang VAR _IN OUT des Bausteins GCodeText SMC_GCODE_TEXT Datenquelle Wird mit dem gleichnamigen Ausgang des SMC_NCDecoder Bausteins verkn pft Ausg nge des Bausteins bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ ERROR INT SoftMotion in CoDeSys 2 3 6 25 Bausteine Dieser Enum Ausgang beschreibt ggf einen Fehler der aufgetreten ist Nach einem Fehler wird die Aufbereitung der Daten gestoppt bis der Baustein durch ein neues bEnable frisch gestartet wird asGCode ARRAY 0 c_uiLines OF STRING Textzeilen die das aktuelle Segment des G Codes enthalten Im ersten Element steht die Zeile die gerade vom Interpolator verfahren wird 2 SMC_ToolCorr 6 2 3 6 26 Der SMC_ToolCorr Baustein SM_CNC lib dient der Bahnvorverarbeitung Er erzeugt aus einer vorgegebenen Bahn eine versetzte Bahn bei der jeder Punkt jedes Wegobjekts zu seinem Original und dessen dire
7. 2 2002200220002s0nnnennnnnnnenennn nenn nenne nnnenn 2 8 2 22 Achsor ppen Baustelne a senssss eek 2 8 2 2 3 K nfigurations Baustelhne nesacnnen tea a 2 10 2 2 4 Regelungsmodus Bausteine u02200200020002nnnnnn nenn nenn nenn anne ann nnnn namen 2 11 2 25 Direkte SollWerlVorgabe zu ee 2 12 2 2 5 MIHUEIE ZEIEACHSE na ee ern 2 16 2 2 7 Referenzieren ber digitale Hardware Eing nge u022200222022nennn nennen 2 17 228 Diagn se Bauslelne sa rr a a a 2 19 2 29 VENCOdET aenea Es 2 20 2 2 10 MisWallsierungs Lemplales ses nie ee 2 20 289 Antriebs Treiber lt BuslinterfaceBezeichnung gt Drive lib 0 2 21 2 3 1 SSOELEOSDIVEND area ee a A EEE 2 21 2 92 ON CANAD Se E ee 2 21 2 4 Varlablen der Struktur AXISTREF ehe tan arena 2 23 2 9 Parametrierung des Antriebs 2 2022202240200000000000nnn nenn nenn anne anne anne anne nnnnnnnnn 2 27 3 Der CNC Editor 3 1 3 1 UBEDE K an a EN 3 1 32 Unterst tzte und erweiterte Elemente der CNC Sprache DIN66028 3 2 3 2 1 Schaltpunkte H Funktion 00220022002400000 Ea nenn nenn nenn nennen 3 4 3 2 2 Zusatz Funktion M Funktion 222422222424RRRRR nn ennnanananannnen nennen en nnnnnnenn nennen 3 5 3 2 3 Verwendung von Variablen 02 0000000000000000000nonnn nun nnn nenn anne name nano nennen 3 5 3 24 IKIEISINIELDOIAlON ern ek 3 5 3 25 SElIDSEN
8. Dateisystem Ihrer Steuerung abgelegt und wollen es durch einen der Bausteine aus 10 2 zur Laufzeit einlesen Deshalb soll es nicht in die IEC Daten bernommen werden SoftMotion in CoDeSys 2 3 4 1 4 2 4 3 Start Kapitel 4 Der CAM Editor in CoDeSys Der CAM Editor in CoDeSys berblick Der SoftMotion Kurvenscheiben Editor CAM Editor ist in die Programmieroberfl che von CoDeSys integriert Hier k nnen graphisch und tabellarisch elektronische Kurvenscheiben und Nockenschaltwerke programmiert werden aus denen CoDeSys beim bersetzen des Projekts automatisch globale Datenstrukturen CAM Data erzeugt Auf diese Strukturen kann das IEC Programm zugreifen F r die Umsetzung der Kurvenscheibe im IEC Programm werden die von PLCopen genormten Bausteine verwendet Bibliothek SM_PLCOpen lib Sehen Sie auch die Programmiierbeispiele in Kapitel 1 Definition einer Kurvenscheibe f r SoftMotion Eine Kurvenscheibe beschreibt vereinfacht gesehen die funktionale Abh ngigkeit einer Gr e Slave von einer anderen Master Um diese Abh ngigkeit zu beschreiben wird die Master Achse in verschiedene Intervalle geteilt F r jedes Intervall a b stellt CoDeSys zwei M glichkeiten zur Verf gung eine Funktionsabbildung der Master Achse auf die Slave Achse nachzubilden e Gerade Die Abh ngigkeit wird durch eine lineare Abbildung beschrieben In diesem Intervall ist die erste Ableitung Geschwindigkeit konstant gem der
9. Diese Option wird haupts chlich dann verwendet wenn die Kurvenscheibe zur Laufzeit aus dem Dateisystem geladen werden soll siehe 10 3 z B weil sie ohne dass das laufende CoDeSys Projekt ber hrt wird ge ndert werden muss Die Skalierung ist nur f r die St tzpunkttabellen von Belang Hier kann eine Skalierung sowohl der Master als auch der Slave Achse entweder ber Anfangs und Endwertzuordnung oder ber Anfangswert und Einheitenzuordnung definiert werden Extras Kurvenscheibe in Datei schreiben Dieser Men punkt ffnet einen Dateiauswahl Dialog in dem eine CAM Datei angegeben werden kann in welche die aktuelle Kurvenscheibe geschrieben wird Diese Datei kann zur Laufzeit vom Funktionsblock SMC_ReadCAM siehe 10 3 gelesen und von diesem zu einer Standard Datenstruktur verwandelt werden In Abh ngigkeit von der eingestellten bersetzungsoption wird die Kurvenscheibe in polynomialer quidistanter oder elementoptimierter Form abgespeichert SoftMotion in CoDeSys 2 3 4 7 Editieren einer Kurvenscheibe Extras Kurvenscheibe aus Datei lesen Mit diesem Men punkt kann eine CAM Datei wieder in CoDeSys eingelesen werden Nach Auswahl der entsprechenden Datei wird der Dialog Eigenschaften Kurvenscheibe ge ffnet in welchem ein Name f r die Kurvenscheibe und die Slave Skala angepasst werden muss Da beim Erzeugen der Kurvenscheibe nur die Informationen ausgegeben werden die f r die Ausf hrung
10. Hier wird in der Regel nur der Kommunikationtreiber ausgew hlt Businterface Modulparameter Antriebs Treiber AxisGroup Hier wird die Task angegeben in welcher die Kommunikation zu den Antrieben stattfindet und falls es sich um keine zyklische Task sondern eine ereignisgesteuerte handelt deren Zykluszeit Bei Systemen ohne Taskkonfiguration bleibt das Feld leer Axislaraup Modulparameter Mlat on T ask Task Al 2 pkluszeit 2000 TE Bei Sercos Interfaces werden weitere spezifische Einstellungen gemacht und zwar die Baudrate und die Helligkeit der LED Sercos Einstellungen Baudrate 4 LE D Helligkeit gering SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface Auch f r CAN Achsgruppen sind spezifische Einstellungen zu machen spezifische Einstellungen Controller Mr 0 Baudrate 1 MB aud STNL Erzeuger SPS 7 Neben der Baudrate legt man mit der Controller Nr die Nummer des verwendeten CAN Controllers fest man beachte dass solte man eine Steuerung mit 2 CAN Kan len und zudem die 3S CANopen lib verwenden sich diese automatisch Controller O nimmt man also f r die Antriebe den Kanal 1 w hlen muss Bei SYNC Erzeuger kann man zwischen drei verschiedenen Methoden zur Synchronisation zwischen Antrieben und SPS w hlen e SPS Hier tritt die SPS als Synchronisationsmaster auf Der Anwender definiert die Motion Task i d R als zykliche Task Diese t
11. Kapitel 2 Das SoftMotion Drive Interface 2 4 Variablen der Struktur AXIS_REF F r jeden in der Steuerungskonfiguration angelegten Antrieb Drive wird von CoDeSys beim bersetzen eine Variable der Struktur AXIS_REF angelegt definiert in der SM_DriveBasic lib siehe Kapitel 2 3 Diese Struktur bildet die Schnittstelle zwischen Applikation und Antriebsinterface ber sie werden sowohl zyklische als auch azyklische Daten ausgetauscht Die meisten Variablen der Struktur sind f r den Anwender nicht von Bedeutung sondern werden vom System intern verwendet Der Anwender sollte stets Funktionsbl cke verwenden und nie direkt auf die a a 1 7 zumindest nicht schreibend Name Nr Name Datentyp Initwet Kommentar e Initwert Kommentar 1000 nAxisState standstill Achsenstatus 0 power _off 1 errorstop stopping standstill discrete _motion continuous_motion synchronized _motion homing 1001 wControlType WORD PLC Config Ziffer die anzeigt welche Komponenten der Struktur zyklisch gesendet und empfangen werden 0 definiert durch param 1002 1008 1 SetTorque 2 SetVelocity ActVelocity 3 SetVelocity ActPosition 4 SetPosition ActPosition 5 SetVelocity SetPosition ActVelocity ActPosition 6 SetVelocity 1002 wCyclicDataS1 WORD PLC Config oder Anzahl der 3S Parameter die pro 1003 wCyclicDataS2 Init FB von Zyklus gesendet werden sollen 1004 wCyclicDataS3 lt BusinterfaceBezei chnung gt Drive lib WORD Pa
12. OF lt Variablen Typ gt abgelegt Im Gegensatz zur quidistanten Form ist das erste Element die Master Position das zweite die Slave Position Beispiel f r manuell erzeugte Kurvenscheibe Dieses Beispiel zeigt wie eine Kurvenscheibe im IEC Programm ohne Verwendung des Editors erzeugt werden kann Variablen Deklaration CAM MC CAM REF byType 2 non equidistant byVarType 2 UINT nElements 128 xStart 0 xEnd 360 Table SMC CAMTable UINE 128 2 fEditorMasterMVMin 0 fEditorMasterMax 360 fTableMasterMin 0 fTableMasterMax 65536 fEditorSlaveMin 0 fEditorSlaveMax 360 fTableSlaveMin 0 fTableSlaveMax 65536 Programmteil Kurvenscheibe erzeugen als Beispiel eine Gerade einmalig FOR TASO TO TAr DO Table Table i 0 Table Table 1i 1 REAL TO UINT i 127 0 65536 7 END FOR Zeiger verkn pfen muss jeden Zyklus erfolgen CAM pce ADR Table Die so erzeugte Kurvenscheibe kann nun in den Baustein MC_CamTableSelect eingegeben und dessen Ausgang wieder f r MC_Camin verwendet werden SoftMotion in CoDeSys 2 3 9 1 9 2 Kapitel 5 Die Bibliothek SM_PLCopen lib Die Bibliothek SM_PLCopen lib berblick Die Bausteine der Bibliothek SM_PLCopen lib beruhen auf der Spezifikation von PLCopen Function blocks for motion control Version 1 0 Die vorliegende Beschreibung baut auf dieser Spezifikation auf Bausteine die dem Standard von PL
13. haben keinen Einfluss auf die programmierte Bahn Verschachtelte Kommentare werden nicht unterst tzt Alle Zahlenwerte au er die des Fahrbefehls G lt zahl gt und der Schaltpunkt Nummer H lt zahl gt k nnen Fliel kommawerte sein Werkzeugradius f r Korrektur G40 42 bzw Eckverrundung G50 51 bzw Variablenwert G36 6G37 max Beschleunigung gt 0 Verz gerung lt 0 Wegeinheiten s Geschwindigkeit mit der gefahren werden soll Wegeinheiten sec Fahrbefehl s u Schaltpunkt einschalten gt 0 ausschalten lt 0 O N D J J a J D 5 X Koordinate vom Kreis Ellipsenmittelpunkt G02 G03 G08 G09 oder X Koordinate vom Parabel Tangentenschnittpunkt Y Koordinate vom Kreis Ellipsenmittelpunkt G02 G03 G08 G09 oder Y Koordinate vom Parabel Tangentenschnittpunkt Richtung der Ellipsenhauptachse im mathematischen Sinn 0 O 90 N bzw Sprungbedingung G20 bzw dT1 Parameterwert M Funktion absolute Schaltpunktposition gemessen vom Wegobjektanfang gt 0 ende lt 0 bzw Sprungziel G20 bzw dT2 Parameterwert M Funktion Zusatzfunktion relative nee 0 1 bzw zu ver ndernde Variable G36 637 oder M Parameter Datenstruktur M Zielwert der Zusatzachse P Zielwert der Zusatzachse Q Kreisradius G02 G03 alternativ zu 1 J oder L ngenverh ltnis Nebenachse Hauptachse G08 G09 0 1 S Profil f r lineare Achsen ein gt O ausschalten lt O 3 Z Achse 7 P Achs
14. mehr als 32 Zugriffe auf eine CAM_REF 625 MC_Camin SMC_CI_NO_CAM_ SELECTED keine Kurvenscheibe gew hlt 626 MC_Camln SMC_CI_MASTER_OUT_OF_SCALE Masterachse au erhalb des zul ssigen Bereichs 627 MC_Camin SMC_CI_RAMPIN_NEEDS_VELACC_ VAL f r ramp_in Funktion UES m ssen Geschwindigkeits und Beschleunigungswerte spezifiziert werden SMC_CI_SCALING_INCORRECT Skalierungsvariablen fEditor TableMasterMin Ma x falsch MC _Gearln SMC_GI_RATIO _DENOM RatioDenominator 0 MC_Gearln SMC_GI_INVALID ACC Acceleration unzul ssig MC_Gearln SMC_GI_INVALID _DEC Deceleration unzul ssig 1725 MC_Phase SMC_PH_INVALID_VELACCDEC Geschwindigkeit Brems oder Beschleunigungswerte unzul ssig 726 MC_Phase SMC_PH_ROTARYAXIS_PERIODO Rotationsachse mit fPositionPeriod 0 750 Alle Bausteine die SMC_NO_CAM REF _TYPE Eingegebene MC_CAM REF als Kurvenscheibe ist nicht 628 MC_Camin Eingang benutzen vom Typ MC_CAM_REF 1001 SMC_Interpolator SMC_INT_VEL_ZERO Bahn unfahrbar da Soll Geschwindigkeit 0 1002 SMC _Interpolator SMC_INT_NO_STOP_AT_END Allerletztes Bahnobjekt hat Vel_End gt Q SoftMotion in CoDeSys 2 3 Kapitel 9 Die Bibliothek SM_Error lib nr 1003 SMC_Interpolator SMC_INT_DATA_UNDERRUN Warnung GEOINFO Liste in Dataln abgearbeitet aber Ende der Liste ist nicht gesetzt Ursache EndOfList der Queue in Dataln vergessen zu setzen oder SMC _Interpolator schneller als bahnerzeugende Bausteine 1004 S
15. mehr in den Ecken des NC Programms da die Ecken der Bahn durch die Bahnvorverarbeitung Knickfrei gemacht wurde Beispiel Dynamische SoftMotion Programmierung Sehen Sie hierzu das mit SoftMotion mitgelieferte Beispielprojekt CNCDynamicPath pro basierend auf der Konfigurationsdatei softmotion cfg Einer der Vorteile von SoftMotion ist es dem Programmierer und auch dem Benutzer nicht nur Einfluss auf die Abarbeitung einer Bahn zu gew hren sondern diese auch bei laufendem Programm generieren oder ndern zu k nnen Um dies zu erreichen muss der Programmierer nur den Decoder Baustein durch einen eigenen Bahngenerator ersetzen und kann sich trotzdem der Bahnvorverarbeitung und vor allem des Interpolators wie gewohnt bedienen Um den Decoder Baustein zu ersetzen muss also auf anderem Weg ein OUTQUEUE Strukturobjekt erstellt werden das mit GEOINFO Objekten die die gew nschte Bahn verk rpern bef llt und an den entsprechenden Folge Baustein z B Interpolator weitergegeben wird Vorbereitende Schritte e Im Deklarationsteil muss ein OUTQUEUE ein GEOINFO Strukturobjekt und ein Buffer gew nschter Gr e deklariert sein QUEUE SMC_OUTQUEUE BUF ARRAY 0 49 OF SMC_GEOINFO GEO SMC_GEOINFO dT1 0 dT2 1 dToolRadius 0 dVel 100 dVel_End 100 dAccel 200 dDecel 500 iObj_Nr 0 e In einem Init Schritt im Programmrumpf muss die OUTQUEUE Struktur initialisiert werden QUEUE nSize SIZEOF BUF QUEUE pbyBuffer
16. multi axis MC_CamTableSelect Mit diesem Baustein der SM_PLCopen lib wird eine Kurvenscheibe ausgesucht Master und Slaveachse bestimmt und einige Voreinstellungen getroffen Das als Ausgang verf gbare Objekt CamTablelD soll sp ter dem Kurvenscheiben Baustein MC_Camiln zugef hrt werden Die Masterachse kann virtuell sein d h sie muss nicht physikalisch vorhanden sein Von ihr werden steht die Variable bRegulatorOn auf TRUE die Sollwerte ansonsten die Istwerte verwendet Die zu fahrende Kurvenscheibe kann entweder von Hand in ein Objekt der Struktur MC_CAM_REF programmiert oder mit Hilfe des in CoDeSys integrierten Kurvenscheibeneditors siehe Dokument SoftMotion CAM Editor erstellt werden SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib Mit der Variable Periodic wird entschieden ob die Kurvenscheibe am Ende wieder von vorn begonnen werden soll oder nicht Mit MasterAbsolute und SlaveAbsolute entscheidet man ob die Kurvenscheiben Abbildung der Masterachse auf die Slaveachse sich auf Absolutwerte oder Inkremente beziehen soll MEC _CAMTABLESELECT Done BOOL Error BOOL Master bsolute BOOL Errorl WORD SiaveAksolute BOL CamTablelD MC_GAMLD Waster AAlS_REF WARUN OUT Master AXIS_REF WARUNLOUT Slave ASIS_REF WARUN OUT Slave AXIS_REF WARUM OUT CamTable MC _CAM_REF WYARUN OUT CamTable MO CAM_REF wAR_INM_OLTY Man beachte auch Kapitel 4 5 Ein Ausg nge VAR_IN_OUT des Bausteins
17. wechselnde Kurvenscheiben siehe Kapitel 11 6 Antriebssteuerung mit Hilfe des CNC Editors Kapitel 11 7 Direktes Erzeugen der Queue Kapitel 11 7 1 online Decodierung Verwendung von Variablen Kapitel 11 7 2 Bahnvorverarbeitung online Kapitel 11 7 3 Dynamische SoftMotion Programmierung Kapitel 11 8 11 2 Beispiel Drive Interface Steuerungskonfiguration f r Antriebe erstellen Sehen Sie hierzu das mit SoftMotion mitgelieferte Beispielprojekt Drivelnterface pro basierend auf der Konfigurationsdatei softmotion cfg Dieses Beispiel beschreibt wie eine vorhandene physikalische Antriebsstruktur ins IEC Programm abgebildet wird Durch diese Konfiguration stehen dem IEC Programm Datenstrukturen zur Verf gung auf denen die SoftMotion Funktionsbausteine arbeiten und dadurch Bewegungen erzeugen k nnen SoftMotion in CoDeSys 2 3 11 1 Beispiel Drive Interface Steuerungskonfiguration f r Antriebe erstellen e Zun chst ffne man die Steuerungskonfiguration und w hle im Men Extras Standardkonfiguration e Als Feldbus werde Sercos verwendet Dazu wird beispielsweise eine ISA Bus Steckkarte von der Firma Automata verwendet Deshalb w hlt man aus dem Kontextmen das man durch einen Rechtsklick auf PLC Configuration erh lt BusInterface anh ngen e F r dieses Businterface werden nun die entsprechenden Modulparameter eingestellt Zun chst der InterfaceType In unserem Beispiel steht keine Hardware Anbi
18. zum anderen aus dem Eingand dRadius Letzterer ist dominant d h nur wenn er O ist wird der des Objekts herangezogen Sollte der eingestellte Wert gr er sein als die halbe L nge eines der beiden SMC_GEOINFO Objekte wird stattdessen diese halbe L nge verwendet Der Baustein SMC_ RoundPath geht dabei folgenderma en vor Alle in der Eingangs SMC_OUTQUEUE Struktur befindlichen SMC_GEOINFO Objekte werden nacheinander abgegangen Wenn in einem dieser Objekte Bit5 der Variablen Intern_Mark gesetzt ist wird ab dort begonnen Ecken zu verrunden solange bis Bit3 von Intern_Mark einer der folgenden Objekte gesetzt ist Der SMC_NCDecoder setzt diese Bits als Reaktion auf die Befehle G52 und G50 Die Eckverrundung wird f r alle Objekte durchgef hrt die innerhalb der Befehle G52 und G50 stehen Eing nge des Bausteins bExecute BOOL Der Baustein f hrt einen Reset aus und beginnt mit der Werkzeugradiuskorrektur wenn dieser Eingang eine steigende Flanke aufweist bAppend BOOL Steht dieser Eingang auf FALSE so wird bei jedem Reset die Ausgabe Datenqueue DataOut geleert Bei TRUE werden die neuen Daten ans Ende der DataOut Queue geschrieben poqDataln POINTER TO SMC_OUTQUEUE Dieser Eingang zeigt auf das SMC_OUTQUEUE Strukturobjekt das die SMC_GEOINFO Objekte der unverrundeten Bahn enth lt typischerweise auf den Ausgang DataOut des Vorg ngerbausteins z B des SMC_NCDecoders dRadius LREAL In dieser Eingangsvariablen steht
19. 6 F Fahrbefehl 3 2 FBErrorOcurred 9 1 Fehlerbehandlung 9 1 Fehlernummern 9 1 G20 3 6 G36 3 6 G37 3 6 GantryCutter 8 3 G Code 6 25 Geber 2 2 Gerade einf gen 4 8 Geschwindigkeits Rampentyp 2 5 Geschwindigkeits Sollwerte 2 13 2 15 2 16 Geschwindigkeits Sollwerte 5 19 Globale Variablen in SM_CNC lib 6 40 H H Funktion 3 4 Info 3 8 Initialisierungsdaten f r Antrieb 2 7 Interpolation zeigen 3 14 IPO_UNKNOWN 6 37 6 48 J Jerk 2 5 K Kreisinterpolation 3 5 Kreis Links Einf gemodus 3 12 Kreis Rechts Einf gemodus 3 12 Kurve komplettieren 4 6 Kurvenscheibe 4 1 editieren 4 3 Master Achse 4 1 Periode 4 9 periodisch 4 2 Periodisch 4 9 Slave Achse 4 1 Umschalten 4 11 Kurvenscheibe Programmbeispiel 11 7 Kurvenscheibe als ASCII Tabelle exportieren 4 8 Kurvenscheibe aus Datei lesen 4 8 Kurvenscheibe in Datei schreiben 4 7 Kurvenscheiben Baum 4 3 L LIN 6 43 LinDrive 2 20 Linien Einf gemodus 3 12 LINPOS 6 43 L schen 3 8 M Master Achse 4 1 Mathematische Hilfsbausteine 2 8 MC_AbortTrigger 5 14 MC_AccelerationProfile 5 13 MC_CAM_REF 4 13 MC_Camin 4 10 5 16 MC_CamOut 5 17 MC_CamTableSelect 5 14 MC_CAMXYVA 4 14 MC_Gearln 5 17 MC_GearOut 5 18 MC_Home 5 5 MC_MoveAbsolute 5 6 MC_MoveAdditive 5 7 MC_MoverRelative 5 8 MC_MoveSuperlmposed 5 9 MC_MoveVelocity 5 10 MC_Phasing 5 18 MC_PositionProfile 5 11 MC_Power 5 4 MC_ReadActualPosition 5 4 MC_ReadActualTorque 5 4 MC_ReadActualVelocity 5 4 MC_R
20. ADR BUF SoftMotion in CoDeSys 2 3 Kapitel 11 Programmierbeispiele Dynamische Bahn Programmierung Im Programmrumpf m ssen an der Stelle wo die Bahn erstellt werden soll f r jedes GEOINFO Objekt der Bahn folgende Schritte durchgef hrt werden e Start Position setzen erstes Objekt GEO P1StartPos 0 0 DZw vom vorhergehenden Objekt kopieren GEO piStartPos GEO piDestPos e Bewegungstyp festlegen Z B GEO iMoveType CCWL oder GEO iMoveType LIN e dem Bewegungstyp entsprechende Parameter setzen Wenn Sie einen Kreisbogen z B CCWL verwenden beachten Sie dass die folgenden Positionen gesetzt werden m ssen siehe Struktur SMC_GEOINFO Kapitel 6 5 e GEO dP1 200 GEO dP2 100 GEO dP3 50 GEO dT1 0 GEO dT2 90 e ggf Anfangs oder Endbit in InternMark f r die Bahnvorverarbeitung setzen Gerade siehe Struktur SMC_GEOINFO Kapitel 6 5 e End Position berechnen SMC_CalcEndPnt ADR GEO e L nge des Objekts berechnen lassen SMC_CalcLengthGeo ADR GEO e Objektin OUTQUEUE speichern SMC_AppendObj POQ ADR QUEUE PGI ADR GEO e Ist die Bahn vollst ndig erstellt muss die OUTQUEUE Liste geschlossen werden QUEUE bEndOfList TRUE Es gilt dabei zu beachten dass wenn die OUTQUEUE voll ist d h wenn QUEUE bFULL TRUE nicht versucht wird weitere Objekte anzuh ngen Die Erstellung der Bahn muss dann solange unterbrochen werden bis das erste Objekt der OUT
21. Ansonsten werden nur die einzelnen Elemente dargestellt Extras Extrema anzeigen Ist diese Option aktiviert Haken vor Men punkt bzw Schaltfl che in Werkzeugleiste gedr ckt werden zus tzlich zur Kurvenscheibe und ggfs ihren Ableitungen deren Extremwerte Maximum Minimum angezeigt Extras bersetzungsoptionen Dieser Men punkt ffnet einen Dialog mit dessen Hilfe die bersetzung der Kurvenscheibe siehe auch 4 1 eingestellt werden kann Es gibt grunds tzlich drei bersetzungsmodi 1 polynomial Beim bersetzen werden Variablen der Struktur MC_CAM REF angelegt Diese enthalten f r jeden Abschnitt die Beschreibung des Polynoms f nften Grades welches die Kurvenscheibe beschreibt Strukturen dieser Art werden als Eingang des MC_Camin Bausteins verwendet Die Struktur ist Bestandteil der Bibliothek SM_DriveBasic lib a SoftMotion in CoDeSys 2 3 Kapitel 4 Der CAM Editor in CoDeSys bersetzungsoptionen Kurrenscheibe bersetzungsaption nicht bersetzen Abbrechen C polyromial quidistante St tzpunkttabelle C elementoptimierte Stutzpunkttabelle Elemente 25 Datentyp UINT hi Master Skallerung Start Ende Einheit 0 000 260 000 fi 0 000 65538 DON fi a2 000 Slave Skalerung Start Ende Einheit Periode E ditor 0 000 250 000 fi SPS 0 000 E5536 DON fi a2 000 E5520 DON 2 aquidistant Entsprechend den Einstellungen im unteren Teil
22. Antrieb gestoppt Eing nge des Bausteins bExecute BOOL Default FALSE Die Referenzfahrt des Antriebs soll bei steigender Flanke gestartet werden fHomePosition REAL Angabe der absoluten Position auf der Referenzposition u fVelocitySlow fVelocityFast REAL Soll Geschwindigkeiten f r Phase 1 und 2 in u s fAcceleration fDeceleration REAL Soll Beschleunigung und Bremsung in u s nDirection MC_Direction Default negative Richtung der Referenzfahrt zul ssige Werte positive negative bEndSwitch BOOL Default TRUE Referenzschalter TRUE offen FALSE geschlossen fSignalDelay REAL Default 0 0 bertragungszeit des Referenzschalters in s Wird eine Zeit gt 0 angegeben so verwendet der Baustein nicht die Position bei der bEndSwicth TRUE wurde als Referenzposition sondern die Position die die Achse fSignalDelay Sekunden zuvor hatte nHomingMode SMC_HOMING_MODE Default FAST_BSLOW_S_STOP FAST_BSLOW_S_STOP SoftMotion in CoDeSys 2 3 2 17 2 18 SM_DriveBasic lib und automatische Codegenerierung Der Antrieb wird in die angegebene Richtung mit der Geschwindigkeit fVelocityFast gefahren FAST bis der Eingang bEndSwicth FALSE wird dann wird gestoppt und mit fVelocitySlow in die entgegen gesetzte Richtung bewegt BSLOW bis bEndSwitch wieder TRUE wird An dieser Stelle wird der Referenzpunkt gesetzt S und gestoppt STOP FAST_BSLOW_STOP_S Im Gegensatz zu FAST_BSLOW_S_STOP wird hier n
23. Bahnbeschleunigung auf Kreisen auf den Wert dMaxAcc indem er die Bahn Geschwindigkeit des Kreises entsprechend verringert Eing nge des Bausteins bExecute BOOL Der Baustein f hrt einen Reset aus und beginnt mit der Werkzeugradiuskorrektur wenn dieser Eingang eine steigende Flanke aufweist bAppend BOOL Steht dieser Eingang auf FALSE so wird bei jedem Reset die Ausgabe Datenqueue DataOut geleert Bei TRUE werden die neuen Daten ans Ende der DataOut Queue geschrieben poqDataln POINTER TO SMC_OUTQUEUE Dieser Eingang zeigt auf das SMC_OUTQUEUE Strukturobjekt das die SMC_GEOINFO Objekte der zu ver ndernden Bahn enth lt typischerweise auf den Ausgang DataOut des Vorg ngerbausteins z B des SMC_NCDecoders dMaxAcc LREAL In dieser Eingangsvariablen steht der maximale Beschleunigungswert der f r Kreisb gen zul ssig ist Ein Wert gleich O hat zur Folge dass diese berpr fung nicht durchgef hrt wird dMaxAccJump LREAL In dieser Eingangsvariablen steht der maximale Beschleunigungssprung a f r einen bergang zweier Objekte Ein Wert gleich 0 bedeutet dass diese berpr fung nicht durchgef hrt wird nSizeOutQueue UDINT Hier wird dem Baustein die Gr e des Datenpuffers mitgeteilt in den die Liste von GEOINFO Strukturobjekten geschrieben wird Dieser muss mindestens f nf mal so gro wie eine GEOINFO Struktur Ist dies nicht der Fall so f hrt der SMC_NCDecoder keine Aktionen durch Der Wert darf gesetz
24. Dies f hrt der Baustein SMC_SmoothPath durch Das CNC Programm muss von den Worten G51 G50 umklammert werden dann ergibt sich ahl DEA E TS Allg comment MO G51 D10 NO G01 x g_ YO F50 E30 E 30 M20 601 0 Yfg_ yi N30 G01 0 Y0 N40 G50 T W rden wir keine Variablen verwenden k nnten wir das Programm in dieser Form als Queue bersetzen und direkt in den Interpolator eingeben da wir aber Variablen verwenden m ssen wir das Dekodieren und die Eckverschleifung selbst durchf hren Deshalb deklarieren wir einen neuen Baustein vom Typ SMC_SmoothPath und rufen ihn nach dem Decoder auf SoftMotion in CoDeSys 2 3 11 13 11 14 Beispiel Dynamische SoftMotion Programmierung ncDecoder SMC NCDecoder bExecute b ppend bStepSuppress WErrorlD niStartPosition pogData ul nSize ufgueue Status ADR buno piyBuTeroutQueue iLineNumberDecoded Example ncprog P gt ncprog g_CheckWel SMC_CheckYelocitiies T bExecule bErr r smoothPath oogbsatalr we rrarlbi sM _SmooihrP th T dAangleTol podpala du ncDecoder bExecufte k bExecute ncDecoder bAppend h ppend pogDataln wErrorlD dEedgebistance pogDatatut d ngleTol s000 E nsizelutgueue ADFRrhufsona nnBuferOutdueue Der Daten Eingang des Interpolator Bausteins muss wie immer auf den Ausgang poqDataOut des CheckVelocities Bausteins gesetzt werden Dieses Programm kann fehlerfrei bersetzt werden und stoppt im Unterschied zum vorigen nicht
25. Funktion gibt dem Programmierer die M glichkeit bin re wegabh ngige Schalter zu bedienen Grunds tzlich muss immer zuerst die Nummer des Schaltpunkts spezifiziert werden H lt nummer gt dann muss die Position des Schaltpunkts im Objekt entweder absolut ber das Wort L lt position gt oder relativ ber das Wort O lt position gt festgelegt werden In folgendem Beispiel wird der Schaltpunkt2 an der Position X 40 Y 25 nach dem ersten Viertel des Objekts ausgeschaltet N90 G1 X20 Y20 NLO GL 21 08 Y40 H 2 00 28 Hinweise 1 Pro Wegobjekt kann nur eine begrenzte Anzahl Schaltpunkt Schaltaktionen MAX_SWITCHES durchgef hrt werden 3 4 SoftMotion in CoDeSys 2 3 Kapitel 3 Der CNC Editor 2 Eine Schaltpunktposition kann nur im CNC Texteditor eingef gt werden Sie erscheint im grafischen Editor als gr ner Punkt auf der Kurve 3 2 2 Zusatz Funktion M Funktion Mittels der Zusatz Funktionen oder M Funktionen kann ein bin rer Ausgang gesetzt werden der eine anderweitige Aktion startet Im Unterschied zu den Schaltpunkten wird dabei so lange an der aktuellen Position verharrt bis die M Funktion durch Setzen eines Einganges best tigt wird Dies wird h ufig dazu verwendet wenn die weitere Abarbeitung des Programms von anderen Prozessen abh ngt Folgende Zeile w rde die M Funktion 10 starten und so lange warten bis diese best tigt wird N90 M10 Es besteht die M glichkeit ber K und L zwei Parameter einzugeben welch
26. Geradensteigung die zweite Ableitung Beschleunigung gleich 0 e Polynom f nften Grades In diesem Intervallabschnitt wird die Abh ngigkeit durch ein Polynom f nften Grades beschrieben Erste und zweite Ableitung werden dadurch zu Polynomen vierten und dritten Grades Die Funktionen auf diesen Intervallen m ssen so aneinander anschlie en dass an den berg ngen sowohl der Funktionswert wie auch mindestens dessen erste und zweite Ableitungen stetig sind Im CAM Editor k nnen einzelne St tzpunkte und Geraden gesetzt werden Dazwischen liegende Intervalle werden vom Editor durch Polynome f nften Grades automatisch verbunden wobei die Stetigkeits und Differenzierbarkeitsvoraussetzungen erf llt werden L ngs der Geraden sind Funktionswert erste Ableitung Geschwindigkeit in diesem Fall konstant sowie zweite Ableitung Beschleunigung in diesem Fall immer 0 festgelegt Ein Punkt kann mit beliebiger erster und zweiter Ableitung definiert werden Zus tzlich hat der Anwender die M glichkeit Nocken also bin re Positionsschalter auf der Kurvenscheibe zu platzieren Starten des CAM Editor und Erstellen einer Kurvenscheibe Der Kurvenscheiben Editor CAM Editor wird aus der Registerkarte Ressourcen gestartet Es erscheint ein dreigeteiltes Fenster Solange keine Kurvenscheibe angelegt ist ist das Fenster leer Ansonsten findet sich in der linken Spalte ein Baum mit allen programmierten Kurvenscheiben und in der oberen Fenste
27. Getriebeverh ltnis ge ndert werden soll Ausg nge VAR _ OUTPUT des Bausteins bDone BOOL TRUE sobald die Aktion ausgef hrt ist bError BOOL TRUE wenn Fehler auftrat nErrorlD SMC_Error Beschreibt den Fehler Regelungsmodus Bausteine SMC_SetControllerMode Mithilfe dieses Bausteins kann falls vom Antrieb unterst tzt in einen anderen Regelungsmodus geschaltet werden Eing nge VAR _INPUT des Bausteins bExecute BOOL Mit einer steigenden Flanke wird der Baustein aktiv nControllerMode SMC_CONTROLLER_MODE Gew nschter Regelungsmodus SMC_torque Drehmoment SMC_velocity Geschwindigkeit SMC_position Position SMC_current Strom Ein Ausg nge VAR _IN OUT des Bausteins Axis AXIS_REF VAR_IN_OUT Antrieb dessen Regelungsmodus ge ndert werden soll Ausg nge VAR _ OUTPUT des Bausteins bDone BOOL VAR_OUTPUT TRUE sobald die Aktion ausgef hrt ist bError BOOL VAR_OUTPUT TRUE wenn Fehler auftrat nErrorlD SMC_Error VAR_OUTPUT Beschreibt den Fehler SoftMotion in CoDeSys 2 3 2 11 2 2 5 SM_DriveBasic lib und automatische Codegenerierung Direkte Sollwertvorgabe SoftMotion gibt dem Anwender die M glichkeit Sollwerte f r Position Geschwindigkeit und Drehmoment Kraft siehe SMC_SetTorque direkt vorzugeben und auf die Achse zu schreiben Die dazu bereitgestellten Bausteine k nnen z B dazu verwendet werden selbst berechnete Profile auf die Achse zu schreib
28. Im Bereich zyklische Kommunikations Daten wird ausgew hlt welche Soll und Ist Daten zyklisch zwischen Steuerung SPS und Antrieb Drive bertragen werden sollen Unter Maximalwerte werden diejenigen Grenzwerte gesetzt die von SMC_ControlBy Bausteinen verwendet werden um festzustellen ob ein Sprung vorliegt siehe Kap 2 2 5 Beschreibung SMC_ControlAxisByPos SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface Bei Geschwindigkeits Rampentyp spezifiziert der Anwender falls von den eingebundenen Bibliotheken unterst tzt den Geschwindigkeits Profiltyp f r die bewegungserzuegenden Einach und Master Slave Bausteine trapezoid hat ein trapezf rmiges Geschwindigkeitsprofil abschnittsweise konstante Beschleunigung sigmoidal ein sin f rmiges Geschwindigkeitsprofiil stetige Beschleunigung parabolisch ein stetiges trapezoides Beschleunigungsprofi und damit parabolisches Geschwindigkeitsprofil zur Folge F r die Modi sigmoidal und parabolisch muss zudem der Ruck Jerk festgelegt werden Folgende Grafiken zeigen wie sich die unterschiedlichen Rampen Modi bei einer Positionierung auswirken Dabei ist die Position gr n die Geschwindigkeit rot und die Beschleunigung blau dargestellt Beim trapezf rmigen Geschwindigkeitsmodus ist zu erkennen dass in der Beschleunigung Spr nge auftreten Beim sigmoidalen Geschwindigkeitsmodus sind diese Spr nge eliminiert Der Bewegungsverlau
29. LREAL d fset LREAL pi SMC_Posinfo Soll Positionsvektor Ausgang des Interpolators dOffsetX dOffsetY LREAL Offset f r x und y Achse SoftMotion in CoDeSys 2 3 8 1 Transformations Funktionsbl cke dx dy LREAL Sollwerte f r x und y Achse SMC_TRAFOF _Gantry2 SMC _TRAFOF_GANTR Y2 d fset LREAL d fsetr LREAL min LREAL mars LREAL minr LREAL maxr LREAL dnOffsetx Drive ASIS_REF WARIN_OUT dn fsetr DriveY AMIS_REF WARLUNLOUTI Drives AXIS_REF WARUN OUT DriveY AMIS_REF WARUM OUT dOffsetX dOffsetY LREAL Offset f r x und y Achse Gleiche Werte wie bei SMC_TRAFO_Gantry2 minX maxX minY maxY LREAL Bewegungsbereich f r Visualisierung DriveX DriveY AXIS_REF x Y Achse dx dy LREAL x y Position in Weltkoordinaten dnx dny dnOffsetX dnOffsetY LREAL genormte x und y Position 0 1 und Offsets f r Visualisierung ratio LREAL Verh ltnis zwischen x Intervall und y Intervall f r Visualisierung SMC_TRAFO_Gantry3 8 2 SMC _TRAF _GANTR YS ki SMC _FPoslinfo dx LREAL d fsets LREAL dy LREAL d ser LREAL dz LREAL d fsetz LREAL pi SMC_Posinfo Soll Positionsvektor Ausgang des Interpolators dOffsetX dOffsetY dOffsetZ LREAL Offset f r x y und z Achse dx dy dz LREAL Sollwerte f r x y und Z Achse SoftMotion in CoDeSys 2 3 Kapitel 8 Die Bibliothek SM_Trafo lib SMC_TRAFOF _Gantry3 SMC _TRAFOF_GANTRY3
30. Objekt einen Zeiger auf das N te GEOINFO Objekt aus der Liste bei POQ POINTER TO SMC_GEOINFO GETOBJFROMEND POQ POINTER TO SMC_OUTQUEUE N UINT Diese Funktion liefert vorausgesetzt POQ ist richtig initialisiert und es existieren mindestens N 1 Elemente einen Zeiger auf das vom Ende gerechnete N te GEOINFO Objekt aus der Liste bei POQ f r N 0 wird also das letzte Listenelement zur ckgegeben Initialisierung der Struktur Die SoftMotion Bausteine SMC_NCDecoder SMC_SmoothPath SMC_RoundPath SMC_AvoidLoop und SMC_ToolCorr die einen Zeiger auf eine intern verwaltete OutQueue Struktur ausgeben bernehmen selbst die Initialisierung der Struktur Die Bausteine SMC_SmoothPath SMC_RoundPath SMC_ToolCorr SMC_AvoidLoop und SMC_Interpolator erwarten als Eingang einen Zeiger auf eine korrekte OutQueue Liste Wird diese von Hand programmiert und bef llt so muss die korrekte Initialisierung selbst vorgenommen werden Dazu m ssen die ersten beiden Variablen Buffer Size gesetzt werden Im brigen empfiehlt es sich dringend bei der Arbeit mit einer SMC_OUTQUEUE die obigen Funktionen zu ben tzen und nach einer Initialisierung eine nderung der anderen Variablen m glichst zu vermeiden Komponenten der Struktur pbyBuffer POINTER TO BYTE Hier steht die Adresse eines zusammenh ngenden Speicherbereichs der f r die Speicherung der GEOINFO Objekte vorgesehen ist Dieser Speicher muss im IEC Programm belegt werden und des
31. PLC Configuration 4 Businterface VAR AisGroup VAR EEFFRFFTTTITTUTEETEETTTIITTITOOEEEEE TUT OEEEEREEITTT TOT EEEEEETTOTTTOIer In der Taskkonfiguration rufe man das Programm Ipo auf das eine Bewegung auf dieser Achse erzeugen wird Dieses Programm soll im folgenden erstellt werden dazu wird im Object Organizer ein Programm in der Sprache ST angelegt und gef llt Bevor wir beginnen k nnen den Antrieb zu bewegen muss gesichert sein dass der Treiber den Antrieb gefunden und initialisiert hat Wenn dies passiert ist dann sollten wir dem Antrieb die Reglerfreigabe erteilen und ggfs die Bremse l sen Diese Funktion bernimmt der Baustein MC_Power SoftMotion in CoDeSys 2 3 Kapitel 11 Programmierbeispiele PROGRAM Ipo VAR Init BOOL FALSE Power MC Power END VAR u IF NOT Init THEN Power Enable TRUE bRequlatorOn TRUE bDriveStart TRUE Axis Drive Init Power Status ELSE END IF Im ELSE Zweig der ersten IF Bedingung k nnen wir jetzt also den Antrieb steuern In diesem Beispiel wollen wir das mit dem Positionier Baustein MC_MoveAbsolute machen Dazu deklarieren wir eine Instanz dieses Bausteins und eine Zielposition p die wir mit 100 initialisieren wollen Jetzt rufen wir jeden Zyklus diese Bausteininstanz mit den ben tigten Werten auf Wenn die programmierte Position erreicht wurde ist der Done Ausgang des Bausteins gesetzt und wir m ssen den Execute Eingang auf FALSE setzen wenn wir eine
32. Verst ndnis der SoftMotion Komponenten wird dem Leser empfohlen die jeweiligen Beispiele zu studieren SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface 2 Das SoftMotion Drive Interface Das Softmotion Drive Interface ist eine genormte Schnittstelle die dem Programmierer die M glichkeit bietet das abstrahierte Bild eines Antriebs in das IEC Programm einzubinden dort zu konfigurieren und anzusprechen Es sorgt automatisch f r die Aktualisierung und bertragung der Daten die f r die Steuerung der Antriebs Hardware n tig sind So k nnen Antriebe nicht nur leicht ausgetauscht und IEC Programme wiederverwendet werden es werden dem Applikateur auch die Schwierigkeiten und Unbequemlichkeiten der Antriebsanbindung erspart Das Drive Interface arbeitet mit folgenden Komponenten e Der CoDeSys Steuerungskonfigurator Hier ist auf Basis einer entsprechenden Konfigurationsdatei die Struktur der zu bedienenden Antriebe abzubilden und zu parametrieren Diese Struktur wird dann mit Hilfe der Drive Interface Bibliotheken ber implizit erzeugte und belegte System Variablen f r die Applikation IEC Programm zug nglich gemacht e Die interne Bibliothek SM_DriveBasic lib stellt IEC Datenstrukturen und globale Variablen bereit die die im Steuerungskonfigurator dargestellten Antriebe Achsgruppen sowie Businterfaces repr sentieren e Der Antriebs Treiber d h die f r die verwendeten Antriebe und das Bussystem vom Steueru
33. Werkst ck nicht exakt gem des CNC Programms ausgerichtet ist dass die vom Interpolator errechneten Bahnkoordinaten vor der bergabe an die Maschinen Transformation transformiert werden m ssen Man stelle sich ein gew hnliches Portal X Y Z vor Den Werkzeugpunkt des Portals muss man nun auf der Fl che eines Werkst ckes welches schr g im Raum liegt verfahren SoftMotion in CoDeSys 2 3 Kapitel 8 Die Bibliothek SM_Trafo lib Objekt Maschinen koordinaten koordinaten system system Es gibt mehrere M glichkeiten den Bezug zwischen zwei Koordinatensystemen zu beschreiben Eine Koordinatentransformation besteht immer aus r umlicher Translation und r umlicher Rotation Die Translation beschreibt man dabei mit einem dreidimensionalen Vektor die Rotation entweder durch drei Winkel z B YawPitchRoll oder durch die drei Einheitsvektoren des neuen Objekt Koordinatensystems x y z Wird die Methode der drei Rotationswinkel gew hlt k nnen diese z B nach der Roll Pitch Yaw RPY Konvention definiert Dabei geht das neue Koordinatensystem aus dem alten durch Drehung um verschiedene Achsen hervor Man kann sich das Verfahren RPY a B y auf zweierlei Arten die das identische Ergenis liefern vorstellen 1 Ausgehend vom Koordinatensystem x y z dreht man das Koordinatensystem um die z Achse um den Winkel y im mathematisch positiven Sinn Dadurch entsteht das neue Koordinatensystem x1 y1 z1 z Bei di
34. aber auch die synchronisierte Bewegung zweier Achsen leicht programmiert und realisiert werden kann Neben Bausteinen zur Statusabfrage Parametrierung und allgemeiner Bedienung enth lt sie Funktionsbl cke die eine Achse gem vorgegebenem Geschwindigkeits und Beschleunigungsverhalten auf verschiedene Weisen bewegen kann Sollen zwei Achsen synchronisiert werden dient eine Achse als Master und steuert unter einer gewissen Vorschrift eine zweite Achse Slave Diese Vorschrift kann beispielsweise eine im CAM Editor generierte Kurvenscheibe sein die mittels vorhandener Bausteine die Slave Achse an die Master Achse koppelt Desweiteren existieren Funktionsbl cke zur Programmierung elektronischer Getriebe oder Phasenverschiebungen e Dateidienst Bibliothek Die Bibliothek SM_FileFBs lib baut auf der System Bibliothek SysLibFile lib auf und kann deshalb nur auf Steuerungen die die Bibliothek unterst tzen verwendet werden e Fehler Bibliothek Die Bibliothek SM_Error lib beinhaltet alle Fehlerausgaben die die Bausteine der anderen Bibliotheken erzeugen k nnen Au erdem k nnen mit ihr aus den numerischen Fehlervariablen deutsche und englische Fehlertexte erzeugt werden Portabilit t Ausgenommen manche zum Drivelnterface geh renden Treiber die direkt Hardware Komponenten bedienen sind alle SoftMotion Laufzeit Komponenten in IEC1131 3 programmiert Dadurch wird eine maximale Plattformunabh ngigkeit erreicht F r ein schnelles
35. analoge Geschwindigkeitseingang eines Handrades liegen so dass der Bediener mit beliebiger Geschwindigkeit vorw rts und r ckw rts fahren kann SMEUNTERFOLATORZDIR bExecute BOOL pogDataln POINTER TO SMC_OLUTQUEUE bSlow_Stop BOOL bEmergency_Stop BOOL bYaitAtNextstop BOOL J werride LREAL ivelMode SMC_INT_VELMODE JwipoTime DWORD JlastVayPos LREAL bAbort BOOL bsinglestep BOOL bAcknM BOOL Zus tzliche Ein und Ausg nge des Bausteins nDirection SMC_Direction bEndOfPath BOOL bError BOOL wErrorlD SMC_ERR R piSelPosition SMC_POSINFO iSstatus SMCUINT_STATUS borking BOOL iActObject o0ourceNo INT d el LREAL vec ctTangent SMC_VECTOR3D iLastSwitch INT dwSwitches DWORD JvayPos LREAL nDirection SMC_Direchon wh WORO Der Baustein gibt aus in welche Richtung er aktuell verf hrt M gliche Werte sind IPO_positive IPO_negative und IPO_standstill Folgende Voraussetzungen m ssen f r das Verwenden dieses Bausteins gegeben sein 1 Die Bahn muss vollst ndig in poqDataln passen Da der Baustein abwechselnd vorw rts und r ckw rts zu fahren hat muss die komplette Bahn im Speicher vorliegen 2 Ein zus tzlicher Baustein SMC_Interpolator2Dir_SlowTask wird aufgerufen SME_NTERPOLATORZDIR_SLOWTASK JAngleTol LREAL nSsizeQutQueue UDINT ipo2d SMC_Interpolator2Dir VAR_IN_OUT pbyBufferO utQueue POINTER TO BYTE ipo d SMC_Interpolator2Dir VARUN_
36. angelegtem Programm comment der graphische Editor ist in diesem Fall noch leer SoftMotion in CoDeSys 2 3 3 7 Start des Editors Einf gen und Verwalten von CNC Programmen ud CHC Programmliste 0 C 1 Earne 2E M010 G01 100 Y100 E100 F100 E 200 MO20 G01 240 F20 MHO30 G03 100 R200 F100 MHO40 G01 lt 20 F20 F20 ka 4 F SL Das aktuell markierte Programm kann nun sowohl im Texteditor siehe Kapitel 3 4 wie im graphischen Editor siehe Kapitel 3 5 bearbeitet werden CNC Programm umbenennen Markieren Sie das Programm in der CNC Programnmliste und w hlen Sie den Befehl CNC Programm umbenennen im Men CNC Programm oder im Kontextmen Der Dialog Programmname ffnet wo der Name editiert werden kann L schen Markieren Sie das Programm in der CNC Programmliste und w hlen Sie den Befehl CNC Programm l schen im Men CNC Programm oder im Kontextmen Das Programm wird von der Liste gel scht der Fokus geht auf das n chste der Liste ber Info Markieren Sie ein Programm in der CNC Programmliste und w hlen Sie den Befehl Info im Men CNC Programm oder im Kontextmen Es ffnet sich ein Dialog der Informationen ber das gew hlte CNC Programm enth lt Queue Gr e festlegen Hier k nnen Sie die Gr e des OutQueue Datenpuffers definieren Dies ist vor allem dann interessant wenn Sie dem NC Funktionsbausteinen im IEC Programm nur einen begrenzten Speicher zur Verf gung stell
37. auf die Abarbeitung der Kurve in der Applikation wirken sie nicht Periodisch entscheidet ob die Kurve sprungfrei aneinander geh ngt d h periodisch ausgef hrt werden kann Ist diese Option angew hlt haben Anfangs und Endpunkt dieselbe Slave Position oder die Differenz zwischen Ihnen ist ein Vielfaches der Periode Auch wenn die periodisch Option nicht angew hlt ist k nnen die Kurvenscheiben trotzdem hintereinander ausgef hrt werden dann muss sich allerdings der Anwender darum k mmern dass die berg nge im gew nschten Masse stetig sind CAMTableSelect Periodisch Dieser Eingang entscheide ob eine Kurvenscheibe wenn die Masterposition den Kurvenscheibenbereich verl sst erneut ausgef hrt wird Ist dieser Eingang FALSE so wird am Ende der Kurvenscheibe der Ausgang EndOfProfile am Camlin Baustein gesetzt und der Slave wird an der letzten durch die Kurvenscheibe programmiierten Position gehalten Man beachte dass wenn der Master wieder in den zul ssigen Bereich eintritt der Slave immer noch gem der Kurvenscheibe gesteuert wird die Kurvenscheibenaktion wird also durch das Verlassen des beschriebenen Masterbereichs nicht beendet Ist der Eingang TRUE wird die Kurvenscheibe aneinandergereiht d h die Kurvenscheibe wird in Masterrichtung an ihr bisheriges Ende verschoben Dadurch steht also die Masterperiode Breite einer Kurvenscheibe in keinem Verh ltnis zur Positionsperiode des Masterantriebs Man beacht
38. auf dieselbe Achse wirkt unterbrochen Ausnahme MoveSuperlmposed Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer MC_PositionProfile Dieser Baustein der SM_PLCopen lib f hrt ein vorgegebenes Positionsprofil ab Dazu muss eine Variable der Struktur MC_TP_REF definiert und bef llt werden MC_TP_REF enth lt folgende Variablen Variable Typ initwert Beschreibung Number_of_pairs INT Anzahl Profil Punkte IsAbsolute BOOL TRUE Positionen absolut oder relativ MC_TP Array ARRAY 1 100 Punkte OF SMC_TP SMC_TP enth lt folgende Variablen Variable Typ initwert Beschreibung delta_time TIME t 0s Zeit zwischen Erreichen des vorigen und dieses Punktes REAL Fan Absolut Relativ Position des Punktes Der Baustein legt durch die vorgegebenen Positionen eine zweifach stetig differenzierbare Kurve aus kubischen Polynomen yil_POSITONFR FILE Execute BOOL Done BOOL ArraySize IMT CiommandAborted BOOL Scale LEEAL Error BOGL Offset LREAL ErrorlD WORD Axis ASIS_REF WARLUMLOUT Axis AXIS_REF WARLUMLOUT TimeFosition MC_TP_REF WAR UN OUT TimePosition MC_TP_REF WARUN OUT Ein Ausg nge VAR_IN_OUT des Bausteins Axis AXIS_REF Hier wird die Struktur bergeben die im Drive Interface SM_DriveBasic lib mit den Daten der Achse gef llt wurde TimePosition MC_TP_REF Angaben zu Zeit und Positions
39. das erste Element eines Arrays von SMC_SingleVar welches den Typ und einen Zeiger auf die Variable enth lt Ein SMC_SingleVar Objekt enth lt die Zeichenkette strVarName die den Namen der Variable wie er im NC Programm vorkommt in Gro buchstaben enth lt Au erdem besteht es aus einem Pointer auf die Variable und deren Typ Dazu ein Beispiel SoftMotion in CoDeSys 2 3 Kapitel 10 Die Bibliothek SM_FileFBs lib Im NC Programm welches mit SMC_ReadNCFile aus Datei gelesen wird kommen zwei Variablen 9_rTestX REAL und 9_byCommand BYTE vor NO G g_byCommandS X5g_rTestxX3 Man legt nun folgende Variablen an g byCommand BYTE g rIlestet REAL abv ARRAY 0 1 OF SME SingleVar i strVarName G BYCOMMAND eVarType SMC_ TYPE BYTE servarNamer G TITESIX y EeVarlypes SlMC TIPE REAL vl SMC VarList wNumberVars 2 Vor dem Aufruf des Bausteins SMC_ReadNCFile dessen pvl Eingang man dann mit ADR vl beschreibt muss man den Zeiger auf die Variablen setzen asv 0 pAdr ADR g byCommand asv l1 pAdr ADR g rTest und muss die Verkn pfung zwischen SMC_VarList und AMC_ SingleVar herstellen vl psvVarList ADR asv 0 Kann eine Variable nicht ersetzt werden wird ein Fehler ausgegeben und der Baustein bricht ab 10 3 _CAM Funktionsbl cke SMC_ReadCAM Dieser Baustein wird dazu verwendet eine Kurvenscheibe die mit dem CAM Editor erstellt und in eine CAM Datei gespeichert wurde siehe 4 4 3 zur Laufzei
40. dem Rest fortgesetzt Dadurch entsteht eine schleifenfreie stetige Bahn Anwendung findet dies beispielsweise bei dem unter Der Baustein SMC_ToolCorr beschriebenem Problem Der Baustein SMC_AvoidLoop arbeitet folgenderma en Der Baustein durchl uft dabei alle sich in der Eingangs SMC_OUTQUEUE Struktur befindlichen SMC_GEOINFO Objekte Wenn in einem dieser Objekte Bit der Variablen Intern_Mark gesetzt ist wird die Schleifenvermeidung eingeschaltet Ab jetzt pr ft der Baustein ob ein Schnittpunkt des aktuellen Objekts mit den folgenden SMC_GEOINFO Objekten vorliegt die vor einem SMC_GEOINFO Objekt liegen bei dessen Variable Intern_Mark Bit6 gesetzt und damit die Schleifenvermeidung ausgeschaltet wird Im negativen Fall wird das Objekt unver ndert in die Ausgangs SMC_OUTQUEUE kopiert andernfalls das erste der beiden sich schneidenden Objekte am Schnittpunkt abgeschnitten die zwischen den Schnittobjekten liegenden SMC_GEOINFO Objekte verworfen und die neue Bahn mit dem zweiten Schnittobjekt vom Schnittpunkt aus fortgesetzt Der SMC_NCDecoder setzt die Bits 6 und 7 von Intern_Mark als Reaktion auf die Befehle G61 G60 Entscheidend ist hierbei wie viele Objekte sich in der Eingangs SMC_OUTQUEUE befinden sprich wie gro die Eingangs SMC_OUTQUEUE dimensioniert ist Eine kleine Eingangs SMC_OUTQUEUE hat zur Folge dass eine Schleife die mehr Objekte umfasst als in die SMC_OUTQUEUE passen nicht detektiert werden kann Eing nge des Baust
41. der bernahme der neuen Sollwerte der Baustein Zeit hat auf den neuen Override zu rampen Im Eingang fTaskCycle muss die Zykluszeit der Task in Sekunden stehen von welcher aus der Baustein aufgerufen wird SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface 2 2 7 Referenzieren ber digitale Hardware Eing nge SMC_Homing oM HG MING bExecute BOAL hoone BOOL Homerosition LREAL hzommandaborted BOL eloctySlow LREAL hError BOOL MelocityFast LREAL nErrorlo INT Acceleration LREAL bStartLatchingindes BOOL Deceleration LREAL Axis i ARIS REF MARIM _OIJT nDirection Mi Direction bEndSwitth BOOL fSignalDelay LREAL nHomingMode SMC HOMI MODE hreturmTozero BOOL klndex ccured BOOL findexFosition LREAL KlgnoreHWNLlimit BOOL Axis AXIS_REF WARUM LOUT Dieser Funktionsbaustein ist in der Lage die Referenzfahrt einer Achse auszuf hren Als Einschalter fungiert dabei ein BOOLscher Wert der typischerweise ein Hardware_Input ist Wurde der Baustein mit steigender Flanke in bExecute gestartet bewegt er die Achse mit fVelocityFast in die Richtung die durch nDirection spezifiziert wurde solange bis bEndSwitch FALSE also der Referenzschalter geschlossen wird Dann wird die Achse abgebremst und mit fVelocitySiow in die entgegen gesetzter Richtung gefahren An der Stelle an der sich der Referenzschalter ffnet bEndSwitch TRUE wird die Referenzposition gesetzt fHomePosition und der
42. der Kurvenscheibe ben tigt werden kann sich eine gelesene Kurvenscheibe von der urspr nglichen unterscheiden Extras Kurvenscheibe als ASCII Tabelle exportieren Hier k nnen Sie die aktuelle Kurvenscheibe als ASCII Textfile exportieren Dabei kann die Anzahl an Punkten spezifiziert werden Der Start und Endpunkt ist stets als erster bzw letzter Punkt enthalten Daraufhin wird ein Textfile mit folgendem Aufbau erzeugt lt Master Position gt lt Slave Position gt lt CR gt lt LF gt Das so erzeugte Textfile kann beispielsweise in andere Programme importiert und zur Antriebsauslegung verwendet werden Extras CAM Kurvenscheibe aus ASCII Tabelle importieren Mit dieser Funktion k nnen Kurvenscheibentabellen die als ASCIl Datei in folgendem Format abgelegt sind importiert werden lt Master Position gt lt Slave Position gt Dabei ist auch zu beachten dass die Punkte bez glich der Master Position aufsteigend sortiert sind Konnte die Kurvenscheibe eingelesen werden kann der Anwender im Eigenschaften Dialog den Namen das Intervall und die Skaleneinteilung festlegen Anschlie end hat er die M glichkeit die Anzahl St tzstellen der Kurvenscheibe zu reduzieren Einf gen Element selektieren il Dieser Men punkt dient dem Ein und Ausschalten des Selektiermodus Solange er aktiviert ist Haken vor Men punkt Schaltfl che in Werkzeugleiste erscheint gedr ckt kann mit einem Druck der linken Maustaste das Kur
43. der Wert der den Abstand zu einer Ecke angibt ab dem die jeweiligen Objekte abgeschnitten und durch einen Kreisbogen ersetzt werden s o Er darf online ver ndert werden Somit hat man die M glichkeit diesen Wert an die Gegebenheiten der Bahn anzupassen Default Wert O dAngleTol REAL Dieser Eingang beschreibt den Winkeltoleranz Wert bis zu welchem ein Bahnknick nicht verschliffen werden soll vgl 3 3 nSizeOutQueue UDINT Hier wird dem Baustein die Gr e des Datenpuffers mitgeteilt in den die Liste von GEOINFO Strukturobjekten geschrieben wird Dieser muss mindestens f nf mal so gro wie eine GEOINFO Struktur Ist dies nicht der Fall so f hrt der SMC_NCDecoder keine Aktionen durch Der Wert darf gesetzt und hernach nur w hrend eines Resets ver ndert werden Es empfiehlt sich den eigentlichen Buffer wie unten beschrieben z B als Example Array of SMC GeoInfo anzulegen Die entsprechende Buffergr e ergibt sich dann aus sizeof Example pbyBufferOutQueue POINTER TO BYTE Dieser Eingang muss auf das erste Byte des f r die OUTQUEUE Struktur angelegten Speicherbereichs zeigen Dieser Speicherbereich muss mindestens so gro sein wie in nSizeOutQueue angegeben Typischerweise erfolgt das Belegen dieses Speichers im Deklarationsteil SoftMotion in CoDeSys 2 3 6 31 6 2 7 6 32 Bausteine des IEC Programms mittels eines Arrays of SMC_Geolnfo z B BUF ARRAY 1 50 OF SMC GEOINFO f r einen Buffer der 50 Bahne
44. der langsamen Task solange bis die OUTQUEUE nicht mehr voll ist sprich bis die schnelle Task das erste GEOINFO Objekt abgearbeitet hat und dieses aus der OUTQUEUE l scht Dann werden die Bausteine der langsamen Task wieder aktiv und bef llen die OUTQUEUE Struktur In der schnellen Task wird pro Zyklus ein Bahnpunkt aus der OUTQUEUE Struktur auf die der Eingang Dataln des Interpolators zeigt berechnet und verarbeitet Da ein GEOINFO Objekt ja i d R aus mehreren Bahnpunkten besteht dauert es einige Zyklen bis das erste GEOINFO Objekt abgearbeitet ist und vom Interpolator automatisch gel scht wird Da das Abarbeiten eines GEOINFO Objekts offenbar mehrerer Zyklen bedarf als das Erstellen kann die langsame Task tats chlich seltener aufgerufen werden als die schnelle Die Task Zeiten m ssen jedoch so gew hlt werden dass in der letzten OUTQUEUE der langsamen Task immer gen gend GEOINFO Objekte gelagert sind sodass kein Data Underrun auftritt Dies tritt auf wenn dem Interpolator aus Dataln keine GEOINFO Objekte mehr zur Verf gung stehen und das Bahnende noch nicht erreicht ist In diesem Fall bremst der Interpolator und bleibt so lange stehen bis wieder neue Datenelemente verf gbar sind Im Programm Path findet die Decodierung des NC Programms zur OutQueue und die Geschwindigkeits berpr fung statt Path PRG CFC 17312 1 281 ioj x DODIPROSRAM Path Ir Ilr g_Checkvel I SM L_Checkyvelociies bExecut
45. die Angabe der Richtung keine Bedeutung bei Rotationsachsen bestimmt sie den Drehsinn ME _MOVYEABSOLIJTE Execute BOOL Done BOOL Fosition LREAL CommandAborted BGL welocity LREAL Acceleration LREAL Deceleration LREAL Axis AAlS_REF MARIN OLUT Direction Me Direction Axis AKIS_REF WARUN_OUT Ein Ausgang VAR IN OUT des Bausteins Axis AXIS_REF Hier wird die Struktur bergeben die im Drive Interface SM_DriveBasic lib mit den Daten der Achse gef llt wurde Eing nge des Bausteins Execute BOOL Default FALSE Bei einer steigenden Flanke wird der Baustein aktiv Position REAL Zielposition f r die Bewegung techn Einheit u SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib Velocity REAL Wert der Soll Geschwindigkeit die nicht zwingend erreicht werden muss u s Acceleration REAL Gew nschte Beschleuningung u s Deceleration REAL Gew nschter Bremswert u s nDirection MC_Direction Default shortest Dieser Enumerationswert gibt die gew nschte Richtung an nur relevant f r Rotationsachsen siehe SM _DriveBasic lib Zul ssige Werte sind current momentane Bewegungsrichtung positive negative shortest von der aktuellen Position aus gesehene k rzeste Entfernung fastest Richtung so dass Bewegung schnellstm glich beendet wird Ausg nge des Bausteins Done BOOL Default FALSE TRUE zeigt an dass die gew nschte Position erreicht w
46. eine DXF Datei importieren Im Standarddialog zum ffnen einer Datei k nnen Sie die gew nschte DXF Datei ausw hlen Daraufhin erscheint der Dialog DXF Import Optionen in dem Sie eine der folgenden Optionen einstellen e Ein NC Programm f r gesamte DXF Datei alle in der DXF Datei enthaltenen Bahnen werden in ein CNC Programm geschrieben e Ein NC Programm pro DXF Layer je DXF Layer wird ein eigenes CNC Programm erzeugt e Ein NC Programm pro zusammenh ngendem Abschnitt f r jeden zusammenh ngenden Bahnabschnitt wird ein eigenes CNC Programm generiert Da in einer DXF Datei die einzelnen Wegobjekte ohne Reihenfolge gespeichert sind versucht CoDeSys die Objekte miteinander zu verbinden um daraus eine zusammenh ngende Bahn zu erzeugen OutQueue in Datei schreiben 3 4 3 10 Mit dieser Funktion k nnen Sie das gesamte CNC Programm in eine OutQueue also eine Liste von GEOINFO Strukturobjekten verwandeln und in eine Datei speichern die Sie ins Dateisystem der Steuerung laden und dort zur Laufzeit einlesen k nnen c Gehen Sie so vor wenn es sich um gro e CNC Programme handelt die nicht in den globalen Datenspeicher der Steuerung passen oder ohne das Ver ndern des CoDeSys Projekts getauscht werden m ssen CNC Texteditor Der Texteditor befindet sich im rechten oberen Fensterteil der CNC Programnliste Hier kann ein CNC Programm nach DIN66025 eingegeben und ver ndert werden Sehen Sie hierzu Kapitel 3 2 Unterst tzte u
47. entschl sselt SoftMotion in CoDeSys 2 3 6 23 6 24 Bausteine Eing nge des Bausteins bExecute BOOL Der Baustein f hrt einen Reset aus und beginnt die Entschl sselung wenn dieser Eingang eine steigende Flanke aufweist bAppend BOOL Steht dieser Eingang auf FALSE so wird bei jedem Reset die Ausgabe Datenqueue DataOut geleert Bei TRUE werden die neuen Daten ans Ende der DataOut Queue geschrieben bStepSuppress BOOL Steht dieser Eingang auf TRUE so werden Zeilen des CNC Programms die mit beginnen ignoriert Bei FALSE default werden diese trotzdem verarbeitet piStartPosition Position die der zu bewegende Punkt am Anfang der Bahn hat nSizeOutQueue UDINT Hier wird dem Baustein die Gr e des Datenpuffers mitgeteilt in den die Liste von GEOINFO Strukturobjekten geschrieben wird Dieser muss mindestens f nf mal so gro wie eine GEOINFO Struktur Ist dies nicht der Fall so f hrt der SMC_NCDecoder keine Aktionen durch Der Wert darf gesetzt und hernach nur w hrend eines Resets ver ndert werden Es empfiehlt sich den eigentlichen Buffer wie unten beschrieben z B als Example Array of SMC GeoInfo anzulegen Die entsprechende Buffergr e ergibt sich dann aus sizeof Example pbyBufferOutQueue POINTER TO BYTE Dieser Eingang muss auf das erste Byte des f r die OUTQUEUE Struktur angelegten Speicherbereichs zeigen Dieser Speicherbereich muss mindestens so gro sein wie in nSizeOutQueue angegeben T
48. erhalten Ausg nge des Bausteins bTappet BOOL Default FALSE Wert der Nocke 5MC_GETTAPPETVALUE ID INT bTappet BOOL binitvalue BOOL Tappets SMC_TappetData WVAR_IN_OUT bSsellniValueAtReset BOOL Tappets SMC_TappeiData WAR_MN_OUT SMC_ReadSetPosition Dieser Baustein liest die gegenw rtige Soll Position des Antriebs aus SMC _READSETPFOSITIOMN Enable BOOL Axis ASIS_REF WARUMNLOUT ErrorlD NORD Fosition LREAL Axis AXIS_REF WARLUBMLOUT SMC_SetTorque Mit diesem Baustein kann sofern der Antrieb im Regelungsmodus Drehmoment steht ein Solldrehmoment erzeugt werden SMC_SETTORGUE bEnable BOOL bActive BOOL fTorque LREAL bError BOOL Axis AMIS_REF WARLMLOUT nErr rlD INT Position LREAL Axis ARlS_REF WARUM LOUT 5 22 SoftMotion in CoDeSys 2 3 6 1 6 2 6 2 1 Kapitel 6 Die Bibliothek SM_CNC lib Die Bibliothek SM_CNC lib berblick Diese Bausteinbibliothek stellt Bausteine und Funktionen f r ein mit SoftMotion realisiertes IEC Programm zur Verf gung Sie enth lt die Bewegungsfunktionalit t und wird in das IEC Programm eingebunden Sie umfasst unter anderem die unten aufgelisteten Bausteine die sowohl die in den Editoren offline entworfenen Bewegungen ausf hren als auch die im IEC Programm online geplante Bahnen realisieren k nnen Dazu greifen sie auf interne Strukturen zu die die einzelnen Bahnobjekte beschreiben e SMC_NCDecoder Entschl sselung de
49. erstellten CAN Bibliotheken auf In ihr sind zwei Bausteine enthalten die f r den Anwender praktische Bedeutung haben da man mit ihnen auf einfache Art Parameter des Antriebs auslesen oder beschreiben kann SMC_ReadCANParameter und SMC_WriteCANParameter In ihrer Funktionsweise gleichen sie den beiden Bausteinen MC_ReadParameter und MC_WriteParameter SoftMotion in CoDeSys 2 3 2 21 Antriebs Treiber lt BusinterfaceBezeichnung gt Drive lib SMU_READCANPARAMETER Enable BOOL windex WORD Error BOOL bySubindex BYTE ErronD WORD Ans AXIS_REF VAR_IN OUT dvvValue DWORD Axis AXIS_REF WAR_IN_OUT SMC_WRITECANFARAME ER Execute BOOL Done BOOLI windex WORD Error BOOLI bySubindex BYTE ErmonD WORD byLength BYTE Axis AXIS_REF VAR_IN_OUT dwValue DWORD Axis AXIS_REF WAR_IN_OUT Eing nge der Bausteine Enable BOOL TRUE Parameter wird fortlaufend gelesen Execute BOOL Steigende Flanke Einmaliges Schreiben des Parameters wird angesto en wlindex bySublndex BYTE Index und Subindex des Parameters der gelesen bzw geschrieben werden soll Axis AXIS_REF VAR_IN_OUT Antrieb dessen Parameter gelesen geschrieben werden soll Ausg nge der Bausteine dwValue DWORD Gelesener Wert bzw zu schreibender Wert Done BOOL TRUE Aktion erfolgreich beendet Error BOOL TRUE Fehler trat auf ErrorlD WORD Fehlernummer gem SMC_Error 2 22 SoftMotion in CoDeSys 2 3
50. h tte SoftMotion in CoDeSys 2 3 1 1 Steuerungskonfiguration f r SoftMotion e CNC Editor Der CNC Editor in CoDeSys dient der grafischen und textuellen Programmierung von mehrdimensionalen Antriebsbewegungen angelehnt an die CNC Sprache DIN66025 Grunds tzlich k nnen bis zu 9 dimensionale Bewegungen realisiert werden wobei nur zwei Dimensionen anders als linear interpoliert werden D h in zwei Dimensionen k nnen Geraden Kreise Kreisb gen Parabeln Ellipsen und Splines programmiert werden die anderen Richtungen werden lediglich linear interpoliert F r jede erzeugte Bahn wird von CoDeSys automatisch eine globale Datenstruktur CNC Data angelegt die im IEC Programm zur Verf gung steht e CAM Editor Der in CoDeSys integrierte graphisch bedienbare Kurvenscheiben Editor dient der Programmierung von Kurvenscheiben CAMs zur Steuerung von mehrachsigen Antrieben Aus jeder programmierten Kurvenscheibe erzeugt CoDeSys automatisch eine globale Datenstruktur CAM data die im IEC Programm zur Verf gung steht e CNC Bibliotheken Die Bibliothek SM_CNC lib SM_CNCDiagnostic lipb und SM_Trafo lip stellen dem IEC Programmierer Bausteine zur Verf gung mit deren Hilfe er die im CNC Editor erzeugten bzw zur Laufzeit geplanten Bewegungen bearbeiten darstellen und ausf hren kann e PLCopen Bibliothek Die PLCopen MotionControl Bibliothek SM_PLCopen lib besteht u a aus Bausteinen mit denen die Steuerung einzelner Achsen
51. ndern muss das Projekt neu downgeloadet werden Bei B funktioniert dies daf r muss beachtet werden dass bei jeder Neuinbetriebnahme entweder die Parameterdateien mit auf der Steuerung abgelegt werden oder das Drive Inbetriebnahmetool verwendet werden muss SMC_WriteDriveParamsTorFile 2 28 SMC_WRITEDRIVEPARAMSTOFILE bEexecute BOOL bDone BOOL sFileName STRING 255 bError BOOL bXMLFormat BOOL nErrond INT Axis AXIS_REF VAR_IN_OUT Axis AXIS_REF VAR_IN_OUT Dieser Baustein liest alle Konfigurations Parameter des Antriebs aus und speichert diese in einer Datei Da er einen Dateizugriff durchf hrt der evtl mehrere ms die Abarbeitung der Applikation blockiert darf er i d R nicht in der Motion Task aufgerufen werden sondern sollte in einer niedrigerprioren Task ausgef hrt werden Welche Parameter ausgelesen werden sollen erf hrt der Baustein vom Antriebs Treiber der dies entweder vom Antrieb selbst erfahren kann Sercos oder eine Standard Parameterliste enth lt bei CAN siehe globale Variablenliste der Standard 3S Treiber Bei CAN Antrieben kann eine eigene Liste gleichen Formats erstellt und dem Antrieb ber folgende Zuweisung zugeteilt werden lt Dr ve gt MS pParamever list ADR lt NeueLlist gt Ein Ausg nge des Bausteins bExecute BOOL Mit TRUE wird der Baustein gestartet sFileName STRING 255 Dateiname bXMLFormat BOOL Ist diese Variable TRUE dann wird die Datei im XML For
52. ngig ber Interrupts o durchgef hrt Der Eingang TriggerInput ist vom Typ TRIGGER_REF und beschreibt den Trigger Eingang n her Typ Beschreibung bFastLatching BOOL TRUE schnelles Latchen ber Drivelnterface TRUE oder Latchen im SPS Takt FALSE iTriggerNumber INT 1 nur f r bFastLatching TRUE Triggernummer abh ngig von Drivelnterface bInput BOOL FALSE nur f r bFastLatching TRUE Eingangssignal TRUE l st Latching aus BOOL FALSE interne Variable Die Fenster Funktion die ber WindowOnly FirstPosition LastPosition aktiviert und definiert ist abh ngig davon ob sie vom Drivelnterface unterst tzt wird und liefert im negativen Fall einen Fehler Der Baustein ist unabh ngig vom Zustand der Achse und so lange aktiv bis eine Position gelatcht bzw der Vorgang durch MC_AbortTrigger abgebrochen wurde Wil_TOLCHFRO BE Execute BOOL indow nly BOOL FirstFosition LREAL LastFosition LREAL FecordedFosition LREAL Awis ASIS_REF WARM OLT Command kborted BOOL Triggerlnput TRIGGER_REF MARIN OUT Axis ASIS_REF WARUM LOUT Triggerlnput TRIGGER_REF WARUM OLT MC_AbortTrigger 9 4 Dieser Baustein bricht ein auf dem TriggerInput stattfindendes Latching ab M L_ABUORTTRIGSGER Execute BOOL Axis AXIS_REF WARLUMLOUT Triggerlnput TRIGGER_REF WARUM LOUT Axis AXIS_REF WARUN_OUT Triggerlnput TRIGGER_REF MARIN _ OLT Bausteine zur synchronisierten Bewegungssteuerung
53. radius gt programmiert sind wird die entsprechend versetzte Bahn dargestellt Dieser Men punkt entspricht dem Baustein SMC_ ToolCorr der SoftMotion Bibliothek Die urspr ngliche Bahn wird als Referenz dazu hellgrau gezeichnet Positionierungen in der korrigierten Bahn sind Blind Positionierungen und werden dunkelgelb gezeichnet Extras Eckverrundung E Wenn diese Option aktiviert ist wird die eckverrundete Bahn dargestellt und zeigt den Effekt an den der Baustein SMC_RoundPath der SoftMotion Bibliothek auf die programmierte Bahn hat Voraussetzung hierf r ist dass im CNC Programm Start G52 Ende G50 und Verrundungsradius D lt radius gt gesetzt sind Die urspr ngliche Bahn wird als Referenz dazu hellgrau gezeichnet Extras Eckverschleifung E Wenn diese Option aktiviert ist wird die programmierte Bahn dargestellt und zeigt den Effekt an den der Baustein SMC_SmoothPath der SoftMotion Bibliothek SM_CNC lib hat Dieser legt verschleift ein Eck durch ein kubisches Polynom Splinest ck Voraussetzung hierf r ist dass im CNC Programm Start G51 Ende G50 und Verrundungsradius D lt radius gt gesetzt sind Die urspr ngliche Bahn wird als Referenz dazu hellgrau gezeichnet Extras Schleifenvermeidung a Wenn diese Option aktiviert ist wird diejenige Bahn dargestellt die dadurch entsteht dass bei einem Schnittpunkt der Bahn mit sich selbst die Bahn an dieser Stelle abgek rzt wird Dadurch werden Bahnschleife
54. rtstransformations FB errechneten x und y Werte als Offset dOffsetX und dOffsetY SMC_TRAFO_GantryH2 SMC_TRAFO_GANMTR YH 2 pi SMC _Foslinfo da LREAL d fsets LREAL db LREAL d fset LREAL pi SMC_Posinfo Soll Positionsvektor Ausgang des Interpolators dOffsetX dOffsetY LREAL Offset f r x und y Achse da db LREAL Sollwerte f r A und B Achse 8 8 SoftMotion in CoDeSys 2 3 Kapitel 8 Die Bibliothek SM_Trafo lib SMC_TRAFOF _GantryH2 8 2 4 SMC _TRAFOF_GANTR HZ d ffset LREAL dy dofsetr LREAL dy mins LREAL drs ma LREAL Any min LREAL ratio maw LREAL dnofsets Drives ARMS REF MARIM OUT An fsetr DriveB AsIS_REF MARIN OUT Drives AsIS_REF WARUNLOUT Driveb AsIS_REF WARUN OUT dOffsetX dOffsetY LREAL Offset f r x und y Achse Gleiche Werte wie bei SMC_TRAFO_GantryH2 minX maxX minY maxY LREAL Bewegungsbereich f r Visualisierung DriveA DriveB AXIS_REF A B Achse dx dy LREAL x y Position in Weltkoordinaten dnx dny dnOffsetX dnOffsetY LREAL genormte x und y Position 0 1 und Offsets f r Visualisierung ratio LREAL Verh ltnis zwischen x Intervall und y Intervall f r Visualisierung 2 Gelenkige Scara Systeme SoftMotion in CoDeSys 2 3 8 9 Transformations Funktionsbl cke SMC_TRAFO_Scara2 SMC _TRAFO_SCARAZ pi Sml_Posinfo dofsetA LREAL doffsetd LREAL d rmLenagthi LREAL d rmLenagthz LREAL bElho
55. untergeordnete Rolle spielt Ecken in denen naturgem auf die Geschwindigkeit O abgebremst werden muss vermieden werden Dazu wird die Bahn im vorgegebenem Abstand zur Ecke abgeschnitten und ein Splinest ck eingef gt Die Gr e dieses Abstands erh lt der Baustein zum einen aus dem es SMC_GEOINFO Strukturobjekt des ersten der zu Be verschleifenden Objekte zum anderen aus einem seiner t Eing nge Diese beiden Werte werden addiert und ergeben 7 h den Radius des Kreises mit Zentrum in der Ecke der mit den Fi umgebenden Objekten zum Schnitt gebracht wird f s Der Baustein SMC_SmoothPath geht dabei folgenderma en vor Alle in der Eingangs OUTQUEUE Struktur befindlichen SMC_GEOINFO Objekte werden nacheinander abgegangen Wenn in einem dieser Objekte Bit4 der Variablen Intern _Mark gesetzt ist wird ab dort begonnen Ecken zu verschleifen solange bis Bit3 von Intern_Mark einer der folgenden Objekte gesetzt ist Der SMC_NCDecoder setzt diese Bits als Reaktion auf die Befehle G51 G50 Anders ausgedr ckt Die Eckverschleifung wird f r alle Objekte durchgef hrt die innerhalb der Befehle G51 und G50 stehen Eing nge des Bausteins bExecute BOOL Der Baustein f hrt einen Reset aus und beginnt mit der Werkzeugradiuskorrektur wenn dieser Eingang eine steigende Flanke aufweist SoftMotion in CoDeSys 2 3 6 29 6 30 Bausteine bAppend BOOL Steht dieser Eingang auf FALSE so wird bei jedem Reset die Ausgabe Datenqueue DataOu
56. unver nderliche Datenstruktur der Applikation bergeben wird In diesem Fall wie auch zur offline Anzeige ersetzt der Editor Variablen mit deren Initialwerten Die Verwendung von Variablen in online eingelesenen G Code Programmen bedarf zus tzlicher Vorbereitung siehe SMC_VARLIST 3 2 4 Kreisinterpolation Zur Beschreibung eines Kreisbogens m ssen die Zielkoordinaten X Y festegelegt werden Zur Festlegung der Kr mmung hat man zweierlei M glichkeiten man gibt entweder der Radius R des Kreisbogens oder dessen Mittelpunktskoordinaten l J ein Bei der Variante mit dem Radius beachte man dass nur B gen die weniger als 180 Halbkreis umspannen m glich sind da diese Methode au er im Fall des Halbkreises immer zwei m gliche L sungen beschreibt eine kleiner eine gr er als ein Halbkreis Das System w hlt immer die die kleiner als ein Halbkreis ist Beispiel f r einen Halbkreis N10 G1 X100 Y100 NAO G2 X200 Y100 RIH SoftMotion in CoDeSys 2 3 3 5 3 2 5 3 2 6 3 2 7 3 2 8 3 6 Unterst tzte und erweiterte Elemente der CNC Sprache DIN66025 Will man einen Kreisbogen mit mehr als 180 ffnungswinkel so muss man ihn ber I J festlegen Diese Methode ist eindeutig ausgenommen in dem Fall in dem Start und Endpunkt des Kreises identisch sind Dort k nnte entweder ein Null oder ein Vollkreis entstehen Das System f gt in diesem Fall einen Vollkreis ein Man beachte auch dass mit der Me
57. zeigen Dieser Speicherbereich muss mindestens so gro sein wie in nSizeOutQueue angegeben Typischerweise erfolgt das Belegen dieses Speichers im Deklarationsteil des IEC Programms mittels eines Byte Arrays z B BUF ARRAY 1 10000 OF BYTE f r einen 10000 Byte gro en Speicherbereich Auch dieser Wert darf gesetzt und hernach nur w hrend eines Resets ver ndert werden Ausg nge des Bausteins bDone BOOL Diese Variable wird auf TRUE gesetzt wenn die Eingangsdaten aus Dataln vollst ndig verarbeitet sind Hernach f hrt der Baustein bis zu einem Reset keine Aktionen mehr durch Steht der bExecute Eingang auf FALSE wird bDone wieder auf FALSE gesetzt bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ERROR INT Sollte ein Fehler auftreten enth lt diese Variable die Fehlernummer poqDataOut POINTER TO SMC_OUTQUEUE Dieser Ausgang zeigt auf eine SMC_OUTQUEUE Struktur die die verrundeten SMC_GEOINFO Objekte verwaltet SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib 6 2 6 SMC_RoundPath Der SMC_RoundPath Baustein SM_CNC lib ist dem Baustein SMC_SmoothPath sehr hnlich Er verrundet Ecken die beim bergang zweier Geraden entstehen durch Kreisb gen ES Dazu wird die Bahn im Abstand r zur Ecke abgeschnitten und ein Splinest ck eingef gt Die Gr e dieses Abstands erh lt der Baustein zum einen aus dem SMC_GEOINFO Strukturobjekt des ersten der zu verrundenden Objekte
58. 01 s0 Yfig yf M20 G01 s0 YO m Fr Als bersetzungsmodus w hlen wir diesmal aber beim bersetzen Programm Variable erzeugen da wir Variablen in unserem Programm verwenden 2 Drive Interface Steuerungskonfiguration Die Antriebsstruktur entspricht der des vorhergehenden Beispiels SoftMotion in CoDeSys 2 3 11 11 11 12 Beispiel Antriebssteuerung mit Hilfe des CNC Editors 3 Erstellen des IEC Programms Da wir diesmal den anderen bersetzungsmodus gew hlt haben m ssen wir das Decodieren und Bahnvorverarbeiten im IEC Programm durchf hren Da dieser eher laufzeitintensive Vorgang nicht im Interpolatortakt durchgef hrt werden muss es wird ja pro Decoder Aufruf ein Wegobjekt erzeugt welches typischerweise f r viele Interpolator Aufrufe reicht wird er h ufig in eine weniger priore und seltener aufgerufene Task ausgelagert BE Taskkonfiguration i amp iol x E 4Taskkonfiguration 5 i z Taskeigenschaften 5 E ANE VAAK Name Pakt ask ae 7 ipo dD Pa T gt Biort t 031 N ee m Path Ds Zuklisch Freilaufend Ereignisgesteuert Extern ereighisgesteuert Eigenschaften Intervall 2 B 200m T 20ms Is gt ER fa Der dahinter stehende Mechanismus ist folgender In der langsamen Task wird anf nglich pro Zyklus etwa ein GEOINFO Objekt erzeugt welches in der OUTQUEUE Struktur des Decoder Bausteins gespeichert ist Ist diese OUTQUEUE voll pausieren die Bausteine
59. AL Dieser Eingang beschreibt den Winkeltoleranz Wert bis zu welchem an einem Bahnknick kein Stop durchgef hrt werden soll vgl 3 3 Ausg nge des Bausteins bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ERROR INT Dieser Enum Ausgang beschreibt ggf einen Fehler poqDataOut POINTER TO SMC_OUTQUEUE Dieser Ausgang zeigt auf das SMC_OUTQUEUE Strukturobjekt welches die Bahn mit zul ssigen Geschwindigkeitswerten enth lt und nun direkt in den Interpolator flie en soll SoftMotion in CoDeSys 2 3 6 2 8 Kapitel 6 Die Bibliothek SM_CNC lib SMC_LimitCircularVelocities Dieser Baustein berpr ft die einzelnen Elemente der OutQueue und begrenzt die Bahn Geschwindigkeiten von kreisf rmigen Elementen in Abh ngigkeit von deren Radien Die Bahn Beschleunigung wenn man mit konstanter Geschwindigkeit v ber einen bergang von Gerade zu Kreis mit Radius r f hrt springt betragsm ig von 0 auf den Wert i E2 H En T r Um diesen Beschleunigungssprung auf den Wert a zu begrenzen darf die Geschwindigkeit des Kreisbogen dementsprechend beim bergang Y i EH ria r F nicht berschreiten Dieser Baustein berpr ft die berg nge zweier Elemente Gerade auf Kreisbogen Kreisbogen auf Gerade und Kreisbogen auf Kreisbogen und passt die Endgeschwindigkeit des ersten Elements an sodass der Beschleunigungssprung den Wert dMaxAccJump nicht berschreitet Au erdem begrenzt der Baustein die
60. AY 0 MAX_IPOSWITCHES OF INT In diesen Variablen steht die relative Position 0 Objektanfang 1 Objektende hnlich G Code O und die ID vgl G Code H der Hilfsschalter Handelt es sich beim aktuellen Objekt um ein MCOMMAND steht in iHelpID 0 die Nummer der M Funktion SMC_VECTOR3D In der in SMC_CNC lib enthaltenen Struktur SMC_VECTOR3D wird ein 3 dimensionaler Vektor gespeichert TYPE SMC VECTOR3D STRICH AX LREAL AY LREAL AZ LREAL END STRUCT END TYPE SMC_VECTOR6D In der in SMC_CNC lib enthaltenen Struktur SMC_VECTOR6D wird ein 6 dimensionaler Vektor gespeichert TYPE SMC VECTOR6D STRUCT dX LREAL AY LREAL AZ LREAL AA LREAL AB LREAL AC LREAL END STRUCT END TYPE SMC_OUTQUEUE und ihre Funktionen Die in SMC_CNC lib enthaltenen SMC_OUTQUEUE Struktur hilft GEOINFO Objekte in einer Liste definierter Gr e zu verwalten TYPE SMC OUTOUEUE STRUCT WOUTQUBUESTLUCSELD WORD pbyBuffer POINTER TO BYTE nSize UDINT nReadPos UDINT nWritePos UDINT bFull BOOL bEndOfList BOOL byGenerator BYTE END STRUCT END TYPE Mittels der Variable wOUTQUEUEStructID die einen festen Wert hat berpr fen die Bausteine intern ob die bergebene Strukturvariable vom Typ SMC_OutQueue ist Die Variable byGenerator beschreibt den Erzeuger der Queue Diese Information benutzt der Interpolator um zu berpr fen ob der SMC_CheckVelocities Baustein wie vorgeschrieben als letztes durchlau
61. Achsstellung A B C Achse SMC_TRAFOF_Tripod 8 3 sML_TRAFOF_TRIPOD dinnerRadius LREAL dQuterRadius LREAL dLength LREAL dDistance LREAL dFotationofset LEREAL ink d ffsetA LREAL doffsetd LREAL drRatiolnner uter d ffsett LREAL adnk ARRAY D 5 OF LREAL Drive AXIS_REF WARUN_OUT adnyi ARRAY 0 5 OF LREAL DriveB AXIS_REF WARUN_OUT adno ARRAY 0 5 OF LREAL Drivel AMIS_REF WARUN OUT adnyo ARRAY 0 5 OF LREAL Drives AMlS_REF WAR UN OUT DriveB AMIS_REF WAR UN OUT Drive AXIS_REF WAR UN OUT dinnerRadius dOuterRadius dLength dDistance dRotationOffset dOffsetA dOffsetB dOffsetC LREAL siehe SMC_TRAFO_TRIPOD DriveA DriveB DriveC AXIS_REF A B und C Achse bError BOOL TRUE Unzul ssige Werte dx dy dz LREAL X Y Z Position des Zentrums des inneren Rings in Weltkoordinaten dnx dny LREAL Genormte Position des Manipulators f r Visualisierung dRatiolnnerOuter LREAL Verh ltnis der Radien des inneren zum usseren Ring f r Visualisierung adnxi adnyi adnxo adnyo ARRAY 0 5 OF LREAL Genormte Anfangs und End Position der St be f r Visualisierung R umliche Transformationen Manchmal unterscheiden sich die Koordinatensysteme der Maschine und des Bearbeitungsst ckes Obige Transformationsbausteine wandeln die kartesischen Koordinaten des Werkzeugpunkts in dessen Maschinenkoordinaten um Vorausgehend kann es aber n tig sein falls das
62. Alpha dBeta dGamma LREAL Gelenkwinkel Achsstellungen ohne Offset f r Visualisierung dpx dpy LREAL Genormte Position des 1 Gelenks 1 1 f r Visualisierung dppx dppy LREAL Genormte Position des 2 Gelenks 1 1 f r Visualisierung SoftMotion in CoDeSys 2 3 Kapitel 8 Die Bibliothek SM_Trafo lib dnx dny LREAL Genormte Position des Manipulators 1 1 f r Visualisierung dR1 dR2 dR3 LREAL Relative Arml ngen dR1 dR2 dR3 1 0 1 f r Visualisierung 8 2 6 Parallel Kinematiken SMC_TRAFO Tripod Sb _TRAFO_TRIFOD pi SmZ_Posinfo Error BOL AlnnerRadius LREAL dA LREAL d uterkadius LREAL dB LREAL dLength LREAL dc LREAL dDistance LREAL ARotation fset LREAL Ic ffsetA LREAL doffsetd LREAL I ffsetl LREAL pi SMC_Posinfo Soll Positionsvektor Position des Mittelpunkts des inneren Rings Ausgang des Interpolators dinnerRadius LREAL Radius des inneren Rings dOuterRadius LREAL Radius des usseren Rings dLength LREAL Stabl ngen dDistance LREAL Abstand zwischen zwei zusammengeh renden St ben am usseren und inneren Ring dRotationOffset LREAL Richtung in Grad mathem Sinn in welcher die Achse A vom Ursprung 0 0 aus gesehen liegt dOffsetA dOffsetB dOffsetC LREAL Offset der einzelnen Achsen bError BOOL TRUE Unzul ssige Werte Arbeitsbereich verlassen SoftMotion in CoDeSys 2 3 8 13 R umliche Transformationen dA dB dC LREAL
63. Array aus G Code Worten abgelegt und wird zur Laufzeit des SPS Programms mit Hilfe eines Decoder Bausteins entschl sselt so dass f r die einzelnen Bahnobjekte GEOINFO Strukturobjekte zur Verf gung stehen Diese k nnen dann mit Hilfe von Bahnvorverarbeitungsmodulen z B Werkzeugradiuskorrektur bearbeitet werden anschlie end interpoliert transformiert und dem Drive Interface wieder zur Kommunikation an die Hardware bergeben werden Sehen Sie hierzu die Bausteine der SM_CNC lib Kapitel 6 Das CNC Programm wird als Liste OUTQUEUE Struktur von GEOINFO Strukturobjekten in eine Datenstruktur geschrieben und kann so direkt in den Interpolator eingegeben werden Im Vergleich zu a spart man dadurch den Aufruf des Decoder und der Bahnvorverarbeitungs Funktionsbaustein Daf r hat man auch nicht die M glichkeit das Programm zur Laufzeit zu ve ndern Das CNC Programm wird in der Form a bzw b in das Dateisystem der Steuerung geschrieben und zur Laufzeit Schritt f r Schritt ausgelesen und umgesetzt Diese Methode eignet sich vor allem f r gro e Programme die nicht komplett im Speicher gehalten werden k nnen IEC Programm mit bergeordneter kartesische Koordinaten Vorw rts maschinenabh ngig R ckw rts Rechnunc Transformation Rechnung Motorstellungen Konfigurationsraum Drive Interface SoftMotion in CoDeSys 2 3 3 1 3 2 3 2 Unterst tzte und erweiterte Elemente der CNC Sprache DIN66025 Unterst tzte und erwei
64. BOOL IDirection LREAL gA LREAL d fsetA LREAL dB LEREAL dofseld LREAL dE LREAL dofsett LREAL d rmLengthi LREAL d rmLengthz LREAL d rmLengtha LREAL bElhowLow BOOL pi SMC_Posinfo Soll Positionsvektor Ausgang des Interpolators dDirection LREAL Richtungswinkel des letzten Gelenks in Grad 0 W 90 N dOffsetA dOffsetB dOffsetC LREAL Offset f r A B und C Achse SoftMotion in CoDeSys 2 3 8 11 Transformations Funktionsbl cke dArmLength1 dArmLength2 dArmLength3 LREAL L nge der Arme bElbowLow BOOL Ellbogen 1 und 2 Gelenk nach unten TRUE bzw oben FALSE bError BOOL TRUE Unzul ssige Werte dA dB dC LREAL Achsstellung A B C Achse SMC_TRAFOF _Scara3 8 12 SMC _TRAFOF_SCARAJ d fsetA LREAL d fsetB LREAL d fsetl LREAL d rmLengthi LREAL dAlpha dArmLength2 LREAL dHeta d rmLengtha LREAL Gamma Drive AMIS_REF WARLUN OUT pe DrivebB A IS_REF WARUM LOUT dpr Drive ASIS_REF WARUN OUT Appx dpp An Any Ari dR z dR3 Drive AXIS_REF WARUM OUT DriveB AXIS_REF WARUM OUT Drive t AXIS_REF WARUN OUT dOffsetA dOffsetB dOffsetC LREAL Offset f r A B und C Achse Gleiche Werte wie bei SMC_TRAFO_ScaraS3 dArmLength1 dArmLength2 dArmLength3 LREAL L nge der Arme DriveA DriveB DriveC AXIS_REF A B und C Achse bError BOOL TRUE Unzul ssige Werte dx dy LREAL x y Position in Weltkoordinaten d
65. Bewegung der Achse mit vorgegebener Geschwindigkeit Um diese Geschwindigkeit zu erreichen h lt sich MC_MoveVelocity an die programmierten Werte von Beschleunigung und Bremsung Die Sollgeschwindigkeit ist immer positiv Die Eingangsvariable Direction legt die Richtung fest ML_MOWEYELOGITY Inveloct BOOL ommandAborted BO OL Acceleration LREAL Deceleration LREAL Direction Me Direction Axis i AsIS_REF MARIN OLUT Als AXIS_REF wWARIN_OILT Ein Ausgang VAR IN OUT des Bausteins Axis AXIS_REF Hier wird die Struktur bergeben die im Drive Interface SM_DriveBasic lib mit den Daten der Achse gef llt wurde Eing nge des Bausteins Execute BOOL Default FALSE Bei einer steigenden Flanke wird der Baustein aktiv Velocity REAL Wert der maximalen Geschwindigkeit die jedoch nicht zwingend erreicht werden muss u s Acceleration REAL Gew nschte Beschleunigung u s Deceleration REAL Gew nschter Bremswert u s Direction MC_Direction Default current Dieser Enumerationswert gibt die gew nschte Richtung an siehe SM_DriveBasic lib Zul ssige Werte current positive negative SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib Ausg nge des Bausteins InVelocity BOOL Default FALSE TRUE zeigt an dass die vorgegebene Geschwindigkeit erreicht ist CommandAborted BOOL Default FALSE Die gestartete Bewegung wurde durch einen anderen Funktionsblock der
66. Copen folgen beginnen mit MC_ lt Bausteinname gt w hrend 3S spezifische Bausteine als SMC_ lt Bausteinname gt benannt sind Die g nzlich in IEC1131 3 programmierten Funktionsbl cke lassen sich in drei Kategorien einteilen e Bausteine zur allgemeinen Bedienung berwachung und Parametrierung einzelner Antriebe Eine Beschreibung sehen Sie in Kapitel 5 3 e Bausteine zur unabh ngigen Bewegungssteuerung einzelner Antriebe Mit Hilfe dieser Bausteine k nnen einzelne Achsen autonom auf verschiedene Arten bewegt werden Eine Beschreibung sehen Sie in Kapitel 5 3 e Bausteine zur Bewegungssteuerung eines Antriebs Slave in Abh ngigkeit eines weiteren Master Diese Bausteine bieten die M glichkeit Kurvenscheiben elektronische Getriebe und Phasenverschiebungen zu realisieren Eine Beschreibung sehen Sie in Kapitel 5 4 e Zusatzbausteine siehe Kapitel 5 5 e Au erdem sind f r alle wichtigen Bausteine Visualisierungs Templates in der Bibliothek enthalten die mit einer Instanz des zugeh rigen Bausteins verkn pft dessen Ein und Ausg nge darstellen und v a f r die Applikations Erstellungs und Testphase von gro em Nutzen sind Voraussetzungen Diese Bibliothek baut auf der Bibliothek SM_DriveBasic lib siehe Kapitel 2 3 auf in welcher u a die Struktur AXIS_REF definiert ist PLCopen Spezifikation Function blocks for motion control Version 1 0 Es wird empfohlen neben dieser Beschreibung die PLCopen Spezifikation Fun
67. Deklarationsteil des IEC Programms mittels eines Arrays of SMC_Geolnfo z B BUF ARRAY 1 50 OF SMC GEOINFO f r einen Buffer der 50 Bahnelemente aufnehmen kann Auch dieser Wert darf gesetzt und sp ter nur w hrend eines Resets ver ndert werden SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib Ausg nge des Bausteins bDone BOOL Diese Variable wird auf TRUE gesetzt wenn die Eingangsdaten aus Dataln vollst ndig verarbeitet sind Hernach f hrt der Baustein bis zu einem Reset keine Aktionen mehr durch Steht der bExecute Eingang auf FALSE wird bDone wieder auf FALSE gesetzt bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ERROR INT Sollte ein Fehler auftreten enth lt diese Variable die Fehlernummer poqDataOut POINTER TO SMC_OUTQUEUE Dieser Ausgang zeigt auf eine SMC_OUTQUEUE Struktur die die SMC_GEOINFO Objekte der schleifenfreien Bahn verwaltet iStatus SMC_AL_STATUS INT In dieser Enum Variable wird der aktuelle Status des Bausteins ausgegeben Dieser kann sein Schleifenvermeidung ausgeschaltet 1 Schleifenvermeidung eingeschaltet 2 Abarbeitung der Objekte abgeschlossen 6 2 5 SMC_SmoothPath Der SMC_SmoothPath Baustein SM_CNC lib ist ein m glicher Teil der Bahnvorverarbeitung Er verrundet Bahnecken so dass sich eine glatte Bahn ergibt Eckverschleifung Der Sinn besteht darin dass wenn die Fahrgenauigkeit im Verh ltnis zur Geschwindigkeit eine
68. EF x Y Achse dx dy LREAL x y Position in Weltkoordinaten dnx dny dni dnOffsetX dnOffsetY LREAL genormte x und y Position 0 1 Werkzeugl nge und Offsets f r Visualisierung ratio LREAL Verh ltnis zwischen x Intervall und y Intervall f r Visualisierung SMC_TRAFO_Gantry2Tool2 SMC _TRAF _GANTRYZTOGLZ pi SmMZ_Posinfo d fsets LREAL d fsefr LREAL dAlpha LREAL JToolA LREAL AToolB LREAL pi SMC_Posinfo Soll Positionsvektor Ausgang des Interpolators dOffsetX dOffsetY LREAL Offset f r x und y Achse dAlpha LREAL Ausrichtung des Werkzeugs in Winkelgrad dToolA dToolB LREAL Kathetenl ngen des rechtwinkligen Dreiecks welches zwischen Drehpunkt und Werkzeugpunkt liegt Dabei ist dToolA die L nge der zur Bahn tangentialen dToolB die L nge der zur Bahn orthogonalen Kathete Ist dToolB positiv so ist der Werkzeugpunkt x y in Werkzeugrichtung gesehen links verschoben ansonsten rechts dx dy LREAL Sollwerte f r x und y Achse 8 6 SoftMotion in CoDeSys 2 3 Kapitel 8 Die Bibliothek SM_Trafo lib SMC_TRAFOF _Gantry2Tool2 SMC _TRAFOFLGANTRTZTOOLZ d ffset LREAL HM dofsetr LREAL d y dAlpha LEEAL Arne dTo0l LREAL Am dToolB LREAL dnt mins LREAL Andy mar LREAL Ant min LREAL dnl mas LREAL ratio Drives ARIS _ REF WARUM OUT dnofsets Drive AKIS_REF WAARIN OLUT An fsetr Driver AKSIS_REF MARIM OUT Driver ASIS_REF MARIM OUT dO
69. F SMC GEOINFO f r einen Buffer der 50 Bahnelemente aufnehmen kann Auch dieser Wert darf gesetzt und sp ter nur w hrend eines Resets ver ndert werden Ausg nge des Bausteins bDone BOOL Diese Variable wird auf TRUE gesetzt wenn die Eingangsdaten aus Dataln vollst ndig verarbeitet sind Hernach f hrt der Baustein bis zu einem Reset keine Aktionen mehr durch Steht der bExecute Eingang auf FALSE wird bDone wieder auf FALSE gesetzt bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ERROR INT Sollte ein Fehler auftreten enth lt diese Variable die Fehlernummer poqDataOut POINTER TO SMC_OUTQUEUE Dieser Ausgang zeigt auf eine SMC_OUTQUEUE Struktur die die versetzte Bahn als Liste von SMC_GEOINFO Objekten enth lt iStatus SMC_TC_STATUS INT In dieser Enum Variable wird der aktuelle Status des Bausteins ausgegeben Dieser kann sein Bi Keine Werkzeugradiuskorrektur am aktuellen Objekt Versetze Objekte nach rechts 2 Versetze Objekte nach links Ben De Abarbeitung der Objekte abgeschlossen SoftMotion in CoDeSys 2 3 6 27 6 2 4 6 28 Bausteine SMC_AvoidLoop Der Baustein SMC_AvoidLoop SM_CNC lib dient der u Bahnvorverarbeitung Er erzeugt aus einer vorgegebenen Bahn eine schleifenfreie Kopie dieser Bahn Existiert also in der Originalbahn ein Punkt bei dem sie sich selbst schneidet wird die Bahn an diesem Punkt abgeschnitten die Schleife herausgelassen und mit
70. ID ag Typ ratatorisch modulo i linear Umrechnungsfaktor 360000 Inkremente Er Motordrehungen i Getnebeeingangsumdrehungen Er i Getnebesusgangsumdrehungen i Getiebeausgangsumdrehunger lt gt 360 SoftMatcn Einheiten Einstellungen fur Inearen Antrieb Sofware Endschalter benutzen neg Endschalter pos Endschalter zuklische Kommun katians D aten SPs gt Drive M POS M WEL ACC TOR CUR Drive gt SPS M Pos 7 WEL Acc TOR C CUR Wlasimalwerte Geschwundgkeits Aampentyp Geschwindigkeit 100 00000 trapezoid Beschleunigung 11 00 DOC s Jerk verzogerung i 00 0000 f In diesem Dialog wird die Antriebs ID Drive ID festgelegt Au erdem wird der Antriebstyp ausgew hlt linear oder rotatorisch Modulo Im Bereich Umrechnungsfaktor bestimmt man die Umrechnung zwischen den vom Antrieb empfangenen Ganzzahl Positionswerten erste Zeile links und den technischen Einheiten die man im IEC Programm verwendet erste Zeile rechts Dabei kann au erdem noch ein Getriebe ber cksichtigt werden zweite und dritte Zeile Im obigen Beispiel w rde ein Antrieb der f r eine Umdrehung 3600000 Inkremente erzeugt so skaliert werden dass die technischen Einheiten in Winkelgrad vorliegen Im Bereich Einstellungen f r k nnen je nach gew hltem Antriebstyp s o f r lineare Antriebe Software Endschalter definiert werden bzw muss f r rotatorische Antriebe der Modulo Bereich festgelegt werden
71. INIErBOA ONE are een 3 6 3 25 Splneinterpolalions en anne 3 6 3 27 Bedingt SPrUNgE anne ee eek 3 6 3 2 8 Variablenwerte ver nden 022u024002000 000nnno nun nenn nen nenn nenn nnnn anne anne nnnannnnnnn 3 6 3 8 Start des Editors Einf gen und Verwalten von CNC Programmen 3 7 3 4 ONGC TEXIEAIO Fr ee een 3 10 3 5 CNC Graphische Edo ana ni 3 11 3 6 Kommandos und Optionen im CNC Editor a nannoanonnonnonnsnnennenrernsrrnrrerrrrrrrrrene 3 11 3 7 Automatische Strukturbef llung im CNC Editor annaaneannnnnnnnnennnnnnnnnnnnnnnnnnnn 3 14 4 Der CAM Editor in CoDeSys 4 1 4 1 6 10 e K ara r a S 4 1 SoftMotion in CoDeSys 2 3 101 IO IN 100 Inhalt 4 2 Definition einer Kurvenscheibe f r SoftMotion 0220022002200220ene een 4 1 4 3 Starten des CAM Editor und Erstellen einer Kurvenscheibe 4 1 4 4 Editieren einer Kurvenscheibe 22022202402200200000 non ann nnennnnnn ann nenn ene nenn 4 3 4 4 1 Allgemeine Editor Einstellungen 0220024002000000000000n0nnnonnn ann nnn anne 4 3 4 4 2 Bearbeiten der Eigenschaften einzelner Kurvenelemente 4 4 4 4 3 Befehle der Men s Extras und Einf gen u22200220022n0nnnenennnnennnnnnnnnnenn 4 6 4 5 Verwendung von Kurvenscheiben 022402240224000n nen nnn ann nnenenenene nennen 4 9 4 5 1 Au
72. Interface SMC_IsAxisGroupReady Diese Funktion gibt ber eine BOOLsche Variable zur ck ob der Hochlauf der f r jede Achsgruppe implizit beim Start des IEC Programms durchgef hrt wird abgeschlossen ist und diese mit ihren Achsen betriebsbereit ist TRUE oder ob der Hochlauf noch nicht abgeschlossen oder ein Fehler aufgetreten ist FALSE SMC_GetAxisGroupState Dieser Funktionsblock gibt genauer ber den Zustand der Achsgruppe Aufschlu Eing nge VAR _INPUT des Bausteins bEnable BOOL Ist dieser Eingang TRUE liefert der Baustein Informationen ber den Zustand der Achsgruppe Ein Ausg nge VAR_IN OUT des Bausteins AxisGroup SMC_AXISGROUP_REF Achsgruppe f r die Informationen ben tigt wird Ausg nge VAR _ OUTPUT des Bausteins bDone BOOL TRUE sobald g ltige Daten auf den Ausg ngen wState WORD Interne Zustandsvariable der Achse bStartingUp BOOL Achsgruppe wird hochgefahren d h die Antriebe werden konfiguriert 0 lt wState lt 99 bNormalOperation BOOL Achsgruppe im normalen Betrieb wState 100 bResetting BOOL Achsgruppe wird gerade reinitialisiert 200 lt wState lt 210 bErrorDuringStartUp BOOL W hrend des Hochlaufs trat ein Fehler auf wState gt 1000 pErrorDrive POINTER TO AXIS_REF Zeiger auf die Fehler verursachende Achse Nur g ltig wenn bErrorDuringStartUp TRUE Mithilfe dieser Ausgabe kann die fehlerhafte Achse durch Setzen der Variable bDisableDrivelnAxisGroup zur La
73. M _Trafo lib 8 1 SM _Trafo lib 1 2 SoftMotion in CoDeSys 2 3 Index SMC_ CalcDirectionFromVector 8 5 SMC_ CheckVelocities 6 32 SMC_AvoidLoop 6 28 SMC_AxisDiagnosticLog 10 3 SMC_CAMEditor 5 20 SMC_CAMRegister 5 21 SMC_CAMTable_ lt Variablen Typ gt _ lt Anzahl Elemente gt _1 4 14 SMC_CAMTable_ lt Variablen Typ gt _ lt Anzahl Elemente gt _2 4 14 SMC_CAMVisu 5 20 SMC_ChangeGearingRatio 2 10 SMC_CheckLimits 2 14 SMC_CNC_REF 6 46 SMC_CNC_REF Daten 7 1 SMC_ControlAxisByPos 2 15 SMC_ControlAxisByPosVel 2 15 SMC_ControlAxisByVel 2 16 SMC_DetermineCuboidBearing 8 16 SMC_Error 9 1 SMC_ErrorString 9 1 SMC_FollowPosition 2 12 SMC_FollowPositionVelocity 2 13 SMC_FollowVelocity 2 13 SMC_GCode Word 6 46 SMC_GCodeViewer 6 25 SMC_GEOINFO 6 41 SMC_GEOINFO Objekte verwalten 6 44 SMC_GetAxisGroupState 2 9 SMC_GetCamSlavePosition 5 18 5 19 SMC_GetMaxSetAccDec 2 19 SMC_GetMaxSetVelocity 2 19 SMC_GetMParameters 3 5 6 38 SMC_GetTappetValue 5 22 SMC_GetTrackingError 2 19 SMC_Homing 2 17 SMC _Interpolator 6 34 6 38 SMC_Interpolator2Dir 6 39 SMC_Interpolator2Dir _SlowTask 6 39 SMC_IsAxisGroupReady 2 9 SMC_NCDECODER 6 23 6 24 SMC_OutQueue Daten 7 1 SMC_POSINFO 6 41 SMC_ReadCAM 10 3 SMC_ReadCANParameter 2 21 SMC_ReadFBeError 9 1 SMC_ReadNCFile 10 2 SMC_ReadNCQueue 10 1 SMC_ReadSetPosition 5 22 SMC_ResetAxisGroup 2 9 2 10 SMC_ROTATEQUEUE2D 6 40 SMC_RoundPath 6 31 SMC_SCALEQUEUESD 6 40 SMC_SetControllerMode 2 11 SMC_SetPosition 5 13 SMC_S
74. MC_Interpolator SMC_INT_VEL_NONZERO_AT_STOP Geschwindigkeit an Stopp Punkt gt 0 1005 SMC_Interpolator SMC_INT_TOO_MANY_RECURSIONS Zu viele SMC_Interpolator Rekursionen SoftMotion Fehler SMC_Interpolator SMC_INT_NO_CHECKVELOCITIES Die Eingangs OutQueue Dataln hatte nicht den Baustein SMC_CHeckVelocities als letztes durchlaufen 1007 SMC_Interpolator SMC_INT_PATH_EXCEEDED Intener numerischer Fehler 1050 SMC_Interpolator2Dir SMC_INT2DIR_BUFFER_TOO_SMALL Datenpuffer zu klein 1051 SMC_Interpolator2Dir SMC_INT2DIR_PATH_FITS_NOT_IN_QU Bahn passt nicht EUE vollst ndig in die Queue 1080 SMC_Interpolator SMC_WAR_INT_OUTQUEUE TOO_SMA Warnung OutQueue LL Dataln zu klein dimensioniert Einhalten von Stopps kann nicht garantiert werden SMC_Interpolator SMC_WAR_END_VELOCITIES_INCORR Warnung ECT Endgeschwindigkeiten inkonsistent SMC_CheckVelocities SMC_CV_ACC_DEC_VEL_NONPOSITIVE Geschwindigkeit Brems oder Beschleunigungswerte unzul ssig 1200 SMC_NCDecoder SMC_DEC_ACC_TOO_LITTLE Beschleunigungswert unzul ssig 1201 SMC_NCDecoder SMC_DEC_RET_TOO_LITTLE Beschleunigungswert unzul ssig 1202 SMC_NCDecoder SMC_DEC_OUTQUEUE RAN EMPTY Data underrun Queue wurde leergelesen 1300 SMC_GCodeViewer SMC_GCV_BUFFER TOO SMALL Buffer zu klein 1301 SMC_GCodeViewer SMC_GCV_BUFFER_WRONG TYPE Bufferelemente haben falschen Typ 1302 SMC_GCodeViewer SMC_GCV_UNKNOWN_IPO_LINE Aktuelle Zeile des Interpolators konnte nicht gefun
75. MC_RoundPath durchlaufen werden dVel dVelEnd LREAL Diese beiden Variablen die in jedem Fall belegt sein m ssen enthalten Information f r das Geschwindigkeitsprofil in diesem Objekt dVel beschreibt die Soll Geschwindigkeit die erreicht werden soll dVelEnd die Geschwindigkeit die am Ende des Objekts gefahren werden muss siehe Der Baustein SMC_Interpolator jeweils in Wegeinheiten sec dAccel dDecel LREAL In dAccel und dDecel werden die maximal zul ssige Beschleunigung und Verz gerung in Wegeinheiten sec gespeichert beide Variablen sind mit dem Wert 100 vorbelegt dLength LREAL Diese Variable die unbedingt belegt sein muss enth lt die L nge des Objekts in Wegeinheiten byIntern_Mark BYTE Hier sind Start und Ende von Bahnvorverarbeitungen folgenderma en abgelegt Bit O gesetzt Ende der Werkzeugradiuskorrektur nach diesem Objekt Bit 1 gesetzt Beginn der Werkzeugradiuskorrektur links bei diesem Objekt Bit 2 gesetzt Beginn der Werkzeugradiuskorrektur rechts bei diesem Objekt Bit 3 gesetzt Ende der Bahnverrundungj schleifung nach diesem Objekt SoftMotion in CoDeSys 2 3 6 43 Strukturen der SM_CNC lib Bit 4 gesetzt Beginn der Bahnverschleifung bei diesem Objekt Bit 4 gesetzt Beginn der Bahnverrundung bei diesem Objekt Bit 6 gesetzt Ende der Schleifenvermeidung nach diesem Objekt Bit 7 gesetzt Beginn der Schleifenvermeidung bei diesem Objekt dHelpPos ARRAY 0 MAX_IPOSWITCHES OF LREAL iHelpID ARR
76. ML Files ausgeliefert die in diesem Dialog importiert werden k nnen und alle zul ssigen PackProfile Parameter enthalten Daneben k nnen Parameter die w hrend des Hochlaufs zum Antrieb geschrieben werden sollen definiert werden Initialisierungsdaten Dazu existiert je eine Liste f r Parameter die in Phase2 Phase3 und am Beginn von Phase4 an den Antrieb geschickt werden sollen Mit der richtigen Parameterliste kann so erreicht werden dass der Antrieb am Anfang der Applikation vollst ndig initialisiert wird z B wenn er ausgetauscht werden musste siehe auch 2 5 ber Eintr ge in der Liste gesperrt kann verhindert werden dass einzelne Parameter vom Treiber automatisch bertragen werden Alle diese Einstellungen k nnen mit einer Konfigurationsbezeichnung versehen und in ein XML File abgelegt Schaltfl che speichern bzw aus einem XML File gelesen Schaltfl che laden werden F r CAN Antriebe gibt es ebenso einen speziellen Dialog in welchem Parameter eingetragen werden die w hrend des Hochlaufs zum Antrieb geschrieben werden sollen Auch diese k nnen in XML Files abgelegt und aus solchen geladen werden Encoder Beim bersetzen wird f r jeden konfigurierten Encoder eine Datenstruktur vom Typ SMC_ENCODER_REF angelegt die mit folgenden Werten konfiguriert wird Diese Datenstruktur dient als Eingang f r den Baustein SMC_Encoder der aus der Konfiguration und den Echtzeit Encoder Werten eine virtuelle Ac
77. Master AXIS_REF Masterachse Slave AXIS_REF Slaveachse CamTable MC_CAM_REF Beschreibung der Kurvenscheibe Eing nge des Bausteins Execute BOOL Default FALSE Bei steigender Flanke w hlt der Baustein eine neue Kurvenscheibe Periodic BOOL Default TRUE periodische nicht periodische Kurvenscheibe MasterAbsolute BOOL Default TRUE Kurvenscheibe bezieht sich auf absolute relative bzgl Position bei steigender Flanke im Execute von CAMIn Master Position SlaveAbsolute BOOL Default TRUE Kurvenscheibe bezieht sich auf absolute relative bzgl Position bei steigender Flanke im Execute von CAMIn Slave Position Ausg nge des Bausteins Done BOOL Default FALSE TRUE zeigt an dass die gew nschte Distanz zur ckgelegt wurde Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer CAMTablelD MC_CAM_ID Ausgang der die Kurvenscheibe beschreibt Dient als Eingang f r gleichnamigen Eingang in MC_Camln SoftMotion in CoDeSys 2 3 5 15 Bausteine zur synchronisierten Bewegungssteuerung multi axis MC_Camin Dieser Baustein der SM_PLCopen lib setzt eine in MC_CAMTABLESELECT gew hlte Kurvenscheibe um Zu den Offsets und Skalierungen kann noch der Startmodus definiert werden Man beachte dass die Modi ramp_in ramp_in_pos und ramp_in_neg welche bewirken dass beim Start falls Istwert des Slave und Kurvenschei
78. Mode Camin Baustein 4 10 MasterOffset MasterScaling Diese beiden Einstellungen transformieren die Masterposition gem folgender Formel und verwenden die transformierte Position zur Auswertung der Kurvenscheibe x Master Position MasterScaling MasterOffset MasterScaling gt 1 bewirkt also dass die Kurve schneller abgearbeitet komprimiert wird bei lt 1 wird sie gestreckt SlaveOffset SlaveScaling Diese beiden Einstellungen verschieben und Strecken eine Kurve in Slave Richtung und zwar wird die Kurve zun chst gestreckt und anschlie end verschoben SlaveOffset gt 1 bewirkt dass der Slave eine gr ere Bewegung macht Kurve wird gestreckt bei lt 1 wird sie komprimiert StartMode absolute relative ramp_in ramp_in_pos ramp_in_neg Relativ bedeutet dass die Kurvenscheibe um die aktuelle Slave Position beim Start der Kurvenscheibe verschoben wird Dies ergibt nur dann richtig Sinn wenn die Slavesollposition gem der Kurvenscheibe am Startpunkt 0 ist andernfalls entsteht ein Sprung Absolut bedeutet dass die Kurvenscheibe unabh ngig von der aktuellen Slave Position gewertet wird Steht der Slave auf einer anderen Position als sich aus der Kurvenscheibe und der aktuellen Master Position ergibt entsteht ein Sprung Die ramp_in Option bewirkt dass etwa entstehende Spr nge s o beim Start der Kurvenscheibe durch eine Augleichsbewegung gem den eingestellten Begrenzungen VelocityDiff Accelerat
79. N1020 G1 X0 N1030 G37 D 1 N1040 C20 L1010 3 3 Start des Editors Einf gen und Verwalten von CNC Programmen Der CNC Editor wird unter Ressourcen im Object Organizer gestartet Es ffnet sich ein dreigeteiltes Fenster mit dem Titel CNC Programmliste In der linken Spalte steht eine Liste mit den Bezeichnungen der erstellten Programme Die rechte obere Fensterausschnitt dient als Texteditor in dem das CNC Programm nach DIN66025 eingegeben werden kann siehe Kapitel 3 2 Rechts unten wird dieses graphisch dargestellt und kann dann sowohl im Text als auch im Grafikbereich ver ndert werden wobei es jeweils im anderen Editor automatisch aktualisiert wird In der Men leiste wird das Men Einf gen durch das Men CNC Programm ersetzt solange der CNC Editor aktiv ist Neues CNC Programm W hlen Sie den Befehl Neues CNC Programm im Men CNC Programm oder im Kontextmen wenn der Fokus in der CNC Programnlistenspalte steht Es erscheint der Dialog Programmname in dem die neue Programmbezeichnung vergeben wird Standardm ig werden die CNC Programme mit der Bezeichnung _CNC lt n gt versehen n ist eine mit 1 beginnende fortlaufende Nummerierung Sie k nnen den im Dialog vorgegebenen Programmnamen editieren die Eingabe eines bereits vergebenen wird jedoch nicht akzeptiert Nach Schlie en des Dialogs mit OK erscheint das neue Programm markiert in der Liste Im Texteditor wird die erste Programmzeile angezeigt bei neu
80. OF BOOL Nocken Bits Eing nge des Bausteins Enable BOOL Default FALSE Bei TRUE beginnt der Baustein die Nocken zu schalten MasterOffset REAL Offset auf die Masterposition MasterScaling REAL Default 1 Allgemeiner Skalierungsfaktor f r die Masterachse TappetHysteresis REAL Hystereseumgebung um Nocken DeadTimeCompensation REAL Totzeit in sec Durch lineare Extrapolation wird die zu erwartende Position der Masterachse vorausberechnet SML_CANMREGISTER Master AXIS_REF WAR_IN OUT ZamTakle ME_CAM_REF WARUNLOUT bTappet ARFAY 1 MAS_NUM_TAFPETS OF BOOL WARLIN OUT Ausg nge des Bausteins Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer EndOfProfile BOOL Beim bergang vom Profilende zum anfang wird dieser Ausgang f r einen Zyklus TRUE SMC_GetTappetValue Dieser Baustein wertet den Tappets Ausgang des Bausteins MC_Camin aus und gibt den aktuellen Status einer Nocke aus SoftMotion in CoDeSys 2 3 5 21 Zusatzbausteine Ein Ausg nge VAR _IN OUT des Bausteins Tappets SMC_TappetData Eing nge des Bausteins ID INT Gruppen ID der auszuwertenden Nocke bInitValue BOOL Initialwert der Nocke Wird beim ersten Aufruf zugewiesen bSetlnitValueAtReset BOOL TRUE beim Neustart des Camin FBs wird der Wert der Nocke auf bInitValue gesetzt FALSE beim Neustart des Camin FBs bleibt der Nockenwert
81. ONFIGURABLE manuelle Konfiguration ber wCyclicDataS1 S2 S3 und wCyclicDataR1 R2 R3 s u wCyclicDataS1 Definition der Sende S und R ckmeldedaten R wenn wControlType auf wCyclicDataS2 CONFIGURABLE eingestellt ist Auswahlm glichkeiten sind abh ngig vom wCyclicDataS2 jeweiligen Antriebs Treiber Grunds tzlich m glich Act SetPosition Position Act SetVelocity Geschwindigkeit Act SetTorque Drehmoment Torque Act SetCurrent Strom Act SetUserDef benutzerspezifische Definition wCyclicDataR1 wCyclicDataR2 wCyclicDataR3 dwRatioTechUnitsDenom Nenner und Z hler f r Umrechnungsfaktor von Busdaten in technische Einheiten IRatioTechUnitsNum u DWORD bzw INT iIMovementType Bewegungstyp Auswahlm glichkeiten linear linear oder rotatorisch rotary fPositionPeriod Periode f r rotatorische Achsen in technischen Einheiten Man beachte dass diese umgerechnet in Inkremente durch dwRatioTechUnitsDenom und iRatioTechUnitsNum nicht gr er sein darf als 16 80000000 fSWMaxVelocity Maximale Geschwindigkeit f r Software berpr fung fSWMaxAcceleration Maximale Beschleunigung f r Software berpr fung fSWMaxDeceleration Maximale Bremsung f r Software berpr fung bSWLimitEnable Software Positions berpr fung einschalten nur lineare Antriebe die bewirkt dass Achse in Fehlerzustand gesetzt wird wenn sie das Positionsfenster verl sst fSWLimitNegative negative Positionsgre
82. OUT Dieser Baustein ist f r das Erzeugen des R ckw rts Pfades verantwortlich Er wurde von SMC _Interpolator2Dir abgespalten damit er auf stark ausgelasteten und weniger performanten Zielsystemen in eine nieder priore Task ausgelagert werden kann Eing nge des Bausteins dAngleTol LREAL Winkeltoleranz f r den R ckw rtspfad Typischerweise identisch zur Winkeltoleranz des Ur Pfades nSizeOutQueue UDINT pbyBufferOutQueue POINTER TO BYTE SoftMotion in CoDeSys 2 3 6 39 6 3 6 4 6 40 Hilfsfunktionen und funktionsbl cke f r Bahnrotationen translationen und skalierungen Gr e und Zeiger auf Datenpuffer in welchen die R ckw rtsbahn gespeichert werden soll Muss mindestens so gro sein dass die komplette Bahn darin Platz findet Ipo2d SMC _Interpolator2Dir SMC _Interpolator2Dir Instanz f r welche der R ckw rts Pfad erzeugt werden soll Hilfsfunktionen und funktionsbl cke f r Bahnrotationen translationen und skalierungen Die in der SM_CNC ib enthaltenen Funktionsbl cke SMC_RotateQueue2D und SMC_TranslateQueue3D drehen bzw verschieben die in einer SMC_OutQueue gespeicherte Bahn ber die Eingangsvariable Dataln bergibt man die zu rotierende bzw zu verschiebende Bahn in Form eines Pointers auf das SMC_OUTQUEUE Strukturobjekt Der Eingang bEnable der mit FALSE initialisiert ist verhindert so lange das Rotieren bzw Versetzen der Bahn bis er auf TRUE gesetzt wird Dann w
83. QUEUE verarbeitet worden ist Dann kann ein weiteres Objekt angef gt werden Will man dies vermeiden muss die OUTQUEUE so gro gew hlt werden dass alle GEOINFO Objekte der gew nschten Bahn darin Platz finden Die Objektliste Queue wird erst dem CheckVelocities Baustein und schlie lich dem Interpolator bergeben der diese weiter verarbeitet In diesem Beispiel wird au erdem gezeigt wie eine kinematische Transformation die in der von 3S zur Verf gung gestellten Bibliothek SM_Trafo lib nicht enthalten ist selbst programmiert werden kann Die in dieses Projekt eingeh ngten Bausteine SMC_TRAFO und SMC_TRAFOF zeigen dies am Beispiel f r ein kartesisches X Y System SoftMotion in CoDeSys 2 3 11 15 Beispiel Dynamische SoftMotion Programmierung 11 16 SoftMotion in CoDeSys 2 3 12 Index A Achse 5 2 Achsgruppe 2 2 Achsgruppenkonfiguration 2 2 Achsstatus 5 2 Antrieb 2 2 Antriebsfehler 9 1 Antriebskonfiguration 2 4 Antriebsparametrierung 2 27 Antriebstreiber 2 21 aquidistant 4 7 Ausgabegr sse anpassen 3 12 Automatische Codegenerierung 2 8 AXIS_REF Struktur 2 23 Axisgroup 2 2 AxisGroup Konfiguration 2 2 B Bahnabschnitt 6 41 Bahnecken verrunden 6 29 Bahnrotation 6 40 Bahntranslation 6 40 Bahnvorverarbeitung 6 29 Bausteinfehler 9 1 Bedingte Spr nge 3 6 Beschleunigungs Sollwerte 5 19 Bibliothek Herstellerspezifische Drive Lib 2 8 SM_CNCDiagnostic lib 7 1 SM _DriveBasic lib 4 12 SM _Error lip 9 1 SM _Fil
84. RUM OUT MC_Phasing 9 9 Dieser Baustein der SM_PLCopen lib sorgt f r eine konstanten Abstand zwischen der Master und Slave Achse In diesem Fall haben Master und Slave nat rlich gleiche Geschwindigkeit und Beschleunigung Um dies zu erreichen erh lt die Slave Achse mittels Beschleunigung oder Bremsung die gleiche Geschwindigkeit wie die Master Achse Ist dies erreicht wird auf der Master Achse eine zus tzliche Bewegung hnlich MC_MoveSuperlmposed ausgef hrt die die gew nschte Phasenverschiebung bewirkt Der Baustein MC_Phasing bleibt so lange aktiv bis er von einem anderen Baustein unterbrochen wird Wi PHASING Execute BOOL Done BOOL Fhaseshift LREAL ommand abored BOGL welocity LREAL Error BOOL Acceleration LREAL ErrorlD WORD Deceleration LREAL Master AHlS_REF wWARIM_OLT Master ASIS_REF WARUN OUT Slave AXIS_REF KARUN_OUT Slave AXIS_REF WARUN OUT Zusatzbausteine SMC_GetCamsSlaveSetPosition Dieser Baustein berechnet die aktuelle Sollposition einer Achse Slave wenn diese mit einer Kurvenscheibe an die Bewegung einer anderen Achse Master gekoppelt w re Beide Achsen werden dabei aber nicht bewegt oder beeinflusst Zur Anwendung kommt dieser Baustein wenn eine Slave Achse vor dem Einkuppeln in eine Kurvenscheibe auf die dadurch entstehende Sollposition bewegt werden soll Der Baustein errechnet den entsprechenden Wert innerhalb eines Zyklus weshalb ein Done Ausgnag nicht n tig ist
85. SE Bei TRUE wurde der Befehl durch einen anderen abgebrochen Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer MC_Stop Dieser Baustein der SM_PLCopen lib bremst die Achse auf Geschwindigkeit 0 Dieser Baustein kann nicht unterbrochen werden und blockiert die Achse so lange wie der Eingang Execute gesetzt und die Achse noch nicht vollst ndig abgebremst ist SoftMotion in CoDeSys 2 3 5 5 Bausteine zur Bewegungssteuerung einzelner Achsen MC_STOFP Execute BODL Deceleration LREAL Axis AsIS_REF MARIN _ OLUT Axis AalS_REF WARIN_OLT Ein Ausgang VAR IN OUT des Bausteins Axis AXIS_REF Hier wird die Struktur bergeben die im Drive Interface SM_DriveBasic lib mit den Daten der Achse gef llt wurde Eing nge des Bausteins Execute BOOL Default FALSE Bei einer steigenden Flanke wird der Baustein aktiv d h beginnt den Bremsvorgang Deceleration REAL Bremswert u s Ausg nge des Bausteins Done BOOL Default FALSE TRUE zeigt an dass der Antrieb steht Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer MC_MoveAbsolute 5 6 Dieser Baustein der SM_PLCopen lib bewegt die Achse an eine absolute Position entsprechend der vorgegebenen Werte von Geschwindigkeit Bremsung und Beschleunigung Bei einer Linearachse hat
86. SME _INT_STATJS bh ommandAbored BOOL hEnable BOOL Error BOOL b voidGaps BOOL iErrorlD SMC ERROR fSetFosition LEEAL bStoplpo BOOL fSeftrelocity LREAL Axis AXIS_REF WARLUMLOUT foapelocity LREAL tsapAcceleration LREAL tsapDeceleration LREAL Axis ARlS_REF WARUN_OUT SMC_ControlAxisByVel Dieser Baustein funktioniert hnlich wie SMC_ControlAxisByPos nur dass die Achse nicht ber die 2 2 6 Position sondern ber die Geschwindigkeit gesteuert wird SMC CONTROLAAISENTWEL istatus SMEMTLSTATUS bcommandAborted BOOL bEnable BOOL bError BOL b voidGaps BOOL iErrorlD SMC_ERROR tseWelochty LREAL hStoplpo BOOL tSapAcceleration LREAL Axis AAlS_REF WARLUMNLOUT tSapDeceleration LREAL Axis ASIS_REF WARUN_OUT Virtuelle Zeit Achse aM _TIMEARISFE bExecute BOOL Axis A sIS_REF bFeriodic BOL fFeriod LREAL foverride LREAL RamplaTime LREAL fTaskCYycle LREAL Dieser Funktionsbaustein erzeugt eine Zeitachse die er im Ausgang Axis AXIS_REF zur Verf gung stellt Mit einer steigenden Flanke im Eingang bExecute beginnt die Sollposition der Zeitachse bei 0 beginnend in Sekunden hochzuz hlen Ist der Eingang bPeriodic gesetzt so beginnt sie beim Erreichen der Zeit fPeriod erneut von 0 Der Eingang fO verride gibt einen Zeitmultiplikator an der standardm ig auf 1 gesetzt ist Eine 2 w rde doppelt so schnelles Ablaufen der Zeit bedeuten fRampInTime legt fest wie lange nach
87. STING_ERROR Fehler beim bertragen zu MC_ReadBoolParameter den Antrieben Siehe Fehlernummer in Bausteininstanz ReadDriveParameter Q O o amp _ w N oO O1 _ 70 75 1 9 110 120 121 122 123 30 1 SM_DriveBasic lib 140 MC_WriteParameter SMC_WP_PARAM_INVALID Parameternummer MC_WriteBoolParameter unbekannt oder Schreiben verboten SoftMotion in CoDeSys 2 3 Kapitel 9 Die Bibliothek SM_Error lib MC_WriteParameter SMC_WP_SENDING_ERROR Fehler beim bertragen zu MC_WriteBoolParameter den Antrieben Siehe Fehlernummer in Bausteininstanz WriteDriveParameter SM_DriveBasic lib MC_Home SMC_H_AXIS_WASNT_STANDSTILL Achse war nicht im Zustand standstill MC_Home SMC_H _AXIS_DIDNT_START_HOMING Starten der Homing Aktion schlug fehl SMC_H_AXIS_DIDNT_ANSWER Kommunikationsfehler 173 MC_Home SMC_H_ERROR_WHEN _STOPPING Fehler beim Stoppen nach Homing Deceleration gesetzt 180 MC_Stop SMC_MS_UNKNOWN_STOPPING_ERRO unbekannter Fehler beim R Stoppen 181 MC_Stop SMC_MS_INVALID_ACCDEC_VALUES unzul ssige Geschwindigkeits oder Beschleunigungswerte 182 MC_Stop nn a a Direction shortest fastest nicht anwendbar MC_Stop SMC_MS_AXIS_IN_ERRORSTOP Antrieb ist im errorstop Zustand Stop kann nicht ausgef hrt werden SMC_MA_INVALID_VELACC_VALUES unzul ssige Geschwindigkeits oder Beschleunigungswerte De MC_MoveAbsolute SMC_MA_INVALID DIRECTION Richtungsfehler MC_MoverRelati
88. Softmotion in CoDeSys Benutzeranleitung Dieses Dokument ist eine Erg nzung zum Benutzerhandbuch f r das CoDeSys Programmiersystem x NA Copyright 2003 2004 2005 2006 by 3S Smart Software Solutions GmbH Alle Rechte vorbehalten Es wurden alle erdenklichen Ma nahmen getroffen um die Richtigkeit und Vollst ndigkeit der vorliegenden Dokumentation zu gew hrleisten Da sich Fehler trotz aller Sorgfalt nie vollst ndig vermeiden lassen sind wir f r Hinweise und Anregungen jederzeit dankbar Warenzeichen Intel ist ein eingetragenes Warenzeichen und 80286 80386 80486 Pentium sind Warenzeichen der Intel Corporation Microsoft MS und MS DOS sind eingetragene Warenzeichen Windows sind Warenzeichen der Microsoft Corporation Herausgeber 3S Smart Software Solutions GmbH Memminger Strasse 151 D 87435 Kempten Tel 49 831 540 31 0 Fax 49 831 5 40 31 50 Stand 29 09 2006 zu CoDeSys 2 3 7 0 Dokument Version 2 8 Inhalt Inhalt 1 SoftMotion Konzept und Komponenten berblick 1 1 2 Das SoftMotion Drive Interface 2 1 2 1 Steuerungskonfiguration f r SoftMotion u0220022200200002n0 nennen 2 2 2 13 BUSINIErACE Aare ee ne ee eS 2 2 21 2 AQSEGIOUDu unser a a a a ae 2 2 21 3 DIVO naoa a a a a a a 2 4 Zk ENCOUC Leere ee et 2 7 2 2 SM _DriveBasic lib und automatische Codegenerierung 2022400222000 2 8 2 2 1 Mathematische Hilfsbausteine
89. WARUM LOUT Visualisierungs Templates F r die zwei Typen von Antrieben linear rotatorisch ist in dieser Bibliothek je ein Visualisierungs Template enthalten welches mit einer Achsstruktur AXIS_REF verkn pft werden kann und die Ist Position des Antriebs visualisiert I MU k F r einen Linearantrieb wird obiges Bild dargestellt Der Schlitten wird entsprechend seiner aktuellen Position relativ zur unteren und oberen Positionsgrenze platziert und erh lt eine blaue Farbe sobald er sich in Regelung befindet Voraussetzung f r die Verwendung des Templates ist dass die Parameter fSWLimitPositive und fSWLimitNegative gesetzt sind Das Template LinDrive_V stellt den Antrieb in vertikaler Form dar F r einen Rotationsantrieb wird obiges Bild dargestellt Die aktuelle Position wird durch die Stellung des Pfeils dargestellt und erh lt eine blaue Farbe sobald sich der Antrieb in Regelung befindet Voraussetzung f r die Verwendung des Templates ist dass der Parameter fPositionPeriod gesetzt ist SoftMotion in CoDeSys 2 3 2 3 2 3 1 2 3 2 Kapitel 2 Das SoftMotion Drive Interface Antriebs Treiber lt BusinterfaceBezeichnung gt Drive lib Antriebs Treiber sind f r die Kommunikation zwischen IEC Programm speziell den AXIS_REF Strukturen und den Antrieben verantwortlich Sie sind CoDeSys Bibliotheken und beinhalten mindestens die drei unter O erw hnten Funktionen Diese Bibliotheken werden typischerweise vom Steuerung
90. Zeitachse 2 16 Visualisierungs Template 11 5 Visualisierungs Templates 2 20 Vorzeichenwert 2 8 W Wechselnde Kurvenscheiben Programmbeispiel 11 8 Wegobjekt 6 41 Werkzeugradiuskorrektur 3 13 Winkeltoleranz f r Stop festlegen 3 9 Winkelwert 2 8 Wort Index Satznummer 3 2 Wortkennung 3 2 WriteToFile 10 3 Z Zusatz Funktion 3 5 zyklische Kommunikations Daten 2 4 Zykluszeitmessung 2 8 SoftMotion in CoDeSys 2 3
91. _TRAFO_Garteny pi dx d ffsetH dy d ffset r SpiC_Festore Queue Shi _Restore Queue SoftMotion in CoDeSys 2 3 11 7 2 Kapitel 11 Programmierbeispiele Man beachte bei der Programmierung mit CFC vor allem auch auf die richtige Reihenfolge der Bausteine A Erstellen der Bedien und Testoberfl che Wir binden in eine neue Visualisierung zwei Visualisierungsobjekte ein Zum einen das Template des Interpolators zum anderen das Template der Transformation Diese werden ber das Platzhalterkonzept mit den entsprechenden Baustein Instanzen hier Ipo smci bzw Ipo trafof verkn pft 5 Inbetriebnahme Das so erstellte Programm l sst sich fehlerfrei bersetzen und starten und f hrt das CNC Programm aus sobald der Execute Eingang des Interpolators gesetzt wurde Wurde es vollst ndig abgefahren kann durch eine neue steigende Flanke ein erneutes Abfahren erreicht werden Man beachte auch die Funktion der Wegschalter die in der Visualisierung des Interpolations Bausteins ebenfalls dargestellt sind Decodierung online mit Verwendung von Variablen Sehen Sie das mit SoftMotion mitgelieferte Beispielprojekt CNConline pro 1 Erstellen des NC Programms im CNC Editor Wir erstellen wie im vorigen Beispiel ein CNC Programm und verwenden darin zwei globale Variablen g_x und g_y Z B WAR_GLOBAL gx REAL 100 g WREAL S0 END_VAR CNC Programmliske Ioj x comment MO G01 f0f YO F50 E30 E 30 H10 G
92. a Decoder und Bahnvorverarbeitungsbausteine in eine SMC_OUTQUEUE Struktur berf hren oder man wendet die Funktion SMC_RESTOREQUEUE siehe 6 5 an Letzteres ist nur dann m glich wenn der OUTQUEUE Buffer so gro gew hlt wurde dass die ganze Kontur darin Platz findet SMC_GetMParameters Mit diesem Baustein kann man w hrend der Interpolator auf einer M Funktion steht auf Parameter die man der M Funktion mitgegeben hat K L O siehe 3 2 2 abfragen Eing nge des Bausteins bEnable BOOL Baustein ist aktiv wenn dieser Eingang gesetzt ist Ein Ausg nge VAR _IN OUT des Bausteins Interpolator SMC_Interpolator Interpolator Instant Ausg nge des Bausteins bMActive BOOL Default FALSE TRUE wenn aktuell eine M Funktion ansteht dK dL LREAL Default 0 M Parameter die ber die Worte K und L festgelegt wurden MParameters SMC_M_PARAMETERS M Parameter die ber die globale Datenstruktur 9SMC_MParameters bzw ber die durch O bergebene Variable festgelegt wurden SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib 6 2 11 SMC_Interpolator2Dir Dieser Baustein entspricht in seiner Funktion und der Belegung seiner Ein und Ausg nge dem Funktionsbaustein SMC_Interpolator mit dem Unterschied dass er eine Bahn auch r ckw rts interpolieren kann Dazu wird dem Eingang dOverride ein negativer Wert zugewiesen worauf SMC_Interpolator2Dir in negative Richtung interpoliert Auf diesen Eingang kann z B der
93. ach dem Freifahren erst gestoppt und dann der Referenzpunkt gesetzt FAST_BSLOW_I_S_STOP Im Gegensatz zu FAST_BSLOW_S_STOP wird hier nach dem Freifahren ein Index Impuls bIndexOccured TRUE und dessen Position findexPosition abgewartet ddie als Referenzpunkt gesetzt wird Dann erst wird gestoppt FAST_BSLOW_S_STOP FAST_BSLOW_STOP_S FAST_BSLOW_I_S_STOP Diese Modi funktionieren genau wie die oben beschriebenen mit dem Unterschied dass beim erreichen des Referenzschalters nicht umgekehrt wird sondern in derselben Richtung weitergefahren wird Man beachte dass in diesen Modi der Eingang blgnoreHWLimits aus Sicherheitsgr nden FALSE sein muss bReturnToZero BOOL Default FALSE Ist dieses Flag gesetzt positioniert der Baustein nach Abschluss der in nHomingMode festgelegten Prozedur auf den Nullpunkt biIndexOccured BOOL Default FALSE Nur f r nHomingMode FAST_BSLOW_I S_STOP Zeigt an ob Index Puls aufgetreten ist fIndexPosition REAL Default 0 0 Nur f r nHomingMode FAST_BSLOW_I _ S_STOP Gelatchte Position des Index Pulses Wenn dieser Eingang TRUE ist wird die Hardware Kontrolle der Endschalter ausgesetzt Verwenden Sie diese Option wenn Sie f r Hardware End und Referenzschalter den gleichen physikalischen Schalter verwenden bIgnoreHWLimit BOOL Default FALSE Wenn dieser Eingang TRUE ist wird die Hardware Kontrolle der Endschalter ausgesetzt Verwenden Sie diese Option wenn Sie f r Hardware End und Re
94. alue BOOL ErrorlD WORD Axis AXIS_REF WAR_IN_OUT Axis AXIS_REF WARUN OUT SoftMotion in CoDeSys 2 3 5 3 Bausteine zur Bewegungssteuerung einzelner Achsen MC_ReadActualPosition Dieser Baustein liefert die momentane Position des Antriebs zur ck i_READACTUALFOSITION Enable BODL Axis AXIS_REF WARLUMLOUT ErrorlD WORO Position LREAL Axis AXIS_REF WARLUMLOUT MC_ReadActualVelocity Dieser Baustein liefert die momentane Geschwindigkeit des Antriebs zur ck MC _READACTJALYELOCITY Enable BOOL Axis AXIS_REF WARUM LOUT ErrorlD WORD Welocity LREAL Axis AXIS_REF WARLUMLOUT MC_ReadActualTorque Dieser Baustein liefert das momentane Drehmoment bzw die momentane Kraft des Antriebs zur ck MO _READACTUALTOR GLE Enable BODL Axis AXIS_REF WARLUMLOUT ErrorlD WORD Torgue LREAL Axis ASIS_REF wWARIN_OLT MC_Power Dieser Baustein der SM_PLCopen lib kontrolliert die Leistungszuschaltung und den Bremsenzustand des Antriebs Wurde ein Antrieb nicht auf diesem Weg eingeschaltet keine Reglerfreigabe gesetzt oder die Bremse nicht gel st kann keine Bewegungssteuerung auf ihm erfolgen ME POWER Enable BOOL hrRegulator n BOAL bPOriveStart BOOL Axis ARIS_ REF WARIN_OUJTD Axis AXIS_REF WARUN OUT Eing nge des Bausteins Enable BOOL Default FALSE Solange diese Variable TRUE ist ist der Antrieb eingeschaltet bRegulatorOn BOOL Default FALSE Schaltet die Reg
95. appet Zeiger auf ein ARRAY OF SMC_CAMTappet strCAMName STRING Name der Kurvenscheibe SoftMotion in CoDeSys 2 3 4 13 Kurvenscheiben Datenstrukturen SMC_CAMXYVA Eine XYVA Kurvenscheibe besteht aus einem Array of SMC_CAMXYVA Jede Variable dieses Arrays beschreibt einen Punkt der Kurvenscheibe ber dX Masterposition dY Slaveposition dV erste Ableitung dY dX entspricht der Slave Geschwindigkeit bei konstanter Mastergeschwindigkeit 1 und dA zweite Ableitung d Y dX entspricht der Slave Beschleunigung bei konstanter Mastergeschwindigkeit 1 Der Start und Endpunkt der Kurvenscheibe muss in jedem Fall enthalten sein SMC_CAMTable_ lt Variablen Typ gt _ lt Anzahl Elemente gt _1 In dieser Datenstruktur wird eine quidistante Kurventabelle abgelegt Die einzelnen Slave Positionen werden in Table ARRAYI0 lt Anzahl Elemente gt 1 OF lt Variablen Typ gt gespeichert Der Start und Endpunkt der Kurvenscheibe muss in jedem Fall enthalten sein Die Variablen fEditorMasterMin fEditorMasterMax fTableMasterMin fTableMasterMax beschreiben eine zus tzliche Skalierung der Tabellen indem der Definitions Wertebereich in SoftMotion Einheiten fEditorMaster fEditorSlave und skaliert auf Tabelleneinheiten fTableMaster fTableSlave gespeichert wird SMC_CAMTable_ lt Variablen Typ gt _ lt Anzahl Elemente gt _2 4 6 1 4 14 Eine nicht quidistante Kurventabelle wird in Table ARRAY 0 lt Anzahl Elemente gt 1 OF ARRAY 0 1
96. aram1 dwParam8 von SMC_ENCODER_REF abgelegt werden SM_DriveBasic lib und automatische Codegenerierung Wenn die Bibliothek SM_DriveBasic lib in der IEC1131 Applikation in CoDeSys eingebunden ist werden aus dem Antriebs Abbild das in der Steuerungskonfiguration mit den entsprechenden Parametern eingegeben wurde automatisch Strukturobjekte erstellt auf die das IEC Programm zugreifen kann Siehe hierzu auch Kapitel 2 3 zur Beschreibung der AXIS_REF Struktur In der IEC1131 Applikation muss au erdem die zur verwendeten Steuerung passende herstellerspezifische Bibliothek mit dem Namen lt BusinterfaceBezeichnung gt Drive lib eingebunden sein Diese unterst tzt die hardware spezifische Drive Interface Funktionalit t Die Businterface Bezeichnung ergibt sich aus dem in der Steuerungskonfiguration in den Modulparametern des Bus Interfaces bei InterfaceType gew hlten Eintrag Von dessen String Bezeichnung wird sie aus dem linken Teil bis zum ersten Leerzeichen gewonnen Beispiel CAN Peak gt CAN gt herstellerspezifische Bibliothek hei t CANDrive lib Beim Starten der Applikation sorgt der implizite Aufruf der Funktionen lt BuslInterfaceBezeichnung gt DriveExecute_Start und lt BusinterfaceBezeichnung gt Drivelnit am Taskanfang und lt BusinterfaceBezeichnung gt DriveExecute_End am Taskende f r die bertragung und Wartung der AXIS_REF Strukturvariablen Die globale Variable g_strBootupError enth lt f r den Fall dass be
97. artesischen Koordinaten des anzufahrenden Bahnpunktes sondern auch die Stellung der Zusatzachsen iStatus SMC_INT_STATUS INT In dieser Enum Variable wird der aktuelle Status des Bausteins ausgegeben Dieser kann sein IPO_UNKNOWN Interner Zustand Zustand darf nach vollst ndigem SMC_Interpolator Durchlauf Terme auftreten pene INIT een Dataln ist und war noch nicht voll IPO_ACCEL FE Baustein befindet sich in Beschleunigungsphase IPO_CONSTANT Baustein f hrt mit konstanter Geschwindigkeit IPO_DECEL 4 Baustein befindet sich in Bremsphase IPO_FINISHED 5 Abarbeitung der GEOINFO Liste abgeschlossen Nachtr glich in Dataln ankommende GEOINFO Objekte werden nicht mehr bearbeitet IPO_WAIT Baustein wartet da einer der folgenden Situationen eingetreten ist Emergency_Stop TRUE Slow_Stop TRUE und Vel 0 Wait At Next _Stop TRUE und Vel 0 bWorking BOOL Ausgang wird TRUE sobald die Abarbeitung der Liste begonnen und noch nicht abgeschlossen wurde IPO_ACCEL oder IPO_CONSTANT oder IPO_DECEL oder IPO_WAIT Ansonsten steht Working auf FALSE IActObjectSourceNo INT Hier steht der Eintrag SourceLine_Nr des aktuell befahrenen GEOINFO Objekts aus der Dataln Queue Arbeitet der SMC_Interpolator nicht mehr Working FALSE steht hier 1 dVel LREAL In dieser Variable steht die aktuelle Geschwindigkeit die sich ergibt wenn sich ein Objekt in der Zeit Ipo_Time von der vorigen Raumkoordinate nach Set Position beweg
98. ask ruft den Treiber auf welcher sofort ein SYNC Telegramm versendet Diese Methode ist die einfachste kann aber bei einer Steuerung mit hohem Jitter und Antrieben die auf eine gro e Genauigkeit des SYNC Telegramms fordern zu Problemen f hren e 1 Antrieb Hier erzeugt der erste Antrieb falls er dieses Feature unterst tzt das SYNC Telegram Die Motion task in der SPS ist dann in der Regel auf das Ereignis lt AxisGroup gt bSync definiert wartet also bis ein SYNC Telegramm empfangen wurde und st sst daraufhin die Taskabarbeitung an e SYNC_ Device Diese Methode wird angewendet wenn die beiden oberen nicht m glich sind In den Bus wird ein zus tzliches Device mit CAN ID 127 installiert welches f hig ist SYNC Telegramme zeitgenau zu erzeugen Index 1005h Bit30 Alle diese Einstellungen k nnen zudem im Reiter Modulparameter eingesehen und ver ndert werden sTask String der mit dem Namen der Task bereinstimmt in der die Daten bertragung dieser Achsgruppe stattfinden soll dwCycle Zykluszeit der unter sTask definiertenTask in us muss nur angegeben werden wenn die Steuerung keine Tasks unterst tzt und automatisch PLC_PRG aufruft Default Task Karten Antriebsspezifische Parameter vom Typ WORD dwParam1 Karten Antriebsspezifische Parameter vom Typ DWORD dwParam4 SoftMotion in CoDeSys 2 3 2 3 2 1 3 2 4 Steuerungskonfiguration f r SoftMotion Drive Drive Modulparameter Orive
99. austein erh lt als Eing nge die Antriebe der Z Antrieb wird mit einer sonst nicht verwendeten Variable dummy vom Typ AXIS_REF belegt der R ckw rtstrafo Baustein muss die Soll Position des Interpolators erhalten trafof SMC_TRAFOF_Gantryz doffsets doffsetr min ma SMC _IRAFO_ Gantry JbjectSourceMo dwel vec ctTangent iLastswitch dwSwitches mini masr Drives F Driver P Die Ausg nge des Bausteins also die Achs Koordinaten m ssen nun auf die Antriebe geschrieben werden Daf r existieren die Funktionsbl cke SMC_ControlAxisByPos Da unsere Applikation nicht gew hrleistet dass die Ausgaben des Interpolators stetig sind zum Beispiel endet die Bahn an einem anderen Punkt als sie anf ngt sollten wir die Sprungvermeidung aktivieren bAvoidGaps fGapVelocity fGapAcceleration fGapDeceleration den Stoplpo Ausgang mit dem bEmergency_Stop des Interpolators verbinden und den Interpolator Ausgang iStatus mit den entsprechenden Eing ngen der Achskontroll Bausteine verbinden pi Spil_ Controls By Pos istatus beommand borted Sl _Interpolator b Enable bwoid Gaps f Set Position 50 f Gaprelocity 50 f Gaptcceleration E t Gap Deceleration Se K_DOriwe Pais P ict Object Source No Tel Shil_ Controls By Pos vecActTar gert istatus beommandAborted iLast Switch b Enable dw Switches b woid Gaps fet Position 50 jf Gap elocity 30 l Gapteceleration t Gap Deceleration T As e mm SMCL
100. aveScaling LREAL Default 1 Master bzw Slave Skalierungsfaktor der bei der Kurvenscheibe verwendet wird Ein Ausg nge VAR _IN OUT des Bausteins CAM MC_CAM _REF Kurvenscheibe Ausg nge des Bausteins bDone BOOL TRUE zeigt an dass die Berechnung abgeschlossen ist bError BOOL TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist nErrorlD SMC_Error INT Fehlernummer dMaxPos dMinPos LREAL maximale bzw minimaler Slave Positionswert u dMaxVel dMinVel LREAL SoftMotion in CoDeSys 2 3 5 19 Zusatzbausteine Maximaler bzw minimaler auch negativ Slave Geschwindigkeitswert u s dMaxAccDec dMinAccDec LREAL Maximaler bzw minimaler auch negativ Slave Beschleunigungs bzw Bremswert u s SMC_CAMEditor SMC_CAMVisu 5 20 Mit diesen Bausteinen kann ein Online Kurvenscheiben Editor erzeugt werden SMC_CAMEditor muss in der SoftMotion Task w hrend SMC_CAMVisu in einer langsameren niedrigerprioren Task aufgerufen werden sollte Beide Bausteine sollten mit dem entsprechenden Visualisierungs Template SMC_CAMEditor verkn pft sein welches die eingegebene Kurvenscheibe darstellt und dem Anwender erlaubt diese auch bei laufender Kurvenscheibe zu ndern Master 0 000000 Slave 180 000000 Vel 2 812500 Acc 0 000000 inc inc inc inc 1 000000 1 000000 0 200000 0 100000 no m Ponto No of Elements 2 vel ACC Der rote Kreis markiert de
101. aximalwerte der Achse in der Steuerungskonfiguration zu niedrig oder gar nicht eingestellt wurden Resultieren w rde eine ruckelige Fahrt da der Interpolator sobald die Bahngeschwindigkeit so hoch ist dass eine Achsgrenze berschritten wird immer wieder gebremst wird und die Achsen einzeln auf die entsprechende Position verfahren werden Dann w rde der Interpolator wieder anfahren um kurz darauf wieder gebremst zu werden SMC_FollowPosition 2 12 Dieser Baustein schreibt Positions Sollwerte auf die Achse und f hrt dabei keinerlei berpr fungen durch Spll_FOLLOSYSPOSITION bExecute BOOL bBusy BOOL fSetPosition LREAL bCommand borted BOOL Axis AKIS_REF MARIN OIT bError BOOL iErrorlD SMC_ERROR Axis AKIS_REF WARUN_OUT Eing nge des Bausteins bExecute BOOL Durch eine steigende Flanke beginnt der Baustein die in fSetPosition eingegebenen Sollwerte auf die Axis Datenstruktur zu schreiben Er blebit so lange aktiv bis er durch einen anderen Baustein z B MC _Stop unterbrochen wird fSetPosition LREAL Soll Position in technischen Einheiten Ausg nge des Bausteins bBusy BOOL Default FALSE Mit TRUE zeigt der Baustein an dass er aktiv ist und Sollwerte auf die Achse schreibt bCommandAborted BOOL Default FALSE SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface Bei TRUE wurde der Baustein durch einen anderen abgebrochen bError BOOL Default FALSE TRUE zeigt a
102. bale Variablen u02200240022002n0 nennen nennen 6 40 6 5 Strukturen Ger SM CNG ID torai ea nee 6 41 6 6 Bahn Kurvenscheiben mit SMC _XlInterpolator 0222002200220 sen nnne nennen 6 47 Die Bibliothek SM_CNCDiagnostic lib 7 1 7 1 Funktionsbausteine zur Analyse von SMC_CNC_REF Daten 7 1 7 1 1 Der Funktionsblock SMC_ShowCNCREF 20222esssesseessnensennennenenenenenene nennen 7 1 1 2 Funktionsbausteine zur Analyse von SMC_OutQueue Daten 7 1 7 2 1 Der Funktionsblock SMC_ShowQueue uensuesssnesseesenennnnenennnnennnn nenne nennen 7 1 Die Bibliothek SM_Trafo lib 8 1 8 1 BSD IE Ko also ee re ee 8 1 8 2 Transformations Funktionsbl cke 2 0222022002200000 nen ennn san nnnn nenn nenn nennen 8 1 8 2 1 POHal sYSsteniee nanse ee 8 1 8 2 2 Portal Systeme mit Werkzeugvers fz 2u2suussssensnenenusnnnenenennnennnnnnnennnnnnnn 8 4 8 2 3 H Portal System mit station ren Antrieben 002200222002nnennnnnnnen nennen 8 8 8 2 4 2 Gelenkige Scara Systeme u uuusssesensenenunnnnennnnnnnnennnenennnnnnnnnnnennnennnnnnnnenennn 8 9 8 2 5 3 Gelenkige Scara Systeme u 22u022s0ssnnennnnnnnnennnennnnennnennnnennnnnnnnonnnenennnnnnennnnn 8 11 SoftMotion in CoDeSys 2 3 Inhalt 8 2 06 Parallel Kinemaliken nee ulesles 8 13 8 3 R umliche Transformationen 02220020002200 nano ne
103. bei keinerlei berpr fungen durch aM FOLLOW YELO GITY bExecute BOOL bB Busy BOOL fsetvelocity LREAL beommand borted BQL Axis ARlS_REF MWARIN_OUT bError BOOL iErrorlD SMC ERROR Axis ARlS_REF MWARIN_OUT SoftMotion in CoDeSys 2 3 2 13 SM_DriveBasic lib und automatische Codegenerierung Eing nge des Bausteins bExecute BOOL Durch eine steigende Flanke beginnt der Baustein die in fSetPosition eingegebenen Sollwerte auf die Axis Datenstruktur zu schreiben Er blebit so lange aktiv bis er durch einen anderen Baustein z B MC _Stop unterbrochen wird fSetVelocity LREAL Soll Geschwindigkeit in technischen Einheiten pro Sekunde Ausg nge des Bausteins bBusy BOOL Default FALSE Mit TRUE zeigt der Baustein an dass er aktiv ist und Sollwerte auf die Achse schreibt bCommandAborted BOOL Default FALSE Bei TRUE wurde der Baustein durch einen anderen abgebrochen bError BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist iErrorlD SMC_Error INT Fehlernummer SMC_CheckLimits 2 14 Dieser Baustein berpr ft ob die aktuellen Sollwerte des Antriebs die in der Steuerung eingestellten Maxima berschreiten und zeigt dieses ber den Ausgang bLimitsExceeded an Shi _CHEEKLIMITS hEnable BOOL hError BODL brheckvel BOOL iErrorlO SMZ _ERR R h heckAccbDec BOOL hLimitsExceeded BOOL Axis AXIS_REF WARUMLOUT Axis AXIS_REF WARUNLOUT Ei
104. benstartwert nicht bereinstimmen der Sollwert des Slave stetig auf die Kurvenscheibe zugef hrt wird die Festlegung der Parameter VelocityDiff Acceleration und Deceleration voraussetzen Man beachte auch Kapitel 4 5 Dieser Baustein enth lt eine zus tzliche Funktionalit t Er detektiert Nocken und kann diese ber den Ausgang Tappets an einen oder mehrere SMC_GetTappetValue Funktionsbausteine bergeben siehe SMC_GetTappetValue Man beachte dass der Camin Baustein pro Zyklus h chstens drei Nocken gleichzeitig erfassen kann Der Baustein SMC_CAMRegister arbeitet ohne diese Beschr nkung ME CAMIN Execute BOOL InSync BOOL MasterO ffset LREAL commandAborted BQL Slavegffset LREAL Error BOOL Masterscaling LREAL Errorlo WORD Siavescaling LREAL End fFrofile HOOL Starthiode MC _Starthlode Tappets SM _TappetData CamTablelD MC_CAM_IDO Waster AXIS_REF wWAR_IN_OLT YelociyDif LREAL Slave AXIS_REF WARUN OUT Acceleration LREAL Deceleration LREAL TappetHysteresis LREAL Master AAlS_REF WARUNLOUT Slave A MIS_REF WARUN OUT Ein Ausg nge VAR _IN OUT des Bausteins Master AXIS_REF Masterachse Slave AXIS_REF Slaveachse Eing nge des Bausteins Execute BOOL Default FALSE Bei steigender Flanke beginnt der Baustein mit der Bewegung MasterOffset LREAL Default 0 zus tzlicher Offset auf Master Position SlaveOffset LREAL Default 0 zus tzlicher Offset auf Slave Positio
105. bjekt in der Zeit Ipo_Time von der vorigen Raumkoordinate nach Set _Position bewegt vecActTangent SMC_VECTOR3D In dieser Struktur befindet sich die Bahnrichtung im Punkt Set_Position F r den Fall Vel 0 befinden sich auch in Act_Tangent lauter Nullen iLastSwitch INT In dieser Variable steht die Nummer der zuletzt passierten Hilfsmarke Sollten in einem Zyklus mehrere Hilfsmarken berlaufen werden wird nur jeweils die letzte ausgegeben dwSwitches DWORD Dieses DWORD enth lt den momentanen Schaltzustand aller der Hilfsmarken zwischen 1 und 32 Bit0 des DWORDs steht f r Hilfsmarke1 Bit31 f r Hilfsmarke 32 Anders als bei iLastHelpMark kann so ausgeschlossen werden dass eine Hilfsmarke verloren geht dWayPos LREAL Beschreibung siehe Eingang dLastWayPos Der XInterpolator sucht wenn er aktiv ist zur aktuellen X Position die passende Position auf der vorgegebenen Bahn und gibt den entsprechenden Bahn Punkt in piSetPosition aus Damit dies sprungfrei passieren kann muss zu einer X Position stets eine eindeutige Bahnposition existieren Folgende Bahn w re z B zul ssig Er SoftMotion in CoDeSys 2 3 6 49 Bahn Kurvenscheiben mit SMC_XfInterpolator 6 50 SoftMotion in CoDeSys 2 3 7 1 7 2 7 2 1 Kapitel 7 Die Bibliothek SM_CNCDiagnostic lib Die Bibliothek SM_CNCDiagnostic lib Diese Bibliothek enth lt Hilfsmittel die gerade w hrend der Inbetriebnahme Phase von gro em Nutzen sein k nnen da sie dem Ap
106. bliothek SM_Trafo lib Die Bibliothek SM_Trafo lib berblick Diese Bausteinbibliothek ist eine Erweiterung der SM_CNC lib und stellt Bausteine zur Verf gung die dem IEC Programmierer die Transformation von Welt zu Maschinenkoordinaten und die Kontrolle der Achsen erleichtert Dazu enth lt sie zum einen Bausteine die die Antriebe mit Sollwerten kontrollieren gleichzeitig die Sollwerte berwachen und Spr nge detektieren k nnen Au erdem enth lt sie Bausteine f r die mathematische Vorw rts und R ckw rts Transformation f r einige g ngige Kinematiken Instanzen der Vorw rtstransformations Bausteine k nnen mit ebenfalls enthaltenen Visualisierungs Templates verkn pft werden die ein sofortiges und einfaches Darstellen erm glichen Transformations Funktionsbl cke Die zu einer speziellen Kinematik geh renden Bausteine geh ren paarweise zusammen wobei der Baustein der mit SMC_TRAFO_ lt Kinematik gt beginnt eine R ckw rtsrechnung der mit SMC_TRAFOF _ lt Kinematik gt eine Vorw rtsrechhung durchf hrt Jede Instanz eines SMC_TRAFOF_ lt Kinematik gt Bausteins kann mit einem Visualisierungs Template mit dem Namen SMC_VISU_ lt Kinematik gt verkn pft werden Portal Systeme xX Die Bausteine addieren da f r Portalsysteme keine Transformation durchgef hrt werden muss lediglich Offsets auf die x y und z Achsen SMC_TRAFO_Gantry2 SMC _TRAFO_GANMTRY2 pi SMC _FPoslinfo dx LREAL d fsets LREAL dy
107. chaltfl che in der Werkzeugleiste ausgew hlt werden i Element selektieren Punkt einf gen Gerade einf gen l Nocke einf gen SoftMotion in CoDeSys 2 3 4 3 4 4 2 4 4 Editieren einer Kurvenscheibe Bearbeitung der allgemeinen Einstellungen der Kurvenscheibe Um die bereits beim Einf gen einer neuen Scheibe im Dialog Kurvenscheiben Eigenschaften vorgenommenen Einstellungen zu ver ndern w hlt man den Befehl Einstellungen im Men Extras siehe Kapitel 4 4 3 Ver ndern der Anzeige der Kurve Dazu stehen die Befehle Kurve komplettieren und Extrema anzeigen im Men Extras zur Verf gung Der Anzeigemodus_des unteren Fensters kann im Men Extras oder ber die entsprechende Schaltfl che in der Werkzeugleiste ausgew hlt werden Fr Geschwindigkeit Beschleunigung anzeigen Im unteren Fenster werden erste blau und zweite gr n Ableitung der Kurvenscheibe visualisiert Y Kurve als Tabelle Das untere Fenster zeigt die einzelnen Elemente Punkte Geraden aus denen die Kurvenscheibe besteht und ihre Eigenschaften in Form einer editierbaren Tabelle 1 Nocken als Tabelle Das untere Fenster zeigt die einzelnen Nocken und ihre Eigenschaften in Form einer editierbaren Tabelle Bearbeiten der Eigenschaften einzelner Kurvenelemente Die Attribute einzelner Elemente k nnen im Eigenschaften Dialog oder durch Selektieren und Verschieben im Editorfenster ver ndert werden 1 Im Eigenschaf
108. cht mehr aufgerufen alle Bausteine SMC_AXIS_IS_NO_AXIS_REF Eingegebene AXIS_REF Variable ist nicht vom Typ AXIS_REF Alle SMC_AXIS_REF_CHANGED_DURING_O Eingegebene AXIS_REF bewegungserzeugende PERATION Variable wurde getauscht Bausteine w hrend der Baustein aktiv war SMC_Homing SMC_3SH_INVALID_VELACC_VALUES ung ltige Geschwindigkeits oder Beschleunigungswerte SMC_Homing SMC_3SH_MODE_NEEDS_HWLIMIT Modus schreibt aus Sicherheitsgr nden die Benutzung der Endschalter vor SMC_SetControllerMode SMC_SCM_NOT_SUPPORTED Modus nicht unterst tzt SMC_SetTorque SMC_ST_WRONG_CONTROLLER_MOD Achse ist nicht im richtigen E Regelungsmodus SMC_ResetAxisGroup SMC_RAG_ERROR_DURING_STARTUP Fehler beim Achsgruppen Hochlauf SMC_ChangeGearingRatio SMC_CGR_ZERO_VALUES unzul ssige Werte SMC_ChangeGearingRatio SMC_CGR_DRIVE _ POWERED Getriebeparameter d rfen nicht ge ndert werden solange der Antrieb in Regelung ist MC_Power SMC_P_FTASKCYCLE_EMPTY Die Achse enth lt keine Angabe ber Zykluszeit fTaskCycle 0 MC_Reset SMC_R_NO_ERROR_TO_RESET Achse war fehlerfrei MC_Reset SMC_R_DRIVE_DOESNT_ANSWER Achse f hrt Fehler R cksetzen nicht aus MC_Reset SMC_R_ERROR_NOT_RESETTABLE Fehler lie sich nicht zur cksetzen MC_Reset SMC_R_DRIVE_DOESNT_ANSWER_IN _ Kommunikation zur Achse TIME funktionierte nicht MC_ReadParameter SMC_RP_PARAM_UNKNOWN Parameternummer MC_ReadBoolParameter unbekannt 131 MC_ReadParameter SMC_RP_REQUE
109. ckkoppelnd eine Ver nderung der entsprechenden Werte im jeweiligen Eigenschaften Dialog s o zur Folge Punkt Wenn ein Punkt angeklickt wird erscheint ein kleines rotes Quadrat das die Steigung Geschwindigkeit wiedergibt ber ein Verschieben dieses Quadrats kann die Steigung des Punktes ver ndert werden Diese wird dabei durch eine Hilfstangente angezeigt Ebenso kann der Punkt selbst verschoben werden Gerade Wenn eine Gerade angeklickt wird erscheinen an den Endpunkten kleine rote Quadrate Ein weiterer Mausklick auf einen der Endpunkte und ein Verschieben desselben erm glicht ein Ver ndern der Steigung wird dagegen auf die Geradenlinie geklickt k nnen Sie diese ohne Ver nderung der Steigung verschieben Nocke Wenn eine Nocke angeklickt wird wird der Rand des Nockenquadrats rot Die Nocke kann dann durch Bewegen des Mauszeigers auf der Kurvenbahn verschoben werden 4 4 3 Befehle der Men s Extras und Einf gen Extras Einstellungen il Dieser Befehl ffnet die Dialogbox Eigenschaften Kurvenscheibe die auch bei der Erstellung der Kurvenscheibe zu sehen war Sehen Sie die Abbildung in Kapitel 4 3 Hier k nnen Skalierung und Einheiten ge ndert werden Extras Kurve komplettieren Wenn diese Option aktiviert ist Haken vor Men punkt bzw Schaltfl che in Werkzeugleiste gedr ckt werden in der Kurve zus tzlich die die Elemente Punkte Geraden Nocken verbindenden Polynome f nften Grades angezeigt
110. ctAcceleration BOOL hySeparator amp har BYTE sRkecordSeparatorString STRINGES Akis AXIS_REF WARUM LOUT Eing nge des Bausteins bExecute BOOL Der Baustein beginnt bei einer steigenden Flanke Er berschreibt eine evtl vorhandene Datei des gew hlten Namens bCloseFile BOOL Der Baustein schlie t die Datei sobald dieser Eingang TRUE wird sFileName STRING 80 Dateipfad und name bSetPosition bActPosition bSetVelocity bActVelocity bSetAcceleration bActAcceleration BOOL Diese Eing nge entscheiden ob die zugeh rigen werte der Achse in die Datei gespeichert werden sollen bySeparatorChar BYTE Default TAB ASCII Code des Buchstabens der zwischen zwei Werte desselben Datums geschrieben werden soll sRecordSeparatorString STRING 3 Default HR N String der am Ende eines Datums geschrieben werden soll Axis AXIS_REF Achse die beobachtet werden soll Ausg nge des Bausteins bDone BOOL TRUE Logging beendet Datei geschlossen bError BOOL TRUE Fehler trat auf ErrorlD SMC_ERROR Fehlernummer bRecording BOOL Baustein zeichnet auf SoftMotion in CoDeSys 2 3 Kapitel 11 Programmierbeispiele 11 Programmierbeispiele 11 1 berblick Um mit einem CoDeSys Projekt mittels der SoftMotion Funktionalit t eine Antriebs Hardware zu steuern sind folgende Punkte zu beachten Die SoftMotion Funktion muss in den Zielsystemeinstellungen Register Allgemein aktiviert sein Die Bib
111. ctAcceleration REAL interne Positionsmarke interne Position am Zyklusanfang Vorgegebene Geschwindigkeit in i REAL 100 maximale Geschw f r implizite Bewegungen in techn Einheiten sec FALSE Achse f hrt mit konstanter Geschwindigkeit interne Geschwindigkeitsmarke interne Geschwindigkeit am Zyklusanfang Vorgegebene Beschleunigung in techn Einheiten sec Aktuelle Beschleunigung in techn Einheiten sec 1122 13 fMaxAcceleration REAL 100 Maximale Beschleunigung in techn Einheiten sec fSWMaxAcceleration 1123 1125 bAccelerating BOOL 1126 fMarkAcceleration REAL 1127 fSaveAcceleration REAL interne Beschleunigung am Zyklusanfang 1130 fSetDeceleration REAL Vorgegebene Abbremsung in techn Einheiten sec REAL 100 maximale Beschleunigung f r implizite Bewegungen in techn Einheiten sec FALSE Achse beschleunigt gerade interne Beschleunigungsmarke 1131 fActDeceleration REAL Aktuelle Abbremsung in techn Einheiten sec 1132 15 fMaxDeceleration REAL 100 Maximale Abbremsung in techn Einheiten sec 1133 fSWMaxDeceleration REAL 100 maximale Abbremsung f r implizite Bewegungen in techn Einheiten sec SoftMotion in CoDeSys 2 3 2 25 Variablen der Struktur AXIS_REF Nr Name Datentyp initwert Kommentar 2 1135 bDecelerating BOOL FALSE Achse bremst gerade ab 1137 fSaveDeceleration REAL 0 interne Abbremsung am Zyklusanfang 1140 fSetJerk REAL Vorgegebener Je
112. ction blocks for motion control Version 1 0 zu lesen Die wichtigsten Dinge werden hier kurz zusammengefasst Bausteine werden auf zweierlei Arten aktiviert a Enable Eingang Verf gtt der Baustein ber einen Enable Eingang wie z B MC_ReadParameter ist er genau solange aktiv wie Enable TRUE ist b Execute Eingang Der Baustein wird durch eine steigende Flanke bergang von FALSE nach TRUE des Execute Eingangs aktiviert und wird erst dann wieder inaktiv falls er die Bewegung abgeschlossen hat die Kontrolle ber die Achse AXIS_REF ihm durch einen anderen Baustein entzogen wird oder er eine neue steigende Flanke am Execute Eingang erh lt und die Bewegung damit neu startet Man beachte auch dass alle Eingangs Variablen nur bei steigender Flanke bernommen werden Die Bausteine zeigen ber den Done Ausgang oder einen sinngem en Ausgang entweder die G ltigkeit der Ausg nge z B MC _ReadStatus oder den Abschluss der Bewegung z B MC_MoveAbsolute an Ein bewegungserzeugender Baustein der von einem anderen unterbrochen wird setzt seinen Command Aborted Ausgang um dies anzuzeigen SoftMotion in CoDeSys 2 3 5 1 Bausteine zur Bewegungssteuerung einzelner Achsen Die Ausg nge der Execute gestarteten Bausteine bleiben nach dem Setzen ihres Done Ausgangs so lange unge ndert wie der Execute Eingang gesetzt ist Durch eine fallende Flanke werden sie gel scht Wurde noch vor Beendigung eine fallende Flanke detek
113. d Geschwindigkeit berschreitet die Geschwindigkeit den in der Achse gespeicherten Grenzwert fSWMaxVelocity konfiguriert im Drive Dialog unter Maximalwerte setzt der Baustein den Ausgang bStoplpo und bewegt die Achse mit den Parametern fGapVelocity fGapAcceleration und fGapDeceleration an diese Position und l scht den Ausgang bStoplpo wieder fSetPosition LREAL Soll Position der Achse Typischerweise ein Ausgang eines Transformationsbausteins fGapVelocity fGapAcceleration fGapDeceleration LREAL Bewegungsparameter f r die berbr ckung eines Sprungs Ausg nge des Bausteins bCommandAborted BOOL Default FALSE Bei TRUE wurde der Baustein durch einen anderen abgebrochen bError BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist iErrorlD SMC_Error INT Fehlernummer bStoplpo BOOL Default FALSE Bei TRUE hat der Baustein einen Geschwindigkeits oder Positionssprung entdeckt und positioniert gerade auf die neue Position Dieser Ausgang sollte deswegen mit dem EmergencyStop Eingang des SMC _Interpolators verbunden werden sodass der Interpolator wartet bis die Achse in richtiger Position steht SMC_ControlAxisByPosVel Dieser Baustein funktioniert hnlich wie SMC_ControlAxisByPos nur dass zus tzlich die Geschwindigkeit vorgegeben werden kann SoftMotion in CoDeSys 2 3 2 15 SM_DriveBasic lib und automatische Codegenerierung SMC _CONTROLASISBYFOSWEL iStatus
114. den Programmtext im Texteditor nachgetragen werden Darstellung Es wird ein Koordinatensystem gezeichnet in dem in gewissen Abst nden ein Markierungsstrich gezeichnet wird Erg nzend wird ein hellgraues Gitternetz daruntergelegt welches ber den Men punkt Raster anzeigen unter Extras ein und ausblenden l sst Durch gedr ckt Halten der linken Maustaste kann die Darstellung des NC Programms beliebig verschoben werden Mit dem Mausrad und der lt Strg gt Taste wird der Zoomfaktor ver ndert Positionierungen G00 werden gr n dargestellt alle brigen Elemente in blau Das aktuelle Objekt auf dessen Code Zeile im Texteditor der Cursor steht wird rot gezeichnet F r Spline Abschnitte G05 wird die konvexe H lle der kubischen Polynome in hellgrau gezeichnet Hinweis Eine Schaltpunktposition kann nur in CNC Texteditor eingef gt werden siehe Kapitel 3 2 Sie erscheint im grafischen Editor als gr ner Punkt auf der Kurve Sehen Sie hierzu auch die Programmierbeispiele Kapitel 1 Kommandos und Optionen im CNC Editor Das Men Extras h lt Befehle und Einstellm glichkeiten f r das Arbeiten und die Anzeige im grafischen Editor bereit Es kann nat rlich auch durch Eingeben der entsprechenden Kommandos im Texteditor programmiert werden In der Werkzeugleiste sind die entsprechenden Schaltfl chen verf gbar Eine aktivierte Option ist im Extras Men mit einem Haken versehen und die Schaltfl che ersche
115. den soll dDir LREAL Die Ausgabe dDir ist in Winkelgrad und bleibt f r Phasen in denen der Interpolator steht v ist Nullvektor konstant eDir wird meist als Sollwert SMC_ControlAxisByPos f r die Richtungsachse und als Eingang dAlpha f r die Transformation verwendet SMC_TRAFO_Gantry2Tool1 SMC _TRAFO_GANTRYZTOOLI pi SmZ_Posinfo d fsets LREAL d fsefr LREAL dAlpha LREAL AToolA LREAL pi SMC_Posinfo Soll Positionsvektor Ausgang des Interpolators dOffsetX dOffsetY LREAL Offset f r x und y Achse dAlpha LREAL Ausrichtung des Werkzeugs in Winkelgrad dToolA LREAL L nge des Werkzeugs Abstand zwischen Drehpunkt und Werkzeugpunkt dx dy LREAL Sollwerte f r x und y Achse SMC_TRAFOF_Gantry2Tool1 SM E_TRAFOF_GANTRYZTOOLI do fsetk LREAL ds d fsetr LREAL ir dAlpha LREAL ink 1ToolA LREAL Army mins LREAL Anl max LREAL ratio minr LREAL dnofsets mal LREAL dnofsetr Driver AMIS _REF WARUNLOUT Drive AKIS_REF ARUNLOUT Drive AMIS_REF MWARIN_OUTD Driver ASIS_REF ARUNLOUT dOffsetX dOffsetY LREAL Offset f r x und y Achse Gleiche Werte wie bei SMC_TRAFO_Gantry2 dAlpha LREAL Ausrichtung des Werkzeugs in Winkelgrad SoftMotion in CoDeSys 2 3 8 5 Transformations Funktionsbl cke dToolA LREAL L nge des Werkzeugs Abstand zwischen Drehpunkt und Werkzeugpunkt minX maxX minY maxY LREAL Bewegungsbereich f r Visualisierung DriveX DriveY AXIS_R
116. den warden 1006 1081 1100 1500 Alle Funktionsbausteine SMC_NO_CNC_REF_TYPE Eingegebenes CNC die SMC_CNC_REF Programm ist nicht vom verwenden Typ SMC_CNC_REF SoftMotion in CoDeSys 2 3 9 5 Die Enumeration SMC_Error nr 1501 Alle Funktionsbausteine SMC_NO_OUTQUEUE TYPE Eingegebene OutQueue ist die SMC_OUTQUEUE nicht vom Typ verwenden SMC_OUTQUEUE 2000 SMC_ReadNCFile SMC_RNCF_FILE_DOESNT_EXIST Datei existiert nicht 2001 SMC_ReadNCPFile SMC_RNCF_NO_BUFFER Kein Buffer angelegt 2002 SMC_ReadNCFile SMC_RNCF_BUFFER_TOO_SMALL Buffer zu klein 2003 SMC_ReadNCFile SMC_RNCF_DATA_UNDERRUN Data underrun Buffer wurde leer gelesen 2004 SMC_ReadNCFile SMC_RNCF_VAR_COULDNT_BE_REPLA Platzhaltervariable konnte CED nicht ersetzt werden 2005 SMC_ReadNCFile SMC_RNCF_NOT_VARLIST Eingang pvl zeigt nicht auf SMC_VARLIST Objekt 2050 SMC_ReadNCQueue SMC_RNCQ_FILE DOESNT_EXIST Datei konnte nicht ge ffnet werden 2051 SMC_ReadNCQueue SMC_RNCQ_NO_BUFFER kein Buffer angegeben 2052 SMC_ReadNCQueue SMC_RNCQ_BUFFER_TOO_SMALL Buffer zu klein 2053 SMC_ReadNCQueue SMC_RNCQ_UNEXPECTED_EOF unerwartetes Dateiende 2100 SMC_AxisDiagnosticLog SMC_ADL_FILE_CANNOT_BE_OPENED Datei konnte nicht ge ffnet werden 2101 SMC_AxisDiagnosticLog SMC_ADL_BUFFER_OVERRUN Buffer berlauf WriteToFile fter aufrufen 2200 SMC_ReadCAM SMC_RCAM FILE DOESNT_EXIST Datei konnte nicht ge ffnet werden 2201 SMC_ReadCAM SMC_RCAM _TOO_MUCH DATA gespeiche
117. des Dialogs wird eine St tzpunkttabelle des Typs SMC_CAMTable_ lt Datentyp gt _ lt Elementzahl gt _1 erzeugt Das Positions Array dieses Dialogs enth lt die Slave Werte der Kurvenscheibe bez glich Master Werte die gleichm ig auf den Definitionsbereich der Master Achse verteilt sind Dabei bezieht sich der erste Wert der Tabelle auf die Slave Position am Master Minimum der Kurvenscheibe Der letzte bezieht sich bei nicht periodischen Kurvenscheiben auf die Slave Position am Master Maximum Bei periodischen Kurvenscheiben muss dieser Wert nicht erneut beschrieben werden da er mit dem Wert am Master Minimum bereinstimmt deshalb werden die Intervalle etwas enger gemacht und der letzte Tabellenwert beschreibt die Slave Position bei Master Ende Master Ende Master Start Elementzahl 3 elementoptimiert Entsprechend den Einstellungen im unteren Bereich des Dialogs wird eine zweidimensionale typischerweise nicht quidistante St tzpunkttabele des Typs SMC_CAMTable_ lt Datentyp gt _ lt Elementzahl gt _2 erzeugt Die darin enthaltene Tabelle enth lt Paare von Master und zugeh riger Slave Positionen Die Unterteilung wird dabei so durchgef hrt dass Elemente mit konstanter Geschwindigkeit Linien je nur einen St tzpunkt am Anfang und einen am Ende erhalten Die restlichen St tzpunkte werden m glichst gleichm ig auf den Rest der Kurvenscheibe verteilt 4 nicht bersetzen F r die Kurvenscheibe werden keine globalen Variablen erzeugt
118. des Quaders VAB vBC vCA SMC_Vector3D Einheitsvektoren auf den Kantenlinien des Quaders bError BOOL unm gliche Eingabe Werte nError WORD Fehlerbeschreibung 0 kein Fehler bError FALSE 1 A1 A2 A3 liegen auf einer Geraden 2 Projektion von B1 und B2 auf Ebene A sind identisch SoftMotion in CoDeSys 2 3 8 17 8 18 R umliche Transformationen SoftMotion in CoDeSys 2 3 9 1 9 2 Kapitel 9 Die Bibliothek SM_Error lib Die Bibliothek SM_Error lib Diese Bibliothek muss in jedem Projekt vorhanden sein da sie alle Fehlerdefinitionen enth lt Sie enth lt alle von SoftMotion Funktionsbausteinen erzeugten Fehler und kann diese als String darstellen Grunds tzlich sollte der Applikateur beachten dass zweierlei Fehlersorten in seinem Programm auftreten k nnen Zum einen Antriebsfehler also Fehler die im Antrieb passieren z B Schleppfehler Stromversorgung fehlt etc Zum anderen Bausteinfehler also Fehler die von den Bausteinen ber die Ausg nge Error und ErrorlD zur ckgemeldet werden und h ufig auf eine falsche Parametrierung zur ckzuf hren sind Antriebsfehler m ssen ber MC_ReadAxisError bzw MC_ReadParameter gelesen und ggf mit MC_Reset gel scht werden Antriebsfehler sind antriebsspezifisch und nicht genormt Bausteinfehler k nnen mit den Funktionen der SM_Error lib nach Bedarf in Strings umgewandelt werden Da diese Fehler an allen SoftMotion Bausteinen autreten k nnen und von der Applika
119. e 8 Q Achse 9 U Achse 10 V Achse 11 W Achse SoftMotion in CoDeSys 2 3 3 3 Unterst tzte und erweiterte Elemente der CNC Sprache DIN66025 Fahrbefehle G01 G02 G03 G05 G06 G08 G09 G20 G36 G37 G40 G51 G52 G60 G61 G90 G91 G00 direkte Bewegung ohne Werkzeugeingriff Positionierung lineare gerade Bewegung mit Werkzeugeingriff Kreis st ck im Uhrzeigersinn Kreis st ck gegen den Uhrzeigersinn Punkt einer Kardinalspline Parabel Ellipse nst ck im Uhrzeigersinn Ellipse nst ck gegen den Uhrzeigersinn Bedingter Sprung nach L wenn K lt gt 0 Wert D auf Variable O schreiben Variable O um Wert D inkrementieren Ende der Werkzeugradiuskorrektur Beginn der Werkzeugradiuskorrektur links der Fahrrichtung Beginn der Werkzeugradiuskorrektur rechts der Fahrrichtung G50 Ende der Eckverrundung schelifung Beginn der Eckverschleifung Beginn der Eckverrundung Ende der Schleifenvermeidung Beginn der Schleifenvermeidung nachfolgende Koordinatenangaben f r X Y Z P W absolut Standard nachfolgende Koordinatenangaben f r X Y Z P W relativ Setzen der Position ohne Bewegung m nachfolgende Koordinatenangaben von I J absolut nachfolgende Koordinatenangaben von I J relativ zum Startpunkt Standard Man beachte dass die Bibliothek SM_CNC lib f r ein fehlerfreies bersetzen des Projekts eingebunden sein muss 3 2 1 Schaltpunkte H Funktion Die Schaltpunkt Funktionalit t oder H
120. e bError pogbDataln wErrorD 10000 m a pogbDatadut ADF ibut Be iLineNumberDecodei ncprog P F neprog SoftMotion in CoDeSys 2 3 Kapitel 11 Programmierbeispiele Der interpolierende Teil des IEC Programm bleibt fast gleich nur dass der Daten Eingang des Interpolators nicht wie zuvor dem CNC Programmnamen ADR Example entspricht sondern aus dem OutQueue Ausgang der bahnvorverarbeitenden Bausteine g_CheckVel pogDataOut besteht A Erstellen der Bedien und Testoberfl che Zu der Visualisierung des vorigen Beispiels ist es sinnvoll Templates der neuen Bausteine SMC_NCDecoder und SMC_CheckVelocities hinzuzuf gen Au erdem sollte man die globalen Variablen g x und g_y ndern k nnen um sp ter bei der Inbetriebnahme deren Funktion berpr fen zu k nnen 5 Inbetriebnahme Das so erstellte Programm l sst sich fehlerfrei bersetzen und starten und f hrt das CNC Programm aus nachdem die Execute Eing nge des Decoders und Interpolators gesetzt wurden ndert man die Werte der globalen Variablen werden diese bei einem Neustart des Decoders bernommen und die Bahn passt sich entsprechend an Man beachte auch die Funktion des Append Eingangs des Decoders 11 7 3 Bahnvorverarbeitung online Sehen Sie hierzu das mit SoftMotion mitgelieferte Beispielprojekt CNCprepro pro Wir wollen das vorige Beispiel um eine Bahnvorverarbeitung erweitern Die Ecken des letzten Programms sollen durch Splines verrundet werden
121. e deshalb dass die Zuordnung Slaveposition Kurvenscheibe Masterposition also die Bestimmung der Slaveposition durch die Masterposition ber SoftMotion in CoDeSys 2 3 4 9 Verwendung von Kurvenscheiben die Kurvenscheibe nur im ersten Kurvenscheiben Zyklus zutrifft und dann nicht mehr wenn sich die Breite der Kurvenscheibe von der Periode des Masters unterscheidet MasterAbsolute Steht dieser Eingang auf TRUE wird die Kurvenscheibe beim Start an der aktuellen Masterposition begonnen Dieser Punkt kann also auch in der Mitte der Kurvenscheibe liegen Liegt dieser Punkt au erhalb des durch die Kurvenscheibe spezifizierten Bereichs wird ein Fehler gemeldet Ist der Eingang FALSE wird die Kurvenscheibe zur aktuellen Position hin verschoben d h der Nullpunkt der Kurvenscheibe ist dann die aktuelle Masterposition Kurvenscheiben deren Masterbereich nicht die 0 enth lt K nnen nicht mit diesem Modus verwendet werden da sonst eine Fehler gemeldet wird Master verl sst spezifizierten Bereich SlaveAbsolute Dieser Eingang steht in Zusammenhang mit dem Eingang StartMode von MC_Camin Folgende Tabelle beschreibt seine Auswirkungen auf den Start Modus Cam n StartMode CamTableSelect SlaveAbsolute nF TRUE absolut relativ ramp_in ramp_in_pos ramp_in_neg absolut absolut absolut FALSE relativ relativ ramp_in ramp_in_pos ramp_in_neg relativ relativ relativ F r eine genauere Beschreibung der Modi siehe Camin Start
122. e in das entsprechende SMC_Geolnfo Objekt kopiert werden Die Applikation hat dann zur Laufzeit wenn der Interpolator auf einer M Funktion steht und wartet die M glichkeit ber den Baustein SMC_GetMParameters auf diese Werte zuzugreifen Der im folgenden beschriebene Mechanismus kann nur verwendet werden wenn die Bahn online verarbeitet wird mit SMC_NCDecoder Um zus tzliche Parameter zu bergeben kann man die in der Bibliothek SM_CNC lib angelegte globale Datenstruktur gSMC_MParameters Typ SMC_M _PARAMETERS verwenden Diese entspricht den Parametern dP1 dP8 Will man anstelle der globale Datenstruktur gSMC_MParameters eine andere selbst angelegt verwenden so kann man diese ber O var bergeben Beispielsweise enth lt q_ myMParams Typ SMC_M _PARAMETERS die zu bergebenden Parameter N150 M13 OSqg_myMParams 3 2 3 Verwendung von Variablen Zus tzlichhat man die M glichkeit anstelle fester Zahlenwerte Variablen zu verwenden Diese m ssen zwischen zwei Zeichen stehen z B R g_fVar Man beachte in diesem Kontext dass das Verwenden von Variablen nur dann funktioniert wenn das Programm als Programm Variable bersetzt und online vom Decoder Baustein verarbeitet wird Die Variablen werden zu dem Zeitpunkt ersetzt an dem der Decoder die entsprechende Zeile verarbeitet Wird das CNC Programm stattdessen als OutQueue bersetzt wird funktioniert der Variablen Mechanismus nicht da die Bahn dann offline erzeugt und als
123. eFBs lib 10 1 SM _PLCopen lib 5 1 Businterface Konfiguration 2 2 Businterface Drive lib 2 21 C CAM Kurvenscheibe aus ASCIl Tabelle importieren 4 8 CAM Editor 1 2 4 1 Start 4 1 CAM Funktionsbl cke 10 3 CAMTableSelect 4 9 CAN Achsgruppe 2 3 CAN Antriebskonfiguration 2 7 ClearFBError 9 1 CNC Programmbeispiel 11 8 CNC Data 3 1 CNC Bibliothek 1 2 CNC Code in Visualisierung 6 25 CNC Editor 1 2 Bearbeitungsmodus 3 11 Graphischer Editor 3 11 Texteditor 3 10 CNC Programm Fahrbefehl 3 2 3 3 Satz 3 2 Umwandeln in SMC_GEOINFO Strukturobjekte 6 23 Wortkennung 3 2 CNC Programm anlegen 3 7 SoftMotion in CoDeSys 2 3 Index CNC Programm aus Datei lesen 3 10 CNC Programm in Datei schreiben 3 10 CNC Programm umbenennen 3 8 CNC Programmname 3 7 D Datei f r CNC Programm 3 1 Datenstruktur f r CNC Programm 3 1 Datenstrukturen f r Kurvenscheibe 4 12 Dekodierung 6 23 Diagnose 2 19 Diagnose 10 3 DIN66025 3 2 Drive 2 2 Drive ID 2 4 Drive Interface 1 1 Drive Interface Beispielkonfiguration 11 1 Drive Konfiguration 2 4 DummyDrive lib 2 21 DXF Datei importieren 3 10 Dynamische Programmierung 11 14 E Eckverrundung 3 13 6 31 Eckverschleifung 3 13 6 29 Einstellungen im CAM Editor 4 6 Einstellungen Kurvenscheibe 4 2 Element selektieren im CAM Editor 2 9 4 8 elementoptimiert 4 7 Ellipsen 3 13 Ellipseninterpolation 3 6 Encoder 2 20 Encoder Konfiguration 2 7 Epsilonwerte f r Null ndern 3 14 Extrema anzeigen 4
124. eadAxisError 5 2 MC_ReadBoolParameter 5 3 Index MC_ReadParameter 5 3 MC _ReadStatus 5 2 MC_Reset 5 2 MC_Stop 5 5 MC_TouchProbe 5 13 MC_VelocityProfile 5 12 MC_WriteBoolParameter 5 3 MC_WriteParameter 5 3 Men CNC Programm CNC Programm aus Datei lesen 3 10 CNC Programm in Datei schreiben 3 10 CNC Programm umbenennen 3 8 DXF Datei importieren 3 10 Info 3 8 L schen 3 8 Neues CNC Programm 3 7 Objekt teilen 3 9 OutQueue in Datei schreiben 3 10 Programm drehen 3 9 Programm strecken 3 9 Programm verschieben 3 9 Queue Gr sse festlegen 3 8 Richtung umdrehen 3 9 Startposition festlegen 3 8 Winkeltoleranz f r Stop festlegen 3 9 Men Einf gen Element selektieren im CAM Editor 2 9 4 8 Gerade einf gen im CAM Editor 4 8 Nocke einf gen im CAM Editor 4 9 Punkt einf gen im CAM Editor 4 8 Men Extras Ausgabegr sse anpassen 3 12 CAM Kurvenscheibe aus ASCIl Tabelle importieren 4 8 Eckverrundung 3 13 Eckverschleifung 3 13 Eigenschaften 4 4 Einstellungen 4 2 4 6 Epsilonwerte f r Null ndern 3 14 Extrema anzeigen 4 6 Interpolation zeigen 3 14 Kreis Links Einf gemodus 3 12 Kreis Rechts Einf gemodus 3 12 Kurve komplettieren 4 6 Kurvenscheibe als ASCII Tabelle exportieren 4 8 Kurvenscheibe aus Datei lesen 4 8 Kurvenscheibe in Datei schreiben 4 7 Linien Einf gemodus 3 12 Programm neu nummerieren 3 10 Satzunterdr ckung 3 14 Schleifenvermeidung 3 13 Selektiermodus 3 12 Spline Einf gemodus 3 12 Splines Ellipsen durch Geraden er
125. eins bExecute BOOL Der Baustein f hrt einen Reset aus und beginnt mit der Werkzeugradiuskorrektur wenn dieser Eingang eine steigende Flanke aufweist bAppend BOOL Steht dieser Eingang auf FALSE so wird bei jedem Reset die Ausgabe Datenqueue DataOut geleert Bei TRUE werden die neuen Daten ans Ende der DataOut Queue geschrieben poqDataln POINTER TO SMC_OUTQUEUE Dieser Eingang zeigt auf das SMC_OUTQUEUE Strukturobjekt das die SMC_GEOINFO Objekte der Bahn enth lt typischerweise auf den Ausgang DataOut des Vorg ngerbausteins z B des SMC_NCDecoders Sie ist entsprechend gro zu dimensionieren s o nSizeOutQueue UDINT Hier wird dem Baustein die Gr e des Datenpuffers mitgeteilt in den die Liste von GEOINFO Strukturobjekten geschrieben wird Dieser muss mindestens f nf mal so gro wie eine GEOINFO Struktur Ist dies nicht der Fall so f hrt der SMC_NCDecoder keine Aktionen durch Der Wert darf gesetzt und hernach nur w hrend eines Resets ver ndert werden Es empfiehlt sich den eigentlichen Buffer wie unten beschrieben z B als Example Array of SMC GeoInfo anzulegen Die entsprechende Buffergr e ergibt sich dann aus sizeof Example pbyBufferOutQueue POINTER TO BYTE Dieser Eingang muss auf das erste Byte des f r die OUTQUEUE Struktur angelegten Speicherbereichs zeigen Dieser Speicherbereich muss mindestens so gro sein wie in nSizeOutQueue angegeben Typischerweise erfolgt das Belegen dieses Speichers im
126. elcher auch die Bahn Geschwindigkeit und Richtung als Steuergr e f r die Achsen verwendet wird Diese beginnen mit SMC_TRAFOV _ anstelle von SMC_TRAFO_ Sie ben tigen als zus tzlichen Eing nge die Bahntangente v und geschwindigkeit dVel aus dem Interpolator Neben den Sollpositionen geben sie die Sollgeschwindigkeiten dvx dvy dvz aus Der Vorteile dieser Methode ist dass der Schleppfehler im Antrieb durch die Geschwindigkeitsvorsteuerung vorausgesetzt der Antrieb unterst tzt diesen Modus minimiert werden kann Jede Achse sollte deshalb ber den Baustein SMC_ControlAxisByPosVel gesteuert werden SoftMotion in CoDeSys 2 3 8 3 8 2 2 Transformations Funktionsbl cke Portal Systeme mit Werkzeugversatz Es gibt Maschinenportale deren xyz Position nicht mit dem Werkzeug Eingriffspunkt bereinstimmt da dieser nicht axial in der Z Achse liegt sondern versetzt liegt Kann die Z Achse nicht gedreht werden ist das ein konstanter xy Offset der als solcher in die Standard Gantry Transformation eingebracht werden kann Ist allerdings eine Drehachse um z im Spiel handelt es sich nicht um einen konstanten Offset die Verschiebung ist abh ngig von der Stellung der C Achse Zu unterscheiden ist ob das Werkzeug als Gerade dann wenn der Vektor zwischen Werkzeugeingriffspunkt und Achse und die gew nschte Ausrichtung des Werkzeugs bereinstimmen gt SMC_TRAFO_Gantry2Tool1 oder als Parallelogramm bzw rechtwinklig
127. elung ein aus bDriveStart BOOL Default FALSE Setzt bzw l st die Bremse im Antrieb 5 4 SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib Ein Ausgang VAR IN OUT des Bausteins Axis AXIS_REF Hier wird die Struktur bergeben die im Drive Interface SM_DriveBasic lib mit den Daten der Achse gef llt wurde Ausg nge des Bausteins Status BOOL Default FALSE Zeigt an ob der Antrieb augenblicklich in TRUE oder ohne Regelung FALSE ist Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer MC_Home Dieser Baustein der SM_PLCopen lib st t eine Referenzfahrt im Antrieb an Diese ist antriebsherstellerspezifisch und wird lediglich ber das Drivelnterface angestossen Meldet der Antrieb dass sie erfolgreich beendet wurde wird der Ausgang Done gesetzt MC _ HOME Execute BOOL Done BOOL Fosition LEEAL command kborted BOOL Deceleration LEEAL Axis ASIS_REF WAARIN OIT Axis ARAlS_REF WARLIN OUT Eing nge des Bausteins Execute BOOL Default FALSE Die Referenzfahrt des Antriebs soll bei steigender Flanke gestartet werden Position REAL Angabe der absoluten Position zum Zeitpunkt des Referenzsignals Ausg nge des Bausteins Done BOOL Default FALSE Bei TRUE ist die Referenzfahrt abgeschlossen und der Antrieb wieder im Stillstand CommandAborted BOOL Default FAL
128. en Ein weiteres wichtiges Anwendungsgebiet ist die CNC Steuerung wo Sollwerte in X Y Z erst durch einen Transformationsbaustein laufen und auf Sollwerte f r die einzelnen Achsen umgerechnet werden m ssen Um diese Sollwerte dann an die Achse zu senden und ggf Grenzwert berwachungen durchzuf hren stehen folgende Bausteine zur Verf gung Die Bausteine SMC_FollowPosition Velocity schreiben vorgegebene Sollwerte ohne weitere berpr fung auf die Achsstruktur Der Baustein SMC_CheckLimits berpr ft die aktuellen Sollwerte auf Einhaltung der Grenzen hin Die Bausteine SMC_ControlAxisByPos Vel sind speziell f r die CNC gedacht und bieten zus tzliche Funktionalit t Solange die Grenzen nicht berschritten werden arbeiten sie wie SMC_FollowPosition Velocity Tritt aber ein Sollwert Sprung auf was z B durch das sequentielle Abfahren zweier CNC Programme entsteht bei denen Endpunkt und Startpunkt nicht bereinstimmen halten sie den Interpolator an positionieren auf die aktuelle Interpolator Sollposition und l sen die Sperre wieder worauf der Interpolator weiterf hrt Diese Bausteine sind also daf r gedacht Positions Sollwertspr nge auszugleichen Einen solchen detektieren sie indem sie die Einhaltung der Maxima von Geschwindigkeit und Beschleunigung berpr fen Die berschreitung der Grenzen kann aber auch dann auftreten wenn die Geschwindigkeit des CNC Programms oder der Override Wert am Interpolator zu hoch oder die M
129. en die f r die SoftMotion Bausteine nicht von Belang sind dA dB und dC werden momentan nicht verwendet wAuxData gibt bitweise an welche der Positionsachsen vom SMC_lnterpolator berechnet werden sollen Initialisiert wird wAuxData mit 2 111 d h X Y und Z Achse werden interpoliert Ist das erste Bit gesetzt wird die dX Position berechnet Bit 7 beispielsweise bewirkt eine Bearbeitung von dA2 wSProfile gibt in gleicher Weise f r die Zusatzachsen an alle au er X Y Achse ob sie vom Interpolator linear FALSE oder S f rmig TRUE interpoliert werden sollen Dabei stehen Bit2 f r die Z Achse Bit6 f r P Bit7 f r Q Bit8 f r U Bit9 f r V und Bit10 f r W SMC_GEOINFO In der in SMC_CNC lib enthaltenen Struktur SMC_GEOINFO wird je ein Wegobjekt gespeichert Als ein Wegobjekt wird ein Teil der programmierten Bahn bezeichnet das sich aufgrund seiner geometrischen Form vollst ndig in der folgenden Struktur abspeichern l sst TYPE SMC GEOINFO STRUCT i1ObjNo INT iSourceLineNo INT 1MoveType MOVTYP piStartPos SMC POSINFO piDestPos SMC POSINFO AP1 LREAL dAP2 LREAL dP3 LREAL AP4 LREAIL AP5 LREAL AP6 LREAL AP7 LREAL AP8 LREAL ATI LREAL dT2 LREAL AToolRadius LREAL AVel LREAL AVelEnd LREAL dAccel LREAL aADecel LREAL dLength LREAL byInternMark BYTE dHelpPos ARRAY O MAX IPOSWITCHES OF LREAL iHelpID ARRAY OD MAX IPOSWITCHES OF INT SoftMotion in CoDeSys 2 3 6 41 6 42 Strukture
130. en Werten die in den Feldern Verz gerung und Dauer eingetragen sind gestartet Das Nocken Quadrat wird cyan gef llt ID Kennnummer der Nocke zur Referenzierung im Projekt INT mehrere Nocken k nnen dieselbe Gruppen ID erhalten und dadurch in dem Sinne gruppiert werden dass die ihnen zugeordnete Aktion denselben digitalen Schalter bedient Verz gerung ps Zeitspanne nach der nach Durchlauf durch das Nockenelement die Aktion mit der sie im Projekt verkn pft ist gestartet wird nach der das Nocken Bit auf TRUE gesetzt werden soll nur wenn Aktion zeitgesteuert ein Dauer ps Angabe wie lange die Aktion mit der die Nocke im Projekt verkn pft ist nach ihrem Start aktiv sein soll wie lange das Nocken Bit TRUE sein soll nur wenn Aktion zeitgesteuert ein Master Position X Position der Nocke Slave Position Y Position der Nocke nicht editierbar da durch den Kurvenverlauf vorgegeben SoftMotion in CoDeSys 2 3 4 5 Editieren einer Kurvenscheibe Die in den Eigenschaften Dialogen eingetragenen Werte k nnen mit OK oder bernehmen best tigt werden worauf die Kurve im Editor entsprechend angepasst wird OK schlie t gleichzeitig den Dialog w hrend er bei bernehmen ge ffnet bleibt Bearbeiten der Eigenschaften einzelner Kurvenelemente 2 Durch Selektieren und Verschieben im Editorfenster Ein Element kann durch Mausklick selektiert und bei gedr ckt gehaltenem Mauszeiger verschoben werden Dies hat r
131. en k nnen sodass nicht alle Geolnfo Objekte darin Platz finden und die Ringpuffer Funktionalit t benutzt wird Dadurch k nnen Spezialeffekte auftreten z B Abbremsen an Knickfreier Stelle die Sie mit dieser Funktion simulieren und nachvollziehen k nnen M gliche Werte 5000 100 000 Bytes Mit OK werden die Werte bernommen CNC Programm Startposition festlegen Im Dialog Startpunkt k nnen zu Simulationszwecken vom Standardwert 0 abweichende Startposition f r die Bahn eingegeben werden F r folgenden Achsen sind Eingaben m glich X Y Z P Q U V W 3 8 SoftMotion in CoDeSys 2 3 Kapitel 3 Der CNC Editor CNC Programm Winkeltoleranz f r Stop festlegen Im Dialog Winkeltoleranz f r Stops kann die Empfindlichkeit f r einen Bahnknick eingestellt werden Die Eingabe legt den Grenzwinkel f r die Tangenten zweier Wegobjekte fest ab der gestoppt wird Winkeltoleranz fur Stops 0 023 0 150 Abbruch ih 7 x Beispiel Winkeltoleranz 45 Programm verschieben W hlen Sie diesen Men punkt und geben Sie im Dialog Bewegungsvektor einen Verschiebungsvektor ein Das aktuelle CNC Programm wird um diesen Vektor verschoben F r folgenden Achsen sind Eingaben m glich X Y Z P Q U V W Programm drehen Um das aktuelle Programm zu drehen w hlen Sie diesen Men punkt und geben Sie im Dialog Rotationswinkel den Rotationswinkel ein Das NC Programm wird um den angegebenen Winkel gegen den Uhrzeiger
132. en nun nach und nach parametriert werden e Zun chst sollten f r alle Antriebe gem deren Konfiguration die ID wDriveld eingestellt werden Im folgenden wird beschrieben wie die Einstellungen beim Reiter Modulparameter gemacht werden m ssen viel einfacher und selbst erkl rend geht dies auch ber die Dialoge Die Portalantriebe k nnen jeweils zwischen 50cm und 50cm bewegt werden Ihre Wichtung sei translatorisch konfiguriert Ein Inkrement f r alle Positions und Geschwindigkeitsdaten betrage 10 m bzw 10 7m s Wollen wir stattdessen dass alle IEC Positions und Geschwindigkeitsdaten sich auf mm bzw mm sec beziehen tragen wir in dwRatioTlechUnitsDenom 10000 in iRatioTechUnitsNum 1 ein Da es sich um einen Linearantrieb handelt hat fPositionPeriod keine Bedeutung Es sollten jetzt lediglich noch die Daten spezifiziert werden die zyklisch gesendet und empfangen werden bspw wenn wir uns auf ein Vorzugstelegramm beziehen wollen gen gt es aus wControlType POS VEL gt POS VEL auszusuchen Damit werden zyklisch die Positions und Geschwindigkeits Sollwerte geschickt und die aktuellen Positions und Geschwindigkeits Istwerte erhalten Um das Verlassen des zul ssigen Bereichs 50cm 5000mm 50 cm 5000mm zus tzlich zu berwachen die Applikation sollte so programmiert sein dass ein Verlassen dieses Bereiches nicht m glich ist wird mit dem Setzen von SWLimitEnable TRUE SWLimitNegative 5000 und SWLimitPo
133. ende Darstellung entspricht den Defaulteinstellungen im Eigenschaften Dialog Kurvrenscheiben Miz x 0 20 40 60 80 100 120 140 160 150 200 220 240 260 280 300 320 340 360 Zur Bearbeitung der Einstellungen kann der Eigenschaften Dialog f r die aktuell markierte Kurvenscheibe jederzeit ber den Befehl Einstellungen wieder ge ffnet werden der im Men Extras oder im Kontextmen verf gbar ist bzw mit einem Doppelklick auf den Eintrag in der Kurvenscheibenliste Kurvenscheiben Baum 4 4 4 4 1 Der in der linken Fensterh lfte dargestellte Kurvenscheibenbaum enth lt alle Kurvenscheiben E und Nockenschaltwerke Diese Elemente werden stets so sortiert dass alle Elemente die dieselbe Master Skalierung haben d h sich potentiell auf dieselbe Achse beziehen denselben Vater haben Editieren einer Kurvenscheibe In der linken Spalte des Editors w hlt man die Kurvenscheibe aus an der man arbeiten will Dazu f hrt man einen Mausklick auf den Eintrag aus so dass dieser markiert dargestellt blau hinterlegt wird und in den Editorfenstern angezeigt wird Durch gleichzeitiges Dr cken der lt Strg gt Taste und Mausklick auf eine oder mehrere weitere Kurvenscheiben mit demselben Vater siehe Kapitel 4 3 Kurvenscheibenbaum werden diese Kurvenscheiben ebenfalls mit angezeigt Allgemeine Editor Einstellungen Der Editiermodus kann im Men Einf gen oder ber die entsprechende S
134. entabelle enth lt nur Nocken Skalierung Master Achse Hier wird die Skalierung der Master Achse definiert Wenn Sie die Option 360 aktivieren werden die Einstellungen von Minimalwert Maximalwert Schrittweite und Einheit automatisch gesetzt 0 360 20 ansonsten k nnen Sie diese auch individuell definieren Skalierung Slave Achse Hier wird die Skalierung der Slave Achse definiert Die Default Einstellungen sehen Sie in der oben gezeigten Abbildung des Dialogs Eigenschaften Wenn die Option periodisch aktiviert ist wird sichergestellt dass am Anfangs und Endpunkt der Kurvenscheibe Funktionswerte sowie erste und zweite Ableitungen bereinstimmen nderungen die beim Editieren der Kurve am Endpunkt vorgenommen werden werden dann negiert Schlie en Sie den Dialog mit OK um die Einstellungen zu best tigen Daraufhin erscheint in der linken Spalte Kurvenscheibenliste des CAM Editorfensters der Name der neu erstellten Kurvenscheibe Solange dieser Eintrag markiert ist wird die Kurvenscheibe im Editor dargestellt und kann bearbeitet werden siehe Kapitel 4 4 CAM editieren In den beiden rechten Fensterteilen wird die neu angelegte Kurvenscheibe dargestellt Sie sehen nun die waagrechten blauen Masterachsen die blaue Positionsachse Slave im oberen Fenster und die Geschwindigkeits SoftMotion in CoDeSys 2 3 Kapitel 4 Der CAM Editor in CoDeSys dunkelblau und Beschleunigungsskala gr n im unteren Fenster Die folg
135. er und f hrt den Slave mit der momentanen Geschwindigkeit weiter ME CAMOLT Execute BOOL Slave ASIS_REF WARUN OUT ErrorlD WORD Slave AMIS_REF WARUM OUT MC_Gearln Dieser Baustein der SM_PLCopen lib koppelt die Slave Achse an die Master Achse Die Geschwindigkeit der Slave Achse ist dabei ein f faches der Master Achse Dieser Faktor f berechnet sich aus dem Quotienten der Eingabeparameter RatioNumerator und RatioDenominator M _GEARIN Execute BOOL InGear BOOL FatioMumerator IMT Ciommand borted BOOL Ratiobenominator UINT Error BOOL Acceleration LREAL Errorlo WORD Deceleration LREAL Waster AsIS_REF WARUN OUT Waster AAlS_REF WARN OUT Slave ASIS_REF WARUNLOUT Slave ASIS_REF WARUN OUT Der Baustein beschleunigt bzw bremst die Slave Achse so lange bis ihre Geschwindigkeit zu der der Master Achse das gew nschte Verh ltnis hat wobei er die Werte Acceleration und Deceleration benutzt Ist dies erledigt leitet sich die Geschwindigkeit der Slave Achse von der Master Achse ab SoftMotion in CoDeSys 2 3 5 17 Zusatzbausteine Steht die Variable bRegulatorOn der Master Achse auf TRUE werden ihre Geschwindigkeits Sollwerte ansonsten die Istwerte verwendet MC_GearOut Dieser Baustein der SM_PLCopen lib entkoppelt den Slave Antrieb vom Master und f hrt den Slave mit der momentanen Geschwindigkeit weiter Mo _GEARQIJT Execute BOOL Slave ASIS_REF WARUN OUT ErrorlD WORD Slave ASIS_REF WA
136. er CNC Editor spezifizierten Start Position Wurde diese nicht festgelegt beginnt er bei X 0 Y 0 Z 0 Zus tzlich besteht die M glichkeit mittels G92 die Position im CNC Programm zu setzen Dies ist sowohl am Anfang des CNC Programms m glich dort bewirkt es das Setzen der Startposition als auch in der Mitte des Programms wo es einen Sprung der Soll Position auf die mit G92 definierte Position zur Folge hat Bei mehreren aufeinander folgenden G92 Befehlen berwiegt der letzte die vorherigen werden also bersprungen Will man aber sicherstellen dass auch die vorigen G92 Positionen f r einen Zyklus lang ausgegeben werden f gt man dazwischen den Befehl G1 mit identischen Koordinaten ein Dieses Mittel setzt man ein wenn die Bahn zwischen diesen Punkten nicht von Interesse ist sondern die Sollposition auf schnellstm glichem Weg dorthin gelangen soll Die Bausteine SMC_ControlAxisByPos detektieren dann einen Sprung in den SoftMotion in CoDeSys 2 3 Kapitel 3 Der CNC Editor Sollwerten halten den Interpolator an und interpolieren jede Achse einzeln auf schnellstm glichem Weg dorthin Beispiel G92 X100 Y100 Sollposition auf 100 100 setzen G1 X100 Y100 einmalige Ausgabe der Position sicherstellen G92 X50 Y100 Sollposition auf 50 100 setzen Ein mit dem Zeichen beginnender Satz wird bei eingeschalteter Satzunterdr ckung bersprungen Zeichen die innerhalb zweier runder Klammern stehen werden als Kommentare aufgefasst und
137. er Eingang bewirkt dass der Interpolator an jedem bergang zwischen zwei Bahnobjekten auch an bergangen mit gleicher Tangente f r die Dauer eines Zyklus anh lt Wird bSingleStep w hrend des Verfahrens auf TRUE gesetzt h lt der Interpolator am n chsten Objektende an das er ohne ein berschreiten der vorgegebenen Bremsung erreichen kann Wenn der Interpolator am n chsten m glichen Stop also an Punkten wo die Geschwindigkeit O betr gt anhalten soll muss bWaitAtNextStop verwendet werden SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib bAcknM BOOL Mit diesem Eingang kann eine anstehende Zusatzfunktion M Funktion quittiert werden Ist der Eingang TRUE wird diese gel scht und die Bahn wird fortgesetzt Ausg nge des Bausteins bDone BOOL Diese Variable wird auf TRUE gesetzt wenn die Eingangsdaten aus Dataln vollst ndig verarbeitet sind Hernach f hrt der Baustein bis zu einem Reset keine Aktionen mehr durch Steht der bExecute Eingang auf FALSE wird bDone wieder auf FALSE gesetzt bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ERROR INT Dieser Enum Ausgang beschreibt ggf einen Fehler der beim Interpolieren aufgefallen ist Nach einem Fehler wird die Abarbeitung bis zu einem Reset gestoppt piSetPosition SMC_POSINFO In Set_Position steht die gem den Vorgaben berechnete Soll Position Set_Position ist eine SMC_POSINFO Struktur und enth lt nicht nur die k
138. er globale Variablen Unter SoftMotion_CNC_Globals siehe Resourcen unter Eintrag f r Bibliothek SM_CNC lib sind einige interne Variablen und Konstanten definiert Manche davon k nnen ge ndert werden Pr fung auf Null siehe 3 6 Epsilon Werte f r Null ndern e g fSMC_CNC_EPS Epsilon Wert f r exakte Nullpr fung e g fSMC_CNC_EPS_RELUCTANT Epsilon Wert f r tolerante Nullpr fung SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib 6 5 Strukturen der SM_CNC lib Im folgenden sehen Sie die Beschreibung einer Auswahl von Strukturen der SM_CNC lib die von den Bausteinen der SM_CNC lib zur Speicherung von Positionen Bahnabschnitten Wegobjekten und Vektoren verwendet werden SMC_POSINFO SMC_GEOINFO SMC_VECTOR3D SMC_VECTOR6D Au erdem der SMC_OUTQUEUE Struktur die hilft GEOINFO Objekte in einer Liste definierter Gr e zu verwalten SMC_POSINFO In der in SMC_CNC lib enthaltenen Struktur SMC_POSINFO werden Koordinaten und Stellung der Zusatzachsen einer Position gespeichert TYPE SMC POSINFO STRUCT iFrame Nr INT wAuxData WORD wSProfile WORD AX LREAL AY EREAL AZ LREAL A LREAL B LREAL AC LREAL dA1 LREAL dA2 LREAL dA3 LREAL dA4A LREAL dA5 LREAL dA6 LREAL END STRUCT END TYPE Dabei enthalten die Variablen dX dY und dZ die Position im Raum dA1 dA6 die Stellung der Zusatzachsen iFrame_Nr gibt dem Benutzer die M glichkeit weitere Informationen abzuleg
139. erden alle GEOINFO Elemente von pogDataln bearbeitet Sobald bEnable FALSE wird nehmen die Bausteine keine Ver nderungen mehr vor Der Eingang bReset der ebenfalls mit FALSE initialisiert ist bewirkt da die momentan in pogDataln liegenden GEOINFO Objekte nicht bearbeitet werden sondern erst die ab jetzt eintreffenden rotiert bzw verschwoben werden e SMC_ROTATEQUEUE2D Die in poqDataln enthaltene Bahn wird um die Z Achse um den in dPhi bergebenen Winkel in verschoben Ein positiver Winkel bewirkt eine im mathematischen Sinn positive Drehung gegen den Uhrzeigersinn e SMC_TRANSLATEQUEUES3D Die in pogDataln enthaltene Bahn wird um den in vec bergebenen Vektor vom Strukturtyp SMC_VECTOR3D siehe SMC_VECTORS3D verschoben e SMC_SCALEQUEUE3D Die in pogDataln enthaltene Bahn wird um den Faktor fScaleFaktor gestreckt Da eine pl tzliche nderung der charakteristischen Gr en der Rotation Translation dPhi vec w hrend der Abarbeitung einen Sprung in der Bahn zur Folge haben k nnte werden nderungen in den Eing ngen dieser Gr en solange nicht beachtet bis die SMC_OUTQUEUE bei pogDataln leer ist oder ein bDReset stattfindet Um eine Rotation in der XY Ebene um einen anderen Punkt als 00 d h um den Punkt XpYp zu erreichen verwende man hintereinander eine Translation um den Vektor Xa Yp O die Rotation mit dem gew nschten Winkel dPhi und eine weitere Translation um den Vektor XyYp O0 Einstellungen b
140. es fValue und diValue dessen Wert als Gleitkomma und Integerzahl Werden statt festen Werten Variablen verwendet so steht in pADR ein Zeiger auf diese Variable und in byVarType deren me 6 6 Bahn Kurvenscheiben mit SMC_XiInterpolator Der Baustein SMC_XInterpolator realisiert eine Mischung aus Kurvenscheibe und CNC Man stelle sich vor man m chte eine gewisse Form beschrieben durch G Code aus einem Werkst ck schneiden wobei das Werkst ck von einem anderen Prozess z B entlang der X Achse bewegt wird und die anderen Achsen Y Z etc gem der aktuellen Position des Werkst cks X und der Vorgabe aus der Bahnkontur gesteuert werden soll Die Bewegung des Werkst cks erfolgt stets in X Richtung andere F lle k nnen durch Drehung darauf abgebildet werden Der Baustein SMC_XfInterpolator besitzt folgende Ein und Ausg nge SMC_nterpolator bExecute bDone pogDataln bErr r ivelMode wErrorD dwipoTime pisetFosition JlastWVayfos status bAbort biVorking eDireclion 1Act bjectSourceNo dJXOffset dvel X AX S vecAcfTangent Lastswitch dwSwitches dayPos nDirection Eing nge des Bausteins bExecute BOOL Der Baustein f hrt einen Reset aus und beginnt mit der Interpolation wenn dieser Eingang eine steigende Flanke aufweist poqDataln POINTER TO SMC_OUTQUEUE Dieser Eingang zeigt auf das SMC_OUTQUEUE Strukturobjekt das die SMC_GEOINFO Objekte der Bahn enth lt die interpoliert werden soll SoftMotion i
141. es Dreieck angen hert werden muss SMC_TRAFO_Gantry2Tool2 dAlpha dAlpha CMC Code In diesem Beispiel kann das Werkzeug nicht als Gerade sondern muss als rechtwinkliges Dreieck angen hert werden Laser Prinzipiell kann anstelle der eindimensionalen Transformation mit Werkzeugversatz Werkzeug kann als Gerade angen hert werden auch die Bahn mittels SMC_Toolcorr entsprechend moduliert werden Der Unterschied zwischen beiden Methoden liegt in der Geschwindigkeit des Werkzeugpunkts W hrend bei der L sung mit SMC_ToolCorr die Geschwindigkeit des Drehpunktes gem den Vorgaben aus dem CNC Programm F E gesteuert wird wobei die des Werkzeugpunktes variieren kann wird bei der Verwendung dieser Transformation die Geschwindigkeit des Werkzeugpunktes durch das CNC Programm festgelegt F r die Berechnung der Ausrichtung des Werkzeugs dAlpha kann folgende Funktion verwendet werden SMC_CalcDirectionFromVector 8 4 SMC _CALCDIRECTIONFROMYECTOR v BMC_YECTOR30 dDir LREAL eDir SMC _MECTORDIR SoftMotion in CoDeSys 2 3 Kapitel 8 Die Bibliothek SM_Trafo lib v SMC_VECTOR3D Der Eingangsvektor v ist typischerweise der Interpolatorausgang vecActTangent eDir SMC_VECTORDIR In eDir wird spezifiziert ob die Richtung tangential zur Bahn SMC_tangential entgegengesetzt SMC_opp_tangential oder orthogonal dazu SMC_orthogonal_r rechts der Bahntangente bzw SMC_orthogonal_ links der Bahntangente berechnet wer
142. es f r wParam1 die Baudrate in MBit z B 2 und in wParam2 die Helligkeit der LED e Wir ffnen die Taskkonfiguration und erstellen eine Task mit diesen Eigenschaften 11 2 SoftMotion in CoDeSys 2 3 Kapitel 11 Programmierbeispiele HE Steuerungskonfiguration B PL Configuration Bl Businterface vAR Mae e U ea Su eu sTask dw ycle wParam wParam wParam wParamd dwParam dwParamz dwParams dwParamd oo a o n m ca o ven ze VG em TO ae a Dez m o OO C 000060 6C ll e Nun geht es daran die Antriebe einzuh ngen Es seien vier Antriebe vorhanden drei Linearantriebe die ein X Y Z Portalsystem bedienen sowie ein Antrieb der das Werkzeug in der Z Achse dreht Wenn der Eintrag AxisGroup im Konfigurationsbaum selektiert ist gepunkteter Rahmen k nnen jeweils durch Klick mit der rechten Maustaste und Anw hlen von Drive anh ngen nacheinander vier Antriebe eingeh ngt werden Deren Namen k nnen dann mit beliebigen IEC Bezeichnern belegt werden wenn durch Klicken auf den Eintrag ein Editierfeld um den Namen ge ffnet wird F r unser Beispiel geben Sie folgende Bezeichnungen ein HE Steuerungskonfiguration l oj x E gP PLC Configuration u 8 42 Businterfacefv AR Modulparameter E i Axis Groupi AR i ee EL ki Drive WAF OR aP Y Drive WARF wDrNEId gP z Drive AR wControlType ER Fot Drive AR wCYyclicDatas P a M a h woyclicDatas z al wCvelirData82 e Die Antriebe m ss
143. esem h lt man nun die Achse y1 fest und dreht das Koordinatensystem um woraus x2 y2 y1 z2 entsteht Schlie lich dreht man dieses Koordinatensystem um x2 um den Winkel a Dadurch erh lt man x x2 y z 2 Ausgehend vom Koordinatensystem x y z dreht man das Koordinatensystem um die x Achse um den Winkel a Das so entstandene Koordinatensystem xa x ya za dreht man um die urspr ngliche y Achse nicht ya um B xb yb zb udn anschlie end um die urspr ngliche Z Achse um y wodurch X y zZ entsteht SMC_CoordinateTransformation 3D Dieser Baustein berechnet die Koordinaten einer im alten Koordinatensystem vorliegenden Position bzgl des neuen Koordinatensystems Daf r wird die Koordinatentransformation des neuen bzgl des alten Koordinatensystems mittels Translationsvektor und neuen Einheitsvektoren vorgegeben SsM _COORDINATETRANSFORMATIONSD VX SMC _Yector3D Out SMC_Vecior3D vY SMC_Vector3D YZ SMC Yector3D vTranslation SUMC_Vector3D yin SMC_Vector3D vX vY vZ SMC_Vector3D Einheitsvektoren des neuen Koordinatensystems bzgl des alten SoftMotion in CoDeSys 2 3 8 15 R umliche Transformationen vTranslation SMC_Vector3D Verschiebungsvektor Vektor vom alten Koordinatenursprung zum neuen bzgl des alten Koordinatensystems vin SMC_Vector3D zu transformierende Position vOut SMC_Vector3D transformierte Position SMC_UnitVectorToRPY Baustein zur Errechnung der RPY Win
144. et Dabei bewirken alle Worte au er den Fahrbefehlen G lt zahl gt z B G02 siehe auch untenstehende Liste dass die Wort Zahl in eine Variable gem dem Wort Buchstaben geschrieben wird auf welche schlie lich der Fahrbefehl zugreift Jeder Satz darf nur einen Fahrbefehl enthalten der direkt rechts neben der Satznummer stehen muss Wird der Fahrbefehl in einem Satz nicht eingetragen so wird automatisch der im letzten Satz verwendete Fahrbefehl erg nzt Jeder Fahrbefehl kann als Wegobjekt Gerade Kreisbogen verstanden werden Die Geschwindigkeit mit welcher die Bahnobjekte interpoliert werden richtet sich grunds tzlich nach der eingestellten Sollgeschwindigkeit beschleunigung und bremsung Der Interpolator hat sicherzustellen dass diese Grenzwerte nicht berschritten werden Die Geschwindigkeit w hrend des bergangs zweier benachbarter Objekte wird nach folgenden Regeln bestimmt e Eines der beiden Objekte ist eine Positionierung GO bergangsgeschwindigkeit 0 e Der Winkel zwischen den Tangenten der beiden Objekte am bergang sind gr er als die Winkeltoleranz bergangsgeschwindigkeit 0 e Ansonsten Die bergangsgeschwindigkeit ist die kleinere Sollgeschwindigkeit der beiden Wegbjekte Grunds tzlich bewirkt ein Fahrbefehl dass von der Zielposition des letzten Fahrbefehls ausgehend zur in diesem Fahrbefehl spezifizierten Zielposition interpoliert wird Der erste Fahrbefehl startet an der im Decoder od
145. et sich aus der Position am Start und dem Integral ber die Geschwindigkeit MO _ACCELERATONMPRGFILE Execute BOOL Done BOOL ArraySize INT CommandAborted BQL Scale LREAL Error BOOL Offset LREAL ErrorlD WORD Axis ASIS_REF WARUN_OUT Axis AXIS_REF WARUN_OUT TimeAcceleration MC_TA_LREF MARIN OUT TimeAcceleration ME _TA_REF MARIN OUT MC_SetPosition Dieser Baustein verschiebt den Nullpunkt der Achse so dass e im Absolut Modus Mode FALSE Default der ber den Eingang Position vorgegebene Wert die momentane Soll Position wird bzw e im Relativ Modus Mode TRUE die aktuelle Soll Position um den Wert Position verschoben wird MC_SETFOSITION Execute BOOL Fosition LREAL Mode BOOL ErrorlD WORD Axis AXIS_REF WAR_LIN OUT Axis AXIS_REF WARIN_OUT Grunds tzlich kann der Baustein zu jedem Zeitpunkt aufgerufen werden Man beachte aber dass bei einer bahngesteuerten Bewegung wenn die Sollpositionen dem Baustein direkt z B ber SMC_ControlAxisByPos zugef hrt werden ein Sollpositions Sprung entstehen kann MC_TouchProbe Dieser Baustein dient dazu ber einen schnellen Eingang die Position des Antriebs hochgenau zu erfassen Da dies i d R schneller als im normalen SPS Zyklus geschehen muss wird h ufig entweder SoftMotion in CoDeSys 2 3 5 13 Bausteine zur synchronisierten Bewegungssteuerung multi axis der Antrieb mit dieser Funktion beaufschlagt oder sie wird vom SPS Takt unabh
146. etTorque 5 22 SMC_ShowCNCRERF 7 1 SMC_ShowQueue 7 1 SMC_SmoothPath 6 29 SMC_ToolCorr 6 26 SMC_TRAFO_Gantry2 8 1 SMC_TRAFO_Gantry2Tool1 8 5 SMC_TRAFO_Gantry2Tool2 8 6 SMC_TRAFO_Gantry3 8 2 SMC_TRAFO_GantryH2 8 8 SMC_TRAFO_Scara2 8 10 SMC_TRAFO_Scara3 8 11 SMC_TRAFO Tripod 8 13 SMC_TRAFOF _Gantry2 8 2 SMC_TRAFOF _Gantry2Tool1 8 5 SMC_TRAFOF _Gantry2Tool2 8 7 SMC_TRAFOF _Gantry3 8 3 SMC_TRAFOF _GantryH2 8 9 SMC_TRAFOF _Scara2 8 10 SMC_TRAFOF_Scara3 8 12 SMC_TRAFOF Tripod 8 14 8 16 SMC_TRAFOV_Gantry 8 3 SMC_TRANSLATEQUEUE3D 6 40 SMC_VARLIST 10 2 SMC_VECTOR3D 6 41 6 44 SMC_VECTOR6D 6 44 SMC_WriteCANParameter 2 21 SMC_WriteDriveParamsToFile 2 28 SoftMotion Drive Interface 2 1 SoftMotion Komponenten 1 1 SoftMotion_CNC_Globals 6 40 Sollwerte 5 19 Sollwert berschreitung 2 14 Sollwertvorgabe 2 12 Spline einf gen 3 12 Spline Einf gemodus 3 12 Splineinterpolation 3 6 Splines 3 13 Sprung 3 6 StartMode 4 10 Startposition festlegen 3 8 Steigung 4 6 Steuerungskonfiguration f r Antriebe Beispiel 11 1 Steuerungskonfiguration f r SoftMotion 2 2 Strukturbef llung 4 12 T Texteditor 3 10 Transformation 8 1 Transformations Funktionsbl cke 8 1 U bersetzungsoptionen 4 6 Umrechnungsfaktor f r Antriebe 2 4 Umschalten zwischen Kurvenscheiben 4 11 V Variabelnwerte ber CNC Programm ver ndern 3 6 Variablen in CNC Programm 3 5 Vektorspeicherung 6 44 Versetzte Bahn 6 26 6 27 Virtuelle Zeitachse 11 7 Virtuelle
147. f ist w hrend der Bewegungsphase eindeutig festgelegt wodurch auch der Ruck Jerk nicht begrenzt werden kann Die Festelegung desselben wird lediglich verwendet wenn der Antrieb zu Beginn bereits einen aktuellen Beschleunigungswert ungleich null besitzt Dann n mlich wird die Beschleunigung ruckbegrenzt auf null gefahren bevor die eigentliche Bewegung gestartet wird Im Vergleich zum trapezf rmigen Geschwindigkeitsprofil dauert diese Bewegung l nger Beim parabolischen Geschwindigkeitsverlauf nimmt die Beschleunigung ein stetiges trapezf rmiges Profil an dessen Steigung durch den Ruck Jerk begrenzt wird F r die Geschwindigkeit ergibt sich ein stetiges parabolisches Profil Nur bei diesem Profil kann der Ruck wirklich begrenzt werden SoftMotion in CoDeSys 2 3 2 5 2 6 Steuerungskonfiguration f r SoftMotion Alle diese Einstellungen k nnen zudem im Reiter Modulparameter eingesehen und ver ndert werden ID des Antriebs in der AxisGroup WORD wControlType vordefiniertte Steuerungs und R ckmeldearten WORD folgende Auswahlm glichkeiten lt Sendedaten gt gt lt R ckmeldedaten gt TOR gt Drehmoment Torque gt VEL gt VEL Geschwindigkeit gt Geschwindigkeit VEL gt POS Geschwindigkeit gt Position POS gt POS Position gt Position POS VEL gt POS VEL Position Geschwindigkeit gt Geschwindigkeit Position VEL gt Geschwindigkeit gt C
148. fen wurde Folgende Werte sind festgelegt Erzeuger Wert SMC_NCDecoder 6 44 SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib CNC Editor DieSoftMotion Bibliothek_bietet folgende Funktionen f r die Handhabung eines SMC_OUTQUEUE Strukturobjekts BOOL SMC_RESTOREQUEUE Enable BOOL POQ POINTER TO SMC_OUTQUEUE Diese Funktion restauriert eine bereits interpolierte bzw anderweitig abgearbeitete Struktur Dies ist nur dann m glich wenn die Liste bei POQ die komplette Bahn enthalten kann POINTER TO SMC_OUTQUEUE SMC_APPENDOBJ POQ POINTER TO SMC_OUTQUEUE PGI POINTER TO SMC_GEOINFO Diese Funktion h ngt ans Ende der Liste bei POQ das GEOINFO Objekt das bei PGI steht sofern OQ richtig initialisiert und nicht schon vollst ndig belegt ist Im Erfolgsfall ist der R ckgabewert ein Zeiger auf das neue Listen Element ansonsten 0 BOOL SMC_DELETEOBJ POQ POINTER TO SMC_OUTQUEUE N UINT Diese Funktion l scht das N te Objekt aus der Liste bei POQ wobei bei O zu z hlen begonnen wird Ist N 1 gr er als die Anzahl der gespeicherten GEOINFO Objekte geschieht nichts und der R ckgabewert ist FALSE sonst TRUE UINT SMC_GETCOUNT POQ POINTER TO SMC_OUTQUEUE Der R ckgabewert dieser Funktion betr gt die Anzahl der bei POQ gespeicherten Objekte POINTER TO SMC_GEOINFO GETOBJ POQ POINTER TO SMC_OUTQUEUE N UINT Diese Funktion liefert vorausgesetzt POQ ist richtig initialisiert und es existiert ein N tes
149. ferenzschalter den gleichen physikalischen Schalter verwenden Ausg nge des Bausteins bDone BOOL Default FALSE Bei TRUE ist der Antrieb referenziert und im Stillstand bCommandAborted BOOL Default FALSE Bei TRUE wurde der Befehl durch einen anderen abgebrochen bError BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist nErrorlD SMC_Error Fehlernummer SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface 2 2 8 Diagnose Bausteine SMC_GetMaxSetVelocity Dieser Funktionsbaustein ist in der Lage die betragsm ige Maximal soll geschwindigkeit einer Achse zu messen Die Messung wird durchgef hrt wenn bEnable TRUE ist und auf 0 zur ckgesetzt solange bResetMax TRUE ist Mit dwTimeStamp hat man die M glichkeit ein beliebiges DWORD z B Aufrufsz hler welches mit einem neuen Maximalwert bernommen und ausgegeben wird SMC _GETMASSETWELOCITY bEnable BOOL Masvelocity LREAL bFResethias BOOL dwTimestMWas DORO dwTimeStamp DYORD Axis AXIS_REF wWAR_IN_OIT Axis AXIS_REF WARN OLT SMC_GetMaxSetAccDec Dieser Baustein funktioniert analog zu SMC_GetMaxSetVelocity und bestimmt die betragsm ig gr te Beschleunigung oder Bremsung sy _GETMASSETAGEDEE bEnable BOOL MMaxAacceleration LREAL bRFesethias BOOL dwTimestMas DWORD dwTimeStamp DWORD Axis AXIS_REF WARUM OUT Axis ASIS_REF WARUM OUT SMC_GetTrackingError Dieser Baustein mi
150. ffsetX dOffsetY LREAL Offset f r x und y Achse Gleiche Werte wie bei SMC_TRAFO_Gantry2 dAlpha LREAL Ausrichtung des Werkzeugs in Winkelgrad dToolA dToolB LREAL L nge des Werkzeugs Abstand zwischen Drehpunkt und Werkzeugpunkt minX maxX minY maxY LREAL Bewegungsbereich f r Visualisierung DriveX DriveY AXIS_REF x y Achse dx dy LREAL x y Position in Weltkoordinaten dnx dny dnl1 dni2 dnOffsetX dnOffsetY LREAL genormte x und y Position 0 1 Werkzeugl nge und Offsets f r Visualisierung ratio LREAL Verh ltnis zwischen x Intervall und y Intervall f r Visualisierung SoftMotion in CoDeSys 2 3 Transformations Funktionsbl cke 8 2 3 H Portal System mit station ren Antrieben Dieses kinematische System hnelt den zuvor beschriebenen Portal Systemen wobei hier die Antriebe station r angebracht sind und den Schlitten und die Y Achse ber einen mehrfach umgelenkten Riemen im Bild pink bewegen Die Transformation ist f r folgende Antriebskonfigurationen ausgelegt andere Konfigurationen k nnen durch Vertauschen von x und y erreicht werden ww Dy Ls L TO DY Man beachte dass f r diese Transformation eine spezielle Referenzfahrt n tig ist Will man dass einen Bewegung in Y Richtung erfolgt m ssen die Antriebe A und B gleichl ufig bewegt werden f r eine reine X Bewegung sind diese gegenl ufig zu drehen Hat man die Referenzposition gefunden verwendet man die vom Vorw
151. g us fo Dauer us fo Master Position 4 206 Slave Position f 5 144 Aktivierung durch Die Nocke wird aktiviert d h die mit der Nocken Gruppen ID s u verkn pfte BOOLsche Variable im Programm Nocken Bit wird auf TRUE gesetzt wenn die Kurve durchlaufen wird daf r kann eine der folgenden drei Optionen eingestellt werden positiver Durchlauf nur wenn die Kurve von links nach rechts durchlaufen wird nach bernehmer zeigt der gr ne Pfeil ber der Nocke nach rechts negativer Durchlauf nur wenn die Kurve von rechts nach links durchlaufen wird nur wenn die Kurve von links nach rechts durchlaufen wird nach bernehmen zeigt der gr ne Pfeil ber der Nocke nach links jeder Durchlauf bei jedem Durchlaufen der Kurve nach bernehmen zeigt der gr ne Pfeil ber der Nocke nach links und rechts Aktion Eine der folgenden Optionen kann eingestellt werden um festzulegen welche Auswirkung die Aktivierung der Nocke auf die Aktion die mit ihr im Projekt verkn pft ist haben soll ein Die Aktion wird gestartet das Nocken Bit wird auf TRUE gesetzt Das Nocken Quadrat wird gr n gef llt aus Die Aktion wird gestartet das Nocken Bit wird auf FALSE gesetzt Das Nocken Quadrat wird rot gef llt invertieren Wenn die Aktion gerade aktiv ist wird sie gestoppt wenn sie inaktiv ist wird sie gestartet das Nocken Bit wird invertiert Das Nocken Quadrat wird gelb gef llt zeitgesteuert ein Die Aktion wird mit d
152. g im CNC Editor Bei der bersetzung des IEC Programms wird automatisch ein Verzeichnis globaler Variablen CNC Data erzeugt Dort werden die NC Programme in gleichnamigen Datenstrukturen abgelegt Dabei existieren gem 3 1 drei m gliche Varianten a c die separat f r jedes NC Programm im NC Editor im Men CNC Programm eingestellt werden 1 beim bersetzen Programmvariable erzeugen Diese Option entspricht Fall a Das CNC Programm wird in einer Struktur SMC_CNC_REF gespeichert die in der Bibliothek SM_CNC lib enthalten ist Diese Strukturvariable muss von den Decoder und Bahnvorverarbeitungsbausteinen verarbeitet werden und kann nicht direkt in den Interpolator Baustein eingegeben werden Obwohl diese Variante erh hten online Rechenbedarf hat bietet sie die M glichkeit Variablen im NC Programm zu verwenden bzw Modulationen des NC Programms durch das SPS Programm vorzunehmen 2 beim bersetzen OutQueue erzeugen Diese Option entspricht Fall b Das CNC Programm wird in einer Struktur SMC_OUTQUEUE gespeichert die ebenfalls in der Bibliothek SM_CNC lib enthalten ist Diese Strukturvariable kann direkt in den Interpolator Baustein eingegeben werden Obwohl so keine Variablen in der Bahn verwendet werden k nnen hat diese Methode den Vorteil dass sie den online Ressourcenbedarf minimiert 3 nicht bersetzen Diese Option entspricht Fall c Sie haben das Programm als ASCII File oder OutQueue File im
153. heibe auf einem linearen Antrieb umgesetzt werden kann Zus tzlich wird die Nockenfunktion demonstriert 1 Dazu erstellt man im CoDeSys Kurvenscheiben Editor zun chst eine beliebige periodische Kurvenscheibe die sich auf eine Masterachse zwischen O und 10 sec bezieht und mindestens eine invertierende Nocke mit ID1 enth lt Z B icix fs Master D 10 ser 2008 175t u 150t u 125tu 100t u FBku FIt u su Dku 00sec 1 0sec 2 lsec 3 lsec 40sec 5 lsec B lser 70sec 80sec IlseclO lser 30 0 tu Ise lser 1 sec 2 0sec 3 0sec 40sec 5 0sec 6 sec 7 0sec 80sec 9 0sec10 0sec Nockenelement Eigenschaften Aktrierung durch jeder Durchlauf Akbar misilen ID ji bernehmen r Abbrechen Werzogerung es 0 Dauer us fo _ amp bbrechen Master Posikon 4 300 Slave Posibor 175 145 SoftMotion in CoDeSys 2 3 11 7 11 6 11 7 Beispiel wechselnde Kurvenscheiben 2 Im Drive Interface Steuerungskonfiguration sei ein linearer Antrieb mit dem Namen Drive definiert E g PLC Configuration BusinterfaceVAR 0 AxisGroup AR P 3 Das Programm Ipo sei ein FUP erstellt und beeinhaltet die Aufrufe dieser Bausteine PROGRAM Ipo VAR Power MC Power TimeAxis SMC TimeAxisFB TableSelect MC CamTableSelect Slave Absolute TRUE CamIn MC CamIn StartMode ramp in VelocityDiff 100 Acceleration 100 Deceleration 100 Tappet SMC GetTappetValue END VAR u Nach dem Power Baus
154. hren wird SMC _READNCQJEVE bExecute BOOL bDone B0GL sFileName STRING BD nAuffer POINTER TO BYTE dwBuffersize DWORD pogData ut P INTER TO SM c OUTA UEUE i bjectsRead UDINT Eing nge des Bausteins bExecute BOOL Der Baustein beginnt bei einer steigenden Flanke mit dem Einlesen der Queue sFileName STRING 80 Dateipfad und name pBuffer POINTER TO BYTE Zeiger auf einen in der IEC Applikation reservierten gen gend gro en freien Datenbereich dwBufferSize DWORD Gr e des Datenbereichs in Byte Ausg nge des Bausteins bDone BOOL Wird gesetzt wenn die Queue vollst ndig eingelesen wurde bError BOOL TRUE Fehler trat auf ErrorlD SMC_ERROR Fehlernummer poqDataOut POINTER TO SMC_OUTQUEUE Zeiger auf die eingelesene Queue iObjectsRead UDINT Anzahl der bislang gelesenen und in die Queue geschriebenen SMC_Geolnfo Objekte SoftMotion in CoDeSys 2 3 10 1 CNC Funktionsbl cke SMC_ReadNCFile Dieser Baustein liest eine NC ASCII Datei vom Dateisystem der Steuerung ein um sie dem Baustein SMC_NCDecoder zur Verf gung zu stellen So kann zur Laufzeit ein NC Programm eingelesen und umgesetzt werden SMC _READNGFILE bExecute B L sFileName STRINGED bError BOOL pri POINTER TO SMC_VARLIST ErrorlD SMC_ERROR pBuffer POINTER TO BYTE bExecuteDecoder BOOL dwBufersee DWORD neprog SMG_C MC REF Eing nge des Bausteins bExecute BOOL Der Baustein beginnt bei eine
155. hse bildet Je nach Buslinterface Typen muss die aktuelle Encoder Position manuell Dummydrive beim Baustein SMC_Encoder eingegeben werden oder sie wird automatisch zusammen mit den Istwerten der Antriebe ber den Bus eingelesen Encoderld ID des Encoders WORD dwRatioTechUnitsDenom Nenner und Z hler f r Umrechnungsfaktor von Busdaten Antriebs Inkrementen in IRatioTechUnitsNum technische Einheiten in der Applikation verwendeten Einheiten Softmotion Einheiten u DWORD bzw INT IMovementType Gebertyp Auswahlm glichkeiten linear linear oder rotatorisch rotary PositionPeriod Periode f r rotatorische Achsen h ngt von den Umrechnungsfaktoren dwRatioTechUnitsDenom und iRatioTechUnitsNum ab bSWLimitEnable Software Positions berpr fung einschalten nur lineare Antriebe die bewirkt dass sp ter ber SMC_Encoder verkn pfte Achse in Fehlerzustand gesetzt wird wenn sie das Positionsfenster verl sst SWLimitNegative negative Positionsgrenze nur lineare Encoder SWLimitPositive positive Positionsgrenze nur lineare Encoder SoftMotion in CoDeSys 2 3 2 7 2 2 2 2 1 2 2 2 SM_DriveBasic lib und automatische Codegenerierung dwEncoderModulo Wert bei dem der Encoder Umbruch stattfindet Bitbreite des Encoders 0 32 Bit 16 10000 16 Bit 16 1000 12 Bit etc Daneben k nnen ggf zus tzliche herstellerspezifische Parameter diese beginnen mit P vorhanden sein die in den Parametern dwP
156. i der Initialisierung der Antriebe Fehler auftreten eine von der Bibliothek lt BuslInterfaceBezeichnung gt Drive lib erzeugte Fehlerbeschreibung Die Bibliothek SM_DriveBasic lib enth lt zu ihrer Hauptfunktion der Repr sentation der Antriebe im IEC Programm einige Hilfs Bausteine Mathematische Hilfsbausteine Die Funktion SMC_sgn gibt den Vorzeichenwert des Eingangs zur ck also 1 bei negativer 1 bei positiver und 0 bei Null Eingabe Die Funktion SMC_fmod berechnet den Modulo Wert des Eingangs x zur Periode m Der R ckgabewert liegt stets im Intervall 0 m Die Funktion SMC_atan2 berechnet und gibt den Winkel a zur ck der folgende Gleichungen l st sin a f Sinus und cos a f Cosinus Im Gegensatz zur gew hnlichen ATAN Funktion deckt der Wertebereich hier das ganze Intervall 0 2q ab Achsgruppen Bausteine Zykluszeitmessung 2 8 H ufig ist es f r die Diagnose wichtig die exakte Zykluszeit einer Achsgruppe messen zu k nnen insbesondere wenn die Task aktiv die Kommunikation steuert wie etwa wenn die SPS als CAN SYNC Erzeuger auftritt In der Achsgruppen Datenstruktur findet man die Variable lt AxisGroup gt bDebug BOOL die die Zeitmessung steuert Steht sie auf TRUE wird in lt AxisGroup gt udiTaskMinTime und lt AxisGroup gt udiTaskMaxTime die minimale bzw maximale Zeit die zwischen zwei Task Aufrufen vergangen ist angegeben SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive
157. icht stets von Neuem eingeben m ssen Au erdem erstellen wir eine Bedien Visualisierung wozu wir die in den Bibliotheken vorhandenen Baustein Templates verwenden und ber das Platzhalter Konzept mit den Bausteininstanzen verkn pfen lalxl MC_ Power Mc _Movevelocity Instanz F B Instanz F BF velocity f CommandAborted EoD 8 Boca Wt ie rss na m H Decel f SoftMotion in CoDeSys 2 3 11 5 Kapitel 11 Programmierbeispiele Nun k nnen wir das Projekt fehlerfrei bersetzen uns auf die Steuerung einloggen und starten Durch Dr cken des Execute Eingangs von MoveVelocity beginnt sich der Antrieb zu drehen Dr cken vom Execute des MoveAbsolute positioniert den Antrieb auf die eingestellte Position wobei entsprechend der Angabe Direction positive nur in positive Richtung gedreht wird Der Baustein MoveVelocity wird dadurch unterbrochen es empfiehlt sich mit diesen Bausteinen zu spielen verschiedene Geschwindigkeiten und Beschleunigungen auszuprobieren und die Richtungsmodi positive negative current shortest fastest von MoveAbsolute zu testen Beispiel Kurvenscheiben Antriebssteuerung mit Hilfe einer virtuellen Zeitachse Sehen Sie hierzu das mit SoftMotion mitgelieferte Beispielprojekt PLCopenMulti pro basierend auf der Konfigurationsdatei softmotion cfg Voraussetzung Die Bibliotheken DriveBasic lib und SM_PLCopen lib sind eingebunden Das folgende Beispiel demonstriert wie eine periodische Kurvensc
158. int gedr ckt Zwischen den folgenden f nf Bearbeitungsmodi kann gewechselt werden Bl Selektiermodus Ai Linien Einf gemodus 62 Kreis Rechts Einf gemodus a Kreis Links Einf gemodus H Spline Einf gemodus Zur Ver nderung der Darstellung und der Wahl einer Kurvenkorrektur stehen die folgenden Befehle und Optionen bereit a Ausgabegr e anpassen Programm neu nummerieren Raster anzeigen Splines Ellipsen durch Geraden ersetzen m Werkzeugradiuskorrektur SoftMotion in CoDeSys 2 3 3 11 Kommandos und Optionen im CNC Editor 5l Eckverrundung E Eckverschleifung w Schleifenvermeidung A Satzunterdr ckung l Interpolation zeigen Epsilon Werte f r Null ndern Hinweis Es ist durchaus m glich mehrere der Optionen Werkzeugradiuskorrektur Eckverrundung Eckverschleifung und Schleifenvermeidung zu w hlen Dadurch simuliert man die Wirkung hintereinander geschalteter Bahnvorverarbeitungsbausteine Nur die Bahnvorverarbeitungen Werkzeugradiuskorrektur und Eckverrundung bzw Eckverschleifung k nnen nicht gleichzeitig gew hlt werden Extras Selektiermodus il Wenn diese Option aktiviert ist wird durch Klicken auf ein graphisches Element im CNC Editor dieses selektiert rote Farbe und im Texteditor die entsprechende Zeile markiert Durch Klicken auf den Endpunkt eines Elements kann dieser beliebig verschoben werden Extras Linien Einf gemodus Ai Wenn diese Option aktiviert ist wird bewi
159. ion Deceleration kompensiert werden Dabei w rde ramp_in_pos sofern es sich um einen rotatorischen Slave handelt nur in positive Richtung ausgleichen ramp_in_neg in negative Bei linearen Slaves ergibt sich die Ausgleichrichtung automatisch d h ramp_in_pos und ramp_in_neg werden wie ramp_in behandelt SoftMotion in CoDeSys 2 3 Kapitel 4 Der CAM Editor in CoDeSys 4 5 2 Umschalten zwischen Kurvenscheiben Grunds tzlich kann zu jedem Zeitpunkt zwischen zwei Kurvenscheiben umgeschaltet werden Man sollte dabei folgendes beachten Bei einer steigenden Flanke bestimmt sich die Slave Sollposition strikt nach der aktuellen Masterposition verrechnet mit Masteroffset und Masterscaling und der verwendeten Kurvenscheibe und wird lediglich durch Slaveoffset und scaling ver ndert Dies f hrt dazu dass sollte die Master oder Slaveperiode der Kurvenscheibe und der tats chlichen Positionsperiode der Antriebe unterschiedlich sein sich pro Kurvenscheibenzyklus bzw Antriebsumdrehung weitere Verschiebungen der Master und Slave Position ergeben sodass die einfache Funktionsgleichung Slaveposition CAM Masterposition nicht mehr zutrifft sondern vielmehr gilt Slaveposition CAM Masterposition Offsetl Offset2 Wobei sich Offset1 und Offset2 am Ende jeder Kurvenscheibe ndern k nnen Daraus resultiert dass wenn man den Kurvenscheibenbaustein MC_Camin neu startet steigende Flanke bei bExecute dieser da f r ihn eine kom
160. ismen der Achsgruppe ausgef hrt werden Eing nge VAR _INPUT der Funktion pAG POINTER TO SMC_AXIS_GROUP Zeiger auf die Achsgruppe R ckgabewert der Funktion TRUE SMC_EnableAllDrives 2 2 3 Im Gegensatz zu SMC_DisableAllDrives werden mit dieser Funktion wieder alle Antriebe eingeschaltet und durch den Aufruf von SMC_ResetAxisGroup hochgefahren Eing nge VAR _INPUT der Funktion pAG POINTER TO SMC_AXIS_GROUP Zeiger auf die Achsgruppe R ckgabewert der Funktion TRUE Konfigurations Bausteine SMC_ChangeGearingRatio 2 10 Mithilfe dieses Bausteins kann das IEC Programm zur Laufzeit das Getriebeverh ltnis und die Antriebsart ndern Nach dem Ausf hren dieses Bausteins sollte die Achsgruppe mittels SMC_ResetAxisGroup bKeepRatioSettings TRUE neu gestartet werden da nur so garantiert werden kann dass alle Variablen korrekt initialisiert sind Eing nge VAR _INPUT des Bausteins bExecute BOOL Mit einer steigenden Flanke wird der Baustein aktiv SoftMotion in CoDeSys 2 3 2 2 4 Kapitel 2 Das SoftMotion Drive Interface dwRatioTechUnitsDenom DWORD iRatioTechUnitsNum DWORD Umrechnungsverh ltnis zwischen SoftMotion Einheit und Inkrementen siehe 2 1 fPositionPeriod LREAL Positionsperiode Modulowert nur f r rotatorische Antriebe siehe 2 1 IMovementType INT o rotatorische Achse 1 lineare Achse Ein Ausg nge VAR _IN OUT des Bausteins Axis AXIS_REF Antrieb dessen
161. ismittelpunkts P3 Kreisradius SPLINE Spline Parameter ELLCLW X Koordinate des Kreismittelpunkts ELLCCLW Y Koordinate des Kreismittelpunkts X Komponente des Hauptachsen 1 Vektors Y Komponente des Hauptachsen 1 Vektors L nge der Hauptachse L nge der Nebenachse SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib P7 Richtung der Hauptachse P8 Verh ltnis P6 P5 INITPOS Keine Bedeutung dT1 dT2 LREAL In diesen Variablen werden Start und Ende des Laufparameters angegeben Abh ngig vom Move_Type bedeutet dies LIN Keine Bedeutung da komplette Information bereits in Start_Pos und Dest _ Pos LINPOS enthalten CLW Startwinkel im mathematischen Sinn in Grad ELLCLW 0 Osten 90 Nord 180 West 360 S d l ffnungswinkel des Kreises Kreisbogenl nge in Grad z B 90 Viertelkreis 180 Halbkreis CCLW Startwinkel im mathematischen Sinn in Grad ELLCCLW 0 Osten 90 Nord 180 West 360 S d Negativer ffnungswinkel des Kreises z B 90 Viertelkreis 180 Halbkreis SPLINE Start und Endwert des Parameters t siehe Beschreibung der Spline Standardm ig 0 und 1 INITPOS Keine Bedeutung dToolRadius LREAL In dieser Variablen wird f r die Bahnvorverarbeitung n tige Information gespeichert siehe Der Baustein SMC_ToolCorr Der Baustein SMC_RoundPath Der Eintrag hat keine Relevanz wenn nicht entsprechende Bahnvorverarbeitungsbausteine SMC_ToolCorr S
162. it ge ndert werden darf sei erw hnt dass eine nderung nur bernommen wird wenn gerade nicht beschleunigt oder gebremst wird iVelMode SMC_INT_VELMODE Mit diesem Eingang wird das Geschwindigkeitsprofil festgelegt Der Wert TRAPEZOID default bewirkt ein trapezf rmiges Geschwindigkeitsprofil SIGMOID ein S f rmiges Beispiel eines trapezf rmigen Geschwindigkeitsprofils Vel_Mode 0 120 y m aa DS a O rn ie ar yo In obigen Beispielen wurde die maximale Beschleunigung Accel kleiner gew hlt als die maximale Bremsung Decel Dies verursacht die unterschiedliche Steigung der Geschwindigkeit beim Beschleunigen und Bremsen Das S f rmige Geschwindigkeitsprofil hat den Vorteil dass die dazugeh rige Beschleunigung im Gegensatz zur trapezf rmigen stetig ist und somit gerade bei schweren Maschinen Entlastung bringt Dies bezahlt man mit einer leicht erh hten Rechenzeit Da das S f rmige Geschwindigkeitsprofil blau so ausgelegt ist dass ein Wechsel zum trapezf rmigen Profil rot keine nderung der f r das Fahren der Bahn ben tigten Zeitdauer zur Folge haben soll muss das vorsichtige Steigern der Beschleunigung am Anfang und Ende durch eine h here Beschleunigung in der Mitte ausgeglichen werden Dabei gilt zu es beachten dass die in den SoftMotion in CoDeSys 2 3 6 35 6 36 Bausteine Geo Objekten programmierte maximale Beschleunigung bzw Bremsung im Maximum um den Faktor 11 2 berschri
163. kel bzgl des alten Koordinatensystems aus den Einheitsvektoren des neuen Koordinatensystems SMC_UNITVECTORTORPY 5MC_Vector3d dA LREAL vr 5MC_Vector3d dB LREAL vZ SMC_ Vector3d dC LREAL bError BOOL nEror WORD vX vY vZ SMC_Vector3D Einheitsvektoren des neuen Koordinatensystems bzgl des alten dA dB dC LREAL RPY Winkel im Bogenma bError BOOL unm gliche Eingabe Werte nError WORD Fehlerbeschreibung 0 2 2 2 kein Fehler bError FALSE Vektoren haben nicht die L nge 1 2 22 2222 Vektoren stehen nicht senkrecht aufeinander 322 2 kein Rechtssystem SMC_DetermineCuboidBearing Baustein zur Bestimmung der Lage eines Quaders Eckpunkt Kantenrichtungen im Raum durch Vorgabe von 6 3 2 1 Punkten Fl che A Fl che B e Fl che C 8 16 SoftMotion in CoDeSys 2 3 Kapitel 8 Die Bibliothek SM_Trafo lib sMC_DETERMINECUBOIDBEARING SMC Wecor3D M S5MC_Vector3D 5MC_ Wector3D wAB SMC Vector3D 5MC_WVector3D YBCC SMC Vector3D 5MC_Wector3D vCA SMC Vector3D SMC _Vector3D bError BOOL SMC _Vector3D nError WORD A1 A2 A3 SMC_Vector3D Drei Punkte auf einer Seitenfl che des Quaders die nicht auf einer Geraden liegen d rfen B1 B2 SMC_Vector3D Zwei Punkte auf einer anderen Seitenfl che des Quaders deren Projektion auf die Fl che A nicht identisch sein darf C1 SMC_Vector3D Punkte auf einer weiteren Seitenfl che des Quaders M SMC_Vector3D Eckpunkt
164. kten Nachbarn einen vorgebbaren Abstand hat Werkzeugradiuskorrektur Die so erzeugte Bahn gew hrleistet also dass jeder seiner Punkte zur Originalbahn einen festen Abstand hat Eine typische Anwendung ist das Fr sen einer programmierten Kontur mit einem Fra sbohrer bestimmter Dicke Der Fr sbohrer muss dann eine entsprechend versetzte Bahn fahren die mit Hilfe des Bausteins SMC_ToolCorr erzeugt werden kann um den Radius des Bohrers zu kompensieren Folgende Einschr nkung sei dabei beachtet Ist die Kontur und der Bohrradius so gew hlt dass innerhalb der versetzten Bahn ein Schnitt mit sich selbst stattfindet d h die gewollte Kontur wird beim Befahren der versetzten Bahn zerst rt so wird darauf keine R cksicht genommen siehe Skizze rechts Um dies zu vermeiden verwende man den Baustein SMC_AvoidLoop Der Baustein SMC_ToolCorr arbeitet folgenderma en Alle in der Eingangs OUTQUEUE Struktur befindlichen SMC_GEOINFO Objekte werden nacheinander abgegangen Wenn in einem dieser Objekte Bit1 Bit2 der Variablen Intern_Mark gesetzt ist so wird ab dort begonnen die Bahn in Fahrrichtung nach links rechts um den aktuellen Werkzeugradius zu versetzen Damit eine stetige Bahn entsteht wird ein Positionierungsobjekt MoveType 100 eingef gt bzw wenn dem Objekt ein solches Positionierungsobjekt vorausgeht dieses direkt auf den Startpunkt der versetzten Bahn verschoben Jedes weitere Objekt wird dann ebenfalls versetzt so
165. lange bis Bit0 von Intern_Mark gesetzt ist was zum Abbruch der Werkzeugradiuskorrektur f hrt Auch hier wird f r eine stetige Fortsetzung der Bahn durch ein Positionierobjekt gesorgt Eine begonnene Werkzeugradiuskorrektur muss erst durch Setzen des Bits0 beendet werden bevor mit der Versetzung in die jeweils andere Richtung begonnen werden kann Der SMC_NCDecoder setzt diese Bits als Reaktion auf die Befehle G41 642 G40 Anders ausgedr ckt Die Werkzeugradiuskorrektur wird f r alle Objekte durchgef hrt die innerhalb der Befehle G41 und G40 bzw G42 und G40 stehen Eing nge des Bausteins bExecute BOOL Der Baustein f hrt einen Reset aus und beginnt mit der Werkzeugradiuskorrektur wenn dieser Eingang eine steigende Flanke aufweist bAppend BOOL Steht dieser Eingang auf FALSE so wird bei jedem Reset die Ausgabe Datenqueue DataOut geleert Bei TRUE werden die neuen Daten ans Ende der DataOut Queue geschrieben poqDataln POINTER TO SMC_OUTQUEUE SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib Dieser Eingang zeigt auf das SMC_OUTQUEUE Strukturobjekt das die SMC_GEOINFO Objekte der zu versetzenden Bahn enth lt typischerweise auf den Ausgang DataOut des Vorg ngerbausteins z B des SMC_NCDecoders dToolRadius LREAL In dieser Eingangsvariablen steht der Wert der addiert auf den jeweiligen ToolRadius Wert des SMC_GEOINFO Objekts den Werkzeugradius angibt um den die Bahn versetzt werden soll s o Er da
166. lemente aufnehmen kann Auch dieser Wert darf gesetzt und sp ter nur w hrend eines Resets ver ndert werden Ausg nge des Bausteins bDone BOOL Diese Variable wird auf TRUE gesetzt wenn die Eingangsdaten aus Dataln vollst ndig verarbeitet sind Hernach f hrt der Baustein bis zu einem Reset keine Aktionen mehr durch Steht der bExecute Eingang auf FALSE wird bDone wieder auf FALSE gesetzt bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ERROR INT Sollte ein Fehler auftreten enth lt diese Variable die Fehlernummer poqDataOut POINTER TO SMC_OUTQUEUE Dieser Ausgang zeigt auf eine SMC_OUTQUEUE Struktur die die verrundeten SMC_GEOINFO Objekte verwaltet SMC_CheckVelocities Dieser Baustein berpr ft die Geschwindigkeiten der einzelnen Bahnsegmente Er muss f r den Fall dass die OutQueue nicht vom Editor sondern im IEC Programm z B durch SMC_NCDecoder erzeugt wurde stets direkt vor dem Interpolator aufgerufen werden Hauptaufgabe dieser Funktion ist es die Bahn auf Knicke zu untersuchen und dort auf Geschwindigkeit 0 zu reduzieren Eing nge des Bausteins bExecute BOOL Bei steigender Flanke wird die berpr fung begonnen poqDataln POINTER TO SMC_OUTQUEUE Dieser Eingang zeigt auf das SMC_OUTQUEUE Strukturobjekt das die SMC_GEOINFO Objekte der Bahn enth lt typischerweise auf den Ausgang pogDataQut des Vorg ngerbausteins z B SMC_NCDecoder SMC_SmoothPath dAngleTol RE
167. liotheken SM_DriveBasic lib und die herstellerspezifische lt BusinterfaceBezeichnung gt Drive lib m ssen im CoDeSys Projekt eingebunden werden um das Drive Interface f r die Kommunikation mit den Antrieben verwenden zu k nnen Im Drive Interface Steuerungskonfiguration muss die Struktur der Antriebs Hardware abgebildet und parametriert werden nach einem bersetzungslauf des Projekts werden daf r automatisch globale Variablen angelegt Eine Taskkonfiguration muss aufgesetzt werden Ein IEC Programm mit einem CoDeSys Editor muss erstellt werden das die gew nschten Bewegungen durch Aufrufe passender Bausteine ausf hrt Damit f r diese Verarbeitung die entsprechenden SoftMotion Funktionen verf gbar sind m ssen die Bibliotheken SM_CNC lib bzw SM_PLCopen lib eingebunden werden Im CNC bzw CAM Editor k nnen Mehr Achsbewegungen bzw Kurvenscheiben f r die Steuerung der Antriebe grafisch und textuell programmiert werden CoDeSys erzeugt daraus automatisch entsprechende globale Datenstrukturen CNC Data CAM Data mit denen das IEC Programm arbeiten kann Sehen Sie folgende Programmierbeispiele Steuerungskonfiguration f r Antriebe erstellen Kapitel 11 2 _ Bewegungssteuerung einzelner Achsen single axis Kapitel 11 3 Bewegungssteuerung einzelner Achsen in CFC mit Visualisierungs Template single axis Kapitel 11 4 _ Kurvenscheiben Antriebssteuerung mit Hilfe einer virtuellen Zeitachse Kapitel 11 5 Beispiel
168. m Fehler wird die Abarbeitung bis zu einem Reset gestoppt piSetPosition SMC_POSINFO In Set Position steht die gem den Vorgaben berechnete Soll Position Set_Position ist eine SMC_POSINFO Struktur und enth lt nicht nur die kartesischen Koordinaten des anzufahrenden Bahnpunktes sondern auch die Stellung der Zusatzachsen iStatus SMC_INT_STATUS INT In dieser Enum Variable wird der aktuelle Status des Bausteins ausgegeben Dieser kann sein IPO_UNKNOWN Interner Zustand Zustand darf nach vollst ndigem SMC_Interpolator Durchlauf nicht auftreten IPO_ACCEL Baustein befindet sich in Beschleunigungsphase IPO_CONSTANT Baustein f hrt mit konstanter Geschwindigkeit IPO_DECEL Baustein befindet sich in Bremsphase 5 IPO_FINISHED Abarbeitung der GEOINFO Liste abgeschlossen Nachtr glich in Dataln ankommende GEOINFO Objekte werden nicht mehr bearbeitet bWorking BOOL Ausgang wird TRUE sobald die Abarbeitung der Liste begonnen und noch nicht abgeschlossen wurde IPO_ACCEL oder IPO_CONSTANT oder IPO_DECEL oder IPO_WAIT Ansonsten steht Working auf FALSE SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib IActObjectSourceNo INT Hier steht der Eintrag SourceLine_Nr des aktuell befahrenen GEOINFO Objekts aus der Dataln Queue Arbeitet der SMC_Interpolator nicht mehr Working FALSE steht hier 1 dVel LREAL In dieser Variable steht die aktuelle Geschwindigkeit die sich ergibt wenn sich ein O
169. m noch nicht gefunden READ_WORD Wort gelesen PROG_READ Programmende erreicht IiLineNumberDecoded INT In dieser Variablen steht die Zeilennummer nicht die Satznummer der zuletzt bearbeiteten Zeile GCodeText SMC_GCODE_TEXT ber diese Datenstruktur kommuniziert der Baustein zu einer Instanz von SMC_GCodeViewer und bergibt dieser eine textuelle Repres ntation G Code der aktuellen Zeile 6 2 2 SMC_GCodeViewer Dieser Baustein kann in Kombination mit SMC_NCDecoder verwendet werden Er sammelt und speichert die textuelle Repr sentation G Code der einzelnen Geolnfo Objekte und gibt diese in Form eines ARRAY OF STRING wieder aus welches z B ber eine Tabelle in der Visualisierung ausgegeben werden kann ber den Eingang der typischerweise mit dem Interpolator Ausgang iActObjectSourceNo verbunden ist erh lt der Baustein Information dar ber welche Zeile bereits abgearbeitet wurde und l scht diese So kann ein Anzeigeelement des aktuellen G Codes erzeugt werden Man beachte dass die Ausgabe dieses Bausteins nicht mit dem G Code bereinstimmt der im Editor oder Textfile gespeichert ist da hier beispielsweise keine Leerzeilen oder Kommentare bernommen werden Evtl verwendete Variablen sind ebenso bereits ersetzt Der Baustein wird im Task Kontext des SMC_NCDecoder Bausteins aufgerufen Ihm muss ein ausreichend gro er Buffer bergeben werden Die Anzahl der SMC_GCodeViewer _DATA Objekte muss mindestens so gro
170. mat erstellt und kann anschlie end im Antriebs Dialog importiert werden ansonsten im Text Format welches auf der Steuerung liegen und vom Antriebstreiber w hrend des Hochlaufs eingelesen und versendet werden kann Axis AXIS_REF Antrieb dessen Parameter ausgelesen werden sollen bDone BOOL Aktion abgeschlossen SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface bError BOOL Fehler trat auf nErrorlD INT Fehlernummer siehe 9 2 SoftMotion in CoDeSys 2 3 2 29 Parametrierung des Antriebs 2 30 SoftMotion in CoDeSys 2 3 3 1 Kapitel 3 Der CNC Editor Der CNC Editor berblick Der CNC Editor in CoDeSys erlaubt es mehrdimensionale Bewegungen gleichzeitig graphisch und textuell angelehnt an die CNC Sprache DIN66025 zu programmieren Sehen Sie zur CNC Sprache Kapitel 3 2 zum Texteditor Kapitel 3 4 und zum Grafikeditor Kapitel 3 5 Programmiierbeispiele finden Sie in Kapitel 1 Grunds tzlich k nnen bis zu 9 dimensionale Bewegungen realisiert werden wobei nur zwei Dimensionen anders als linear interpoliert werden D h in zwei Dimensionen k nnen Geraden Kreise Kreisb gen Parabeln und Splines programmiert werden die anderen Richtungen werden lediglich linear interpoliert F r jede erzeugte Bahn wird von CoDeSys automatisch eine globale Datenstruktur CNC Data angelegt die im IEC Programm zur Verf gung steht Dies geschieht auf verschiedene Arten a Das CNC Programm wird als
171. mit SoftMotion mitgelieferte Beispielprojekt PLCopenSingle2 pro basierend auf der Konfigurationsdatei softmotion cfg Anstelle von ST kann auch jede andere IEC Sprache als Programmiersprache dienen wie folgendes Beispiel zeigt Dieses Beispiel dient dazu den Start und Unterbrechungsmechanismus der Funktionsbausteine am Beispiel nachzuvollziehen Au erdem k nnen die verschiedenen Startmodi f r den Baustein MC_MoveAbsolute f r rotatorische Achsen ausprobiert werden Man erstelle eine Steuerungskonfiguration und Taskkonfiguration wie im letzten Beispiel nur dieses Mal f r einen rotatorischen Antrieb mit der Peiode 360 Das Programm Ipo wird in CFC geschrieben und beinhaltet lediglich drei Aufrufe von Instanzen der Bausteine MC_Power notwendig um die Achse zu aktivieren MC_MoveAbsolute und MC_MoveVelocity SoftMotion in CoDeSys 2 3 11 5 Beispiel Bewegungssteuerung einzelner Achsen in CFC mit Visualisierungs Template single axis lalx 0001 PROGRAM ipo mep MC_Power Enable TRUE bRegulator n TRUE bOriveStart TR UEN mem MCo_MoveYeloch Weloche 100 Acceleration 100 Deceleration 100 Directionspositive mema MG_MoveAhsolute Fosition 180 Yelociy 100 Acceleration 100 Deceleration 100 Direction posiive _ HE E E mep mema MC Power Mc Move bsalute Done Command borted Die Initialisierung der Bausteineing nge empfiehlt sich damit wir sp ter beim Starten dieser Testapplikation die Werte n
172. n StartMode MC_StartMode absolute relative ramp_in ramp_in_pos ramp_in_neg Default absolute Kurvenscheibe wird endweder relativ relative zur Ist Position bezogen oder absolut dazu ohne absolute oder mit langsamem Einrampen auf k rzestem Weg ramp_in in positive ramp_in_pos oder negative ramp_in_neg Richtung CamTablelD MC_CAM_ID Ausgang von MC_CamTableSelect SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib Velocity Acceleration Deceleration LREAL Default 0 zus tzliche Geschwindigkeit Beschleunigung Bremsung f r ramp_in Modus TappetHysteresis LREAL Default 0 Breite des Hysteresebands um die Nocken Ausg nge des Bausteins InSync BOOL Default FALSE TRUE zeigt an dass die Bewegung auf der Kurvenscheibe liegt CommandAborted BOOL Default FALSE Die gestartete Bewegung wurde durch einen anderen Funktionsblock der auf dieselbe Achse wirkt unterbrochen Ausnahme MoveSuperlmposed Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer EndOfProfile BOOL Zeigt das Ende einer Kurvenscheibe an Bei periodischen Kurvenscheiben wird dieser Ausgang gepulst Tappets SMC_TappetData Nocken Ausgang Die einzelnen Nockenschalt Stellungen werden endg ltig vom Baustein SMC_GetTappetValue ausgewertet MC_CamOut Dieser Baustein der SM_PLCopen lib entkoppelt den Slave Antrieb vom Mast
173. n Wird keine Sprungbedingung angegeben so wird automatisch die implizite Decoder Variable verwendet Der Sprung wird immer dann ausgef hrt wenn die Bedingung ungleich null ist Variablenwerte ver ndern Mit den Befehlen G36 und G37 steht dem Anwender die M glichkeit zur Verf gung Variablen zu schreiben oder zu ver ndern Die Variable die ver ndert werden soll gibt der Anwender ber O var an Mit D gibt man den Wert vor der auf die Variable geschrieben G36 bzw addiert G37 werden soll SoftMotion in CoDeSys 2 3 Kapitel 3 Der CNC Editor Folgendes Beispiel setzt die globale Variable g_i auf 5 N1000 G36 O g_i D5 Folgendes Beispiel bewirkt dass die Zeilen 1010 und 1020 f nf Mal verfahren werden N1000 G36 O g i D5 N1010 G1 X100 F100 E100 E 100 N1020 G1 X0 N1030 C37 58 15 D 1 N1040 G20 L1010 K g i Man beachte dass dieser Mechanismus nur funktioniert wenn die Bahn online verarbeitet wird weil nur dann Variablen verwendet werden k nnen Im CNC Editor funktioniert dieser Mechanismus also nicht Stattdessen kann folgendermassen vorgegangen werden Wird bei O keine Variable spezifiziert so wird eine implizite Decoder Variable Typ INT verwendet Dieser Mechanismus funktioniert auch offline im Editor Man beachte aber dass damit nur eine Variable zur Verf gung steht und man so keine verschachtelten Spr nge und Schleifen programmieren kann Beispiel N1000 G36 D5 N1010 G1 X100 F100 E100 E 100
174. n dass im Funktionsblock ein Fehler aufgetreten ist iErrorlD SMC_Error INT Fehlernummer SMC_FollowPositionVelocity Dieser Baustein schreibt Positions und Geschwindigkeits Sollwerte auf die Achse und f hrt dabei keinerlei berpr fungen durch Der Anwender hat daf r Sorge zu tragen dass die Werte sinnvoll zusammenpassen SMC _FOLLEONNPOSITIOMVYELOGITY bExecute BOOL bBusy BOOL tSetFosition LREAL btommand borted B0OL fSetvelocitr LREAL bError BOOL Axis AXIS_REF WARN OIT iErrorlD SMC_ERROR Akis ASIS_REF WARUN_OUT Eing nge des Bausteins bExecute BOOL Durch eine steigende Flanke beginnt der Baustein die in fSetPosition eingegebenen Sollwerte auf die Axis Datenstruktur zu schreiben Er blebit so lange aktiv bis er durch einen anderen Baustein z B MC_Stop unterbrochen wird fSetPosition LREAL Soll Position in technischen Einheiten fSetVelocity LREAL Soll Geschwindigkeit in technischen Einheiten pro Sekunde Ausg nge des Bausteins bBusy BOOL Default FALSE Mit TRUE zeigt der Baustein an dass er aktiv ist und Sollwerte auf die Achse schreibt bCommandAborted BOOL Default FALSE Bei TRUE wurde der Baustein durch einen anderen abgebrochen bError BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist iErrorlD SMC_Error INT Fehlernummer SMC_FollowVelocity Dieser Baustein schreibt Geschwindigkeits Sollwerte auf die Achse und f hrt da
175. n CoDeSys 2 3 6 47 Bahn Kurvenscheiben mit SMC_XfInterpolator dLastWayPos LREAL Dieser Eingang gibt dem Anwender die M glichkeit die Wegstrecke die der Interpolator abf hrt zu messen Der Ausgang dWayPos ist die Summe aus dLastWayPos und der in diesem Zyklus zur ckgelegten Distanz Ist dLastWayPos 0 so enth lt dWayPos die L nge des aktuellen Wegabschnitts Setzt man dLastWayPos gleich dem Ausgang dWayPos so wird dWayPos stets um das aktuelle Wegst ck inkrementiert und man erh lt die insgesamt gefahrene Wegstrecke Dabei kann dLastWayPos jederzeit auf 0 oder einen anderen Wert zur ck gesetzt werden bAbort BOOL Dieser Eingang bricht die Bearbeitung einer Kontur ab eDirection MC_Direction Hier steht ob das Werkst ck entlang der X Achse in positiver positive oder negativer negative Richtung bewegt wird Andere Werte sind nicht zul ssig dXOffset LREAL Offset zur Position der X Achse X_Axis AXIS_REF X Achse Position des Werkst cks Ausg nge des Bausteins bDone BOOL Diese Variable wird auf TRUE gesetzt wenn die Eingangsdaten aus Dataln vollst ndig verarbeitet sind Hernach f hrt der Baustein bis zu einem Reset keine Aktionen mehr durch Steht der bExecute Eingang auf FALSE wird bDone wieder auf FALSE gesetzt bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ERROR INT Dieser Enum Ausgang beschreibt ggf einen Fehler der beim Interpolieren aufgefallen ist Nach eine
176. n aktuellen Kurvenscheibenpunkt Dieser kann ber die Pfeile unten links gewechselt werden ber die Leiste unten rechts kann ausgew hlt werden ob Position Geschwindigkeit oder Beschleunigung angezeigt werden soll Mit den Pfeilen oben k nnen die Master Slave Position Slave Geschwindigkeit und Beschleunigung um das eingestellte Inkrement verschoben werden Ein Ausg nge VAR _IN OUT des Bausteins SMC CAMEditor CAM MC_CAM_REF Kurvenscheibe die dargestellt und ver ndert werden soll Eing nge des Bausteins SMC_CAMEditor Enable BOOL Default FALSE Bei TRUE arbeitet der Baustein dYPeriod LREAL Slave Periode f r periodische Kurvenscheiben bPeriodic BOOL Default TRUE TRUE f r periodische Kurvenscheibe sonst FALSE Ein Ausg nge VAR _IN OUT des Bausteins SMC CAMEcditor ce SMC_CAMEditor SMC_CAMEIditor Instanz SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib SMC_CAMRegister Dieser Baustein stellt ein Nockenschaltwerk dar Er arbeitet wie MC Camin auf einer MC_CAM REF Struktur wobei er die eigentliche Kurvenscheibeninformation negiert und daraus lediglich die Nocken Information liest Ein Ausg nge VAR _IN OUT des Bausteins Master AXIS_REF Hier wird die Achs Struktur bergeben die die Nocken schalten soll CamTable MC_CAM_REF Beschreibung einer auch leeren Kurvenscheibe die die Beschreibung der Nocken enth lt bTappet ARRAY 1 MAX_NUM_TAPPETS
177. n der SM_CNC lib END STRUCT END TYPE iObjNo INT In diesem Ganzzahlwert kann eine beliebige Objekt Nummer gespeichert werden Sie hat f r die eigentliche Wegbeschreibung keine Bedeutung IiSourceLineNo INT In diesem Ganzzahlwert wird typischerweise die Quellcode Zeilennummer des CNC Programms mitgef hrt Sie hat f r die eigentliche Wegbeschreibung keine Bedeutung iMoveType MOVTYP INT Der Enum Typ MOVTYP beinhaltet folgende zul ssige Werte und beschreibt den Typ des Objekts gerade Bewegung G01 Kreis im Uhrzeigersinn G02 aw CCLW Kreis gegen Uhrzeigersinn G03 SPLINE ELLCLW Ellipse im Uhrzeigersinn G08 Spline Parabel G05 G06 ELLCCLW Ellipse gegen den Uhrzeigersinn G09 LINPOS 100 gerade Positionierung G00 INITPOS 110 blinde Positionierung Anfangspunkt noch nicht bekannt wird vom SMC_Interpolator stetig erg nzt MCOMMAND 120 Zusatzfunktion M Funktion piStartPos SMC_POSINFO Struktur SMC_POSINFO die die exakte Anfangsposition beschreibt Wird im Fall Move_Type INITPOS ignoriert piDestPos SMC_POSINFO Struktur SMC_POSINFO die die exakte Endposition enth lt dP1 dP8 LREAL In diesen Variablen werden abh ngig vom Move _Type s o weitere den Weg beschreibende Informationen gespeichert LIN Keine Bedeutung da komplette Information bereits in Start_Pos und Dest_Pos LINPOS enthalten CLW P1 X Koordinate des Kreismittelpunkts CCLW P2 Y Koordinate des Kre
178. n in CoDeSys 2 3 Kapitel 3 Der CNC Editor Extras Programm neu nummerieren u Mit Hilfe dieses Befehls k nnen die Zeilennummern N lt nummer gt automatisch fortlaufend auf Zehnerschritte angepasst werden Extras Splines Ellipsen durch Geraden ersetzen Splines und Ellipsen ben tigen bei der Interpolation vergleichsweise viel Rechenzeit Um dies zu vermeiden k nnen alle Splines und Ellipsen eines NC Programms mit diesem Men punkt durch eine Anzahl von Geraden angen hert werden So k nnen zum Design der Bahn Splines und Ellipsen verwendet ohne dass diese zur Laufzeit gerechnet werden Wird der Befehl gew hlt stehen ber einen Dialog zwei Optionen zur Konvertierung zur Verf gung a l ngenabh ngig d h es wird pro x L ngeneinheiten die Anzahl x kann im Dialog eingegeben werden des Splines der Ellipse eine Gerade erstellt oder b winkelabh ngig d h das Ursprungsobjekt wird so geteilt dass die neuen Geraden einen Winkel kleiner x im Dialog in Winkelgraden einzugeben einschlie en Tipp Mit den Standardeinstellungen wird bei der Interpolation der Geraden im Gegensatz zu Spline Ellipse nach jedem neuen Geradenst ck auf die Geschwindigkeit 0 gebremst Sie vermeiden dies indem Sie die Winkeltoleranz entsprechend erh hen Extras Werkzeugradiuskorrektur m Wenn diese Option aktiviert ist und im CNC Programm Start G41 G42 und Ende G40 der Werkzeugradiuskorrektur und ein Werkzeugradius D lt
179. n vermieden Dieser Men punkt wirkt wie der Baustein SMC_AvoidLoop der SoftMotion Bibliothek Voraussetzung hierf r ist dass im CNC Programm Start G61 und Ende G60 gesetzt sind Die urspr ngliche Bahn wird als Referenz dazu hellgrau gezeichnet SoftMotion in CoDeSys 2 3 3 13 Automatische Strukturbef llung im CNC Editor Extras Satzunterdr ckung a Wenn diese Option aktiviert ist werden s mtliche Zeilen des Texteditors die mit beginnen ignoriert Extras Interpolation zeigen l Wenn diese Option aktiviert ist werden Interpolationspunkte im 100 ms Takt eingezeichnet d h die Werkzeug Position wird alle 100 ms durch ein kleines graues Kreuz markiert Damit kann in etwa das Geschwindigkeitsverhalten schnell weite Abst nde langsam enge Abst nde eingesehen werden Extras Epsilonwerte f r Null ndern 3 7 3 14 interne Pr fung eines Wertes x auf Null muss aufgrund der Ungenauigkeit einer Flie kommarechnung durch berpr fung ob x lt ist ersetzt werden Die Gr e des e Wertes muss ggfs z B bei Verwendung von 32 Bit anstelle von 64 Bit Flie kommawerten oder beim Import eines CNC Programm mit begrenzter Genauigkeit angepasst werden wozu der Dialog Null Toleranzwerte dient der ber den hier beschriebenen Befehl ge ffnet werden kann Hinweis F r die Standardbenutzung sollte die nderung dieser Werte nicht n tig sein und vermieden werden Automatische Strukturbef llun
180. nd erweiterte Elemente der CNC Sprache DIN66025 Das Programm wird entsprechend im graphischen Editor siehe Kapitel 3 5 dargestellt Wird es dort modifiziert wird es auch im Textteil automatisch aktualisiert Zur Bearbeitung stehen die Befehle der Men s CNC Programm und Extras zur Verf gung sehen Sie hierzu 3 5 Graphischer Editor Sehen Sie hierzu auch die Programmiierbeispiele in Kapitel 1 Durch Dr cken von F2 ffnet die Eingabenhilfe und gibt die M glichkeit globale Variablen in das NC Programm einzugeben F r die Darstellung im grafischen Editor wird wenn vorhanden der Initialwert der Variable verwendet Hinweis Man beachte dass Verweise auf globale Variablen im Decoder Baustein als Reaktion auf eine steigende Flanke im Execute Eingang ausgewertet werden W hlt man die Option dass CoDeSys beim bersetzen eine fertige OutQueue Struktur erstellt Variante b so wird der Verweis auf die globale Variable nat rlich bereits beim bersetzen mit dem Initialwert ersetzt und macht so die Verwendung globaler Variablen in diesem Zusammenhang unsinnig SoftMotion in CoDeSys 2 3 3 9 3 6 Kapitel 3 Der CNC Editor CNC Graphischer Editor Der graphische Editor befindet sich im rechten unteren Fensterteil der CNC Programmliste Er visualisiert zum einen das im Texteditor erstellte CNC Programm zum anderen k nnen mit Hilfe der Maus nderungen an diesem Programm vorgenommen werden die unmittelbar automatisch in
181. ndung zur Verf gung und wir k nnen mit der Auswahl Dummy eine Art Simulationsmodus w hlen ME Steuerungskonfiguration B PL Configuration a Businterface VAR Basisparameter Modulparameter Default InterfaceType Seeger T Dummy wParam zanfl FEAKRNNDOR 1 hin IT Di hi wParam dwFaram Sercos Automata r dwParam Sercos Automata 4T p e Von dieser Auswahl h ngen die weiteren Parameter ab die einzustellen sind Bei Sercos Automata sind dies beispielsweise f r wParam1 die Interrupt Nummer f r wParam2 der HW Typ und f r dwParam1 die Basisadresse der Karte Diese Karte habe einen Ring an dem vier Antriebe h ngen zu bedienen Deshalb f gt man durch Rechtsklick auf das Businterface eine AxisGroup ein HE Steuerungskonfiguration FLG Configuration Biel E Min sTask dw Cycle wParam wParam wParams wParamd dwParam dwParamz AwParams dwFaramd 2 3 4 5 2 T E z mn S m 0060000660 mn 0006000 6060 ni e Auch hier m ssen die Modulparameter eingegeben werden Zun chst wird der Name der Task in sTask eingegeben von der aus die Antriebe bedient werden sollen z B BusTask in die Zeile darunter die Zykluszeit der Task in usec z B 3000 Das Einrichten der Task wird im n chsten Punkt beschrieben Die weiteren Parameter der AxisGroup werden in Abh ngigkeit von der Wahl des Businterfaces gemacht In unserem Beispiel w ren di
182. neue Bewegung starten wollen da der Baustein nur auf eine steigende Flanke eine neue Bewegung beginnt Fortsetzung des oben gezeigten Programms ELSE MoveAbsolute Execute TRUE Position p Velocity 100 Acceleration 100 Deceleration 100 Axis Drive IF MoveAbsolute Done THEN MoveAbsolute Execute FALSE Axis Drive END IF END IF E Jetzt k nnen wir das Programm fehlerfrei bersetzen online gehen und starten Wenn wir mit einer Watchliste oder der Traceaufzeichnung die Istposition Drive fActPosition beobachten sehen wir wie der Antrieb auf diese zusteuert Forcen wir den Wert von p so bewegt sich die Achse nach Erreichen des vorigen Zieles auf das neue Ziel zu Um die Bewegung grafisch betrachten zu k nnen stehen in der Bibliothek SM_DriveBasic lib Visualisierungs Templates f r Antriebe siehe Kapitel 2 2 10 zur Verf gung Um diese zu verwenden geht man zun chst wieder offline erstellt eine neue Visualisierung f gt darin ein Visualisierungs Objekt ein und w hlt aus der erscheinenden Liste LinDrive Dann f hrt man einen Doppelklick auf das neu erstellte Objekt aus und tr gt unter Visualisierung Platzhalter AXISREF als Ersetzung den Namen der Antriebsstruktur hier Drive ein Die so gewonnene Visualisierung stellt die Position des Antriebs dar lolx 11 4 Beispiel Bewegungssteuerung einzelner Achsen in CFC mit Visualisierungs Template single axis Sehen Sie hierzu das
183. ng nge des Bausteins bEnable BOOL W hrend bEnable gesetzt ist wird die berpr fung durchgef hrt bCheckVel BOOL Wenn gesetzt wird die Soll Geschwindigkeit berpr ft bCheckAccDec BOOL Wenn gesetzt werden Soll Beschleunigung und Verz gerung berpr ft Ausg nge des Bausteins bError BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist iErrorlD SMC_Error INT Fehlernummer bLimitsExceeded BOOL Default FALSE TRUE bedeutet dass die aktuellen Sollwerte die in der Steuerungskonfiguration festgelegten und in Axis unter fSWMaxVelocity fSWMaxAcceleration bzw fSWMaxDeceleration gespeichert Werte berschreiten SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface SMC_ControlAxisByPos Dieser Baustein schreibt Sollpositionen in eine Antriebsstruktur und berwacht selbige auf Spr nge SMC_CONTROLAHISBEYFOS Status SMEUMTLSTATUS hzommandAkorted BOOL bEnable BOOL bError BOL b vpidGaps BOAL iErrorD SMO_ERROR tsetfosition LREAL bStoplpo BOOL TGapwelocit LREAL Axis AMlS_REF MARIN OIT tGsapAcceleration LREAL tsapDeceleration LREAL Axis AKIS_REF WARUN_OUT Eing nge des Bausteins IStatus SMC_INT_STATUS Zustand des Interpolations Bausteins Wird mit gleichnamigem Ausgang von SMC_Interpolator verbunden bEnable BOOL Kontrolliert die Achse solange der Eingang TRUE ist bAvoidGaps BOOL TRUE Baustein berwacht Position un
184. ngshersteller zu liefernde spezifische Bibliothek lt BusinterfaceBezeichnung gt Drive lib z B SercosDrive lib bietet spezielle Funktionen die f r den Datenaustausch zwischen den Strukturen und der jeweiligen Hardware erforderlich sind siehe 2 3 implicit code generation cyclic call SoftMotion in CoDeSys 2 3 2 1 2 1 2 1 1 2 2 Steuerungskonfiguration f r SoftMotion Steuerungskonfiguration f r SoftMotion Sehen Sie hierzu auch das Programmiierbeispiel in Kapitel 11 2 Um die Struktur der Antriebe abzubilden stehen in der CoDeSys Steuerungskonfiguration i d R folgende Elemente zur Verf gung die entsprechende Konfigurationsdatei muss im Verzeichnis f r Konfigurationsdateien vorliegen Businterface Feldbus Interface ber welches mit den Antriebe kommuniziert wird E Axisgroup physikalisch zusammenh ngende Gruppe Achsgruppe von Antrieben Drives pP Drive Antrieb FA Encoder Geber Die Businterfaces Achsgruppen und Antriebe k nnen mit beliebigen aber eindeutigen IEC 61131 3 Identifiern benannt werden Jedes dieser Konfigurationsobjekte kann ber Dialoge konfiguriert werden sofern die Konfigurationsbeschreibung des Targets dies unterst tzt Neben der konfortablen Konfiguration ber Dialoge k nnen die Parameter ausserdem in einer Konfigurationsliste Modulparameter gesetzt werden Dort befinden sich auch target spezifische Parameter die mit MS beginnen Businterface
185. nn nano nnnn nenne nenn anne nennen 8 14 9 Die Bibliothek SM_Error lib 9 1 9 1 FUNHKLONSDIOCKE na ee 9 1 Idel OMO EMO SNo A test 9 1 9 2 Die Enumeration SMO EMON migri at 9 1 10 Die Bibliothek SM_FileFBs lib 10 1 10 1 PIDETDIICR Be ee een ee 10 1 10 2 ENG F RKLONSDIOCKE en ee eig 10 1 10 3 GANE FUNKUOHSBIOCKe 2er 10 3 10 4 Diagnose Funktionsbl cke 22 u22200020000000n0nnn ann nenn nnnn anne nano nano nano nnnennnen 10 3 11 Programniierbeispiele 11 1 11 1 berblick 2 een 11 1 11 2 Beispiel Drive Interface Steuerungskonfiguration f r Antriebe erstellen 11 1 11 3 Beispiel Bewegungssteuerung einzelner Achsen in ST single axis 11 4 11 4 Beispiel Bewegungssteuerung einzelner Achsen in CFC mit Visualisierungs Template SINGEN ST ae een ee ee 11 5 11 5 Beispiel Kurvenscheiben Antriebssteuerung mit Hilfe einer virtuellen Zeitachse 11 7 11 6 Beispiel wechselnde Kurvenscheiben 220022022002202000000 000 nennen 11 8 11 7 Beispiel Antriebssteuerung mit Hilfe des CNC Editors 22220222002220 222 11 8 11 7 1 Direktes Erzeugen der OutQueue uuessssessssssnsnnnnnnennnnnnnnnnnnnnnonennnnennnnnnnn 11 9 11 7 2 Decodierung online mit Verwendung von Variablen 022202240224 seen 11 11 11 7 3 Bahnvorverarbeitung online 2 0020002000000000000nonnn nun nenn nenn ann name name nnne nn 11 13 11 8 Beispiel Dynamische SoftMotion Pr
186. nze nur lineare Antriebe fSWLimitPositive positive Positionsgrenze nur lineare Antriebe bHWLimitEnable Hardware Positions berpr fung einschalten nur lineare Antriebe die bewirkt dass Achse in Fehlerzustand gesetzt wird wenn sie das Positionsfenster verl sst F r Sercos Antriebe steht ein zus tzlicher Dialog zur Verf gung SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface Bei Device Typ kann zwischen Antrieb und Il O Device gew hlt werden da es keine Standard CoDeSys Unterst tzung f r Sercos l Os gibt W hlt man Il O Device so werden einige Parameter die der Master normalerweise bertr gt weggelassen Au erdem k nnen neben den Standard Werten POS VEL ACC TOR CUR zus tzliche zyklische Kommunikationsdaten bertragen werden Dazu gibt man Sercos Parameternummer IDN und l nge an Bei PackProfile berpr fung kann getestet werden ob die gemachten Einstellungen gem PackProfile Standard gemacht worden sind Dazu wird zwischen den Profilen BasicA BasicB und Extended unterschieden Man beachte dass diese Pr fung auf den Offline Daten durchgef hrt werden kann Sollte der bei Sercos m gliche zus tzlichen Konfigurationsmechanismus ASCII File auf der Steuerung einlesen verwendet werden kann dies das Ergebnis ndern Deshalb ist in der SercosDrive liib eine zus tzliche Online berpr fung siehe Sercosdrive pdf implementiert Zusammen mit der Sercosdrive liib werden zudem X
187. ogrammierung 022200220022n02 2200 11 14 12 Index SoftMotion in CoDeSys 2 3 jii Inhalt SoftMotion in CoDeSys 2 3 Kapitel 1 SoftMotion Konzept und Komponenten berblick 1 SoftMotion Konzept und Komponenten berblick SoftMotion erm glicht das Realisieren von Bewegungen von einfachen Einachs ber Kurvenscheiben bis hin zu komplexen Bewegungen in mehreren Dimensionen unter der Entwicklungsumgebung von CoDeSys Vor allem Anwendungen bei denen nicht ausschlie lich die Bewegungsfunktionen im Mittelpunkt stehen sondern auch Ablauf und Prozesssteuerung oder Hilfsfunktionen einen wesentlichen Teil der Applikation ausmachen bilden einen idealen Anwendungsbereich f r SoftMotion SoftMotion ist als eine Art Basis Werkzeugkasten aufzufassen mit Hilfe dessen auch prozessabh ngig w hrend der Laufzeit in vielfacher Weise Einfluss genommen werden kann ohne dass gr erer Aufwand und detailliertes Know how f r die Realisierung der gew nschten Bewegungen erforderlich ist Die gesamte Programmlogik wird im SPS Programm behandelt und nur die reine Bewegungsinformation in den Bibliotheksbausteinen abgearbeitet Drive Interface CAN LSERCOS 10V E clockidir i SoftMotion gliedert sich in folgende Komponenten e Drive Interface Diese SoftMotion Komponente ist f r die Kommunikation zwischen dem Steuerungsprogramm und den Antrieben verantwortlich Sie besteht aus der Bibliothek SM_DriveBasic lip und An
188. plett neue Aktion gestartet wird sein Ged chtnis und damit auch Offset1 und Offset2 l scht und wieder die urspr ngliche Gleichung heranzieht die einen ganz anderen Slavesollwert zur Folge haben kann Deshalb startet man den MC_Camin FB nur dann neu wenn man eine andere Kurvenscheibe verfahren will Beim Umschalten zwischen zwei Kurven hat man folgendes zu beachten Beispielsweise soll von Kurve1 auf Kurve2 umgeschaltet werden a 5 B k 0 20 40 60 809001201407160 80200 220240 260280 300320 343 07 20 40 60 8071007120140 160150200220 240 260 250 200320 340 360 1 Die Geschwindigkeiten und Beschleunigungen des Endpunkts der letzten Kurve und der neuen Kurve sollten bereinstimmen um Spr nge und Rucks zu vermeiden Das ist im Beispiel der Fall der Endpunkt der Kurve1 und der Startpunkt von Kurve2 haben identische Geschwindigkeits und Beschleunigungswerte 2a Ist die neue Kurve so konfiguriert dass sie die Slaveposition bei 0 anf ngt dann kann man die Kurve relativ starten muss dann aber auch die vorige Kurve als nicht periodisch MC_CamTableSelect starten Begr ndung w rde man die Kurve als periodisch starten k nnten folgende St tzstellen berechnet werden Hier ist der bergang zwischen Kurve1 und Kurve2 dargestellt Punkt 1 erste blaue Linie liegt noch auf Kurve1 und wird ganz normal behandelt Beim n chsten Aufruf des Bausteins ist der Master zweite blaue Linie ber das Ende der Kurvenscheibe1 hina
189. plikateur helfen die Daten die zwischen den Bausteinen ausgetauscht werden darzustellen Funktionsbausteine zur Analyse von SMC_CNC_REF Daten Der Funktionsblock SMC_ShowCNCREF Dieser Funktionsblock kann die ersten zehn Zeilen eines NC Programms welches in Form einer Datenstruktur SMC_CNC_REF vorliegt textuell Din66025 darstellen Als Ausgang ist ein Array of String angelegt cnostr welches die Textzeilen enth lt Das Visualisierungs Template VISU_SMC_ShowCNCRef kann diese Ausgaben darstellen syl_SHOWENEREF bEnable BOOL astr ARRAY D CMOSTR OF STRING 2OD ncprog SMC_ENGLREF WARUN OUT neprog SMC _OCNMC_REF YARUNLOUT Funktionsbausteine zur Analyse von SMC_OutQueue Daten Der Funktionsblock SMC_ShowQueue Dieser Funktionsblock stellt die ersten zehn SMC_Geolnfo Objekte einer OutQueue in Form eines ARRAY OF POINTER TO SMC_Geolnfo zur Verf gung Einige wichtige Elemente daraus k nnen vom Visualisierungs Template VISU_SMC_ShowQueue dargestellt werden Dazu z hlen Objektnummer Zeilennummer Objekttyp Startposition X Y Z Endposition X YIZ Sollgeschwindigkeit und Endgeschwindigkeit sSMC_SHOWGLUELUE hEnable BOOL INumberElements UINT pog FOINTER TO SML_Qutqgueue IMaxNMumberElements UINT apl ARRAY D CMAHXEL OF POINTER TO SM C_Geolnfo SoftMotion in CoDeSys 2 3 7 1 1 2 Funktionsbausteine zur Analyse von SMC_OutQueue Daten SoftMotion in CoDeSys 2 3 8 1 8 2 8 2 1 Kapitel 8 Die Bi
190. polator dazu entsprechend dem eingestellten Geschwindigkeitsprofil byVelMode s u und der maximalen Verz gerung des aktuellen GEOINFO Objekts dDecel s u die Geschwindigkeit auf 0 zu vermindern und solange zu warten bis Slow_Stop wieder auf FALSE gesetzt wird bEmergency_Stop BOOL Dieser Eingang steht standardm ig auf FALSE Wird er TRUE dann f hrt der SMC_Interpolator einen sofortigen Stopp aus d h die Stell Position wird beibehalten Die Geschwindigkeit wird somit also unmittelbar auf O gesetzt SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib bWaitAtNextStop BOOL Steht dieser Eingang auf FALSE default so wird die Bahn ohne Unterbrechung befahren Mit TRUE bringt man den SMC_Interpolator dazu beim n chsten nat rlichen Stopp also an Punkten wo die Geschwindigkeit 0 betr gt typischerweise an Bahnecken die Stell Position beizubehalten und solange zu verweilen bis bWaitAtNextStop wieder auf FALSE gesetzt wird dOverride LREAL Mit Hilfe dieser Variablen kann man den Override bedienen Zul ssige Werte sind gr er als 0 01 Der Override wird auf die Sollgeschwindigkeit der einzelnen Objekte multipliziert und erm glicht es so online die Sollgeschwindigkeit zu erh hen bzw zu vermindern Ein Override von 1 default beispielsweise bewirkt dass die programmierten Sollgeschwindigkeiten ausgef hrt werden w hrend ein Override von 2 diese verdoppeln w rde Auch wenn der Override zu jeder Ze
191. r im CNC Editor programmierten Bahn zu Strukturobjekten e SMC_ToolCorr Bahnvorverarbeitung Werkzeugradiuskorrektur e SMC _AvoidLoop Bahnvorverarbeitung Schleifenvermeidung e SMC_SmoothPath Bahnvorverarbeitung Eckverschleifung mit Splines e SMC_RoundPath Bahnvorverarbeitung Eckverrundung mit Kreisb gen e SMC_CheckVelocities berpr fung der Endgeschwindigkeiten der Segmente e SMC_Interpolator Umwandlung der entschl sselten ggfs vorverarbeiteten Bahnobjekte in diskrete Punkte e Hilfsfunktionen zum Verschieben und Rotieren einer erstellten Bahn e globale Variablen Setzen einiger interner Parameter e Strukturen SMC_POSINFO SMC_GEOINFO SMC_VECTOR3D und SMC_VECTOR6D zur Speicherung von Positionen Bahnabschnitten und Vektoren e Struktur SMC_OUTQUEUE zur Verwaltung von GEOINFO Objekten in einer Liste definierter Gr e Die Bausteine und Strukturen werden in den folgenden Kapiteln beschrieben Sehen Sie auch die Beispielprogramme in Kapitel 11 Hinweis Man beachte dass der CNC Editor ein CNC Programm auf zweierlei Arten bersetzen kann als Programmvariable SMC_CNC_REF die den Decoder und ggfs Bahnvorverarbeitungsbausteine durchlaufen muss und als OUTQUEUE die direkt an den Interpolator bergeben werden kann Bausteine SMC_NCDecoder Der SMC_NCDecoder Baustein SM_CNC lib wandelt ein im CNC Editor erstelltes CNC Programm in eine Liste von SoftMotion GEOINFO Strukturobjekten um Pro Zyklus wird eine Programmzeile
192. r steigenden Flanke mit dem Einlesen des Programms sFileName STRING 80 Dateipfad und name pvi POINTER TO SMC_VARLIST Pointer auf ein SMC_VARLIST Objekt s u Sollten keine Variablen im CNC Programm verwendet werden wird dieser Eingang nicht belegt pBuffer POINTER TO BYTE Zeiger auf einen in der IEC Applikation reservierten gen gend gro en freien Datenbereich dwBufferSize DWORD Gr e des Datenbereichs in Byte Ausg nge des Bausteins bDone BOOL Wird gesetzt wenn das Programm vollst ndig eingelesen wurde bError BOOL TRUE Fehler trat auf ErrorlD SMC_ERROR Fehlernummer bExecuteDecoder BOOL Signal mit welchem der Execute Eingang des SMC_NCDecoder Bausteins getriggert werden sollte ncprog SMC_CNC_REF CNC Programm Eingang des anschlie enden SMC_NCDecoder Bausteins SMC_VARLIST Struktur 10 2 Die IEC1131 3 sieht keine M glichkeit vor aus dem symbolischen Variablennamen der beispielsweise als String vorliegt den Wert der zugeh rigen Variablen zu gewinnen Diese M glichkeit m sste aber gegeben sein um die Variablen Funktionalit t siehe 3 2 die dem Anwender mit der bersetzungsvariante Programmvariable siehe 3 7 zur Verf gung steht beim Einlesen des CNC Programms ber Datei ebenso nutzen zu k nnen Deshalb behilft man sich mit der Strukur SMC_VARLIST Diese besteht aus der Variable wNumberVars die die Anzahl aller verwendeten Variablen enth lt und einem Zeiger psvVarList auf
193. rameternummern der 3S Parameter die pro Zyklus empfangen werden sollen 1006 wCyclicDataR1 1007 wCyclicDataR2 1008 wCyclicDataR3 PLC Config or Init FB of lt BusinterfaceBezei chnung gt Drive lib 1010 BOOL Regler Leistung zuschalten abschalten 1011 BOOL Bremse aktivieren deaktivieren 1012 BOOL TRUE Antrieb antwortet 1013 WORD De Interne Verwendung 1015 BOOL Dustan des Reglers 1016 BOOL Zustand der Bremse 1020 wAxisGroupld WORD PLC Config Index der Achsgruppe in der Konfiguration 1021 wDriveld WORD PLC Config Knotennummer des Antriebs auf dem Feldbus SoftMotion in CoDeSys 2 3 2 23 Variablen der Struktur AXIS_REF 1023 INoOwner INT Anzahl der fr heren und momentanen Owner bMovedInThisCycle BOOL FALSE wurde Antrieb in diesem IEC Zyklus bewegt fTaskCycle REAL PLC Config Task Zykluszeit in s bRealDrive BOOL PLC Config Programm bError BOOL FALSE Fehler ist aufgetreten Id Number des momentanen Owners FB 1024 1025 1026 TRUE erzeugt durch Config FALSE erzeugt durch IEC 1030 1031 1032 bErrorAckn BOOL FALSE Best tige Fehler ARRAY 0 g SMC_N UMBER FB_ 1035 fbeFBError FB Fehlernummer Speicher ERRORS OF SMC_FBERR OR 1051 dwRatioTechUnitsDenom DWORD PLC Config Konvertierung technischer Einheiten in Inkremente Denominator IRatioTechUnits INT PLC Config Konvertierung technischer Num Einheiten in Inkremente Numerator nDirection MC_Direction posi
194. ration Eine Antriebsstruktur mit 2 linearen Antrieben wird definiert dabei muss auch die maximale Geschwindigkeit etc gesetzt werden E P PLC Configuration 4 BusintefaceW AR CEEEEELEELECELELLLEELLLLLELELLELELLLLLELELLEELLLLLLLLELLEEELLET 3 Erstellen des IEC Programms Wir m ssen zun chst die Antriebe mit dem MC_Power Baustein aktivieren mep mep WC _Fower W Power Enable TRUE pregulatoron mie H bOriveStart Aise Als weiteres wichtiges Element ben tigen wir einen SMC_Interpolator Baustein Dieser erh lt als poqDataln Eingang die Adresse des erstellten CNC Programms Zudem muss die IEC Task SoftMotion in CoDeSys 2 3 11 9 11 10 Beispiel Antriebssteuerung mit Hilfe des CNC Editors Zykluszeit in dwlpoTime geschrieben werden Diese kann man entweder als konstanten Wert dem Eingang dwIpoTime eingeben oder man ben tzt die Variable dwCycle der Achsgruppen Struktur aus der Steuerungskonfiguration was den Vorteil hat dass wenn man die Zykluszeit der Task ndert automatisch die richtige Zeit als Interpolator Eingang verwendet wird Smti ADR Example bEmergency_stop bWalt inendstop dunerride Act bhjecetSourceNo wipoTime dve dLastWVayPos vecActTangent hAbort ILastswitch In unserem Beispiel wollen wir ein Portal System steuern Deshalb f gen wir eine Instanz der R ckw rts und Vorw rtstransformations Bausteine aus der Bibliothek SM _Trafo liibp ein Der Vorw rtstransformationsb
195. ren Nummern sind teilweise durch PLCopen spezifiziert teilweise von 3S Smart Software Solutions GmbH festgelegt und im Softmotion Drive Interface beschrieben Um antriebsherstellerspezifische Daten aus dem Antrieb heraus zu lesen kann man diese Bausteine ebenso verwenden Ein zur jeweiligen Antriebsbibliothek XXXDrive lib geh rendes Dokument beschreibt die Kodierung der antriebsspezifischen Parameternummern Wii_READFARAMETER Enable BOOL FarameterMumber DINT Axis ASIS_REF wWAR_IN_OIIT ErroriD WORO Yalue LREAL Axis AXIS_REF WARUM LOUT M _REAQBOQOLFARAMETER Enable BOOL FarameterMumber DINT Axis ASIS_REF WARLUMLOUT ErrorlD WORO Yalue BOOL Axis AXIS_REF MARIN OUT MC_WriteParameter MC_WriteBoolParameter Mit diesen Bausteinen lassen sich einige Standardparameter der Antriebsstruktur setzen Deren Nummern sind teilweise durch PLCopen spezifiziert teilweise von 3S Smart Software Solutions GmbH festgelegt und im Softmotion Drive Interface beschrieben Um antriebsherstellerspezifische Daten an den Antrieb zu senden kann man diese Bausteine ebenso verwenden Ein zur jeweiligen Antriebsbibliothek XXXDrive lib geh rendes Dokument beschreibt die Kodierung der antriebsspezifischen Parameternummern WI OWRITEFARAMETER Execute BOOL FarameterMumber DINT Yalue LREAL ErrorlD WORD Axis AXIS_REF WARLUMLOUT Axis AXIS_REF WARUN OUT ME ONRITEBOOLFARAMETER Execute BOOL FarameterNumber DINT Y
196. rf online ver ndert werden Somit hat man die M glichkeit diesen Wert offline vorzugeben durch die SMC_GEOINFO Struktur und ihn online zu modulieren Man beachte dabei aber dass eine Werkzeugradius nderung w hrend der Bearbeitung eines zu versetzenden Blocks zum Abbruch der Werkzeugbahnkorrektur f hrt und deshalb zu vermeiden ist Durchaus m glich ist dies aber w hrend eines Resets oder wenn gew hrleistet ist dass der Baustein gerade nicht mitten in der Versetzung eines Blockes ist Status TC ORIG Default Wert O nSizeOutQueue UDINT Hier wird dem Baustein die Gr e des Datenpuffers mitgeteilt in den die Liste von GEOINFO Strukturobjekten geschrieben wird Dieser muss mindestens f nf mal so gro wie eine GEOINFO Struktur Ist dies nicht der Fall so f hrt der SMC_NCDecoder keine Aktionen durch Der Wert darf gesetzt und hernach nur w hrend eines Resets ver ndert werden Es empfiehlt sich den eigentlichen Buffer wie unten beschrieben z B als Example Array of SMC GeoInfo anzulegen Die entsprechende Buffergr e ergibt sich dann aus sizeof Example pbyBufferOutQueue POINTER TO BYTE Dieser Eingang muss auf das erste Byte des f r die OUTQUEUE Struktur angelegten Speicherbereichs zeigen Dieser Speicherbereich muss mindestens so gro sein wie in nSizeOutQueue angegeben Typischerweise erfolgt das Belegen dieses Speichers im Deklarationsteil des IEC Programms mittels eines Arrays of SMC_Geolnfo z B BUF ARRAY 1 50 O
197. rh lfte wird die Funktionsabh ngigkeit Master Slave Achse graphisch dargestellt F r die untere Fensterh lfte kann zwischen drei Darstellungen gew hlt werden Die Befehle daf r befinden sich im Men Extras siehe Kapitel 4 4 1 Allgemeine Editor Einstellungen Darstellung der SoftMotion in CoDeSys 2 3 4 1 Starten des CAM Editor und Erstellen einer Kurvenscheibe ersten blaue Kurve Geschwindigkeit und zweiten gr ne Kurve Beschleunigung Ableitung Darstellung einer Tabelle mit allen Kurvenscheibenelementen Punkte Geraden oder Darstellung einer Tabelle mit allen Nocken Die Tabellen k nnen editiert werden Extras Neue Kurvenscheibe erstellen 4 2 W hlen Sie den Befehl Neue Kurvenscheibe aus dem Men Einf gen oder aus dem Kontextmen und nehmen Sie im sich ffnenden Dialog Eigenschaften Kurvenscheibe die gew nschten Einstellungen vor Eigenschaften Kurvrenscheibe Mame der Kurzenscheibe Cam Top Kurrenscheibe C Nockentabelle Abbrechen Skalerung Master Achze vr 360 Minimalwert fo oog Schrittweite 20 DOC Masimalrert 350 000 Einheit RE Skalerung Slave Achze Minimalwert 0 0002 Schrittweile 40 000 Maximaler 360 000 Einheit i Eigenschaften M periodisch Periode 360 000 Name der Kuvenscheibe Eine Bezeichnung f r die neue Kurvenscheibe Typ Eine Kurvenscheibe enth lt sowohl Kurvenscheiben Elemente als auch Nocken ein Nockenschaltwerk Nock
198. rk in techn Einheiten sec 1141 fActJerk REAL aktueller Jerk in techn Einheiten sec 1142 16 fMaxJerk REAL 100 maximaler Jerk in techn Einheiten sec 1143 fSWMaxJerk REAL 100 maximaler Jerk f r implizite Bewegungen in techn Einheiten sec rn mann Tran fo isemesonne rer Tomi Tran fo rsemrsenamzpune 1153 REAL 1204 bSWEndSwitchActive BOOL 1205 bSWLimitEnable BOOL 1206 bHWLimitEnable BOOL 1207 bCaptureOccurred BOOL 1208 bStartCapturing BOOL 1210 bStartReference BOOL Vorgegebene Stromst rke A Aktuelle Stromst rke A 100 Maximale Stromst rke A TfSWMaxCurrent maximale Stromst rke f r implizite Bewegungen in techn Einheiten sec Vorgeg Drehmoment in Nm bzw N linear Aktuelles Drehmoment in Nm bzw N linear Maximales Drehmoment in Nm bzw N linear Positionsgrenze positiver Richtung in techn Einheiten Positionsgrenze in negativer Richtung in techn Einheiten Capture position in techn Einheiten FALSE SW Endschalter aktiv FALSE Software Endschalter aktivieren FALSE Hardware Endschalter aktivieren deaktivieren FALSE Capture hat stattgefunden durch Schreiben best tigen FALSE Capture f r aktuellen Trigger starten beenden FALSE TRUE Referenzlauf starten 2 26 SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface Initwert fReference fOffsetPosition fFirstCapturePosition fLastCapturePosition tiTriggerInput TRIGGER_R Beschreibung des Cap
199. rkt ein Mausklick im Editorfeld das Einf gen eines G01 Elements in Form einer Linie Das neue Element wird hinter das aktuell selektierte rot platziert Die Mausposition legt den Zielpunkt der Linie fest Extras Kreis Rechts Einf gemodus 22 Wenn diese Option aktiviert ist bewirkt ein Mausklick im Editorfeld das Einf gen eines G02 Elements in Form eines Kreises f r eine Bewegung im Uhrzeigersinn Das neue Element wird hinter das selektierte rot platziert Die Mausposition legt den Zielpunkt fest Der Kreis Radius wird standardm ig auf 100 gesetzt und muss ggf im Texteditor ver ndert werden Extras Kreis Links Einf gemodus c Wenn diese Option aktiviert ist bewirkt ein Mausklick im Editorfeld das Einf gen eines G03 Elements in Form eines Kreises f r eine Bewegung gegen den Uhrzeigersinn Das neue Element wird hinter das selektierte rot platziert Die Mausposition legt den Zielpunkt fest Der Kreis Radius wird standardm ig auf 100 gesetzt und muss ggf im Texteditor ver ndert werden Extras Spline Einf gemodus a Wenn diese Option aktiviert ist bewirkt ein Mausklick im Editorfeld das Einf gen eines Spline Punktes Dieser wird hinter das markierte rote Element gestellt Die Mausposition legt den Zielpunkt fest Extras Ausgabegr e anpassen raz Bet tigt man diesen Men punkt wird der sichtbare Bildschirmbereich so gelegt dass das gesamte NC Programm gesehen werden kann 3 12 SoftMotio
200. rpolator Baustein SM_CNC lib hat die Aufgabe eine vorliegende durch GEOINFO Objekte beschriebene stetige Bahn unter R cksichtnahme auf vorgegebenes Geschwindigkeitsprofil und Zeitraster in diskrete Bahnpunkte zu berf hren Diese Positionsvorgaben werden blicherweise dann vom IEC Programm z B auf die Antriebs Achsenstellungen transformiert und ber das Drive Interface an die Antriebe gesendet SMC_NTERPOLATOR bExecute BOOL pogDataln F INTER TO SMC_OUTQUEUE bSiow_Stop BOOL wErrorlD SMC_ERROR bEmergency_Stop BOOL piSetFosition SMC_POSINFO bYait tNextstop BOOL iStatus SMC_INT_STATUS d werride LREAL biyorking BOOL ivelMode SMC INT_VELMODE iAcObjectSourceNo INT dwipoTime DWORD del LREAL dLastYayPos LREAL vec ctTangent SMC_VECTOR3D bAbort BOOL iLastSwitch INT bSingleStep BOOL dwSwitches DWORD bAcknM BOOL dWayPos LREAL wM WORD Eing nge des Bausteins bExecute BOOL Der Baustein f hrt einen Reset aus und beginnt mit der Interpolation wenn dieser Eingang eine steigende Flanke aufweist poqDataln POINTER TO SMC_OUTQUEUE Dieser Eingang zeigt auf das SMC_OUTQUEUE Strukturobjekt das die SMC_GEOINFO Objekte der Bahn enth lt die interpoliert werden soll typischerweise auf den Ausgang pogDataQut des Vorg ngerbausteins SMC_CheckVelocities bSlow_Stop BOOL Steht dieser Eingang auf FALSE default so wird die Bahn ohne Unterbrechung befahren Mit TRUE bringt man den SMC_Inter
201. rsten Kurvenscheibe setz der MC_Camin Baustein den Ausgang bEndOfProfile aufgrund dessen der jeweils andere MC_CamTableSelect zur Anwendung kommt und MC_Camin neu gestartet wird Beispiel Antriebssteuerung mit Hilfe des CNC Editors Im folgenden wird die Grundstruktur eines m glichen IEC Programms unter CoDeSys beschrieben welches im CNC Editor geplante Bahnen umzusetzen vermag Wie unter 3 1 beschrieben bestehen zwei M glichkeiten ein CNC Programm zu bersetzen und zu verwenden Das erste Beispiel illustriert die direkte Erzeugung einer OutQueue das zweite decodiert das Programm online unter Verwendung von Variablen Das dritte Beispiel wendet online zus tzlich einen Bahnvorverarbeitungsbaustein an SoftMotion in CoDeSys 2 3 Kapitel 11 Programmierbeispiele 11 7 1 Direktes Erzeugen der OutQueue Sehen Sie das mit SoftMotion mitgelieferte Beispielprojekt CNCdirect pro 1 Erstellen des NC Programms im CNC Editor Wir erstellen wie in O beschrieben ein Beispielprogramm welches sich zwischen x aus 0 100 und y aus 0 100 abspielt Au erdem definieren wir Geschwindigkeiten und Beschleunigungen f r die Bahn und setzen zwei Wegschaltpunkte auf der Bahn Z B CNC Programmliste 0 x comment MO G01 82 9 Y 8 9 F50 E30 E 30 MIO G0 s849 Yda R100 HT L10 N20 G01 6 6 25 7 H 1 00 8 Ma0 G03 54 6 49 7 R100 Als bersetzungsmodus w hlen wir beim bersetzen OutQueue erzeugen 2 Drive Interface Steuerungskonfigu
202. rte Kurvenscheibe zu gro 2202 SMC_ReadCAM SMC_RCAM_WRONG_COMPILE TYPE falscher bersetzungsmodus 2203 SMC_ReadCAM SMC_RCAM_WRONG _ VERSION Datei hat falsche Version 2204 SMC_ReadCAM SMC_RCAM_UNEXPECTED_EOF unerwartetes Dateiende 3001 SMC_WriteDriveParamsTo SMC_WDPF_CHANNEL_OCCUPIED Parameter Auslese Kanal File belegt 3002 SMC _WriteDriveParamsTo SMC_WDPF_CANNOT_CREATE_FILE Datei konnte nicht erzeugt File werden 3003 SMC _WriteDriveParamsTo SMC_WDPF_ERROR_WHEN READING _ Fehler beim Lesen der File PARAMS Parameter 3004 SMC_WriteDriveParamsTo SMC_WDPF_TIMEOUT_PREPARING _LIS Timeout beim Vorbereiten File T der Parameterliste 5000 SMC Encoder SMC_ENC_DENOM ZERO Nenner des Umrechnungsfaktors dwRatioTechUnitsDenom der Encoder Referenz 0 5001 SMC_Encoder SMC_ENC_AXISUSEDBYOTHERFB Anderer Baustein versucht Bewegung auf Encoder Achse auszuf hren SoftMotion in CoDeSys 2 3 Kapitel 10 Die Bibliothek SM_FileFBs lib 10 Die Bibliothek SM_FileFBs lib 10 1 berblick Diese Bibliothek stellt Bausteine zur Verf gung die im Zusammenhang mit File Funktionalit t stehen Ihre Verwendung setzt die 35 Systembibliotheken SysLibFile lib und Standard lib voraus 10 2 _CNC Funktionsbl cke SMC_ReadNCQueue Dieser Baustein liest eine OutQueue Datei die vom CNC Editor erzeugt wurde siehe 3 3 vom Filesystem der Steuerung ein und stellt eine OutQueue Struktur zur Verf gung die typischerweise vom Interpolator abgefa
203. rvenscheibe und enth lt folgende Elemente wCAMStructID WORD Mithilfe dieser Variable die stets einen festen Wert hat berpr fen die Bausteine ob es sich bei der eingegebenen Datenstruktur um eine MC_CAM _REF handelt xStart xEnd LREAL Definitionsbereich der Kurvenscheibe Start und Endposition des Masters byType BYTE Diese Variable beschreibt den Kurvenscheibentyp also die Art und Weise wie die Kurvenscheibe repr sentiert wird 1 aquidistante 1 dimensionale Tabelle aus Slave Positionen 2 nicht quidistante 2 dimensionale Tabelle aus Master Slave Punktepaaren 3 polynomiale Beschreibung ber einzelne Punkte bestehend aus Masterposition Slave Position geschwindigkeit und Beschleunigung XYVA byVarType BYTE nur f r byType 1 oder byType 2 Vaariablentyp aus welcher die Kurventabelle besteht 0 INT 1 UINT 2 DINT 3 UDINT 4 REAL 5 LREAL nElements INT Anzahl an Elementen also je nach Typ SlavePositionen Master Slave Positionen oder XYVA Punkten byInterpolationQuality BYTE nur f r byType 1 oder byType 2 Feininterpolationsgrad 1 linear default 3 kubisch pce POINTER TO BYTE Zeiger auf das eigentliche Datenelement abh ngig vom Typ Typ 1 quidistant SMC_CAMTable_ lt VarType gt _ lt nElements gt _1 2 nicht quidistant SMC_CAMTable_ lt VarType gt _ lt nElements gt _2 3 XYVA ARRAY OF SMC_CAMXYVA nTappets INT Anzahl Nockenschaltaktionen pt POINTER TO SMC_CAMT
204. s vom n chsten definierten Punkt platziert SoftMotion in CoDeSys 2 3 Kapitel 4 Der CAM Editor in CoDeSys werden Sobald die linke Maustaste losgelassen wird wird der Endpunkt bernommen und automatisch in den Modus Element selektieren gewechselt Einf gen Nocke einf gen l Wenn dieser Befehl im Men Einf gen oder in der Werkzeugleiste aktiviert wird kann folgendermassen eine Nocke in die Kurve eingef gt werden Man bewegt den Mauszeiger an die gew nschte Position f r die Nocke und dr ckt die linke Maustaste Die Nocke wird auf der Kurve entsprechend der mit dem Mauszeiger gew hlten X Position eingeh ngt Solange die linke Maustaste noch gedr ckt ist kann sie durch Bewegen der Maus auf der Kurve verschoben werden Durch Loslassen der linken Maustaste wird die Position bernommen und automatisch in den Modus Element selektieren gewechselt 4 5 Verwendung von Kurvenscheiben Zur Ausf hrung der Kurvenscheiben stehen in der Bibliothek SM_PLCopen lib Bausteine zur Verf gung die im Kapitel 5 4 beschrieben werden Dieses Kapitel soll einige Erkl rungen zur Anwendung der Kurvenscheiben speziell zur Aneinanderreihung von Kurvenscheiben und genaueren Bedeutung der verschiedenen Parameter Periodizit t Offset etc liefern 4 5 1 Auswirkungen von Baustein Parametern Editor Kurvenscheibeneigenschaften Periodisch Periode Diese beiden Einstallungen sind lediglich f r das Erstellen der Kurve relevant
205. sen Adresse dann in diese Variable geschrieben werden Das Belegen im Deklarationsteil kann SoftMotion in CoDeSys 2 3 6 45 Strukturen der SM_CNC lib beispielsweise mittels eines Byte Arrays erfolgen BUF ARRAYT1 10000 OF BYTE f r einen 10000 Byte gro en Speicherbereich nSize UDINT Hier muss die Gr e des bei Buffer reservierten Speicherbereichs stehen nReadPos UDINT In dieser Variable steht relativ zum ersten Byte des reservierten Speicherbereichs die Adresse des ersten Listenelements nWritePos UDINT In dieser Variable steht relativ zum ersten Byte des reservierten Speicherbereichs die Adresse des ersten freien Bytes hinter der Liste bFull BOOL Ist die Liste bis auf den Speicher f r drei weitere GEOINFO Strukturen Sicherheitspuffer voll so wird diese Variable von der Funktion APPENDOB J auf TRUE gesetzt DELETEOB J setzt sie wieder auf FALSE wenn Elemente der Liste gel scht werden bEndOfList BOOL Die SoftMotion Bausteine die als Eingang eine OutQueue Struktur haben warten mit der Abarbeitung derselben immer bis diese voll ist damit beispielsweise kein Data Underrun SMC_Interpolator auftritt Da bei den letzten SMC_GEOINFO Objekte einer Bahn die OutQueue nicht mehr voll ist muss nach dem Ablegen des letzten SMC_GEOINFO Objekts diese Variable auf TRUE gesetzt werden damit mit der Verarbeitung fortgefahren werden kann Ist die Liste danach leer und soll aber neu bef llt werden muss EndOfList wieder a
206. setzen 3 13 bersetzungsoptionen 4 6 Werkzeugradiuskorrektur 3 13 M Funktion 3 5 6 38 Modulo Wert 2 8 Modulparameter 2 2 multi axis Bewegungssteuerung 11 8 N NC Programm 3 7 Neue Kurvenscheibe erstellen 4 2 Neues CNC Programm 3 7 nicht bersetzen 4 7 SoftMotion in CoDeSys 2 3 Nocke 4 5 Nocke einf gen 4 9 Normsprache 3 2 O Objekt teilen 3 9 OUTQUEUE 6 41 OutQueue in Datei schreiben 3 10 P PackProfile 2 7 Parameter der M Funktion 6 38 Periode 4 9 Periodisch 4 9 periodische Kurvenscheibe 4 2 PLCopen Bibliothek 1 2 polynomial 4 6 Portal Systeme 8 1 8 8 Portal Systeme mit Werkzeugversatz 8 4 Positionsdaten 6 41 Positions Sollwerte 2 12 2 13 2 15 Positions Sollwerte 5 19 Positionsspeicherung 6 41 Programm drehen 3 9 Programm neu nummerieren 3 10 Programm strecken 3 9 Programm verschieben 3 9 Punkt einf gen 4 8 Q Queue Gr sse festlegen 3 8 R Referenzfahrt 2 17 5 5 Richtung umdrehen 3 9 RotDrive 2 20 S Satz 3 3 Satzunterdr ckung 3 3 3 14 Scara Systeme 8 9 8 11 Schaltpunkt 3 4 Schleifenfreie Bahn erzeugen 6 28 Schleifenvermeidung 3 13 Selektiermodus 3 12 Sercos Antriebskonfiguration 2 6 SercosDrive lib 2 21 Sercos Inteface 2 2 single axis Bewegungssteuerung 11 4 11 5 Slave Achse 4 1 SM_CAN lib 2 21 SM_CNC lib 1 2 6 23 SM_CNCDiagnostic lib 7 1 SM_DriveBasic lib 2 8 4 12 SM_Error lip 9 1 SM_Error lib 1 2 SM_FileFBs lib 1 2 SM _FileFBs lib 10 1 SM _PLCopen lib 5 1 S
207. shersteller mitgeliefert und m ssen in das Projekt eingebunden sein DummyDrive lib ist ein Beispiel f r Antriebs Treiber Bibliotheken und wird mit den SoftMotion Bibliotheken mitgeliefert Auch wenn diese Bibliothek keine echten Antriebe bedient funktioniert sie nach dem gleichen Prinzip SercosDrive lib Mit dieser Bibliothek die wiederum die externe Bibliothek SercosBase lib als Schnittstelle zur Hardware verwendet k nnen alle Sercos konformen Antreibe gesteuert werden hnlich wie bei CAN existieren Funktionsbausteine f r das Lesen und Schreiben von Parametern SMC_ReadSercosParameter SMC_WriteSercosParameter SMC_ReadSercosList SMC_WriteSercosList SMC_ReadSercosString Der exakte Funktionsumfang wird im Dokument SercosDrive pdf beschrieben SM_CAN lib F r jeden angebundenen CAN Antrieb wird im Gegensatz zu Sercos ein eigener Treiber ben tigt Gemeinsam f r alle CAN Antriebe kann jedoch sofern dies im cfg File eingestellt ist in der Steureungskonfiguration beim Achsgruppen Dialog die Baudrate und die Nummer des CAN Controllers beginnend bei 0 festgelegt werden Um den Bus deterministisch zu halten werden pro CAN Kanal entweder I Os oder Antriebe niemels jedoch beides zusammen betrieben Sollte die 35S CANopen Library verwendet werden nimmt diese automatisch die ersten CAN Controller und so kann f r die Achsgruppe ein anderer reserviert werden Auf der Bibliothek SM_CAN lib bauen alle von 3S
208. sinn um den Nullpunkt gedreht Programm strecken Geben Sie im Dialog Streckungsfaktor den Streckungsfaktor ein Das NC Programm wird um den angegebenen Faktor gestreckt Richtung umdrehen Wenn Sie diesen Men punkt anw hlen ndert sich die Bahn dahingehend dass sie in der entgegengesetzten Richtung abgefahren wird Die Hilfsmarken bleiben dabei an der selben Stelle Objekt teilen Haben Sie ein Wegobjekt angew hlt rot gezeichnet k nnen Sie eine Teilungs Position 0 Anfang 1 Ende im Objekt angeben Dieses Objekt wird dann an der spezifizierten Stelle in zwei Wegobjekte geteilt Beispiel Fahrbefehl N10 wird mit Angabe einer Teilposition von 0 5 geteilt NO Coi X123 000000 Y73 550000 N10 G01 X40 0 Y50 0 Ergebnis neue Teilposition bei X 20 NO G01 X20 000000 Y40 000000 N10 G01 X40 000000 Y50 000000 N20 G01 X123 000000 X73 550000 SoftMotion in CoDeSys 2 3 3 9 CNC Texteditor CNC Programm aus Datei lesen Mit diesem Men punkt k nnen Sie ein in einer ASCII Datei abgelegtes NC Programm laden Im Standarddialog zum Offnen einer Datei k nnen Sie die gew nschte TXT Datei ausw hlen Im darauf folgenden Dialog geben Sie einen Programmnamen an CNC Programm in Datei schreiben Dieser Men punkt gibt Ihnen die M glichkeit das aktuelle CNC Programm in eine beliebige ASCII Datei zu schreiben Existiert die Datei bereits fragt CoDeSys nach einer Best tigung DXF Datei importieren Mit diesem Men punkt k nnen Sie
209. sitive 5000 eine berwachungsfunktion aktiviert e Bei dem verwendeten rotatorische Antrieb bestehe eine Umdrehung aus 65536 Inkrementen Wir tragen deshalb um eine interne Einheit von Winkelgrad zu erhalten in dwRatioTechUnitsDenom 65536 in iRatioTechUnitsNum 360 ein Dieser Antrieb sei beispielsweise daf r gemacht um auf eine Flasche einen Schraubverschluss drehen zu k nnen SoftMotion in CoDeSys 2 3 11 3 11 4 Beispiel Bewegungssteuerung einzelner Achsen in ST single axis Deshalb wollen wir zyklisch Position und Drehmoment schicken um sp ter durch nderung der Betriebsart vom Positionier auf ein Drehmoment geregeltes Verhalten umschalten zu k nnen Dazu schalte man wControllype auf CONFIGURABLE und trage unter wCyclicDataS1 2 fSetPosition und fSetTorque ein Um den aktuellen Positionswert zur ckzuerhalten trage man unter wCyclicDataR1 fActPosition ein e Damit sich das Programm fehlerfrei bersetzen l sst muss noch ein Programmaufruf an die Task BusTask angef gt werden Beispielsweise erstellt man ein Programm Ipo in welchem sp ter die Bewegungssteuerung stattfinden soll und ruft es von BusTask aus auf Jetzt sollte ein fehlerfreier bersetzungslauf m glich sein und das Programm kann auf die Steuerung geladen und gestartet werden Automatisch erzeugt werden die folgenden Variablen und Strukturen Im Globale Variablen Ordner Drive Configuration Data befinden sich nun drei Instanzen der Baus
210. sst in Abh ngigkeit von der Totzeit die durch die Kommunikation ber einen Feldbus entstehen kann und in Zykluszahlen angegeben wird byDeadTimeCycles den aktuellen und maximalen Schleppfehler Wie bei SMC_GetMaxSetVelocity kann ein Zeitstempel dwTimeStamp verwendet werden um den Zeitpunkt des Maximums zu messen SMC _GETTRACHINGERROR bEnable BOOL kvaluewalid BOL bResethias BOOL tActTrackingError LREAL bDeadTimecyecles BYTE tMaxTrackingError LREAL dwTimesStamp DWORC dwTimestias DWNORD Axis AXIS_REF wWAR_IN_OUT Axis AXIS_REF wWAR_IN_OIIT SoftMotion in CoDeSys 2 3 2 19 2 2 9 2 2 10 LinDrive RotDrive 2 20 SM_DriveBasic lib und automatische Codegenerierung Encoder ber die Steuerungskonfiguration besteht die M glichkeit Encoder in eine Achsgruppe einzubinden und zu konfigurieren Die damit angelegten Datenstrukturen vom Typ SMC_ENCODER_REF m ssen von einer Instanz des Bausteins SMC_Encoder verarbeitet werden Dieser liefert als Ausgabe eine AXIS_REF Datenstruktur die sobald der Ausgang bValid die G ltigkeit der Daten best tigt als Eingang f r alle anderen Funktionsbausteine z B MC_Camin MC_Gearln MC_TouchProbe dienen kann ber den boolschen Eingang bSet kann der aktuelle Wert des Encoders auf den Eingang fSetValue gesetzt werden SMC ENCODER dwEncoderalue DWORD bSet BOOL rseWalue DWORD encref She _ Encoder REF wARIM_ OLT Axis Als REF encref SMe _ Encoder _ REF
211. swirkungen von Baustein Parametern 0220022002400nn0 onen nenn nenn nennen 4 9 4 5 2 Umschalten zwischen Kurvenscheiben 002202402200200200nenennnnnnnne nennen 4 11 4 6 Kurvenscheiben Datenstrukturen 2 022002002000000nn0 ann nnennnnnn ann nenn ene nenn 4 12 4 6 1 Beispiel f r manuell erzeugte Kurvenscheibe 200222002200nennennnenennennne 4 14 Die Bibliothek SM_PLCopen lib 5 1 5 1 BErDIICK tu anne ne een 5 1 5 2 PLCopen Spezifikation Function blocks for motion control Version 1 0 5 1 5 3 Bausteine zur Bewegungssteuerung einzelner Achsen 22202202200 5 2 5 4 Bausteine zur synchronisierten Bewegungssteuerung multi axiSs 5 14 5 5 ZUSalzpalstelhenes sa a AA 5 18 Die Bibliothek SM_CNC lib 6 23 6 1 UbErDlC Keneng en ee ee E R 6 23 6 2 BAUSTEIN Ense ee S 6 23 62 5 SNMG NEDECSUEr aena a ern 6 23 6 22 SMC GCOUEVIEWE une a aan au 6 25 82 93 OMG TOOlCOH ee 6 26 0 24 SME AVVOLO aiis aa a a ai 6 28 02 5 SMC SMOONP AM srne a a enge 6 29 626 SMC Rond P al erann E E E RN 6 31 O2ZF SME ChEckVeloeiesan se een en 6 32 82 8 SMG LimitGircularVelocities ur u a 6 33 0 29 SMC nterpolalor unse ende 6 34 6 2 10 SME GEIMParamelels sense een 6 38 8 25 11 gt SME SINTEIROR TOD aa a 6 39 6 3 Hilfsfunktionen und funktionsbl cke f r Bahnrotationen translationen und SKAllEFUNgENza Henne een 6 40 6 4 Einstellungen ber glo
212. t SoftMotion in CoDeSys 2 3 6 37 6 2 10 6 38 Bausteine vecActTangent SMC_VECTOR3D In dieser Struktur befindet sich die Bahnrichtung im Punkt Set_Position F r den Fall Vel 0 befinden sich auch in Act_Tangent lauter Nullen iLastSwitch INT In dieser Variable steht die Nummer der zuletzt passierten Hilfsmarke Sollten in einem Zyklus mehrere Hilfsmarken berlaufen werden wird nur jeweils die letzte ausgegeben dwSwitches DWORD Dieses DWORD enth lt den momentanen Schaltzustand aller der Hilfsmarken zwischen 1 und 32 Bit0 des DWORDs steht f r Hilfsmarke1 Bit31 f r Hilfsmarke 32 Anders als bei iLastHelpMark kann so ausgeschlossen werden dass eine Hilfsmarke verloren geht dWayPos LREAL Beschreibung siehe Eingang dLastWAyPos Pro Aufruf wird vom SMC_Interpolator unter R cksichtnahme auf die vorgegebenen Parameter die Geschwindigkeitshistorie und die letzte Bahnposition der folgende Bahnpunkt berechnet und ausgegeben Wurde das jeweils erste GEOINFO Objekt abgearbeitet wird es aus der poqDataln SMC_OUTQUEUE Struktur gel scht wM WORD Passiert der Interpolator ein M Objekt d h eine Zeile die eine Zusatzfunktion beschreibt wird dieser Ausgang auf den entsprechenden Wert gesetzt und so lange gewartet bis er durch den Eingang bAcknM quittiert wird Man beachte Am Ende einer Kontur ist die SMC_OUTQUEUE Variable leer Will man dieselbe Kontur erneut verfahren muss man entweder erneut das CNC Programm vi
213. t der Soll Geschwindigkeit die nicht zwingend erreicht werden muss u s Acceleration REAL Gew nschte Beschleunigung u s SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib Deceleration REAL Gew nschter Bremswert u s Ausg nge des Bausteins Done BOOL Default FALSE TRUE zeigt an dass die gew nschte Distanz erreicht wurde CommandAborted BOOL Default FALSE Die gestartete Bewegung wurde durch einen anderen Funktionsblock der auf dieselbe Achse wirkt unterbrochen Ausnahme MoveSuperlmposed Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer MC_MoveSuperlmposed Dieser Baustein der SM_PLCopen lib f hrt ggfs zus tzlich zur gerade stattfindenden eine Bewegung aus die die Achse eine definierte Distanz zur cklegen l sst Die angegebenen Werte von Geschwindigkeit Beschleunigung und Bremsung sind dabei relativ zu sehen also unabh ngig von der darunter liegenden Bewegung Der urspr nglich aktive Baustein wird von MC_MoveSuperlmposed nicht unterbrochen Wird der urspr nglich aktive Baustein von einem weiteren unterbrochen w hrend MC_MoveSuperlmposed aktiv ist wird die Bewegung von MC_MoveSuperlmposed abgebrochen Man beachte dass der Aufruf von MC_MoveSuperlmposed nach dem des Bausteins der die darunter liegende Bewegung erzeugt erfolgen muss ME MOWESUFERIMPOSED Execute BOOL Dis
214. t der Soll Geschwindigkeit die nicht zwingend erreicht werden muss u s Acceleration REAL Gew nschte Beschleuningung u s Deceleration REAL Gew nschter Bremswert u s Ausg nge des Bausteins Done BOOL Default FALSE TRUE zeigt an dass die gew nschte Distanz erreicht wurde CommandAborted BOOL Default FALSE Die gestartete Bewegung wurde durch einen anderen Funktionsblock der auf dieselbe Achse wirkt unterbrochen Ausnahme MoveSuperlmposed Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer MC_MoveRelative 5 8 Dieser Baustein der SM_PLCopen lib bewegt die Achse um eine relative Distanz entsprechend der vorgegebenen Werte von Geschwindigkeit Beschleunigung und Bremsung Die Distanz kann dabei positiv oder negativ sein MC _MOYERELATIE Execute BOOL Done BOOL Distance LREAL ommand abo ored BOOL Welocity LREAL Acceleration LREAL Deceleration LREAL Axis AsIS_REF WAR IM OLTI Axis ASIS_REF wWARIN_OILT Ein Ausgang VAR IN OUT des Bausteins Axis AXIS_REF Hier wird die Struktur bergeben die im Drive Interface SM_DriveBasic lib mit den Daten der Achse gef llt wurde Eing nge des Bausteins Execute BOOL Default FALSE Bei einer steigenden Flanke wird der Baustein aktiv Distance REAL Relative Strecke f r die Bewegung techn Einheit u Velocity REAL Wer
215. t geleert Bei TRUE werden die neuen Daten ans Ende der DataOut Queue geschrieben poqDataln POINTER TO SMC_OUTQUEUE Dieser Eingang zeigt auf das SMC_OUTQUEUE Strukturobjekt das die SMC_GEOINFO Objekte der unverrundeten Bahn enth lt typischerweise auf den Ausgang DataOut des Vorg ngerbausteins z B des SMC_NCDecoders dEdgeDistance LREAL In dieser Eingangsvariablen steht der Wert der addiert auf den jeweiligen ToolRadius Wert des SMC_GEOINFO Objekts den Abstand zu einer Ecke angibt ab dem die jeweiligen Objekte abgeschnitten und durch eine Spline ersetzt werden s o Er darf online ver ndert werden Somit hat man die M glichkeit diesen Wert offline vorzugeben durch die SMC_GEOINFO Struktur und ihn online zu modulieren Default Wert O dAngleTol REAL Dieser Eingang beschreibt den Winkeltoleranz Wert bis zu welchem ein Bahnknick nicht verschliffen werden soll vgl 3 3 nSizeOutQueue UDINT Hier wird dem Baustein die Gr e des Datenpuffers mitgeteilt in den die Liste der verrundeten GEOINFO Strukturobjekten geschrieben wird Dieser muss mindestens f nf mal so gro wie eine SMC_GEOINFO Struktur also etwa 2KB sein Ist dies nicht der Fall so f hrt der SMC_SmoothPath Baustein keinerlei Aktionen durch Der Wert darf gesetzt und hernach nur w hrend eines Resets ver ndert werden poqBufferOutQueue POINTER TO BYTE Dieser Eingang muss auf das erste Byte des f r die OUTQUEUE Struktur angelegten Speicherbereichs
216. t und hernach nur w hrend eines Resets ver ndert werden Es empfiehlt sich den eigentlichen Buffer wie unten beschrieben z B als Example Array of SMC GeoInfo anzulegen Die entsprechende Buffergr e ergibt sich dann aus sizeof Example pbyBufferOutQueue POINTER TO BYTE Dieser Eingang muss auf das erste Byte des f r die OUTQUEUE Struktur angelegten Speicherbereichs zeigen Dieser Speicherbereich muss mindestens so gro sein wie in nSizeOutQueue angegeben Typischerweise erfolgt das Belegen dieses Speichers im Deklarationsteil des IEC Programms mittels eines Arrays of SMC_Geolnfo z B BUF ARRAY 1 50 OF SMC GEOINFO f r einen Buffer der 50 Bahnelemente aufnehmen kann Auch dieser Wert darf gesetzt und sp ter nur w hrend eines Resets ver ndert werden Ausg nge des Bausteins bDone BOOL Diese Variable wird auf TRUE gesetzt wenn die Eingangsdaten aus Dataln vollst ndig verarbeitet sind Hernach f hrt der Baustein bis zu einem Reset keine Aktionen mehr durch Steht der bExecute Eingang auf FALSE wird bDone wieder auf FALSE gesetzt SoftMotion in CoDeSys 2 3 6 33 6 2 9 6 34 Bausteine bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ERROR INT Sollte ein Fehler auftreten enth lt diese Variable die Fehlernummer poqDataOut POINTER TO SMC_OUTQUEUE Dieser Ausgang zeigt auf eine SMC_OUTQUEUE Struktur die die neuen SMC_GEOINFO Objekte verwaltet SMC_Interpolator Der SMC_Inte
217. t zu Laden und den Bausteinen MC_CamTableSelect und MC Camln zur Verf gung zu stellen SMC READCAM bExecute DOOL boone BOL sFileName STRING BON bError BO L Errorlb SMC_ERROR CAM MC_CAM_R Die Gr e einer ladbaren Kurvenscheibe wird begrenzt durch die globalen Konstanten gc_SMC_FILE_MAXCAMEL Anzahl Elemente und gc SMC FILE MAXCAMTAP Anzahl Nockenschaltaktionen 10 4 Diagnose Funktionsbl cke SMC_AxisDiagnosticLog Dieser Baustein kann dazu verwendet werden ausgew hlte Werte einer Achse zyklisch in eine Datei zu schreiben Die so gewonnene Datei ist ideal f r Diagnosezwecke verwendbar Da das Schreiben von Daten auf einen Datentr ger in der Regel l ngere Zeit ben tigt speichert dieser Baustein die gesammelten Daten in einen Buffer der Gr e 5kByte und erst durch den Aufruf der Bausteinaktion WriteToFile werden die Daten geschrieben Diesen Aktions Aufruf sollte man deshalb in eine langsamere etwa 50 ms weniger priore Task verlagern um die eigentliche Motion Task nicht aufzuhalten und das Antriebsverhalten zu st ren L uft der Buffer ber erzeugt der Baustein einen Fehler SoftMotion in CoDeSys 2 3 10 3 10 4 Diagnose Funktionsbl cke SMC _AalSDIAGNOSTIELOG hExecute BOOL bcloseFile HOL sFileMame STRING SO ErrorlD SMO_ERROR bSetFosition BOOL bRecording BOL bA ctFosition BOOL Axis AXIS_REF WAARIN _ OLUT hSseWelochy BOOL b ctelocite BOL bSetAcceleration BOOL hA
218. tance LREAL YelociyvDif LREAL Acceleration LREAL Deceleration LREAL i Axis AXISLREF WARLUBMLOUT Axis AXIS_REF wWAR_IN_OIT Ein Ausgang VAR IN OUT des Bausteins Axis AXIS_REF Hier wird die Struktur bergeben die im Drive Interface SM_DriveBasic lib mit den Daten der Achse gef llt wurde Eing nge des Bausteins Execute BOOL Default FALSE Bei einer steigenden Flanke wird der Baustein aktiv Distance REAL Relative Strecke f r die Bewegung techn Einheit u VelocityDiff REAL Maximale Differenz der Geschwindigkeit zu der momentanen Bewegung die aber nicht zwingend erreicht werden muss u s Acceleration REAL Gew nschte Beschleunigung u s Deceleration REAL SoftMotion in CoDeSys 2 3 5 9 Bausteine zur Bewegungssteuerung einzelner Achsen Gew nschter Bremswert u s Ausg nge des Bausteins Done BOOL Default FALSE TRUE zeigt an dass die gew nschte Distanz zur ckgelegt wurde Busy BOOL Default FALSE TRUE zeigt an dass die zus tzlich gestartete Bewegung augenblicklich ausgef hrt wird CommandAborted BOOL Default FALSE Die gestartete Bewegung wurde durch einen anderen Funktionsblock der auf dieselbe Achse wirkt unterbrochen Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer MC_MoveVelocity 5 10 Dieser Baustein der SM_PLCopen lib bewirkt eine endlose
219. tein Power f r die Slave Achse wird zun chst der Zeitachsen Baustein TimeAxis aufgerufen Als Periode erh lt diese 10 Sekunden da die Kurvenscheibe auf diese Zeit ausgelegt ist Die Task Zykluszeit muss von Hand eingegeben werden TableSelect w hlt die gew nschte Kurvenscheibe aus und Camin setzt diese um Der Baustein Tappet berpr ft die Stellung des Nockenschalters Da dieser invertiert programmiert wurde wird er alle 10 Sekunden umschalten Nun kann das Programm bersetzt und auf der Steuerung gestartet werden Um die Soll bzw Istposition zu kontrollieren erstelle man wieder eine Visualisierung mit deren Hilfe man die einzelnen Bausteine und die Position der Achsen berpr fen kann Man beachte dass der Master der Kurvenscheibe nicht nur eine virtuelle Zeitachse sondern nat rlich jede beliebige AXIS_REF Datenstruktur sein kann Dabei werden bei Antrieben die in Regelung sind die Sollwerte herangezogen bei freien Antriebe die Istwerte Beispiel wechselnde Kurvenscheiben Sehen Sie hierzu das mit SoftMotion mitgelieferte Beispielprojekt PLCopenMultiCAM pro basierend auf der Konfigurationsdatei softmotion cfg Voraussetzung Die Bibliotheken DriveBasic lib und SM_PLCopen lib sind eingebunden Dieses Beispiel zeigt wie eine Kurvenscheiben Bewegung mit zwei sich abwechselnden Kurvenscheiben realisiert werden kann Es wurde in ST programmiert und f hrt die selben Aktionen wie das vorige Beispiel aus Am Ende der e
220. teine SercosDriveExecute_Start SercosDriveExecute_End und SercosDrivelnit aus der Sercos Bibliothek mit den Namen AxisGroupStartCycle AxisGroupEndCycle und AxisGrouplnit welche f r die Kommunikation mit den Antrieben verantwortlich sind Im Globale Variablen Ordner Drive_Globale Variablen der Bibliothek SM_DriveBasic lib existiert eine Strukturvariable 9g_DRIVESTRUCT welche alle Eintr ge der Steuerungskonfiguration d h alle BusiInterfaces AxisGroups und Drives enth lt Ausserdem wurden f r jeden Antrieb global eine Strukturvariable erstellt z B X_Drive die man sich z B mit dem Watch und Rezepturverwalter ansehen kann Auf dieser Strukturvariablen arbeiten die SoftMotion Bausteine und das Drivelnterface sorgt f r die Aktualit t der Struktur Auf diesen Antriebsstrukturen arbeiten die Motion Bausteine des IEC Programms welches wir jetzt in Ipo erstellen k nnten Beispiel Bewegungssteuerung einzelner Achsen in ST single axis Sehen Sie hierzu das mit SoftMotion mitgelieferte Beispielprojekt PLCopenSingle pro basierend auf der Konfigurationsdatei softmotion cfg Dieses Beispiel demonstriert wie ein Antrieb mittels der nach PLCopen standardisierten Funktionsbl cke gesteuert werden kann Abgesehen von den Bibliotheken des Drive Interfaces muss die Bibliothek SM_PLCopen lib im Projekt eingebunden sein In der Steuerungskonfiguration sei ein linearer Antrieb mit dem Namen Drive definiert E P
221. ten Dialog Punkt Gerade ber Doppelklick auf das Element wird der Dialog Kurvenelement Eigenschaften ge ffnet in dem man folgende Eigenschaften eines Elements durch numerische Eingaben ver ndern kann Kurvenelement Eigenschaften Elementtyp kine M OK Master Start 72 571 Slave Start 33 1 32 Ubernehmen Master lt iel fi b 206 Slave Ziel fa 455 Geschwindigkeit 0 367 Beschleunigung 2 000 Elementtyp Line Gerade bzw Point Punkt der Typ kann hier ver ndert werden wird aus einem Punkt eine Gerade gemacht wird automatisch eine bestimmte L nge vorgegeben wird aus einer Geraden ein Punkt gemacht werden automatisch die Koordinaten des Startpunkts der Geraden bernommen Master Start Master Ziel Start und Endwerte nur f r Geraden Elemente bzgl der X Achse Einheit siehe Dialog Eigenschaften Kurvenscheibe Extras Einstellungen Slave Start Slave Ziel Start und Endwerte nur f r Geraden Elemente bzgl der X Achse Einheit siehe Extras Einstellungen Geschwindigkeit nur f r Punkt Elemente Beschleunigung nur f r Punkt Elemente SoftMotion in CoDeSys 2 3 Kapitel 4 Der CAM Editor in CoDeSys Nocke ber Doppelklick auf das Element wird der Dialog Nockenelement Eigenschaften ge ffnet in dem folgende Werte eingestellt werden k nnen NHockenelement Eigenschaften Aktivierung duch FEEgnE Aktion invertieren r Gruppen ID fi Ubemehmen Abbrechen Verz gerun
222. terte Elemente der CNC Sprache DIN66025 Um dem Programmierer eine einfache M glichkeit zu bieten eine geometrische Bahn zu erstellen unterst tzt SoftMotion Teile der CNC Sprache DIN66025 Da das gesamte SoftMotion Konzept in die viel m chtigere Sprache IEC61131 eingebettet ist werden nur die Teile der DIN66025 unterst tzt die zur Erstellung einer Bahn dienen Vorgeschriebener Aufbau eines CNC Programms gt N lt zahl gt G lt zahl gt N lt zahl gt G lt zah hl gt Beispiel 1 example NLO GOL xX100 Y100 EL0G FI00 Es200 N20 G01 Z40 F20 N30 G03 X 100 R200 F100 Ein SoftMotion CNC Programm muss mit einem Prozent Zeichen beginnen In derselben Zeile kann getrennt durch Leerzeichen oder TAB ein Programmname stehen Das eigentliche CNC Programm setzt sich aus mehreren S tzen zusammen Jeder Satz Zeile besteht aus beliebig vielen Worten Ein Wort besteht aus einem Buchstaben Wortkennung und einer nachfolgenden Zahl z B G01 siehe auch untenstehende Liste Gro und Kleinschreibung sind ebenso belanglos wie f hrende Nullen G01 g1 Das erste Wort jedes Satzes bildet die Satz Nummer N lt zahl gt z B N01 die sich aus Satz Buchstabe und Satz Zahl zusammensetzt Die Worte eines Satzes sind durch Leerzeichen oder TABs getrennt Die Satz Nummer hat zur Zeit keinerlei Bedeutung wird aber aus Konformit tsgr nden erwartet Die restlichen Worte jedes Satzes werden von rechts nach links abgearbeit
223. thode l J entscheidend ist ob die Koordinaten I J siehe G98 G99 relativ oder absolut angegeben werden Werden I und J nicht korrekt angegeben Abstand zwischen Mittelpunkt und Start bzw Endpunkt muss identisch sein dann ist kein Kreisbogen m glich und das System ersetzt diesen durch eine Gerade Beispiel f r denselben Halbkreis ber relativen Mittelpunkt spezifiziert N10 G1 X100 Y100 N15 G99 N20 G2 X200 Y100 150 JO Beispiel f r denselben Halbkreis ber absoluten Mittelpunkt spezifiziert N10 G1 X100 Y100 N15 G98 N20 Ga X400 7L09 2180 J100 Ellipseninterpolation Zur Beschreibung eines Ellipsenbogens m ssen die Zielkoordinaten X Y der Ellipsenmittelpunkt l J die Ellipsenhauptachsenrichtung K sowie das L ngenverh ltnis zwischen Haupt und Nebenachse R spezifiziert werden Beispiel N10 GO X100 Y100 N15 G98 N20 G8 X200 Y100 1150 J100 K45 RO 5 Splineinterpolation Zur Beschreibung von Splines gen gt es die Zielkoordinaten des n chsten Splineabschnittes einzugeben Der Splineabschnitt wird vom System automatisch so berechnet dass der Endvektor des vorigen Elements und der Startvektor des Splines sowie der Endvektor des Splines und der Startvektor des folgenden Elements bereinstimmen sodass kein Knick in der Bahn entsteht Bedingte Spr nge ber den Befehl G20 kann ein bedingter Sprung realisiert werden Dazu wird die Zeilennummer des Sprungziels L und die Bedingung f r den Sprung K eingegebe
224. tiert so werden die Ausg nge f r einen Zyklus gesetzt und im n chsten gel scht Alle bewegungserzeugenden Bausteine verlangen dass in der entsprechenden Achse die Reglerfreigabe erteilt die Bremse gel st ist Ansonsten melden Sie einen Fehler 9 3 Bausteine zur Bewegungssteuerung einzelner Achsen MC_ReadStatus Dieser Baustein der SM_PLCopen lib liefert einige ausgew hlte Zust nde einer Achse WL_READSTATUS Enable BOOL Done BO OL Axis AXIS_REF MARIN _ OLT Error BOOL ErrorlD WORD Errorstop Stopping Standstill DiscreteMlotior Zontinuousmoton Synchronizedhiotior Hoaming Constantvelocity Accelerating Decelerating FHErrorOccuree Axis AXIS_REF WAR IMN _OIT MC_ReadAxisError Dieser Baustein der SM_PLCopen lib gibt allgemeine Fehler die am Antrieb aufgetreten sind zur ck MC _READAASISERROR Enable BOOL Akis ASIS_REF wWARIN_OLUT ErrorlD WORD AxisError BOOL AxisErrorlD WORD Axis AXIS_REF wWAR_IN_OIT MC_Reset Dieser Baustein der SM_PLCopen lib setzt den Achs Status SMC_AXIS_STATE von error_stop zur rck auf standstill M L_RESET Execute BOOL Axis Aals_REF WARN OUT ErrorlD WORD Axis AXIS_REF WARLUMLOUT 5 2 SoftMotion in CoDeSys 2 3 Kapitel 5 Die Bibliothek SM_PLCopen lib MC_ReadParameter MC_ReadBoolParameter Mit diesen Bausteinen der SM_PLCopen lib lassen sich einige Standardparameter aus der Antriebsstruktur lesen De
225. tion gesammelt werden m ssten wurde eine zus tzliche Funktionalit t in die AXIS_REF Datenstruktur implementiert die eine Liste der zuletzt aufgetretenen Fehler speichert Mit dem Ausgang FBErrorOccured von MC_ReadStatus kann gepr ft werden ob bzw welcher Bausteinfehler zuletzt auftrat Der Funktionsblock SMC_ReadFBeError gibt die Fehlernummer des ltesten aufgetretenen Fehlers zur ck Die Funktion SMC_ClearFBError l scht den ltesten Fehler Funktionsbl cke SMC_ErrorString SMC _ERRORSTRIMG ErrorlD SMe _ Error SMe _ErrorString STRINGETOON Language SMO _LAMGIUAGE_ TYFE Die Funktion SMC_ErrorString gibt in Abh ngigkeit von den Eingaben ErrorlD SMC_Error und Language SMC_LANGUAGE _TYPE english deutsch eine String Repr sentation des Fehlers zur ck Die Enumeration SMC_Error Die Enumeration SMC_Error enth lt alle Fehlernummern die von SoftMotion FBs erzeugt werden nr D SMC_NO ERROR kein Fehler Drivelnterface SMC_DI_GENERAL_COMMUNICATION_ Kommunikationsfehler z B ERROR Sercos Ringbruch 10 Drivelnterface SMC_DI_SWLIMITS_EXCEEDED Position au erhalb des erlaubten Fensters SWLimit 1 20 alle SMC_REGULATOR_OR_START_NOT_S Reglerfreigabe nicht erteilt bewegungserzeugenden ET oder Bremse gesetzt Bausteine SoftMotion in CoDeSys 2 3 9 1 9 2 Die Enumeration SMC_Error nr Drivelnterface SMC_FB_WASNT_CALLED_DURING_MO Bewegungserzeugender Baustein wurde vor dem Ende der Bewegung ni
226. tive 1 negativ fSetVelocity lt 0 1 positiv fScalefactor REAL 1 Konvertierung von Bus Einheit in technische Einheit per auf dem Bus empfangener Einheit fFactorVel REAL 1 Konvertierung von Bus Einheit in techn Inherited s 1056 fFactorAcc REAL 1 Konvertierung von Bus Einheit in techn Einheit s 1053 1054 1055 1057 fFactorTor REAL 1 Konvertierung von Bus Einheit in Nm oder N 1058 fFactorJerk REAL 1 Konvertierung von Bus Einheit in techn Einheit s 1060 iMovementType 0 Rotatorisch modulo 1 Linear 1061 fPositionPeriod REAL 1000 L nge der Periode f r rotatorische Antriebe in techn Einheiten byControllerMode BYTE 3 1 Drehmomentkontrolle 2 Geschwindigk kontrolle 3 Positionskontrolle 1092 byRealControllerMode BYTE De tats chlicher Regelmodus 2 24 SoftMotion in CoDeSys 2 3 Kapitel 2 Das SoftMotion Drive Interface Vorgegebene Position in techn Einheiten Aktuelle Position in techn Einheiten Zielposition f r manche MC_FBs Datentyp 1100 1 fSetPosition REAL 1101 fActPosition REAL 1105 fAimPosition REAL 1106 fMarkPosition REAL 1107 fSavePosition REAL 1110 11 fSetVelocity REAL techn Einheiten sec 1111 10 fActVelocity REAL Aktuelle Geschw in techn Einheiten sec 1112 9 fMaxVelocity REAL 100 Maximale Geschw in techn Einheiten sec 1113 fSWMaxVelocity 1115 bConstantVelocity BOOL 1116 fMarkVelocity REAL 1117 fSaveVelocity REAL 1120 fSetAcceleration REAL 1121 fA
227. triebs und Bussystem spezifischen Bibliotheken und Treibern Im Konfigurationseditor in CoDeSys bildet der Programmierer die Struktur und Parametrierung der Antriebs Hardware ab CoDeSys erzeugt daraus mit Hilfe der Drivelnterface Bibliotheken IEC Datenstrukturen die die Antriebe abstrahiert darstellen Das Drive Interface kommuniziert automatisch d h ohne zus tzlichen Aufwand seitens des IEC Programmierers mit den Antrieben sorgt also f r laufende Aktualisierung der Antriebs Datenstrukturen und bertragung der darin ge nderten Daten Um steuernden Einfluss auf die Antriebs Hardware zu nehmen kann das IEC Programm auf diese Datenstrukturen entweder mittels Standard Bausteinen aus SoftMotion Bibliotheken SM_CNC lib SM_PLCOpen lib oder mit vom IEC Programmierer selbst erstellten Programmen zugreifen Die Sollwertvorgabe erfolgt dabei stets zyklisch d h pro IEC Taskzyklus werden Sollwerte positionen geschwindigkeiten beschleunigungen etc berechnet und vom Drive Interface zu den Antrieben bertragen Ein Beauftragen der Antriebe wie z B die Vorgabe einer Zielposition so dass der Antrieb eigenst ndig die Bewegung ausf hrt und nach dem Erreichen der Steuerung das erfolgreiche Ausf hren des Auftrags mitteilt ist nicht vorgesehen Gr nde hierf r sind u a dass so keine koordinierten Bewegungen mehrerer Achsen m glich w ren und die zentrale Steuerung w hrend der Bearbeitung eines Auftrags keinen Einfluss auf die Antriebe
228. tten werden Eine Online nderung wird wie bei Override erst bernommen wenn eine Beschleunigungs bzw Bremsphase abgeschlossen ist Um die Zusatzachsen ebenso S f rmig blau siehe Skizze statt linear rot zu interpolieren m ssen unabh ngig von dem Eingang byVelMode des SMC_Interpolators entsprechende Bits in der Variable wSProfile von piStartPos des aktuellen Wegobjekts gesetzt sein Dann werden die Zusatzachse nicht linear zur Wegl nge im X Y Z Raum interpoliert sondern in polynomialer Abh ngigkeit davon sodass sich ein S f rmiges Profil f r die Achsposition ergibt die am Anfang und Ende eines Wegabschnitts Geschwindigkeit und Beschleunigung null hat dwIpoTime DWORD Dieser Eingang der f r jeden Aufruf gesetzt werden muss beinhaltet die Zykluszeit in usec dLastWayPos LREAL Dieser Eingang gibt dem Anwender die M glichkeit die Wegstrecke die der Interpolator abf hrt zu messen Der Ausgang dWayPos ist die Summe aus dLastWayPos und der in diesem Zyklus zur ckgelegten Distanz Ist dLastWayPos 0 so enth lt dWayPos die L nge des aktuellen Wegabschnitts Setzt man dLastWayPos gleich dem Ausgang dWayPos so wird dWayPos stets um das aktuelle Wegst ck inkrementiert und man erh lt die insgesamt gefahrene Wegstrecke Dabei kann dLastWayPos jederzeit auf 0 oder einen anderen Wert zur ck gesetzt werden bAbort BOOL Dieser Eingang bricht die Bearbeitung einer Kontur ab bSingleStep BOOL Dies
229. ture EF Eingangs bCaptureWindowActive BOOL FALSE Capture auf Fenster beschr nkt dwPosOffsetForResiduals DWORD interne Variable zur Restwertbehandlung dwOneTurn DWORD interne Variable zur Restwertbehandlung fLastPosition REAL interne Variable zur Restwertbehandlung IRestNumerator INT interne Variable zur Restwertbehandlung iTurn INT interne Variable zur Restwertbehandlung dwBusModuloValue DWORD interne Variable zur Restwertbehandlung dwPosOffsetForResidualsH DWORD interne Variable zur oming Restwertbehandlung bDisableDrivelnAxisGRoup BOOL FALSE Antrieb aus Achsgruppe l schen bErrorDuringStartup BOOL FALSE gesetzt wenn Fehler w hrend des Hochlaufs pMS POINTER TO BYTE 1211 Referenzposition Nullpunktsverschiebung Fenster Start Position f r Capture 1215 1220 1221 1222 1223 1230 1231 1232 1234 1235 1236 1237 1300 1301 Zeiger auf Antriebsspezifische Struktur lt BuslnterfaceBezeichnung gt _AXI S_REF Jede AXIS_REF Strukturvariable verh lt sich entsprechend der PLCopen Spezifikation Function blocks for motion control Version 1 0 2 5 Parametrierung des Antriebs Viele wichtige Konfigurationsdaten sind im Antrieb gespeichert Zwar bietet SoftMotion die M glichkeit Parameterwerte in der Steuerungskonfiguration vorzugeben die w hrend der Hochlaufphase bertragen werden siehe 2 1 3 allerdings ist dies f r den normalen Anwender schwierig da er in der Regel nicht wei
230. uf FALSE gesetzt werden SMC_CNC_REF In dieser Datenstruktur werden geparste G Code Dateien verwaltet TYPE SMC CNC REF STRUCT gt wCNCREFStructID WORD 16 BA56 nElements UDINT diReadPos UDINT 0 udiBuffer UDINT 16 FFFFFFFF pgc POINTER TO SMC GCODE WORD 0 p1SstartPosition SMC POSINEO strProgramName STRING bRestart BOOL END STRUCT END TYPE Mittels der Variablen WCNCREFSTtructID die einen festen Wert hat berpr fen die Bausteine intern ob die bergebene Strukturvariable vom Typ SMC_CNC _REF ist Die Variable pgc zeigt auf das erste SMC_GCODE_WORD nElements enth lt die Anzahl an SMC_GCODE_WORD Strukturen bei pgc Die Startposition des CNC Programms ist in piStartPosition gespeichert seine Bezeichnung in strProgramName Die Variablen diReadPos und udiBuffer werden intern genutzt Die Variable bRestart wird vom Baustein SMC_NCDecoder gesetzt wenn Spr nge im CNC Programm G20 verwendet werden und teilt dem Erzeuger der Datenstruktur mit dass alle Zeiger frisch initialisiert und die Datenstruktur von Neuem erzeugt werden soll SMC_GCODE_WORD 6 46 In dieser Datenstruktur werden G Code Worte gespeichert TYPE SMC GCODE WORD STRUCT u byLetter BYTE 0 fValue LREAL 0 diValue DINT 0 pAdr POINTER TO BYTE 0 byVarType BYTE 0 END STRUCT END TYPE SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib byLetter enth lt den ASCII_Code des Buchstaben des Wort
231. ufzeit aus der Achsgruppe gel scht werden diese mittels SMC_ResetAxisGroup frisch initialisiert werden und mit den restlichen funktionierenden Achsen fortgefahren werden sofern die n tigen Redundanzen in der Maschine existieren SMC_ResetAxisGroup Mit diesem Funktionsblock kann eine komplette Achsgruppe reinitialisiert werden Eing nge VAR _INPUT des Bausteins bExecute BOOL Ist dieser Eingang TRUE startet der Baustein mit der Reinitialisierung der Achsgruppe bKeepRatioSettings BOOL Ist dieser Eingang TRUE werden die bisherigen Getriebeeinstellungen dwRatioTechunitsDenom und iRatioTechUnitsNum der Modulowert fPositionPeriod und der Achstyp iMovementType linear rotatorisch beibehalten und nicht durch die in der Steuerungskonfiguration eingestellten Werte ersetzt SoftMotion in CoDeSys 2 3 2 9 SM_DriveBasic lib und automatische Codegenerierung Ein Ausg nge VAR _IN OUT des Bausteins AxisGroup SMC_AXISGROUP_REF Achsgruppe die reinitialisiert werden soll Ausg nge VAR _ OUTPUT des Bausteins bDone BOOL TRUE wenn der Vorgang abgeschlossen ist bError BOOL Fehler trat auf nErrorlD SMC_ERROR Beschreibung des Fehlers SMC_DisableAllDrives Mit dieser Funktion wird die Variable bDisableDrivelnAxisGroup jedes Antriebs gesetzt Das hat zur Folge dass beim n chsten Ausf hren der Funktion SMC_ResetAxisGroup kein Antrieb mehr zur Verf gung steht sondern ausschlie lich die Basis Kommunikationsmechan
232. urde CommandAborted BOOL Default FALSE Die gestartete Bewegung wurde durch einen anderen Funktionsblock der auf dieselbe Achse wirkt unterbrochen Ausnahme MoveSuperlmposed Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer MC_MoveAdditive Dieser Baustein der SM_PLCopen lib hat zweierlei Wirkungsweisen abh ngig von dem Status in welchem sich die Achse befindet 1 discrete_motion Zur Zielposition des gerade auf der Achse arbeitenden Bausteins wird die Distanz aufaddiert und die neue Zielposition entsprechend der Vorgaben angefahren 2 continuous motion oder standstill Die Distanz wird gemessen von der momentanen Position entsprechend der Vorgaben zur ckgelegt Wi _IOWEADDITIWE Execute BOOL Done BOOL Distance LREAL ommandabo ored BOOL welocity LREAL Acceleration LREAL Deceleration LREAL Axis ASIS _REF WARLUN OUT Axis AXIS_REF WARLUMLOUT Ein Ausgang VAR IN OUT des Bausteins Axis AXIS_REF Hier wird die Struktur bergeben die im Drive Interface SM_DriveBasic lib mit den Daten der Achse gef llt wurde Eing nge des Bausteins Execute BOOL Default FALSE Bei einer steigenden Flanke wird der Baustein aktiv SoftMotion in CoDeSys 2 3 5 7 Bausteine zur Bewegungssteuerung einzelner Achsen Distance REAL Relative Strecke f r die Bewegung techn Einheit u Velocity REAL Wer
233. usgewandert Jetzt ist es SoftMotion in CoDeSys 2 3 4 11 4 6 4 12 Kurvenscheiben Datenstrukturen wichtig dass man die vorige Kurvenscheibe nicht periodisch ausgef hrt hat Ist dies der Fall so wird n mlich die Slaveposition 2b berechnet wurde sie periodisch ausgef hrt wird die Position 2a berechnet die ja entstehen w rde wenn man Kurve1 wiederholen wollte Gleichzeitig wird unabh ngig ob periodisch oder nicht EndOfProfile gesetzt Dieser Ausgang kann nun dazu benutzt werden um Kurve2 zu starten Dazu wird die MC_Camin Instanz mit Execute FALSE aufgerufen und im selben Zyklus noch mal mit Execute TRUE und der neuen Kurvenscheiben CamTablelD was die Ausgabe von 3 auf den Slave Drive bewirkt 2b Will man die Kurve absolut starten so ist zu beachten dass der Slave beim Start der Kurvenscheibe auch an der entsprechenden Position steht da sonst ein Sprung entsteht Dies ist beim Umschalten von Kurvenscheiben i d R dann der Fall wenn die Periode der Kurvenscheibe auch der Slaveperiode entspricht Im obigen Beispiel k nnte man Kurve2 im Modus absolut starten wenn die Positionsperiode von Master und Slave in bereinstimmung mit dem Bereich der Kurvenscheibe jeweils auch 360 betragen Dann ist es auch egal ob die Kurve periodisch oder nicht periodisch gestartet wird Nicht m glich w re dies wenn die Slave Periode z B 270 durch hellblaue Striche gekennzeichnet betragen w rde Dann st nde beim
234. ve SMC_MR_INVALID_VELACC_VALUES unzul ssige Geschwindigkeits oder Beschleunigungswerte _ MC_MoveRelative SMC_MR_INVALID_ DIRECTION Richtungsfehler MC_MoveAdditive SMC_MAD_INVALID_VELACC_VALUES unzul ssige Geschwindigkeits oder Beschleunigungswerte EN MC_MoveAdditive SMC_MAD_INVALID_DIRECTION Richtungsfehler MC_MoveSuperlmposed SMC_MSI_INVALID_VELACC_ VALUES unzul ssige Geschwindigkeits oder Beschleunigungswerte Eam MC MoveSuperlmposed SMC_MSI_INVALID_DIRECTION Richtungsfehler MC_MoveVelocity SMC_MV_INVALID_ACCDEC_VALUES unzul ssige MC_MoveAbsolute Geschwindigkeits oder Beschleunigungswerte 302 MC_MoveVelocity SMC_MV_DIRECTION_NOT_APPLICABL Direction shortest fastest E nicht anwendbar SoftMotion in CoDeSys 2 3 9 3 Die Enumeration SMC_Error nr 375 MC_AccelerationProfile SMC_AP_ARRAYSIZE fehlerhafte Arraygr e 376 MC_AccelerationProfile SMC_AP_STEPOMS Schrittzeit t 0s 400 MC_TouchProbe SMC_TP_TRIGGEROCCUPIED Trigger bereits aktiv 401 MC_TouchProbe SMC_TP_COULDNT_SET_WINDOW Drivelnterface unterst tzt Fenster Funktion nicht 402 MC_TouchProbe SMC_TP_COMM ERROR Kommunikationsfehler 410 MC_AbortTrigger SMC_AT_TRIGGERNOTOCCUPIED Trigger bereits frei SMC_CamtRegister SMC_CR_NO_TAPPETS_IN_CAM Kurvenscheibe enth lt keine Tappets O O SMC_CamRegister SMC_CR_TOO_MANY_TAPPETS Tappet GroupID berschreitet MAX_NUM TAPPETS 602 SMC_CamtRegister SMC_CR_MORE_THAN_32 ACCESSES
235. venelement Punkt Gerade Nocke selektiert werden auf das der Mauszeiger gerichtet ist Daraufhin werden die entsprechenden Markierungspunkte kleine rote Quadrate angezeigt und das Element kann editiert werden Einf gen Punkt einf gen l Wenn dieser Befehl im Men Einf gen oder in der Werkzeugleiste aktiviert wird wird folgendermassen ein neuer Punkt in die Kurve eingef gt Man bewegt den Mauszeiger an die Position des neuen St tzpunktes Dr ckt man nun die linke Maustaste wird der Punkt eingef gt und erh lt eine waagrechte Tangente Durch Loslassen der linken Maustaste wird der Punkt bernommen Darstellung als roter gef llter Kreis mit Fadenkreuz und automatisch in den Modus Element selektieren gewechselt H lt man w hrend des Einf gens die linke Maustaste gedr ckt kann die Steigung der Tangente Geschwindigkeit unmittelbar durch Bewegen der Maus ver ndert werden Einf gen Gerade einf gen 4 8 Z Wenn dieser Befehl im Men Einf gen oder in der Men leiste aktiviert wird kann folgendermassen eine Gerade in die Kurve eingef gt werden Man bewegt den Mauszeiger an die Position des Anfangspunktes der Gerade und h lt die linke Maustaste gedr ckt Der Anfangspunkt wird durch ein kleines rotes Quadrat markiert und durch Bewegen der Maus auf den gew nschten Endpunkt ebenfalls ein rotes Quadrat kann man die Gerade erzeugen Der Endpunkt der Geraden kann dabei nicht links vom Anfangspunkt und nicht recht
236. wLow BOL pi SMC_Posinfo Soll Positionsvektor Ausgang des Interpolators dOffsetA dOffsetB LREAL Offset f r A und B Achse dArmLength1 dArmLength2 LREAL L nge des ersten und zweiten Arms bElbowLow BOOL Ellbogen nach unten TRUE bzw oben FALSE bError BOOL TRUE Unzul ssige Werte dA dB LREAL Achsstellung A bzw B Achse SMC_TRAFOF_Scara2 8 10 sull_TRAF F_SCARAZ d fsetA LREAL d ffsetE LREAL d rmLengthi LREAL i AArmLength LREAL dAlpha Drive AXIS_REF WARUN OUT dBeta DriveB AHIS_REF WARUM OUT dpx dp An Amy drT IR Drives ARlS_ REF WARUM OUT Drive AHlIS_REF WARUN OUT dOffsetA dOffsetB LREAL Offset f r A und B Achse Gleiche Werte wie bei SMC_TRAFO_Scara2 dArmLength1 dArmLength2 LREAL L nge des ersten und zweiten Arms DriveA DriveB AXIS_REF A B Achse bError BOOL TRUE Unzul ssige Werte SoftMotion in CoDeSys 2 3 8 2 5 Kapitel 8 Die Bibliothek SM_Trafo lib dx dy LREAL x y Position in Weltkoordinaten dAlpha dBeta LREAL Gelenkwinkel Achsstellungen ohne Offset f r Visualisierung dpx dpy LREAL Genormte Position des 1 Gelenks 1 1 f r Visualisierung dnx dny LREAL Genormte Position des Manipulators 1 1 f r Visualisierung dR1 dR2 LREAL Relative Arml ngen dR1 dR2 1 0 1 f r Visualisierung 3 Gelenkige Scara Systeme SMC_TRAFO_Scara3 SMC _TRAFOLSCARAS pi Sml_Poslnfo hError
237. werten s o Eing nge des Bausteins Execute BOOL Default FALSE Bei einer steigenden Flanke wird der Baustein aktiv SoftMotion in CoDeSys 2 3 5 11 Bausteine zur Bewegungssteuerung einzelner Achsen ArraySize INT Gr sse des Arrays max 1 100 Scale REAL Default 1 Allgemeiner Skalierungsfaktor f r das Profil Offset REAL Allgemeiner Offset f r das Profil u Ausg nge des Bausteins Done BOOL Default FALSE TRUE zeigt an dass die gew nschte Distanz zur ckgelegt wurde CommandAborted BOOL Default FALSE Die gestartete Bewegung wurde durch einen anderen Funktionsblock der auf dieselbe Achse wirkt unterbrochen Ausnahme MoveSuperlmposed Error BOOL Default FALSE TRUE zeigt an dass im Funktionsblock ein Fehler aufgetreten ist ErrorlD SMC_Error INT Fehlernummer MC_VelocityProfile Dieser Baustein der SM_PLCopen lib funktioniert analog zum Baustein MC_PositionProfile Allerdings werden in der Eingangsvariablen der Struktur MC_TV_REF hier die Punkte ber ihre Geschwindigkeiten festgelegt MC_TV_REF enth lt folgende Variablen Beschreibung Number_of_pairs waooo eo o Anzahl Profil Punkte IsAbsolute BOOL TRUE Positionen absolut oder relativ MC_TV_REF ARRAY 1 100 Punkte OF MC_TV_REF SMC_TV enth lt folgende Variablen Beschreibung delta_time TIME t 0s Zeit zwischen Erreichen des vorigen und dieses Punktes REAL eo Absolut Relativ Geschwindigkeit des Punktes
238. ypischerweise erfolgt das Belegen dieses Speichers im Deklarationsteil des IEC Programms mittels eines Arrays of SMC_Geolnfo z B BUF ARRAY 1 50 OF SMC GEOINFO f r einen Buffer der 50 Bahnelemente aufnehmen kann Auch dieser Wert darf gesetzt und sp ter nur w hrend eines Resets ver ndert werden Ein Ausgang VAR IN OUT des Bausteins ncprog SMC_CNC_REF In dieser IN_ OUT Variablen wird das CNC Programm Struktur SMC CNC REF der SM_DriveBasic lip bergeben Dieses kann entweder vom IEC Programm erzeugt oder im CNC Editor programmiert worden sein Ausg nge des Bausteins bDone BOOL Diese Variable wird auf TRUE gesetzt wenn die Abarbeitung des Programms abgeschlossen ist Hernach f hrt der SMC_NCDecoder bis zu einem Reset keine Aktionen mehr durch Steht der bExecute Eingang auf FALSE wird bDone wieder auf FALSE gesetzt bError BOOL Sollte ein Fehler auftreten wird dieser Wert TRUE wErrorlD SMC_ ERROR INT Dieser Enum Ausgang beschreibt ggf einen Fehler der beim Dekodieren aufgefallen ist Nach einem Fehler wird die Abarbeitung bis zu einem Reset gestoppt poqDataOut POINTER TO SMC_OUTQUEUE Dieser Ausgang zeigt auf eine SMC_OUTQUEUE Struktur die die entschl sselten SMC_GEOINFO Objekte verwaltet SoftMotion in CoDeSys 2 3 Kapitel 6 Die Bibliothek SM_CNC lib iStatus SMC_DEC_STATUS INT In dieser Enum Variable wird der aktuelle Status des Bausteins ausgegeben Dieser kann sein WAIT_PROG P Program
Download Pdf Manuals
Related Search
Related Contents
171505587_1bis the MultiBank product data sheet User Manual YJ30G-1 USER MANUAL FOR XELLIPMEDIA Manual Operación Bombas Aguas Servidas PXFLOW Copyright © All rights reserved.
Failed to retrieve file