O.D. Různé 5. 5. 2025 10:03 6. 5. 2025 9:52

Dobrý den,

podobný dotaz jsem posílal 22. 8. 2024. Bohužel ho nelze znovu otevřít a pokačovat v diskuzi.

Načítám spotovu cenu pomocí fbGetJsonAndSetVar

Občas se data z OTE nenačtou. Zjistil jsem že blok zahlásí chybu DNS request error : 20

Všimnul jsem si že error je již v bloku uvnitř (fbJosonPageParser)

Přitom vidím že doména je přeložena na správnou IP.

Ještě vidím chan code = 0

Po restartu PLC se ihned OTE načte. Mohu nějak SW vyvolat obnovení portu? 

Mám podobnou zkušenost, když vypadla komunikace modbus TCP/IP tak jsem otevřel nový virtuální kanál a komunikace se obnovila. 

URL = https://www.ote-cr.cz/cs/kratkodobe-trhy/elektrina/denni-trh/@@chart-data?date=2025-05-05

Ve stejném podprogramu mám blok fbGetJsonAndSetVar ještě použit pro vyčtení kurzu a ceny OTE pro zítřek. 

Nemůže být nějaká kolize zde?

 

Odpovědi 1

M.B. 6. 5. 2025 9:52

Dobrý den,

chyba DNS 20 znamená, že se nepodařilo správně dekódovat odpověď DNS serveru. Pokud dojde k chybě DNS blok se dál nesnaží o navázání spojení, ačkoli má z předchozího volání IP adresu získanou. ChanCode := 0 není chyba, kanál se otvírá dynamicky pouze na dobu dotazu, takže chanCode je nastaveno jen po dobu, kdy je blok busy.

Blok pro získání IP adresy se volá při každém nahození exec, takže pokud není chyba DNS trvalá tak nové zavolání bloku by mělo proběhnout vpořádku.

Volání více bloků ničemu nevadí, všechna volání používají interně blok fbNsLookUpEx, který využívá DNS mezipaměť, kde se drží IP adresy domén po dobu platnosti, kterou vrací DNS server. Komunikace na DNS server probíhá až ve chvíli, kdy se v mezipaměti IP adresa domény nenalzne.

Abychom odhalili, jak chyba 20 vzniká, potřebovali bychom, abyste zachytil DNS komunikaci. Zachytit komunikaci je možné přes TCPDump, který je dostupný přes konfigurační web v sekci Network (od verze FW 6.8).
Zde se zaškrtne Enable, Adapter se nechá ANY, protokol UDP, IP adresa se nezašktne, port se zaškrtne a zvolí 53 a volby se potvrdí stisknutím Submit. Ve chvíli, kdy dojde k chybě je možné stáhnout soubor tcpdump.pcap, kde bude problematický paket zachycen. Pokud nám jej zašlete, můžeme se pokusit zjistit v čem problém spočívá.

 

Vaše odpověď

Pro vložení odpovědi je nezbytné být přihlášený. Pokračujte na přihlášení.