ShIoTiny: Nòtaichean, Ceanglaichean, agus Tachartasan no Feartan Phrògraman Dealbhaidh

ShIoTiny: Nòtaichean, Ceanglaichean, agus Tachartasan no Feartan Phrògraman Dealbhaidh

Prìomh phuingean no cò mu dheidhinn a tha an artaigil seo

Is e cuspair an artaigil prògramadh lèirsinneach PLC ShIoTiny airson an dachaigh spaideil a tha air a mhìneachadh an seo: ShIoTiny: fèin-ghluasad beag, eadar-lìn de rudan no “sia mìosan ro shaor-làithean”.

Gu math goirid bun-bheachdan mar nodan, conaltradh, leasachaidhean, a bharrachd air feartan luchdachadh agus cur an gnìomh prògram lèirsinneach air ESP8266, a tha na bhunait airson PLC ShIoTiny.

Ro-ràdh no ceist no dhà mun eagrachadh

Anns an artaigil roimhe mu mo leasachadh, thug mi sealladh farsaing air comasan an rianadair ShIoTiny.

Gu h-annasach gu leòr, nochd am poball ùidh làidir agus chuir iad tòrr cheistean orm. Thairg cuid de charaidean eadhon sa bhad rianadair a cheannach bhuam. Chan e, chan eil mi an aghaidh beagan airgid a chosnadh, ach chan eil mo chogais a’ leigeil leam rudeigin a reic a tha fhathast gu math amh a thaobh bathar-bog.

Mar sin, chuir mi a-steach na binaries firmware agus an diagram inneal air GitHub: firmware + an stiùireadh as giorra + diagram + eisimpleirean.

A-nis faodaidh a h-uile duine an ESP-07 a lasadh agus cluich leis a’ firmware fhèin. Ma tha duine dha-rìribh ag iarraidh an aon bhòrd agus a tha san dealbh, tha grunn dhiubh agam. Sgrìobh le post-dealain [post-d fo dhìon]. Ach, mar a bhiodh an Ogurtsov neo-chinnteach ag ràdh: "Chan eil uallach orm airson dad!"

Mar sin, leig dhuinn faighinn chun a 'phuing: dè a th' ann "snaidhm"(nód) agus"tachartas"? Ciamar a tha am prògram air a chur an gnìomh?

Mar as àbhaist, leig leinn tòiseachadh ann an òrdugh: le bhith a 'luchdachadh sìos a' phrògram.

Ciamar a luchdadh a-nuas a ' phrògram

Feuch an tòisich sinn leis na thachras nuair a bhrùthas sinn putan A 'luchdadh suas anns an deasaiche ElDraw agus tha am prògram cuairteachaidh againn, anns a bheil ceàrnagan breagha, ag itealaich a-steach don inneal.

An toiseach, stèidhichte air an diagram a tha sinn air a tharraing, tha an tuairisgeul ann an cruth teacsa air a thogail.
San dàrna h-àite, bidh e a’ sgrùdadh a bheil a h-uile cuir a-steach nód ceangailte ri toraidhean. Cha bu chòir slighean a-steach “crochte” a bhith ann. Ma lorgar an leithid de chuir a-steach, cha tèid an cuairteachadh a luchdachadh a-steach do ShIoTiny, agus seallaidh an deasaiche rabhadh co-fhreagarrach.

Ma thèid a h-uile càil gu math, cuiridh an neach-deasachaidh tuairisgeul teacsa den chuairt aon nód aig aon àm gu ShIoTiny. Gu dearbh, thèid an cuairteachadh a th’ ann bho ShIoTiny a thoirt air falbh an toiseach. Tha an tuairisgeul teacsa a thig às air a stòradh ann an cuimhne FLASH.

Air an t-slighe, ma tha thu airson cuairt a thoirt air falbh bhon inneal, dìreach cuir cuairt falamh a-steach ann (gun a bhith a ’toirt a-steach aon eileamaid nód).

Aon uair ‘s gu bheil am prògram cuairteachaidh gu lèir air a luchdachadh a-steach don ShIoTiny PLC, tòisichidh e“ a ’cur gu bàs”. Dè a tha e a’ ciallachadh?

Thoir an aire gu bheil na pròiseasan airson cuairt a luchdachadh bho chuimhne FLASH nuair a thèid an cumhachd a thionndadh air agus nuair a gheibh thu cuairt bhon neach-deasachaidh co-ionann.

An toiseach, thèid nithean nodan a chruthachadh a rèir an tuairisgeul.
An uairsin tha ceanglaichean air an dèanamh eadar nodan. Is e sin, thathas a’ cruthachadh ceanglaichean de thoraidhean gu cuir a-steach agus cuir a-steach gu toraidhean.

Agus is ann dìreach às deidh seo a thòisicheas prìomh chearcall gnìomh a ’phrògraim.

Sgrìobh mi airson ùine mhòr, ach tha am pròiseas gu lèir - bho “luchdachadh” a’ chuairt bho chuimhne FLASH gu bhith a’ tòiseachadh air a’ phrìomh chearcall - a’ toirt bloigh diog airson cuairt de nodan 60-80.

Ciamar a tha am prìomh lùb ag obair? Gu math sìmplidh. An toiseach tha e a 'feitheamh airson an nochd leasachaidhean aig nód air choireigin, an uairsin pròiseas an tachartais sin. Agus mar sin air adhart gun chrìoch. Uill, neo gus an luchdaich iad suas sgeama ùr gu ShIoTiny.

Iomadh uair mu thràth tha mi air iomradh a thoirt air rudan mar leasachaidhean, nodan и conaltradh. Ach dè a tha seo bho shealladh bathar-bog? Bruidhnidh sinn mu dheidhinn seo an-diugh.

Nòtaichean, ceanglaichean agus tachartasan

Dìreach thoir sùil air eisimpleirean de phrògraman cuairteachaidh airson ShIoTinytuigsinn nach eil anns an diagram ach dà bhuidheann - nodan (no eileamaidean) agus na ceanglaichean eatorra.

Snaidhm, ach tha no eileamaid cuairteachaidh tha e na riochdachadh brìgheil de chuid действия thairis air an dàta. Faodaidh seo a bhith na ghnìomhachd àireamhachd, na ghnìomhachd loidsigeach, no gnìomhachd sam bith a thig gu ar n-inntinn. Is e am prìomh rud gu bheil slighe a-steach agus slighe a-mach aig an nód.

Clàrachadh - is e seo an t-àite far am faigh an nód dàta. Tha na h-ìomhaighean cuir a-steach nam puingean a tha an-còmhnaidh air taobh clì an nód.

Sgaoileadh - is e seo an t-àite far am faighear toradh gnìomhachd an nód. Tha na h-ìomhaighean toraidh mar phuingean a tha an-còmhnaidh suidhichte air taobh deas an nód.

Chan eil cuir a-steach aig cuid de nodan. Bidh nodan mar sin a 'cruthachadh an toradh taobh a-staigh. Mar eisimpleir, nód seasmhach no nòta mothachaidh: chan fheum iad dàta bho nodan eile gus an toradh aithris.

Air an làimh eile, chan eil toraidhean sam bith aig nodan eile. Is iad sin nodan a tha a’ taisbeanadh, mar eisimpleir, actuators (ath-chraolaidhean no rudeigin coltach ris). Bidh iad a’ gabhail ri dàta ach chan eil iad a’ gineadh toradh coimpiutaireachd a tha ri fhaotainn do nodan eile.

A bharrachd air an sin, tha nod beachd sònraichte ann cuideachd. Chan eil e a’ dèanamh dad, chan eil cuir a-steach no toraidhean ann. Is e an t-amas aige a bhith na mhìneachadh air an diagram.

Dè "tachartas"?" Tachartas a bheil dàta ùr a’ nochdadh ann an nód sam bith. Mar eisimpleir, tha tachartasan a’ toirt a-steach: atharrachadh ann an staid cuir a-steach (node Input), a’ faighinn dàta bho inneal eile (nodan MQTT и UDP), crìoch ùine ainmichte (nodan Timer и dàil) Agus mar sin air adhart.

Cò dha a tha tachartasan? Tha, gus faighinn a-mach dè an nód a tha dàta ùr air èirigh agus na stàitean far am feumar nodan atharrachadh a thaobh faighinn dàta ùr. Bidh an tachartas, mar gum biodh, “a’ dol seachad ”air an t-sreath de nodan gus an tèid e seachad air a h-uile nod aig a bheil feum air sgrùdadh agus atharrachadh.

Faodar a h-uile nodan a roinn ann an dà roinn.
Canaidh sinn nodan as urrainn tachartasan a ghineadh"nodan gnìomhach".
Canaidh sinn nodan nach urrainn tachartasan a ghineadh “nodan fulangach".

Nuair a bhios nód a’ gineadh tachartas (is e sin, tha dàta ùr a’ nochdadh aig an toradh aige), an uairsin anns a’ chùis choitcheann bidh staid an t-sreath iomlan de nodan ceangailte ri toradh an t-slabhraidh gineadair tachartais ag atharrachadh.

Gus a dhèanamh soilleir, beachdaich air an eisimpleir san fhigear.

ShIoTiny: Nòtaichean, Ceanglaichean, agus Tachartasan no Feartan Phrògraman Dealbhaidh

Is e na nodan gnìomhach an seo Input1, Input2 agus Input3. Tha na nodan a tha air fhàgail fulangach. Beachdaichidh sinn air dè thachras nuair a thèid aon no tè eile a dhùnadh. Airson goireasachd, tha na toraidhean air an geàrr-chunntas ann an clàr.

ShIoTiny: Nòtaichean, Ceanglaichean, agus Tachartasan no Feartan Phrògraman Dealbhaidh

Mar a chì thu, nuair a bhios tachartas a’ tachairt, thèid slabhraidh a thogail bho nód stòr an tachartais gu nód crìochnachaidh. Chan eil staid nan nodan sin nach eil a’ tuiteam a-steach don t-seine ag atharrachadh.

Tha ceist dhligheach ag èirigh: dè a thachras ma thachras dhà no eadhon grunn thachartasan aig an aon àm?

Mar neach a tha dèidheil air obair Gleb Anfilov, tha mi air mo mhealladh gus neach-ceasnachaidh neònach a chuir chun leabhar aige “Escape from Surprise”. Is e seo “teòiridh càirdeas don fheadhainn bheaga”, a tha a’ mìneachadh gu math dè a tha “aig an aon àm” a’ ciallachadh agus mar a dh’ fheumas tu a bhith beò leis.

Ach cha mhòr nach eil a h-uile dad tòrr nas sìmplidh: nuair a bhios dhà no eadhon grunn thachartasan a ’tachairt, tha na slabhraidhean uile bho gach stòr tachartais air an togail agus air an giullachd an uair sin, agus chan eil mìorbhailean a’ tachairt.

Is e an ath cheist gu tur dligheach bho leughadair neònach dè a thachras ma tha na nodan ceangailte ri fàinne? No, mar a chanas iad am measg nan daoine spaideil seo agad, thoir a-steach fios air ais. Is e sin, ceangail toradh aon de na nodan ri cuir a-steach an nòta roimhe gus am bi staid toraidh an nód seo a’ toirt buaidh air staid a chuir a-steach. Cha leig an deasaiche leat toradh nòta a cheangal gu dìreach ris an cuir a-steach aige. ElDraw. Ach gu neo-dhìreach, mar anns an fhigear gu h-ìosal, faodar seo a dhèanamh.

Mar sin dè a thachras sa chùis seo? Bidh am freagairt gu math “cinnteach”: a rèir dè na nodan. Bheir sinn sùil air an eisimpleir anns an dealbh.

ShIoTiny: Nòtaichean, Ceanglaichean, agus Tachartasan no Feartan Phrògraman Dealbhaidh

Nuair a tha fiosan cuir a-steach Input1 fosgailte, is e an cuir a-steach àrd aig nód A 0. Is e toradh nód A cuideachd 0. Is e toradh nód B 1. Agus, mu dheireadh, is e an cuir a-steach as ìsle de nód A 1. Tha a h-uile dad ann soilleir. Agus dhaibhsan nach eil soilleir, seall gu h-ìosal airson tuairisgeul air mar a tha na nodan “AND” agus “NOT” ag obair.

A-nis bidh sinn a’ dùnadh luchd-aithne an cuir a-steach Input1, is e sin, bidh sinn a’ cur fear a-steach gu cuir a-steach àrd nód A. Tha fios aig an fheadhainn a tha eòlach air electronics gum faigh sinn cuairteachadh gineadair clasaigeach stèidhichte air eileamaidean loidsig. Agus ann an teòiridh, bu chòir don leithid de chuairt an t-sreath 1-0-1-0-1-0 a thoirt gu buil gun chrìoch aig toradh eileamaidean A agus B. agus 0-1-0-1-0-1-…. Às deidh na h-uile, feumaidh an tachartas atharrachadh gu cunbhalach air staid nodan A agus B, a 'ruith ann an cearcall 2-3-2-3-...!

Ach ann an da-rìribh chan eil seo a 'tachairt. Tuitidh an cuairteachadh a-steach do staid air thuaiream - no fuirichidh an t-sealaidheachd air no dheth, no is dòcha beagan air adhart agus dheth grunn thursan ann an sreath. Tha e uile an urra ris an aimsir aig pòla a deas Mars. Agus is ann air sgàth sin a tha seo a’ tachairt.

Bidh tachartas bho nód Input1 ag atharrachadh staid nód A, an uairsin nód B, agus mar sin air adhart ann an cearcall grunn thursan. Bidh am prògram a’ lorg “lùb” an tachartais agus gu làidir a’ stad a’ charnabhail seo. Às deidh seo, tha atharrachaidhean ann an staid nodan A agus B air am bacadh gus an tachair tachartas ùr. An àm aig a bheil am prògram a’ co-dhùnadh “stad a’ snìomh ann an cearcallan!” - san fharsaingeachd, tha e an crochadh air mòran fhactaran agus faodar beachdachadh air thuaiream.

Bi faiceallach nuair a cheanglas tu snaidhmean ri fàinne - cha bhi a’ bhuaidh an-còmhnaidh follaiseach! Biodh deagh bheachd agad air dè agus carson a tha thu a’ dèanamh!

A bheil e comasach fhathast gineadair a thogail air na nodan a tha rim faighinn dhuinn? Seadh, faodaidh tu! Ach feumaidh seo nód a ghineadh tachartasan fhèin. Agus tha leithid de nód ann - is e seo an “loidhne dàil”. Chì sinn mar a bhios gineadair le ùine de 6 diogan ag obair anns an fhigear gu h-ìosal.

ShIoTiny: Nòtaichean, Ceanglaichean, agus Tachartasan no Feartan Phrògraman Dealbhaidh

Is e prìomh eileamaid an gineadair nód A - an loidhne dàil. Ma dh’ atharraicheas tu suidheachadh cuir a-steach na loidhne dàil bho 0 gu 1, cha nochd 1 aig an toradh sa bhad, ach dìreach às deidh ùine ainmichte. Anns a 'chùis againn tha e 3 diogan. San aon dòigh, ma dh’ atharraicheas tu staid cuir a-steach na loidhne dàil bho 1 gu 0, an uairsin nochdaidh 0 aig an toradh às deidh na h-aon 3 diogan. Tha an ùine dàil air a shuidheachadh ann an deicheamhan de dhiog. Is e sin, tha an luach 30 a’ ciallachadh 3 diogan.

Is e feart sònraichte den loidhne dàil gu bheil e a’ gineadh tachartas às deidh don ùine dàil tighinn gu crìch.

Gabhamaid ris gur e toradh na loidhne dàil an toiseach 0. Às deidh dhuinn a dhol seachad air nód B - an inverter - bidh an 0 seo a’ tionndadh gu 1 agus a’ dol gu cuir a-steach na loidhne dàil. Chan eil dad a’ tachairt sa bhad. Aig toradh na loidhne dàil, fuirichidh e 0, ach tòisichidh cunntadh sìos na h-ùine dàil. 3 diogan seachad. Agus an uairsin bidh an loidhne dàil a’ gineadh tachartas. Aig an toradh tha e a’ nochdadh 1. Bidh an aonad seo, às deidh dha a dhol tro nód B - an inverter - a’ tionndadh gu 0 agus a’ dol gu cuir a-steach na loidhne dàil. Thèid 3 diogan eile seachad ... agus bidh am pròiseas ag ath-aithris. Is e sin, a h-uile 3 diog bidh staid toradh loidhne dàil ag atharrachadh bho 0 gu 1 agus an uairsin bho 1 gu 0. Bidh an t-sealaidheachd a’ cliogadh. Tha an gineadair ag obair. Is e an ùine cuisle 6 diogan (3 diogan aig an toradh neoni agus 3 diogan aig an toradh a h-aon).

Ach, ann an cuairtean fìor, mar as trice chan eil feum air an eisimpleir seo a chleachdadh. Tha nodan timer sònraichte ann a bhios gu foirfe agus às aonais cuideachadh bhon taobh a-muigh a’ gineadh sreath de bhuillean le ùine shònraichte. Tha fad “neoni” agus “aon” anns na buillean sin co-ionann ri leth na h-ùine.

Gus gnìomhan bho àm gu àm a shuidheachadh, cleachd nodan timer.

Tha mi a’ toirt fa-near gu bheil comharran didseatach mar sin, far a bheil fad “neoni” agus “aon” co-ionann, air an ainmeachadh mar “lùbadh”.

Tha mi an dòchas gu bheil mi air a’ cheist a shoilleireachadh beagan mu mar a tha tachartasan air an gluasad eadar nodan agus dè nach bu chòir a dhèanamh?

Co-dhùnadh agus iomraidhean

Thionndaidh an artaigil a-mach gu bhith goirid, ach tha an artaigil seo mar fhreagairt do cheistean a tha air èirigh a thaobh nodan agus tachartasan.

Mar a bhios firmware a’ leasachadh agus eisimpleirean ùra a’ nochdadh, sgrìobhaidh mi mu dheidhinn mar a nì thu prògramadh ShIoTiny artaigilean beaga fhad ‘s a bhios e inntinneach dha daoine.

Mar roimhe, diagram, firmware, eisimpleirean, tuairisgeul air co-phàirtean agus a h-uile càil tha an còrr an seo.

Ceistean, molaidhean, càineadh - rachaibh an seo: [post-d fo dhìon]

Source: www.habr.com

Cuir beachd ann