IEC 61499 är en öppen standard för distribuerade styr- och automationssystem som publicerades första gången 2005. Standarden beskriver en generell modell för distribuerade styrsystem och är baserad på standarden IEC 61131. Standardens bestämmelser beskrivs även i böckerna av R. Lewis och A. Zeutl [1] , samt V. Vyatkin. [2]
IEC 61499-1 definierar en arkitektur för distribuerade styrsystem. IEC 61499 ersätter den cykliska programexekveringsmodellen som används i IEC 61131 med en händelsebaserad exekveringsmodell. Händelsemodellen låter dig explicit specificera ordningen för exekvering av funktionsblock i programmet. I förekommande fall definierar IEC 61499-1 bilaga A hur program som körs cykliskt kan implementeras i IEC 61499 med hjälp av funktionsblocket E_CYCLE för att generera periodiska händelser.
IEC 61499 tillåter att program skapas enligt en mjukvaruorienterad design, där systemen består av en eller flera applikationer, program byggda av sammanlänkade funktionsblock. Därefter kan programmet laddas ner till tillgängliga enheter. Alla enheter i systemet beskrivs inom enhetsmodellen . Systemets topologi återspeglas i systemmodellen . Programdistributionsmodellen bestämmer hur programmet kommer att distribueras bland de enheter som finns tillgängliga i systemet. Således distribueras program skapade inom samma system men serveras tillsammans.
Liksom i IEC 61131-3 definierar IEC 61499 funktionsblockstyper både gränssnittet för blocken och deras logik. Till skillnad från IEC 61131-3 inkluderar funktionsblocksgränssnittet i IEC 61499 händelse -I/O , tillsammans med data -I /O som definierar funktionsblockets ingångar och utgångar. Händelser kan associeras med informationsingångar och -utgångar med hjälp av WITH- relationen , som anger att varje gång en händelse inträffar uppdateras all data som är associerad med den händelsen av WITH- relationen . IEC 61499 definierar flera typer av funktionsblock:
IEC 61499-2 definierar krav för programvarukompatibilitet med IEC 61499. Detta inkluderar krav för representation av IEC 61499-element, såväl som utbytesformatet Document Type Definition (DTD) mellan olika IEC 61499-kompatibla program. Det finns redan flera programvaruimplementationer av IEC 61499. [3] Dessa inkluderar både kommersiell och öppen källkodsprogramvara, såväl som akademisk utveckling och forskningsutveckling. I allmänhet krävs också en IEC 61499-kompatibel drift- och utvecklingsmiljö.
IEC 61499-3 hänvisar till de första versionerna av standarden när den först introducerades som en offentlig specifikation. Denna del togs bort från standarden 2008. Den beskrev hur man tillämpar elementen i IEC 61499 med exempel på hur man löser vanliga problem vid design av automationssystem.
Bland andra exempel beskrev IEC 61499-3 användningen av gränssnittsfunktionsblock (SIFB) för fjärråtkomst till realtidsdata och funktionsblockparametrar; använda adaptrar för att implementera begreppen objektorienterad programmering; initieringsalgoritmer i nätverket av funktionsblock; och ett exempel på implementering av ett tillståndsdiagram för styrning av en VCR-motor.
Dessutom förklarade denna del möjligheten att använda standarden för att implementera kommunikationsfunktionsblock, såväl som enhetshanteringsmodellen, genom hantering av deras applikationer och funktionsblock, och funktionsprincipen för enhetshanterarens (DEV_MGR) funktionsblock .
IEC 61499-4 beskriver de regler som ett system, enhet eller programvara måste följa för att uppfylla IEC 61499-standarden. Dessa regler inkluderar krav på "interoperabilitet", "portabilitet" och "konfiguration". Två enheter är "ömsesidigt kompatibla" om de kan arbeta med varandra för att utföra den funktionalitet som definieras i systemkonfigurationen. IEC 61499 måste vara "portabel", det vill säga applikationer måste vara kompatibla med alla IEC 61499-program från olika leverantörer, givet att dessa program i sin tur uppfyller kraven som definieras i IEC 61499-2. Alla IEC 61499-enheter ska kunna omkonfigureras (inställningar) med vilket IEC 61499-program som helst.
Utöver allmänna regler definierar IEC 61499-4 även "överensstämmelseprofiler". Överensstämmelseprofilen beskriver hur systemet måste överensstämma med standarden IEC 61499. Till exempel bestäms konfigurerbarheten för en enhet av programvara av de styrkommandon som stöds. Ett XML-format för dataöverföring som ger portabilitet för IEC 61499-kompatibla program definieras i den andra delen av standarden och kompletteras med en överensstämmelseprofil, där till exempel stödda filtillägg för utbyte av programmodulbibliotek definieras.
"Interoperabilitet" mellan enheter från olika tillverkare definieras av lagren i OSI Networking Model . Informationsutgångar med kommunikationsstatus, IP-adresser , portnummer och datakodning av PUBLISH/SUBSCRIBE eller CLIENT/SERVER funktionsblock som används för kommunikation mellan enheter måste också definieras . HOLOBLOC Inc. definierar en "IEC 61499-överensstämmelseprofil", [4] som till exempel IEC 61499-programmen FBDK [5] och 4diac IDE överensstämmer med. [6]