PROGRAM prgDHCP VAR rq_DHCP_server : BOOL; rq_FIX_IP : BOOL; tmp : BOOL; delay : TON; fixIpAdr : TLocalEthAdr := ( IP := [192,168,134,176], IM := [255,255,255,0], GW := [192,168,134,1]); END_VAR IF not Byt.Spolecne.DHCP.Zakaz THEN // kontrola prideleni IP adresy IF System_S.R_EDGE_10MIN or Byt.Spolecne.DHCP.Nastav THEN // zkontrolovat jednou za 10 minut IF NOT ETH1_STAT.IP_obtained THEN // nepodarilo se ziskat IP adresu od DHCP serveru rq_DHCP_server := TRUE; // pokusit se ziskat IP adresu od DHCP rq_FIX_IP := FALSE; END_IF; END_IF; delay(IN := rq_FIX_IP, PT := T#7s); // prodleva mezi nastavenim pevne IP a zadosti o prideleni od DHCP // zadost o prideleni IP adresy od DHCP serveru (pokud neni pridelena) IF rq_DHCP_server THEN // nejdriv nastavit pevnou IP cimz se vypne automaticke pridelovani IP od DHCP tmp := SetIPaddress(rq := NOT rq_FIX_IP, ethChan := ETH1, ethAdr := fixIpAdr); rq_FIX_IP := 1; // a pak zapnout pridelovani adresy DHCP serverem tmp := SetDHCPsupport( rq := delay.Q, ethChan := ETH1); IF ETH1_STAT.IP_obtained THEN rq_DHCP_server := FALSE; END_IF; IF System_S.F_EDGE_10MIN THEN rq_DHCP_server := FALSE; END_IF; END_IF; ELSIF Byt.Spolecne.DHCP.Nastav THEN // nejdriv nastavit pevnou IP cimz se vypne automaticke pridelovani IP od DHCP tmp := SetIPaddress(rq := Byt.Spolecne.DHCP.Nastav, ethChan := ETH1, ethAdr := Byt.Spolecne.DHCP.IP); END_IF; Byt.Spolecne.DHCP.Nastav := false; END_PROGRAM