Jakým způsobem se snaží jednotka získat adresy z DHCP serveru?
(1/1)
Luboš Zelinka:
Pokud se nepovede získání adresy z DHCP server během bootování (např. po výpadku elektřiny nabíhá DHCP server pomaleji) nedochází poté k dodatečnému získání adres. Snaží se jednotka o dodatečné získání?
Milan Bydžovský:
Pokud se PLC nepodaří kontaktovat DHCP server při startu nastaví PLC pevnou IP adresu, kterou má uloženou v konfiguraci. Pokud chceme, aby se PLC periodicky snažilo o kontaktování DHCP je nutné to ošetřit v uživatelském programu.
Například takto:
Kód:
PROGRAM prgDhcpSupport
VAR
rq_DHCP_server : BOOL;
rq_FIX_IP : BOOL;
tmp : BOOL;
delay : TON;
fixIpAdr : TLocalEthAdr := ( IP := [192,168,33,176], IM := [255,255,0,0], GW := [0,0,0,0]);
END_VAR
// kontrola prideleni IP adresy
IF System_S.R_EDGE_10MIN 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;
END_PROGRAM
Luboš Zelinka:
Koukám, že k celému DHCP přistupujete dost "netradičně". K čemu je potom implementace DHCP klienta, který funguje "na baterky". Mimochodem co se stane, když dojde k vypršení zapůjčení IP adresy z DHCP serveru (vyprší lease time) a DHCP server propůjčí IP adresu někomu jinému? Jednotka způsobí kolizi na síti?
Fuk Tomáš:
Jj, to už pak není DHCP, ale SHCP.
Petr Liskar:
Citace: Luboš Zelinka 28.12.2014, 14:11
Koukám, že k celému DHCP přistupujete dost "netradičně". K čemu je potom implementace DHCP klienta, který funguje "na baterky". Mimochodem co se stane, když dojde k vypršení zapůjčení IP adresy z DHCP serveru (vyprší lease time) a DHCP server propůjčí IP adresu někomu jinému? Jednotka způsobí kolizi na síti?
Nemělo by k takové kolizi dojít. Dle příslušného RFC by měl DHCP server zkoumat, zda nehodlá přidělit adresu, která již je v sítí použita.
Navigace
[0] Index zpráv