IEC 61499 er en åben standard for distribuerede styrings- og automationssystemer, som først blev offentliggjort i 2005. Standarden beskriver en generel model for distribuerede styresystemer og er baseret på standarden IEC 61131. Standardens bestemmelser er også beskrevet i bøgerne af R. Lewis og A. Zeutl [1] , samt V. Vyatkin. [2]
IEC 61499-1 definerer en arkitektur for distribuerede styresystemer. IEC 61499 erstatter den cykliske programudførelsesmodel, der bruges i IEC 61131, med en hændelsesbaseret udførelsesmodel. Hændelsesmodellen giver dig mulighed for eksplicit at angive rækkefølgen for udførelse af funktionsblokke i programmet. Hvor det er relevant, definerer IEC 61499-1 Annex A, hvordan cyklisk eksekverende programmer kan implementeres i IEC 61499 ved hjælp af E_CYCLE-funktionsblokken til at generere periodiske hændelser.
IEC 61499 tillader, at programmer oprettes i henhold til et softwareorienteret design, hvor systemerne består af en eller flere applikationer, programmer bygget af indbyrdes forbundne funktionsblokke. Derefter kan programmet downloades til tilgængelige enheder. Alle enheder i systemet er beskrevet i enhedsmodellen . Systemets topologi afspejles i systemmodellen . Programdistributionsmodellen bestemmer, hvordan programmet vil blive fordelt blandt de enheder, der er tilgængelige på systemet. Programmer, der er oprettet inden for det samme system, er således distribueret, men serveret sammen.
Som i IEC 61131-3 definerer IEC 61499 funktionsbloktyperne både grænsefladen for blokkene og deres logik. I modsætning til IEC 61131-3 inkluderer funktionsblokgrænsefladen i IEC 61499 hændelses I/O'er sammen med data I /O'er, der definerer funktionsblokkens input og output. Hændelser kan associeres med informationsinput og -output ved hjælp af WITH -relationen , som specificerer, at hver gang en hændelse indtræffer, opdateres alle data, der er knyttet til den hændelse af WITH -relationen . IEC 61499 definerer flere typer funktionsblokke:
IEC 61499-2 definerer krav til softwarekompatibilitet med IEC 61499. Dette omfatter krav til repræsentation af IEC 61499-elementer samt udvekslingsformatet Document Type Definition (DTD) mellem forskellige IEC 61499-kompatible programmer. Der findes allerede adskillige softwareimplementeringer af IEC 61499. [3] Disse omfatter både kommerciel og open source-software samt akademisk og forskningsmæssig udvikling. Generelt kræves der også et IEC 61499-kompatibelt drifts- og udviklingsmiljø.
IEC 61499-3 henviser til de første versioner af standarden, da den først blev introduceret som en offentlig specifikation. Denne del blev fjernet fra standarden i 2008. Den beskrev praksis med at anvende elementerne i IEC 61499 med eksempler på, hvordan man løser almindelige problemer i design af automationssystemer.
Blandt andre eksempler beskrev IEC 61499-3 brugen af interface funktionsblokke (SIFB'er) til fjernadgang til realtidsdata og funktionsblokparametre; brug af adaptere til at implementere begreberne objektorienteret programmering; initialiseringsalgoritmer i netværket af funktionelle blokke; og et eksempel på implementering af et tilstandsdiagram til styring af en VCR-motor.
Derudover forklarede denne del muligheden for at bruge standarden til at implementere kommunikationsfunktionsblokke, såvel som enhedsstyringsmodellen, gennem styring af deres applikationer og funktionsblokke, og princippet om drift af enhedsadministratorens (DEV_MGR) funktionsblok .
IEC 61499-4 beskriver de regler, som et system, en enhed eller software skal følge for at overholde IEC 61499-standarden. Disse regler omfatter krav til "interoperabilitet", "portabilitet" og "konfiguration". To enheder er "gensidigt kompatible", hvis de kan arbejde med hinanden for at udføre den funktionalitet, der er defineret i systemkonfigurationen. IEC 61499 skal være "bærbar", det vil sige, at applikationer skal være kompatible med alle IEC 61499-programmer fra forskellige leverandører, givet at disse programmer igen opfylder kravene defineret i IEC 61499-2. Alle IEC 61499-enheder skal være i stand til at omkonfigurere (indstillinger) ved hjælp af ethvert IEC 61499-program.
Ud over generelle regler definerer IEC 61499-4 også "overensstemmelsesprofiler". Overensstemmelsesprofilen beskriver, hvordan systemet skal overholde standarden IEC 61499. For eksempel er konfigurerbarheden af en enhed ved hjælp af software bestemt af de understøttede kontrolkommandoer. Et XML-format til dataoverførsel, der giver portabilitet til IEC 61499-kompatible programmer, er defineret i anden del af standarden og suppleret med en overensstemmelsesprofil, hvor f.eks. understøttede filudvidelser til udveksling af programmodulbiblioteker er defineret.
"Interoperabilitet" mellem enheder fra forskellige producenter er defineret af lagene i OSI-netværksmodellen . Informationsudgange med kommunikationsstatus, IP-adresser , portnumre og datakodning af PUBLISH/SUBSCRIBE eller CLIENT/SERVER funktionsblokke, der bruges til kommunikation mellem enheder, skal også defineres . HOLOBLOC Inc. definerer en "IEC 61499 overensstemmelsesprofil", [4] som f.eks. IEC 61499 programmerne FBDK [5] og 4diac IDE er i overensstemmelse med. [6]