Příklad automatická pračka 1:

Použité pomůcky:        modul automatické pračky
                                  propojovací modul                                
Zadání:
Po stisku tlačítka START začněte napouštět vodu, po 5s roztočte buben pračky střídavě doleva a doprava a po naplnění nádrže na 50% zapněte topení. Po naplnění nádrže ukončete napouštění a po ohřátí vody na 60 °C vypněte topení. Buben pračky nechte otáčet ještě 20s.  

Řešení:
Program  vytvoříme pomocí instrukcí podmíněného nastavení a nulování operandu (SET, RES). Pro řízení každého výstupu vytvoříme dva logické výrazy.
Časové prodlevy zajistíme pomocí časovačů.
Pro střídavé otáčení bubnem připravíme podprogram s časovačem  generujícím cyklicky čas modulo (DOBA_R + DOBA_L + 2*MEZERA) sekund. Čas budeme testovat komparačními instrukcemi a ovládat výstupy BUBEN_R a BUBEN_L.
Vzhledem k tomu, že xPRO umožňuje provádět elementární matematické operace přímo v symbolickém operandu instrukcí, program se výrazně zjednoduší a časové konstanty lze snadno měnit v hlavičce programu.

Zdrojový text programu:

#program prac7,v1.0
#include konfigur.950
#include jmena_ap.950
#reg bit pracuje, hrana_hl_pul,pam_tepl_60, volani
#reg word casovac_hl,cas_vpravo,cas_vlevo, cas_sep_bl,cas_roz_bl
#def sec 2
#def doba_r 6
#def doba_l 4
#def mezera 1
#def zpozd_sep_bl 5
#def zpozd_roz_bl 25
;************************
p 0
;nulovaní bubnu
wr buben_l
wr buben_r
;nastavení vystupů
ld start
set pracuje
ld pracuje
set voda
ld hl_pul
let hrana_hl_pul
set topeni
;************************
;nulování výstupů
ld stop
res pracuje
or hl_cela
res voda
ld stop
or tepl_60
res topeni
;************************
;podmíněné volání podprogramu
ld voda
ld zpozd_sep_bl
ton cas_sep_bl.sec
set volani
ld tepl_60
set pam_tepl_60
ld pam_tepl_60
ld zpozd_roz_bl
ton cas_roz_bl.sec
or stop
res volani
res pam_tepl_60
ld volani
cad prani
p 60     ; podprogram pro střídavé otáčení bubnem
prani:
ld volani
ld doba_r+doba_l+(2*mezera)
ton casovac_hl.sec
ld casovac_hl
gt 0
ld casovac_hl
lt doba_r+1
and
and pracuje
wr buben_r
;******************************
ld casovac_hl
gt doba_r+mezera
ld casovac_hl
lt doba_r+doba_l+mezera+1
and
and pracuje
wr buben_l
;******************************
ld casovac_hl
eq doba_r+doba_l+(2*mezera)
or stop
res low casovac_hl
ret
e 60
e 0