ShIoTiny: nodes, haɗi da abubuwan da suka faru ko fasalulluka na shirye-shiryen zane

ShIoTiny: nodes, haɗi da abubuwan da suka faru ko fasalulluka na shirye-shiryen zane

Manyan batutuwa ko menene wannan labarin ya kunsa

Taken labarin shine shirye-shiryen PLC na gani ShioTiny don gidan mai hankali da aka kwatanta a nan: ShIoTiny: ƙaramin aiki da kai, Intanet na abubuwa ko "watanni shida kafin hutu".

A taqaice sosai ra'ayoyi kamar kulli, sadarwa, abubuwan da suka faru, da kuma fasalulluka na lodawa da aiwatar da shirin gani akan ESP8266, wanda shine tushen PLC ShioTiny.

Gabatarwa ko wasu tambayoyi na ƙungiya

A cikin labarin da ya gabata game da ci gaba na, na ba da taƙaitaccen bayani game da iyawar mai sarrafa ShioTiny.

Abin ban mamaki, jama'a sun nuna sha'awa sosai kuma sun yi mini tambayoyi da yawa. Wasu abokai ma nan da nan suka ba da shawarar siyan controller daga wurina. A’a, ba na adawa da samun ‘yan kuɗi kaɗan ba, amma lamirina bai ƙyale ni in sayar da wani abu da har yanzu yake da ɗanyen mai ta fuskar software.

Don haka, na buga binaries na firmware da zane na na'ura akan GitHub: firmware + umarnin mafi guntu + zane + misalai.

Yanzu kowa zai iya kunna ESP-07 kuma yayi wasa da firmware da kansu. Idan wani da gaske yana son ainihin allo iri ɗaya kamar a cikin hoton, to ina da da yawa daga cikinsu. Rubuta ta imel [email kariya]. Amma, kamar yadda Ogurtsov ba za a manta ba ya ce: "Ba ni da alhakin wani abu!"

Don haka, bari mu isa ga batun: menene"kulli"(node) kuma"taron"? Yaya ake aiwatar da shirin?

Kamar yadda muka saba, bari mu fara cikin tsari: ta hanyar zazzage shirin.

Yadda ake loda shirin

Bari mu fara da abin da ke faruwa idan muka danna maballin Upload a edita ElDraw da kuma shirin mu na kewayawa, wanda ya ƙunshi kyawawan murabba'ai, ya tashi cikin na'urar.

Na farko, bisa ga zanen da muka zana, an gina bayaninsa a sigar rubutu.
Abu na biyu, yana bincika ko duk abubuwan shigar kumburin suna da alaƙa da abubuwan fitarwa. Kada a sami mashigai na "rataye". Idan an gano irin wannan shigarwar, ba za a loda da'irar cikin ShIoTiny ba, kuma editan zai nuna faɗakarwa daidai.

Idan komai ya tafi daidai, editan yana aika bayanin rubutu na kulli ɗaya a lokaci ɗaya zuwa ShIoTiny. Tabbas, da'irar da ke akwai daga ShIoTiny an fara cirewa. An adana sakamakon bayanin rubutun a cikin ƙwaƙwalwar FLASH.

Af, idan kana so ka cire da'ira daga na'urar, sa'an nan kawai loda wani fanko kewaye a cikinta (ba dauke da guda node element).

Da zarar an ɗora dukkan shirin da'ira a cikin ShIoTiny PLC, zai fara "yi". Me ake nufi?

Lura cewa matakai don loda da'ira daga ƙwaƙwalwar FLASH lokacin da aka kunna wuta da lokacin karɓar kewayawa daga edita suna ɗaya.

Na farko, an ƙirƙiri abubuwan kumburi bisa bayanin su.
Sannan ana yin haɗi tsakanin nodes. Wato ana samar da hanyoyin haɗin kai zuwa abubuwan da ake buƙata da kuma abubuwan da aka shigar.

Kuma bayan duk wannan babban tsarin aiwatar da zagayowar yana farawa.

Na rubuta na dogon lokaci, amma dukan tsari - daga "Loading" da'irar daga ƙwaƙwalwar FLASH zuwa fara babban zagayowar - yana ɗaukar ɗan juzu'in na biyu don kewayawar nodes 60-80.

Yaya babban madauki yake aiki? Mai sauqi qwarai. Da farko yana jiran fitowar abubuwan da suka faru a wani kumburi, sannan aiwatar da wannan taron. Da sauransu ba iyaka. To, ko har sai sun loda sabon tsari zuwa ShIoTiny.

Sau da yawa na riga na ambata abubuwa kamar abubuwan da suka faru, kulli и sadarwa. Amma menene wannan daga mahangar software? Za mu yi magana game da wannan a yau.

Nodes, haɗi da abubuwan da suka faru

Kawai duba misalan shirye-shiryen da'ira don ShioTinydon fahimtar cewa zanen ya ƙunshi abubuwa biyu ne kawai - nodes (ko abubuwa) da haɗin gwiwa tsakanin su.

Kyau, amma a ko abubuwan kewayawa wakilci ne na kama-da-wane na wasu mataki akan data. Wannan na iya zama aiki na lissafi, aiki na hankali, ko duk wani aiki da ya zo a zuciyarmu. Babban abu shine kumburi yana da ƙofar shiga da fita.

shigarwa - wannan shine wurin da kumburi ke karɓar bayanai. Hotunan shigarwa maki ne waɗanda koyaushe suke gefen hagu na kumburi.

Fita - wannan shine wurin da aka dawo da sakamakon aikin kumburin. Hotunan da aka fitar sune maki waɗanda koyaushe suke a gefen dama na kumburi.

Wasu nodes ba su da abubuwan shiga. Irin waɗannan nodes suna haifar da sakamako a ciki. Misali, kumburin kullun ko kumburin firikwensin: basa buƙatar bayanai daga wasu nodes don bayar da rahoton sakamakon.

Sauran nodes, akasin haka, ba su da fitarwa. Waɗannan nodes ne waɗanda ke nunawa, alal misali, masu kunna wuta (relays ko wani abu makamancin haka). Suna karɓar bayanai amma ba sa haifar da sakamakon lissafin da ke samuwa ga wasu nodes.

Bugu da kari, akwai kuma kumburin sharhi na musamman. Ba ya yin komai, ba shi da abubuwan shigarwa ko fitarwa. Manufarsa shine ya zama bayani akan zane.

Me ya faru "taron? Taron shine fitowar sabbin bayanai a kowace kumburi. Misali, abubuwan da suka faru sun haɗa da: canji a cikin yanayin shigarwa (node Input), karɓar bayanai daga wata na'ura (nodes MQTT и UDP), ƙarewar ƙayyadadden lokaci (nodes Mai ƙidayar lokaci и Jinkiri) da sauransu.

Menene abubuwan da suka faru? Ee, domin sanin ko wane kumburi sabon bayanai ya taso da kuma jihohin da nodes ɗin ke buƙatar canza su dangane da karɓar sabbin bayanai. Lamarin, kamar yadda yake, "yana wucewa" tare da sarkar nodes har sai ya wuce duk nodes waɗanda jiharsu ke buƙatar dubawa da canza su.

Duk nodes za a iya raba kashi biyu.
Bari mu kira nodes waɗanda zasu iya haifar da abubuwan da suka faru "nodes masu aiki".
Za mu kira nodes waɗanda ba za su iya haifar da abubuwan da suka faru ba "m nodes".

Lokacin da kumburi ya haifar da wani abu (wato, sabbin bayanai sun bayyana a wurin fitar da shi), to, a cikin yanayin gabaɗaya yanayin dukkan sassan nodes ɗin da ke da alaƙa da fitarwa na kumburin janareta na taron yana canzawa.

Don bayyana shi, la'akari da misalin da ke cikin adadi.

ShIoTiny: nodes, haɗi da abubuwan da suka faru ko fasalulluka na shirye-shiryen zane

Ƙungiyoyin masu aiki anan sune Input1, Input2 da Input3. Sauran nodes ba su da ƙarfi. Bari mu yi la'akari da abin da zai faru lokacin da aka rufe ɗaya ko wata shigarwar. Don dacewa, an taƙaita sakamakon a cikin tebur.

ShIoTiny: nodes, haɗi da abubuwan da suka faru ko fasalulluka na shirye-shiryen zane

Kamar yadda muke iya gani, lokacin da wani al'amari ya faru, ana gina sarkar daga kullin tushen abin har zuwa ƙarshen kumburi. Yanayin waɗannan nodes waɗanda ba su fada cikin sarkar ba su canzawa.

Tambayar da ta dace ta taso: menene zai faru idan abubuwa biyu ko ma da yawa sun faru a lokaci guda?

A matsayina na mai son aikin Gleb Anfilov, an jarabce ni in aika wani mai tambaya mai ban sha'awa zuwa littafinsa "Tsere daga Mamaki." Wannan "ka'idar dangantaka ce ga ƙananan yara", wanda ya bayyana da kyau abin da "lokaci guda" ke nufi da kuma yadda za a zauna tare da shi.

Amma a zahiri komai ya fi sauƙi: lokacin da abubuwa biyu ko ma da yawa suka faru, duk sarƙoƙi daga kowane tushen taron ana yin su bi da bi, kuma babu wani abin al'ajabi da ke faruwa.

Tambaya ta gaba gaba ɗaya halaltacciya daga mai karatu mai ban sha'awa shine menene zai faru idan an haɗa nodes zuwa zobe? Ko kuma, kamar yadda suke faɗa a cikin waɗannan samari masu wayo na ku, gabatar da ra'ayi. Wato haɗa fitar da ɗaya daga cikin nodes zuwa shigar da kumburin da ya gabata ta yadda yanayin fitar wannan kumburin ya shafi yanayin shigarsa. Editan ba zai ƙyale ka ka haɗa abin da ke fitowa kai tsaye zuwa shigar da shi ba. ElDraw. Amma a kaikaice, kamar yadda a cikin adadi a ƙasa, ana iya yin haka.

To me zai faru a wannan harka? Amsar za ta kasance sosai "tabbatacce": dangane da wane nodes. Bari mu dubi misalin a cikin adadi.

ShIoTiny: nodes, haɗi da abubuwan da suka faru ko fasalulluka na shirye-shiryen zane

Lokacin da shigar da lambobin sadarwa na Input1 suna buɗewa, shigarwar babba na kumburin A shine 0. Fitarwar node A kuma ita ce 0. Fitowar node B shine 1. Kuma, a ƙarshe, ƙananan shigarwar kumburin A shine 1. Komai yana bayyananne. Kuma ga waɗanda ba su bayyana ba, duba ƙasa don bayanin yadda nodes "DA" da "BA" ke aiki.

Yanzu mun rufe lambobin sadarwa na shigarwar Input1, wato, muna amfani da ɗaya zuwa babban shigarwar kumburin A. Wadanda suka saba da na'urorin lantarki sun san cewa a gaskiya za mu sami da'irar janareta ta zamani ta amfani da abubuwan dabaru. Kuma a ka'idar, irin wannan da'ira ya kamata ya samar da jerin 1-0-1-0-1-0 ba tare da ƙarewa ba… a fitowar abubuwan A da B. kuma 0-1-0-1-0-1-…. Bayan haka, taron dole ne ya canza yanayin nodes A da B, yana gudana a cikin da'irar 2-3-2-3-...!

Amma a gaskiya hakan baya faruwa. Da'irar za ta faɗo cikin yanayin bazuwar - ko gudun ba da sanda zai ci gaba da kasancewa a kunne ko a kashe, ko kuma ƙila a kunna da kashewa sau da yawa a jere. Duk ya dogara da yanayin da ke kudu maso gabar Mars. Kuma shi ya sa hakan ke faruwa.

Wani lamari daga kumburin kumburi Input1 yana canza yanayin kumburin A, sannan kumburin B, da sauransu a cikin da'irar sau da yawa. Shirin yana gano "looping" na taron kuma da karfi ya dakatar da wannan bikin. Bayan wannan, ana toshe canje-canje a yanayin nodes A da B har sai wani sabon lamari ya faru. Lokacin da shirin ya yanke shawarar "dakatar da yadi a cikin da'irori!" - gabaɗaya, ya dogara da dalilai da yawa kuma ana iya ɗauka bazuwar.

Yi hankali lokacin haɗa kulli cikin zobe - tasirin ba koyaushe zai fito fili ba! Yi kyakkyawan ra'ayin abin da kuma dalilin da yasa kuke yin!

Shin har yanzu yana yiwuwa a gina janareta a kan nodes ɗin da muke da su? Ee, za ku iya! Amma wannan yana buƙatar kumburi wanda zai iya haifar da abubuwan da suka faru da kansa. Kuma akwai irin wannan kumburi - wannan shine "layin jinkiri". Bari mu ga yadda janareta mai tsawon daƙiƙa 6 ke aiki a wannan adadi na ƙasa.

ShIoTiny: nodes, haɗi da abubuwan da suka faru ko fasalulluka na shirye-shiryen zane

Maɓalli mai mahimmanci na janareta shine kumburi A - layin jinkiri. Idan kun canza yanayin shigar da layin jinkiri daga 0 zuwa 1, to 1 ba zai bayyana a wurin fitarwa nan da nan ba, amma bayan ƙayyadadden lokaci. A cikin yanayinmu yana da 3 seconds. Hakanan, idan kun canza yanayin shigar da layin jinkiri daga 1 zuwa 0, to 0 a wurin fitarwa zai bayyana bayan dakika 3 iri ɗaya. An saita lokacin jinkiri a cikin goma na daƙiƙa. Wato darajar 30 tana nufin 3 seconds.

Wani fasali na musamman na layin jinkiri shine cewa yana haifar da wani taron bayan lokacin jinkiri ya ƙare.

Bari mu ɗauka cewa farkon fitowar layin jinkiri ya kasance 0. Bayan wucewar node B - mai juyawa - wannan 0 ya juya zuwa 1 kuma yana zuwa shigar da layin jinkiri. Ba abin da ya faru nan da nan. A fitowar layin jinkiri, zai kasance 0, amma ƙidayar lokacin jinkirin zai fara. 3 seconds wuce. Sannan layin jinkirta yana haifar da wani lamari. A fitowar sa ya bayyana 1. Wannan naúrar, bayan wucewa ta node B - inverter - ya juya zuwa 0 kuma yana zuwa shigar da layin jinkiri. Wani daƙiƙa 3 ya wuce… kuma tsarin yana maimaitawa. Wato kowane sakan 3 yanayin fitowar layin jinkiri yana canzawa daga 0 zuwa 1 sannan daga 1 zuwa 0. Relay yana dannawa. Janareta yana aiki. Lokacin bugun bugun yana 6 seconds (3 seconds a sifilin fitarwa da 3 seconds a fitarwa ɗaya).

Amma, a cikin da'irori na ainihi, yawanci ba a buƙatar amfani da wannan misali. Akwai nodes na lokaci na musamman waɗanda daidai kuma ba tare da taimakon waje ba suna haifar da jeri na bugun jini tare da ƙayyadaddun lokaci. Tsawon lokacin "sifili" da "ɗaya" a cikin waɗannan bugun jini daidai yake da rabin lokacin.

Don saita ayyuka na lokaci-lokaci, yi amfani da nodes mai ƙidayar lokaci.

Na lura cewa irin waɗannan sigina na dijital, inda tsawon lokacin "sifili" da "ɗaya" daidai suke, ana kiran su "ma'ana".

Ina fata na ɗan fayyace tambayar game da yadda ake yada abubuwan da ke faruwa tsakanin nodes da abin da ba za a yi ba?

Ƙarshe da nassoshi

Labarin ya zama gajere, amma wannan labarin amsa ce ga tambayoyin da suka taso game da nodes da abubuwan da suka faru.

Yayin da firmware ke tasowa kuma sababbin misalai suka bayyana, zan rubuta game da yadda ake tsarawa ShioTiny kananan articles idan dai zai zama mai ban sha'awa ga mutane.

Kamar yadda ya gabata, zane, firmware, misalai, bayanin abubuwan da aka gyara da komai sauran yana nan.

Tambayoyi, shawarwari, zargi - je nan: [email kariya]

source: www.habr.com

Add a comment