Parametrisk programmering (CNC)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 12 augusti 2021; verifiering kräver 1 redigering .

Parametrisk programmering ( engelsk  parametrisk programmering , även makroprogrammering ) i bearbetning av numeriska styrsystem (CNC) för teknisk utrustning är ett tillvägagångssätt för att öka programmeringsnivån , implementerat genom att skapa specialiserade språk eller tillägg till befintliga programmeringsverktyg.

Historiskt sett är det första programmeringsspråket för CNC-verktygsmaskiner, G-code , i sig ett språk för att beskriva cyklogram för ett bearbetningsverktygs rörelse, slå på/av spindeln, tillföra skärvätskor (kylvätska) och andra åtgärder och har inte medel för strömkontroll av bearbetningsprocessens tillstånd. Till exempel, om ett bearbetningsverktyg går sönder eller det inte finns någon kylvätska, kommer cyklogrammet som beskrivs av G-koden att fortsätta värdelöst eller exekveras farligt för utrustningen tills operatören ingriper eller G-koden tar slut. För att eliminera denna betydande nackdel med G-koden utvecklades parametriska programmeringsspråk.

Dessa språk har mycket gemensamt med konventionella högnivåprogrammeringsspråk som Fortran , C. Den största fördelen gentemot G-kod är tillgängligheten av villkorliga greninstruktioner/operatörer . Denna förlängning låter dig ändra bearbetningsförloppet när processtillståndet ändras, till exempel stoppa bearbetningen med ett larm när en slitagesensor eller verktygsbrott utlöses.

En ytterligare fördel med parametrisk programmering för CNC-maskiner är möjligheten att organisera komplexa beräkningar av verktygets koordinater och dess rörelser för bearbetning av krökta ytor som specificeras matematiskt i form av 3D-splines eller Bezier-ytor .

Funktioner i parametrisk programmering

Tillverkare av styrsystem använder parametrisk programmering som en förlängning av G-kod . Det kan jämföras med datorprogrammeringsspråk som Basic, men det kan nås på nivån G-funktioner (koder). Till skillnad från CNC-programmering utökar parametrisk programmering möjligheterna jämförbara med objektorienterad programmering. Med sina CNC-styrsystem blir det möjligt att beräkna varians, använda logiska operatorer, arbeta med verktygspass, manipulatorrörelser, förmågan att organisera cykler, välja efter villkor, hoppa, arbeta med subrutiner, element som utövar full kontroll över CNC:n är tillagd - tillgång till systemvariabler och celler i det elektroautomatiska programmet, möjligheten att skapa dina egna G-koder och funktioner som fullt ut implementerar kontrollen av alla maskinkomponenter. Det är möjligt att komma åt CNC-parametrar som lagrar information om verktyget, positionen för arbetskroppar, manipulatorer, koordinatsystem, G-kodvärden för styrprogrammet och fel. Med hjälp av parametrisk programmering är det möjligt att utveckla interaktiva styrprogram. Liksom datorprogrammeringsspråk finns det flera versioner av dem i parametrisk programmering: Custom Macro, User Task (Okuma), Q Routine (Sodick), Advanced Programming Language (APL G&L). Till exempel gör makroprogrammeringsspråket FMS-3000 från en delmängd av Basic-språket det möjligt att organisera ytterligare informationsfönster, ett parameterspårningssystem, kontrolllägen och loggning av bearbetningsprocesser. Sådana program körs i bakgrunden och på fritiden från alla andra uppgifter, med en tung belastning, kan de tillfälligt avbryta sitt arbete. Genom att använda sådana möjligheter har du ett av de mest effektiva sätten att styra en verktygsmaskin, en robot, ett CNC-system.

Programstruktur

Ett program skrivet med hjälp av ett makroprogrammeringsspråk har en liknande G-kodstruktur för ett styrsystem. Den strukturella enheten är ramen. En ram är en sekvens av tecken i ett programmeringsspråk. Ramelementet är ett ord som består av en adress och ett numeriskt värde eller en variabel, en global variabel.

Programexempel

Som ett exempel på ett makroprogram kan du skriva en G200-funktionssubrutin för FMS-3000-styrsystemet och använda denna G-funktion som en verktygsrebound och övergång mellan övergångar, som i fallet med en borr som flyttar från en koordinat till en annan.
Funktionsegenskaper:
1. Initiala förhållanden.
2. Studsa till W (vid en enkel studsning) eller gå ut till verktygsbytespunkten och följ vidare.
3. Val av verktyg som tar längdkorrigeraren.
4. Välj G54 G55 G56 G57 G58 G59.
5. Bestäm rotationsvinkeln för del A
6. Välj M3 M13 M4 M14.
7. Välj antalet varv S.
8. Flytta verktyget till positionen i XY (med förskjutning H).

a=(_a+getparameter(65)) vi definierar parametern A (rotationsvinkel) som summan av en global variabel (given permanent, rotationsvinkel) och en lokal variabel (returnerad från funktionen, rotationsvinkel)
g=getparameter(71) definiera parameter (välj punkt G54 G55 G56 G57 G58 G59) G som en variabel (returneras från funktion)
m=getparameter(77) definiera parameter (ytterligare funktioner) M som variabel (returneras från funktion)
s=getparameter(83) definiera parametern (antal varv) S som en variabel (returneras från funktionen)
t=getparameter(84) definiera parametern (verktygsnummer) T som en variabel (returneras från funktionen)
x=getparameter(88) definiera parametern (koordinaten) X som en variabel (returneras från funktionen)
y=getparameter(89) definiera parametern (koordinaten) Y som en variabel (returneras från funktionen)
w=getparameter(87) definiera parametern (avvisningsvärde) W som en variabel (returneras från funktionen)
tt=getdatacadr(134) variabel tt returnerar värdet för föregående (föregående verktygsnummer)

Till skillnad från Custom Macro (Fanuc styrsystem) måste funktionsparametrarna i FMS-3000 definieras i början av subrutinen.

_t=t för att organisera arbetet med efterföljande funktioner, det nuvarande verktyget T, definierar vi det som en global variabel
hh=t+100 ställ in offsetnumret för verktygslängden

Uttrycket hh=t+100 är en tabell över offset från 1 till 200. Vi delade upp alla offset i två delar från 1..100 offset för verktygsdiameter, från 101..201 för verktygslängd. Verktyg T1 har ett diameteroffsetnummer på 1 och ett längdoffsettal på 101. Verktyg T2 har ett antal 2 och ett antal 102 osv.

om paramactive(71)=0 då g=_g om G54 G55 G56 G57 G58 G59 inte anges i funktionen, kommer punktvalet att bestämmas från den globala variabeln

Om G200-parametern inte anges i G200-funktionen, kommer punkten att tas som standard från den globala variabeln i G201-funktionen.

G37X0Y0A0 avbryt den tidigare inställda rotationsvinkeln
om paramactive(87)=0 så gå till 500 om parametern W (rebound) inte är inställd, gå till verktygsbytespunkten, gå till etikett 500
N100G1F2000G17G40G80G91Zw om parametern W (rebound) inte är inställd, gå till verktygsbytespunkten, gå till etikett 500
G32M1 tekniskt stopp
G90GgG37X0Y0Aa ställ in rotationsvinkeln
till 600 om funktionen är inställd på enkel rebound (ingen verktygsbyte), hoppa till markering 600.

Återgå till verktygsbytespunkten.

N500M9 av kyl-
G53G1F2000G90G40G49G80Z0 utgång till verktygsbytespunkt
M5 av vänder

Verktygsväxlingsfunktionerna på varje maskin har sina egna egenskaper beroende på antalet verktyg i magasinet. Till exempel när det finns många verktyg används ibland algoritmer som ordnar verktyget i en slumpmässig ordning för att inte binda verktyget till vissa celler och minska ersättningstiden. Av stor betydelse är utformningen av verktygsbytesmekaniken, olika typer av manipulatorer, skjutreglage etc.

rem S100 växla hastighetsområdet för manuellt verktygsbyte
N502G32M0 tekniskt stopp
hh1=getsystemdata(1000+hh) läs av längdkorrigerarens värde
G1G91G43HhhZ-hh1F2000 jobbar på korrigeraren
G90GgG37X0Y0Aa korrektorn tas, vi räknar ut rotationsvinkeln
om paramactive(83)=0 så gå till 600 Om parametern S (varv) inte är inställd, hoppa över bildrutor och gå till etikett 600
om paramactive(77)><0 då m= standardhjälpfunktionen M kommer att vara M3
N520MmSs definiera ytterligare funktioner M och S
Tt välj verktygsnummer
N600if paramactive(88)=0 fick sedan till 9999 om åtminstone en av positionens XY-koordinater inte är inställd, går vi inte till positionen, hoppar över ramar och går till 9999
om paramactive(89)=0 så gå till 9999 om åtminstone en av positionens XY-koordinater inte är inställd, går vi inte till positionen, hoppar över ramar och går till 9999
G1F2000G1X(x+1)Y(y+1) vi anger prepositionen, vi ger en interferenspassning längs XY 1mm
F100G9XxYy exakt utgång till XY-position med kontroll
N9999G1F2000 ställ in startvillkoren för konturen
G32 vi saktar ner beräkningen av programmet
M99 slut på funktion, återgå till programmet

Se även