{"id":37422,"date":"2019-10-31T22:17:33","date_gmt":"2019-10-31T19:17:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm\/"},"modified":"2019-10-31T22:17:33","modified_gmt":"2019-10-31T19:17:33","slug":"shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","title":{"rendered":"ShIoTiny: knooppunten, verbindingen en gebeurtenissen of de kenmerken van het tekenen van programma's","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ShIoTiny: knooppunten, verbindingen en gebeurtenissen of de kenmerken van het tekenen van programma&#039;s\" src=\"\/wp-content\/uploads\/2019\/08\/e5d6a9f6ca0fc445f705a645e5319c06.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Belangrijke punten of waar dit artikel over gaat<\/h4>\n<p>\nHet onderwerp van het artikel is visueel programmeren van PLC's <b>ShIoTiny<\/b> voor het slimme huis, dat hier wordt beschreven: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463107\/\">ShIoTiny: kleine automatisering, Internet of Things of \"zes maanden voor vakantie\"<\/a><\/noindex>.<\/p>\n<p><b>Kort samengevat<\/b> worden concepten zoals <b>knooppunten<\/b>, <b>verbindingen<\/b>, <b>evenementen<\/b>, evenals de kenmerken van het laden en uitvoeren van een visueel programma op <b>ESP8266<\/b>, dat de basis vormt voor de PLC <b>ShIoTiny<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Inleiding of enkele organisatorische vragen<\/h4>\n<p>\nIn het vorige artikel over mijn ontwikkeling heb ik een kort overzicht gegeven van de mogelijkheden van de controller <b>ShIoTiny<\/b>.<\/p>\n<p>Verrassend genoeg toonde het publiek een vrij sterke belangstelling en stelde het me veel vragen. Sommige mensen boden zelfs meteen aan om de controller van me te kopen. Nee, ik ben niet tegen een beetje extra geld verdienen, maar mijn geweten staat me niet toe om een nog zeer ongepolijst product te verkopen.<\/p>\n<p>Daarom heb ik de binaire firmware en het apparaat schema op GitHub geplaatst: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\">firmware+kortste instructie+schema+voorbeelden<\/a><\/noindex>.<\/p>\n<p>Nu kan iedereen de ESP-07 flitsen en zelf met de firmware experimenteren. Als iemand precies zo'n bordje wilt als op de foto \u2014 ik heb er een paar. Stuur een e-mail <b>shiotiny@yandex.ru<\/b>. Maar zoals de onvergetelijke Ogurtsov zei: \"Ik ben nergens voor verantwoordelijk!\".<\/p>\n<p>Dus, laten we ter zake komen: wat is &#171;<b>knooppunt<\/b>&#187; (node) en &#171;<b>evenement<\/b>&#171;? Hoe wordt het programma uitgevoerd?<\/p>\n<p>Zoals gebruikelijk beginnen we met het begin: het laden van het programma.<\/p>\n<h4>Hoe het programma wordt geladen<\/h4>\n<p>\nLaten we beginnen met wat er gebeurt wanneer we op de knop <b>Uploaden<\/b> in de editor <b>ElDraw<\/b> drukken en ons schema-programma, bestaande uit mooie vierkantjes, naar het apparaat wordt verzonden.<\/p>\n<p>Ten eerste wordt er op basis van ons getekende schema een tekstuele beschrijving gemaakt.<br \/>\nTen tweede wordt gecontroleerd of alle ingangen van de knooppunten zijn verbonden met uitgangen. Er mogen geen \"hangende\" ingangen zijn. Als zo'n ingang wordt gevonden, wordt het schema niet in ShIoTiny geladen en geeft de editor een passende waarschuwing.<\/p>\n<p>Als alles succesvol is verlopen, stuurt de editor de tekstuele beschrijving van het schema knooppunt voor knooppunt naar ShIoTiny. Uiteraard wordt het bestaande schema in ShIoTiny eerst verwijderd. De verkregen tekstuele beschrijving wordt opgeslagen in het FLASH-geheugen.<\/p>\n<p>Overigens, als je het schema uit het apparaat wilt verwijderen, laad dan gewoon een leeg schema (zonder knoop-elementen) in.<\/p>\n<p>Zodra het schema-programma is geladen in de PLC ShIoTiny, begint het met 'uitvoeren'. Wat betekent dat?<\/p>\n<p>Opmerking: de processen voor het laden van het schema uit het FLASH-geheugen bij het inschakelen van de voeding en het ontvangen van het schema vanuit de editor zijn identiek.<\/p>\n<p>Eerst worden de objecten-knooppunten aangemaakt op basis van hun beschrijving.<br \/>\nVervolgens worden de verbindingen tussen de knooppunten vastgesteld. Dat wil zeggen, de uitgangslinks worden gegenereerd naar ingangen en ingangen naar uitgangen.<\/p>\n<p>Pas na dit alles wordt de hoofdcyclus van de uitvoering van het programma gestart.<\/p>\n<p>Ik heb er lang over geschreven, maar het hele proces van 'laden' van het schema uit FLASH-geheugen tot het starten van de hoofdcyclus duurt enkele seconden voor een schema met 60-80 knooppunten.<\/p>\n<p>Hoe werkt de hoofdcyclus? Heel eenvoudig. Eerst wacht hij op een gebeurtenis <b>evenementen<\/b> in een van de knooppunten, waarna deze gebeurtenis wordt verwerkt. En zo gaat het maar door. Of totdat er een nieuw schema in ShIoTiny wordt geladen.<\/p>\n<p>Ik heb al verschillende keren dingen genoemd zoals <b>evenementen<\/b>, <b>knooppunten<\/b> en <b>verbindingen<\/b>. Maar wat betekent dit eigenlijk vanuit programmatisch perspectief? Daar zullen we het vandaag over hebben.<\/p>\n<h4>Knooppunten, verbindingen en gebeurtenissen<\/h4>\n<p>\nHet is voldoende om naar voorbeelden van schema-programma's voor <b>ShIoTiny<\/b>te kijken om te begrijpen dat een schema slechts uit twee entiteiten bestaat - knooppunten (of elementen) en de verbindingen tussen hen.<\/p>\n<p><b>Knoop<\/b>, <b>knooppunt<\/b> of <b>schema-element<\/b> - dit is een virtuele representatie van een bepaald <b>acties<\/b> boven de gegevens. Dit kan een wiskundige bewerking, logische bewerking of elke andere bewerking zijn die in ons opkomt. Het belangrijkste is dat elk knooppunt een ingang en uitgang heeft.<\/p>\n<p><b>Ingang<\/b> - dit is de plek waar het knooppunt gegevens ontvangt. De afbeeldingen van ingangen zijn de punten die altijd aan de linkerkant van het knooppunt bevinden.<\/p>\n<p><b>Uitgang<\/b> - dit is de plek waar het resultaat van de werking van het knooppunt wordt verkregen. De afbeeldingen van uitgangen zijn de punten die altijd aan de rechterkant van het knooppunt bevinden.<\/p>\n<p>Sommige knooppunten hebben geen ingangen. Dergelijke knooppunten genereren het resultaat binnenin zichzelf. Bijvoorbeeld een constante knooppunt of een sensor knooppunt: ze hebben geen gegevens van andere knooppunten nodig om een resultaat te melden.<\/p>\n<p>Andere knooppunten hebben daarentegen geen uitgangen. Dit zijn knooppunten die bijvoorbeeld uitvoerende apparaten (relais of andere dergelijke) weergeven. Ze ontvangen gegevens, maar genereren geen resultaten van berekeningen die beschikbaar zijn voor andere knooppunten.<\/p>\n<p>Bovendien is er ook een uniek opmerking-knooppunt. Het doet niets, heeft geen ingangen of uitgangen. Het doel ervan is om een toelichting op het schema te zijn.<\/p>\n<p>Wat is<b>evenement<\/b>\u00bb? <b>Evenement<\/b> \u2014 dit is het ontstaan van nieuwe gegevens in een knooppunt. Bijvoorbeeld, gebeurtenissen omvatten: de statusverandering van een ingang (knooppunt <b>Invoer<\/b>), het ontvangen van gegevens van een ander apparaat (knooppunten <b>MQTT<\/b> en <b>UDP<\/b>), het verstrijken van een bepaalde tijdsperiode (knooppunten <b>Timer<\/b> en <b>Vertraging<\/b>) en ga zo maar door.<\/p>\n<p>Waarom zijn gebeurtenissen nodig? Om te bepalen in welk knooppunt nieuwe gegevens zijn ontstaan en welke knooppunten hun status moeten wijzigen in verband met het ontvangen van nieuwe gegevens. Een gebeurtenis 'gaat' als het ware door een keten van knooppunten totdat alle knooppunten zijn bereikt waarvan de status moet worden gecontroleerd en gewijzigd.<\/p>\n<p>Alle knooppunten kunnen in twee categorie\u00ebn worden onderverdeeld. <br \/>\nKnooppunten die gebeurtenissen kunnen genereren, noemen we '<b>actieve knooppunten<\/b>\u00bb.<br \/>\nKnooppunten die geen gebeurtenissen kunnen genereren, noemen we '<b>passieve knooppunten<\/b>\u00bb.<\/p>\n<p>Wanneer een knooppunt een gebeurtenis genereert (dat wil zeggen, er verschijnen nieuwe gegevens aan de uitgang), verandert in het algemeen de status van de hele keten van knooppunten die zijn aangesloten op de uitgang van het knooppunt dat de gebeurtenis genereert.<\/p>\n<p>Om het duidelijk te maken, laten we een voorbeeld bekijken in de afbeelding.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: knooppunten, verbindingen en gebeurtenissen of de kenmerken van het tekenen van programma&#039;s\" src=\"\/wp-content\/uploads\/2019\/08\/41b53ae925e85c3f272adec876ab3151.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe actieve knooppunten hier zijn Input1, Input2 en Input3. De andere knooppunten zijn passief. Laten we kijken wat er gebeurt wanneer een van de ingangen wordt gesloten. De resultaten zijn voor de overzichtelijkheid in een tabel samengevoegd.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: knooppunten, verbindingen en gebeurtenissen of de kenmerken van het tekenen van programma&#039;s\" src=\"\/wp-content\/uploads\/2019\/08\/0a8435184f85e919f763048120e6e780.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZoals we zien, wordt bij het ontstaan van een gebeurtenis een keten opgebouwd van het knooppunt waar de gebeurtenis vandaan komt tot het uiteindelijke knooppunt. De status van de knooppunten die niet in de keten worden opgenomen, verandert niet.<\/p>\n<p>Er rijst een legitieme vraag: wat gebeurt er als er tegelijkertijd twee of meer gebeurtenissen optreden?<\/p>\n<p>Als liefhebber van de creativiteit van Gleb Anfilov, voel ik de neiging om de nieuwsgierige vrager naar zijn boek 'De vlucht van verbazing' te verwijzen. Dit is een soort 'relativiteitstheorie voor de allerkleinsten', waarin goed wordt uitgelegd wat 'tegelijkertijd' is en hoe je daarmee omgaat.<\/p>\n<p>Maar praktisch gezien is alles veel eenvoudiger: wanneer er twee of meer gebeurtenissen optreden, worden alle ketens van elk gebeurtenisbron achtereenvolgens opgebouwd en verwerkt, zonder dat er wonderen plaatsvinden.<\/p>\n<p>Een volkomen legitieme vraag van een nieuwsgierige lezer is: wat gebeurt er als we knooppunten in een ring verbinden? Of, zoals ze het vaak onder deze slimme mensen zeggen \u2014 een feedbackloop invoeren. Dat wil zeggen, de uitgang van een knooppunt verbinden met de ingang van het vorige knooppunt, zodat de toestand van de uitgang van dit knooppunt invloed heeft op de toestand van zijn eigen ingang. Je kunt de uitgang van een knooppunt niet rechtstreeks met zijn eigen ingang verbinden, dat staat de editor niet toe. <b>ElDraw<\/b>. Maar indirect, zoals in de onderstaande afbeelding \u2014 dat is mogelijk.<\/p>\n<p>Dus, wat zal er in dit geval gebeuren? Het antwoord zal zeer \"bepaald\" zijn: afhankelijk van welke knooppunten. Laten we een voorbeeld bekijken in de afbeelding.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: knooppunten, verbindingen en gebeurtenissen of de kenmerken van het tekenen van programma&#039;s\" src=\"\/wp-content\/uploads\/2019\/08\/7a640c3abfd4868b87f415bce93e4918.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWanneer de contacten van de ingang Input1 open zijn aan de bovenkant van knooppunt A \u2014 0. Aan de uitgang van knooppunt A, ook 0. Aan de uitgang van knooppunt B \u2014 1. En tot slot, aan de onderkant van knooppunt A \u2014 1. Alles is duidelijk. Voor wie het niet duidelijk is \u2014 kijk hieronder naar de uitleg van hoe de knooppunten \"EN\" en \"NIET\" werken.<\/p>\n<p>Laten we nu de contacten van ingang Input1 sluiten, dat wil zeggen, we geven een eenheid aan de bovenste ingang van knooppunt A. Degenen die bekend zijn met elektronica weten dat we feitelijk een klassieke generatorconfiguratie op logische elementen krijgen. En in theorie zou zo'n schakeling eindeloos de reeksen 1-0-1-0-1-0... en 0-1-0-1-0-1... moeten produceren. Het evenement zou constant de toestand van knooppunten A en B moeten veranderen, steeds in de cirkel 2-3-2-3...!<\/p>\n<p>Maar in werkelijkheid gebeurt dit niet. De schakeling zal in een willekeurige toestand vallen \u2014 of het relais blijft ingeschakeld of uitgeschakeld, of het kan een beetje zoemen terwijl het meerdere keren achtereenvolgens in- en uitschakelt. Alles hangt af van het weer op de zuidpool van Mars. En dit is waarom dit gebeurt.<\/p>\n<p>Het evenement met knooppunt Input1 verandert de toestand van knooppunt A, vervolgens knooppunt B, en zo verder in een cirkel meerdere keren. Het programma detecteert de \"lus\" van het evenement en stopt deze carnaval gedwongen. Na dit wordt de verandering van de toestand van knooppunten A en B geblokkeerd totdat er een nieuw evenement optreedt. Het moment waarop het programma besluit \u2014 \"genoeg met draaien in cirkels!\" \u2014 hangt in het algemeen af van veel factoren en kan als willekeurig worden beschouwd.<\/p>\n<blockquote><p>Wees voorzichtig bij het verbinden van knooppunten in een ring \u2014 de effecten zullen niet altijd voor de hand liggend zijn! Zorg ervoor dat je goed weet wat en waarom je het doet!<\/p><\/blockquote>\n<p> Is it still possible to build a generator using the nodes available to us? Yes, it is! However, a node that can generate events on its own is required. Such a node exists \u2014 it's the 'delay line.' Let's see how a generator works with a period of 6 seconds in the illustration below.<\/p>\n<p><img decoding=\"async\" alt=\"ShIoTiny: knooppunten, verbindingen en gebeurtenissen of de kenmerken van het tekenen van programma&#039;s\" src=\"\/wp-content\/uploads\/2019\/08\/7dc1babedec97fb8177b846c760ff44e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe key element of the generator is node A \u2014 the delay line. If the state of the input to the delay line changes from 0 to 1, then a 1 will not appear at the output immediately, but only after a specified time. In our case, this is 3 seconds. Similarly, if the state of the input to the delay line changes from 1 to 0, then a 0 will appear at the output after the same 3 seconds. The delay time is set in tenths of a second. So a value of 30 means \u2014 3 seconds.<\/p>\n<p>The feature of the delay line is that it generates an event after the delay time has elapsed.<\/p>\n<p>Suppose that initially the output of the delay line was 0. After passing through node B \u2014 the inverter \u2014 this 0 turns into 1 and goes to the input of the delay line. Immediately, nothing happens. The output of the delay line remains 0, but the countdown of the delay time begins. Three seconds pass. And then the delay line generates an event. It outputs a 1. This unit, after passing through node B \u2014 the inverter \u2014 turns into 0 and goes to the input of the delay line. Another 3 seconds pass... and the process repeats. That is, every 3 seconds, the output state of the delay line changes from 0 to 1 and then from 1 to 0. The relay clicks. The generator works. The pulse period is 6 seconds (3 seconds at output zero and 3 seconds \u2014 one).<\/p>\n<p>However, in real circuits, it is often unnecessary to use even this example. There are special timer nodes that wonderfully and without outside help generate a sequence of pulses with a given period. The duration of 'zero' and 'one' in these pulses is equal to half the period.<\/p>\n<blockquote><p>To set periodic actions, use timer nodes.<\/p><\/blockquote>\n<p> I would like to note that such digital signals, where the duration of 'zero' and 'one' are equal, are called 'meander.' <\/p>\n<p>I hope I clarified the question about how the distribution of events between nodes occurs and what should not be done?<\/p>\n<h4>Conclusion and links<\/h4>\n<p>\nThe article turned out to be short, but this is a response article to the questions that arose about nodes and events.<\/p>\n<p>Naarmate firmware zich ontwikkelt en er nieuwe voorbeelden verschijnen, zal ik schrijven over hoe te programmeren <b>ShIoTiny<\/b> korte artikelen, zolang het interessant is voor mensen.<\/p>\n<p>Zoals eerder, schema's, firmware, voorbeelden, beschrijvingen van knooppunten en alles <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/shiotiny\/ShIoTinyBin\">anders hier<\/a><\/noindex>.<\/p>\n<p>Vragen, suggesties, kritiek \u2014 hierheen: <b>shiotiny@yandex.ru<\/b><br \/>\n<br \/>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463285\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0438\u043b\u0438 \u043e \u0447\u0435\u043c \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0422\u0435\u043c\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u041f\u041b\u041a ShIoTiny \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0443\u0442: ShIoTiny: \u043c\u0430\u043b\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f, \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0432\u0435\u0449\u0435\u0439 \u0438\u043b\u0438 \u00ab\u0437\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u0434\u043e \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u00bb. \u041e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f, \u043a\u0430\u043a \u0443\u0437\u043b\u044b, \u0441\u0432\u044f\u0437\u0438, \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 ESP8266, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u041f\u041b\u041a ShIoTiny. \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28078,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37422","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0438\u043b\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47ShIoTiny: \u0443\u0437\u043b\u044b, \u0441\u0432\u044f\u0437\u0438 \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0438\u043b\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:17:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:17:33+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47ShIoTiny: knooppunten, verbindingen en gebeurtenissen of bijzonderheden van het tekenen van programma's | ProHoster","description":"Belangrijke punten of.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47ShIoTiny: \u0443\u0437\u043b\u044b, \u0441\u0432\u044f\u0437\u0438 \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c | ProHoster","og:description":"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0438\u043b\u0438.","og:url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/shiotiny-uzly-svyazi-i-sobytiya-ili-osobennosti-risovaniya-programm","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:17:33+00:00","article:modified_time":"2019-10-31T19:17:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37422","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 17:45:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:27:24","updated":"2026-01-23 17:45:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/37422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=37422"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/37422\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/28078"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=37422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=37422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=37422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}