Embedded software, styringer og HMI til tekniske produkter

Et transportbånd med to kasser, forbundet med et styreskab med en lille skærm og en orange lampe

lp/mathiasen udvikler software til embedded systemer, fra firmware på mikrocontrollere uden operativsystem til applikationer og HMI på SBC-platforme. Fokus er på den konkrete integration mellem hardware, styringslogik, kommunikation og operatørinterface.

Opgaverne kan være en ny embedded løsning, en udvidelse af en eksisterende styring eller en selvstændig GUI til en maskine, et instrument eller et teknisk produkt. Målgruppen er virksomheder, maskinbyggere og udviklingsafdelinger med egne hardware- og produktplatforme.

Firmware til MCU uden operativsystem

lp/mathiasen udvikler bare-metal firmware i Rust og C++, når løsningen skal arbejde direkte med mikrocontrollerens periferi og hardwaregrænseflader.

Det kan omfatte:

  • GPIO, interrupts, timere, ADC og kommunikationsperiferi
  • sensoropsamling, aktuatorstyring og tilstandsmaskiner
  • UART, SPI, I²C, CAN eller andre grænseflader, når hardwaren understøtter dem
  • lokal fejlhåndtering, watchdog og diagnosticering
  • protokoller til kommunikation med en SBC, HMI eller overordnet styring

Arkitektur, sprog, drivere og ressourceforbrug vælges efter den konkrete MCU, dens toolchain og kravene til opgaven. Hvor der er særlige realtids- eller sikkerhedskrav, skal de indgå i design og verifikation fra begyndelsen.

Software på SBC-platforme

På små Linux- eller Windows-baserede computere kan lp/mathiasen udvikle applikationer og lokale services i .NET, eksempelvis til procesdata, enhedskommunikation, konfigurering, logning og integration med andre systemer.

En SBC kan fungere som bindeled mellem mikrocontroller, netværk, brugerinterface og virksomhedens øvrige software. Den konkrete opdeling mellem lokal firmware og applikationssoftware tilrettelægges efter kravene til oppetid, responstid, vedligeholdelse og hardware.

HMI og GUI med Avalonia UI eller Uno Platform

lp/mathiasen udvikler operatørpaneler og tekniske brugerflader med .NET, Avalonia UI eller Uno Platform til platforme, hvor den valgte teknologi er understøttet.

En HMI kan omfatte procesvisualisering, status, alarmer, parameterindstillinger, diagnosticering, brugerrettigheder og servicefunktioner. Brugerfladen kan arbejde mod en lokal service, en mikrocontroller eller et eksisterende styresystem gennem en aftalt kommunikationsgrænseflade.

Valget af Avalonia eller Uno sker på baggrund af operativsystem, grafikunderstøttelse, skærmtype og krav til distribution. En GUI er en betjeningsflade, ikke en erstatning for dedikerede sikkerhedsfunktioner.

Integration mellem firmware, HMI og eksisterende anlæg

Opgaven behøver ikke være udvikling af en komplet maskinstyring. lp/mathiasen kan også udvikle den softwaredel, der mangler i et eksisterende produkt eller anlæg: en ny HMI, en kommunikationsadapter, firmware til en særskilt MCU eller en SBC-applikation, som samler og eksponerer data.

Grænseflader og ansvar mellem hardware, firmware, HMI og øvrige systemer dokumenteres, så løsningen kan testes på det faktiske udstyr.

Et transportbånd med to kasser, forbundet med et styreskab med en lille skærm og en orange lampe
Illustration af indlejret styring og et tilhørende betjeningspanel.

Illustrationen er symbolsk og viser ikke et konkret projekt.

Udvikling sammen med virksomhedens teknikere

Samarbejdet tager udgangspunkt i den eksisterende hardware, dokumentation, interfaces og krav. Første leverance er en afgrænset fungerende del, som kan prøves på den relevante platform. Derefter kan funktionalitet, diagnosticering og brugerinterface udvikles videre ud fra test og tilbagemeldinger.

Arbejdet foregår skriftligt med en løbende projektbog, hvor beslutninger, krav og ændringer kan følges. Afregning sker efter anvendt tid.

Har I en embedded-opgave?

Beskriv gerne den anvendte MCU eller SBC, operativsystem eller bare-metal-miljø, aktuelle toolchain, tilgængelige grænseflader og hvad firmware eller HMI skal kunne. En eksisterende specifikation eller et kort interface-overblik er et fint udgangspunkt.

Beskriv den tekniske opgave