Hop til indhold

Large Language Model (LLM) og generering af Ladder Diagram (LAD)

Projekttitel Large Language Model (LLM) og generering af Ladder Diagram (LAD)
Projekttype Anvendt forskning og udvikling
Frascati Ja
Tema Teknik | Teknologi | Undervisning
Teaser Dette projekt fokuserer på brugen af LLM til generering af kode, med særligt fokus på anvendelsen af ChatGPT4 til udvikling af LAD kode logik til Siemens PLC'er
Status Afsluttet
Ejer  
- Akademi
- Kontaktperson Aron Balschmidt Svenningsen
Adjunkt
arbs@kea.dk
non
Nat./Int. Nationalt
Projektperiode 01. april 2023 - 28. januar 2025
Projektbeskrivelse  
- Projektresumé

Dette projekt fokuserer på brugen af LLM til generering af kode, med særligt fokus på anvendelsen af ChatGPT4 til udvikling af LAD kode logik til Siemens PLC’er. Fire forskellige metoder til generering af LAD kode med en LLM bliver undersøgt, hvoraf én metode har vist sig særligt effektiv, når den understøttes af korrekte prompts og relevante eksempler. Denne metode demonstrerer, hvordan en motorfunktionsblok, baseret på eksisterende data, uploadet til modellen, kan udvide logikken med en tællerfunktion for antal af start og genereres som en færdig funktionsblok i Statement List (STL) der kan konverteres til LAD, der efterfølgende kan importeres direkte i TIA portalen. En anden metode viser et stort potentiale for at skabe en mulig direkte integration mellem ChatGPT og TIA portalen. Dog afslører projektets undersøgelser, at de nuværende syntakser og funktioner i værktøjerne gør denne tilgang udfordrende, og i praksis næsten umuligt.

Projektet udforsker også, hvordan man bedst kan strukturere prompts til en pre-tuned model, især når programkoden kræver specifikke syntakser, som modellen ikke er trænet på. Her anvendes strategier som Chain-of-Thought (CoT) prompting og Few-shot learning i forskellige udviklingsfaser. Opgaverne brydes ned i mindre, håndterbare dele, hvilket gør det muligt at føre en dialogbaseret samtale med ChatGPT under og efter hver fase af kodegenereringen.

Endelig perspektiverer projektet forskellen mellem at anvende en pre-tuned model, som i dette projekt, og en fine-tuned model. Det diskuteres, hvordan fine-tuning kan åbne op for løsninger af mere komplekse opgaver, hvor pre-tuned modeller har sine begrænsninger. Der bliver også perspektiveret til den samfundsmæssige betydning af at anvende en LLM.

- Baggrund og formål
- Aktiviteter og handling
- Projektets Metode

Forskningsprojektet benytter sig af metoden ”aktionsforskning”. Det inkluderer at man som forsker er aktivt involveret i processen. Aktionsforsknings metoden, kommer særlig til udtryk når man som forsker udvikler og afprøve forskellige prompts og vurdere outputtet af LLM, som en iterativ proces. Prompt, der er udviklet til projektet, er baseret på relevante forskningsartikler til struktur og forlag til at udarbejde en prompt der giver et optimal output. Prompten bliver også baseret på erfaring der opstår i processen kombineret med den nødvendige viden indenfor industriel automation og programmering af STL og LAD. LLM er kontekstafhængig, da det afhænger af det trænet data, LLM-model der bruges, samt inputtet til modellen. Derfor kan det argumenteres at den bedste metode til forskningen er aktionsforskning da prompt og data bliver udviklet undervejs i projektet, og er derfor en iterativ proces der forsøger at få et optimal output.

- Projektets Forventede Resultater

Konklusionen er, at ChatGPT kan anvendes til LAD-programmering, og på nuværende tidspunkt er metode 1 med STL den mest effektive tilgang. Metoden kræver en vis indsigt i STL-programmering, samt viden om de syntakser og regler, der skal anvendes for at kunne konvertere til LAD.

Ved at bruge en pre-tuned LLM-model som ChatGPT-4 kan man, med hjælp af avancerede prompting metoder og few-shot-metoden, få modellen til at programmere i et ‘nyt programmeringssprog’, som den ikke er trænet på. Metoden kan skaleres til flere anvendelser, såsom at opbygge færdige funktionsblokke, oprette UDT’er og datablokke. Den er dog begrænset til PLC-programmering for Siemens 300- og 400-serierne, selvom nogle funktioner kan overføres til de nyere 1200- og 1500-serier.

Derfor er fremtidsmulighederne for denne metode også begrænsede. Metode 2 med TIA Openness rummer store muligheder, da man via API i princippet kunne integrere ChatGPT med TIA-portalen gennem TIA Openness og ChatGPT’s evne til at udføre handlinger via API. Dette kunne skabe et miljø, hvor ChatGPT fungerer som en co-pilot i TIA-portalen. Det har dog vist sig, at det ikke er muligt at oprette nye netværk eller logiske operationer i funktionsblokke ved hjælp af TIA Openness. Værktøjet kan primært anvendes til at hjælpe med at generere allerede udviklede funktionsblokke, tilføje hardware og andre elementer.

Muligheden for at være skalerbar og det store potentiale til at øge produktiviteten i hele automationsworkflowet giver værktøjet gode fremtidsmuligheder. Dog er det på nuværende tidspunkt ikke muligt at generere logik med TIA Openness. Metode 3, hvor man arbejder direkte med XML-filer, har vist, at det er muligt at importere LAD-kode direkte uden at anvende STL, som i metode 1. Det er dog udfordrende at manipulere PLC-kode i XML-format, og Siemens anbefaler ikke at ændre XML-filer direkte.

Fordelen ved XML er, at det kan fungere på tværs af alle PLC-programmeringssprog. Med en fine-tuned model kunne det måske være muligt at opnå bedre resultater. Metode 4 giver en grafisk repræsentation af LAD, som ikke er særlig anvendelig. Derfor bidrager den ikke væsentligt til at øge produktiviteten for virksomheder eller programmører, da koden alligevel skal programmeres manuelt i TIA. Dog kan metoden give inspiration, men det kræver god prompting og relevante eksempler for at opnå et fornuftigt output. Har brugen af ChatGPT øget produktiviteten? På den korte bane er svaret nej. For eksempel kunne tilføjelsen af en counter til en eksisterende blok været udført hurtigere manuelt. Når det kommer til at generere selve logikken, kræver det mange iterationer i chatten for at opnå et fornuftigt output, hvilket begrænser produktivitetsgevinsten. Når kompleksiteten øges for at generere et større projekt, mister modellen noget af konteksten og laver en del fejl, som kræver betydeligt arbejde at rette. Den udviklede promptstruktur i projektet har dog forbedret outputtet markant, hvilket gør det muligt at bruge ChatGPT til at generere LAD-kode.

Det kan konkluderes, at med den rette struktur og metode er det muligt at tilpasse en pre-tuned model til at håndtere et specifikt programmeringssprog med regler og syntakser, som modellen ikke oprindeligt er trænet på. Derudover giver metoden brugeren mulighed for at få inspiration og idéer til nye funktioner undervejs i udviklingen, hvilket kan føre til løsninger, som ellers ikke ville være blevet overvejet fra starten.

- Projektets Forventede Effekt
Tags
Deltagere
Partnere
Finansiering
Resultat
Evaluering
Formidlingsform  
- Resultatets formidling
- Resultaternes værdi
- Målgruppen
- Publikationer Rapport