Programování PA
Jelikož PA byly původně určeny především jako náhrada logických kontaktních řídících systémů, vycházejí programovací jazyky z požadavku na přímý přepis logických funkcí do řídícího programu. V současné době vytlačují vzhledem k svým parametrům i klasické regulátory (resp. s nimi splývají), protože soubor jejich možností dnes běžně obsahuje i instrukce pro popis činnosti spojitých i nespojitých regulátorů. Z tohoto důvodu existuje v oblasti programování PA mnoho firemních programovacích jazyků orientovaných na technické vybavení programovatelných automatů příslušného výrobce. Tím neúměrně rostou problémy dané vzájemnou nekompatibilitou programového vybavení PA, což téměř znemožňuje spolupráci a komunikaci mezi programovatelnými automaty různých výrobců. Reakcí na tuto situaci je snaha o normalizaci programování PA. V roce 1993 byla vydána norma IEC 1131 zabývající se automatizační technikou. Její třetí díl IEC se pak zabývá obecným programováním automatizačních prostředků (PA, mikropočítače, průmyslové počítače, atd.).
Norma IEC definuje následující požadavky na vlastnosti programového vybavení: a)nezávislost na technickém vybavení (přenositelnost programů) b)jednotný programátorský přístup (stačí jedno školení pracovníků na jeden typ PA) c)možnost ladění softwaru již ve fázi návrhu (chybu programu je žádoucí odhalit ještě před testováním v provozu při uvádění technologie do výroby) d)strukturovanost a modularita (logický systém bývá začleněn do složitějšího celku, ve kterém je nutné udržovat přehled)
V rámci normy IEC jsou doporučovány čtyři programovací jazyky s přesně definovanou sémantikou a syntaxí: LD - (angl. Ladder Diagram, něm. KOP - Kontaktplan) FBD - (angl. Function Block Diagram, něm. Funktionbausteinsprache - FBS),, IL- (angl. Instruction List, něm. Anweisungliste - AWL) ST- ST (angl. Structured Text, něm. Strukturien text - ST) Jako pátý programovací jazyk se často uvádí sekvenční funkční diagram – SFC, (angl. Sequential Function Chart, něm. Ablaufsprache), který však není v normě zařazen mezi jazyky, ale mezi tzv. společnými prvky, neboť tvoří jakousi nadstavbu pro strukturování celé aplikace. Dále existuje např. nabídka tzv. inženýrských nástrojů STEP7, kam patří S7-Graph, S7-HiGraph a CFC. To jsou však spíše grafické nástroje pro programování, nikoli jazyky s přesně definovanou syntaxí a sémantikou. Rozdělení programovacích jazyků lze principiálně rozdělit do dvou skupin: a)textové jazyky (IL, ST) b)grafické jazyky (LD, FBD, SFC)
Grafický jazyk LD je někdy také nazýván jazykem kontaktních schémat a je založen na grafické reprezentaci reléové logiky. Svou grafickou podobou připomíná žebřík (angl. Ladder). Organizační jednotka programu je vyjádřena sítí propojených grafických prvků. Síť v jazyku LD je zleva i zprava ohraničena svislými čarami, které se nazývají levá a pravá napájecí sběrnice. Mezi nimi je tzv. příčka, která může být rozvětvena. Každý úsek příčky, vodorovný nebo svislý, může být ve stavu on nebo off. Do příček mohou být včleněny kontakty (spínací, rozpínací apod.), cívky (cívka, negovaná cívka apod.) a dále funkce a funkční bloky. Jednotlivé příčky programu se vyhodnocují jedna po druhé ve směru zleva doprava a zhora dolů. Pokud je příčka ve stavu off (nepravda) nedochází k přerušení běhu. Vyhodnocování příček běží v již popsaném scanu. Popis jednotlivých jazyků Kontaktní schémata – ladder diagramy - (angl. Ladder Diagram, něm. KOP - Kontaktplan)