Środowiska inżynierskie implementujące języki normy IEC 61131-3 (przyjętej w Polsce jako PN-EN 61131-3) są obecnie powszechnie stosowane w przemyśle do tworzenia programów sterowania [1, 2]. Standard IEC 61131-3 [3] definiuje pięć języków programowania: dwa tekstowe IL, ST, dwa graficzne LD, FBD i mieszany język SFC. Języki IL, LD i SFC są przeznaczone zwłaszcza do zastosowań w procesach produkcyjnych opartych na sterownikach PLC [4], natomiast ST, FBD, jak też SFC, są stosowane w obszarach wykorzystujących sterowniki PAC i systemy DCS. Kompilatory języków IEC 61131-3 są podstawowymi składnikami środowisk inżynierskich. Kompilator, na podstawie kodu źródłowego programu, generuje kod wykonywalny. Zwykle stosowane są trzy podejścia do kompilacji programów sterowania. Pierwsze polega na bezpośrednim tłumaczeniu programu sterowania z języków IEC 61131-3 do wykonywalnego kodu maszynowego procesora. Ponieważ zmiana procesora (CPU) wymaga nowego kompilatora, takie rozwiązanie jest zasadniczo dedykowane dla konkretnej platformy sprzętowej. Kolejne podejście jest dwuetapowe. W pierwszym kroku programy sterowania są tłumaczone z języków IEC 61131-3 na kod źródłowy w języku pośrednim C lub C++, który następnie, ÄˁǜɁʁ ǘɁʁƬʊɡɁȭƞˁǖŭƋ˿ƕ <Řʁǔˁʊ˘ õ˘ɁȮƋŘƙ ƞʁ˘ɁȭƋŘźɡʁ˘Ȋʁ˘Ƭʊ˘Ɂ˹Ɩɡǚ Äʁǜ˿ǘˁȦ ʁƬƋƬȭ˘Ɂ˹Řȭ˿ ȭŘƞƬʊȦŘȭ˿ ɍȴƖɍ̋Ɩʹ̋ɍȳ ʁƖƙ ɡʁ˘˿ǖDŽǜ˿ ƞɁ ƞʁˁǘˁ ʹʕƖɍɍƖʹ̋ɍȳ ʁƖ ȧɡǚƬȧƬȭǜŘƋǖŘ ʋʁɁƞɁ˹ǔʊǘŘ ǔȭ̉˿ȭǔƬʁʊǘǔƬǷɁ ȭŘ ɡʁ˘˿ǘȦŘƞ˘ǔƬ ɡŘǘǔƬǜˁ ,ñ<Ƭ˸ <Řʁǔˁʊ˘ õ˘ɁȮƋŘƙ Řȭ ăŘƞɁǚƬ˹ʊǘǔƙ Äȭƞʁ˘Ƭǖ ăǜƬƋƙ ŎŽǔǷȭǔƬ˹ ą˹ǔƞƬʁƙ *ŘʁǜɁʊ˘ ďʁ˿Žˁʊƙ ³Ƭʊ˘Ƭǘ ďʁ˿Žˁʊ ñɁǚǔǜƬƋǒȭǔǘŘ õ˘Ƭʊ˘Ɂ˹ʊǘŘƙ °ŘǜƬƞʁŘ ȭnjɁʁȧŘǜ˿ǘǔ ǔ ÄˁǜɁȧŘǜ˿ǘǔƙ ˁǚƖ ĶƖ ñɁǚŘ ʹƙ ʯǣȊȳǣȳ õ˘Ƭʊ˘ɂ˹ ăǜʁƬʊ˘Ƌ˘ƬȭǔƬƕ Norma IEC 61131-3 definiuje pięć języków programowania sterowników przemysłowych. Norma ta jest powszechnie stosowana, wiele środowisk inżynierskich jest z nią całkowicie, bądź częściowo zgodnych. W literaturze opisano kilka akademickich rozwiązań, jednak zazwyczaj implementują one jedynie wybrane elementy normy (np. tylko jeden lub dwa języki). Komercyjne środowiska inżynierskie zwykle obsługują wszystkie języki, ale ich dokumentacja skupia się na korzystaniu ze środowiska, natomiast rzadko ujawniane są szczegóły dotyczące wewnętrznej architektury i implementacji. W artykule przedstawiono takie rozwiązania dla pakietu inżynierskiego CPDev. Architektura bazująca na maszynie wirtualnej sprawia, że środowisko jest przenośne, co ułatwia wdrożenie na różnych platformach sprzętowych. W artykule przedstawiono kilka wdrożeń przemysłowych środowiska CPDev ăȦɁ˹Ř ǘǚˁƋ˘Ɂ˹Ƭƕ ʋʁɁƞɁ˹ǔʊǘɁ ǔȭ̉˿ȭǔƬʁʊǘǔƬƙ F, ȴɍɍʯɍȊʯƙ ǖDŽ˘˿ǘ ɡɁʋʁƬƞȭǔƙ ȧŘʊ˘˿ȭŘ ˹ǔʁǜˁŘǚȭŘƙ ǜʁŘȭʊǚŘǜɁʁƙ Àƙ ǘɁȧˁȭǔǘŘƋǖŘƙ ʊǜƬʁɁ˹ȭǔǘ ɡʁ˘Ƭȧ˿ʊȦɁ˹˿