Diskuse Elektrika.cz

HYBRIDNÍ zóna => Technická podpora výrobce TECO Kolín radí odborníkům => Téma založeno: Luboš Zelinka 14.12.2014, 12:25



Název: Jakým způsobem se snaží jednotka získat adresy z DHCP serveru?
Přispěvatel: Luboš Zelinka 14.12.2014, 12:25
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í?


Název: Re: Jakým způsobem se snaží jednotka získat adresy z DHCP serveru?
Přispěvatel: Milan Bydžovský 16.12.2014, 12:45
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


Název: Re: Jakým způsobem se snaží jednotka získat adresy z DHCP serveru?
Přispěvatel: 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?


Název: Re: Jakým způsobem se snaží jednotka získat adresy z DHCP serveru?
Přispěvatel: Fuk Tomáš 28.12.2014, 14:47
Jj, to už pak není DHCP, ale SHCP.


Název: Re: Jakým způsobem se snaží jednotka získat adresy z DHCP serveru?
Přispěvatel: Petr Liskar 28.12.2014, 16:52
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.