ShIoTiny: nœuds, koneksyon ak evènman oswa karakteristik nan pwogram desen

ShIoTiny: nœuds, koneksyon ak evènman oswa karakteristik nan pwogram desen

Pwen prensipal yo oswa ki sa atik sa a se sou

Sijè atik la se vizyèl PLC pwogramasyon ShIoTiny pou kay entelijan ki dekri isit la: ShIoTiny: ti automatisation, Entènèt bagay oswa "sis mwa anvan vakans".

Trè yon ti tan konsèp tankou ne, kominikasyon, devlopman, osi byen ke karakteristik nan chaje ak egzekite yon pwogram vizyèl sou ESP8266, ki se baz PLC la ShIoTiny.

Entwodiksyon oswa yon koup nan kesyon òganizasyon

Nan atik anvan an sou devlopman mwen an, mwen te bay yon brèf BECA de kapasite kontwolè a ShIoTiny.

Etranj ase, piblik la te montre yon enterè byen fò e li te poze m anpil kesyon. Gen kèk zanmi menm imedyatman ofri yo achte yon kontwolè nan men mwen. Non, mwen pa kont touche yon ti kòb, men konsyans mwen pa pèmèt mwen vann yon bagay ki toujou trè brit an tèm de lojisyèl.

Se poutèt sa, mwen afiche binè firmwèr yo ak dyagram aparèy sou GitHub: firmwèr + enstriksyon ki pi kout + dyagram + egzanp.

Koulye a, tout moun ka flash ESP-07 la epi jwe ak firmwèr la tèt yo. Si yon moun reyèlman vle egzakteman menm tablo a tankou nan foto a, Lè sa a, mwen gen plizyè nan yo. Ekri pa imel [imèl pwoteje]. Men, jan inoubliyab Ogurtsov te konn di: "Mwen pa responsab anyen!"

Se konsa, ann ale nan pwen an: ki sa ki "ne"(ne) ak"evènman"? Ki jan pwogram nan egzekite?

Kòm dabitid, ann kòmanse nan lòd: pa telechaje pwogram nan.

Ki jan pwogram nan chaje

Ann kòmanse ak sa k ap pase lè nou peze yon bouton Voye nan editè ElDraw ak sikwi-pwogram nou an, ki gen ladann bèl kare, vole nan aparèy la.

Premyèman, baze sou dyagram nou te trase a, deskripsyon li nan fòm tèks bati.
Dezyèmman, li tcheke si tout entrées ne yo konekte ak rezilta yo. Pa ta dwe gen okenn antre "pandye". Si yo detekte yon opinyon konsa, kous la pa pral chaje nan ShIoTiny, epi editè a ap montre yon avètisman korespondan.

Si tout bagay ale byen, editè a voye yon deskripsyon tèks nan sikwi a yon sèl ne nan yon tan nan ShIoTiny. Natirèlman, sikwi ki egziste deja soti nan ShIoTiny premye retire. Deskripsyon tèks ki kapab lakòz yo estoke nan memwa FLASH.

By wout la, si ou vle retire yon kous nan yon aparèy, Lè sa a, tou senpleman chaje yon kous vid nan li (ki pa gen yon sèl eleman ne).

Yon fwa ke tout pwogram sikwi a chaje nan ShIoTiny PLC a, li kòmanse "egzekisyon". Sa sa vle di?

Remake byen ke pwosesis pou chaje yon sikwi ki soti nan memwa FLASH lè pouvwa a limen ak lè w ap resevwa yon kous nan men editè a idantik.

Premyèman, objè ne yo kreye ki baze sou deskripsyon yo.
Lè sa a, koneksyon yo fèt ant nœuds. Sa vle di, lyen soti nan antre ak antre nan pwodiksyon yo pwodwi.

Epi sèlman apre tout bagay sa yo sik egzekisyon pwogram prensipal la kòmanse.

Mwen te ekri pou yon tan long, men pwosesis la tout antye - soti nan "chaje" kous la soti nan memwa FLASH yo kòmanse sik prensipal la - pran yon fraksyon nan yon segonn pou yon kous nan 60-80 nœuds.

Ki jan bouk prensipal la ap travay? Trè senp. Premye li tann pou aparisyon an devlopman nan kèk ne, Lè sa a, trete evènman sa a. E alò sou san rete. Oke, oswa jiskaske yo telechaje yon nouvo konplo sou ShIoTiny.

Plizyè fwa deja mwen te mansyone bagay tankou devlopman, ne и kominikasyon. Men, ki sa ki sa a soti nan yon pwen de vi lojisyèl? Nou pral pale sou sa jodi a.

Nœuds, koneksyon ak evènman yo

Jis gade nan egzanp yo nan pwogram sikwi pou ShIoTinykonprann ke dyagram nan konsiste de sèlman de antite - nœuds (oswa eleman) ak koneksyon ki genyen ant yo.

Knot, men wi oswa eleman sikwi se yon reprezantasyon vityèl nan kèk aksyon yo sou done yo. Sa a kapab yon operasyon aritmetik, yon operasyon lojik, oswa nenpòt operasyon ki vin nan tèt nou. Bagay pwensipal lan se ke ne a gen yon antre ak yon sòti.

Antre - sa a se plas la kote ne a resevwa done. Imaj yo opinyon yo se pwen ki toujou sou bò gòch nan ne la.

Sòti - sa a se plas la kote rezilta a nan operasyon ne la rekipere. Imaj pwodiksyon yo se pwen ki toujou sitiye sou bò dwat la nan ne la.

Kèk nœuds pa gen entrées. Nœuds sa yo jenere rezilta a andedan. Pou egzanp, yon ne konstan oswa yon ne detèktè: yo pa bezwen done ki soti nan lòt nœuds pou rapòte rezilta a.

Lòt nœuds, okontrè, pa gen okenn rezilta. Sa yo se nœuds ki montre, pou egzanp, actuators (relè oswa yon bagay ki sanble). Yo aksepte done men yo pa jenere yon rezilta enfòmatik ki disponib nan lòt nœuds.

Anplis de sa, gen tou yon ne kòmantè inik. Li pa fè anyen, pa gen okenn antre oswa rezilta. Objektif li se yo dwe yon eksplikasyon sou dyagram nan.

Sa ki te pase "evènman"? Evènman se aparisyon nouvo done nan nenpòt ne. Pa egzanp, evènman yo enkli: chanjman nan eta opinyon (nœud Antre), k ap resevwa done ki sòti nan yon lòt aparèy (nœuds MQTT и udp), ekspirasyon nan yon peryòd tan espesifye (nœuds Revèy и Reta) ak sou sa.

Pou kisa evènman yo ye? Wi, yo nan lòd yo detèmine nan ki ne nouvo done ki te parèt ak eta yo nan ki nœuds bezwen chanje an koneksyon avèk resi a nan nouvo done. Evènman an, kòm li te, "pase" sou chèn nan nan nœuds jiskaske li kontoune tout nœuds ki gen eta bezwen tcheke ak chanje.

Tout nœuds ka divize an de kategori.
Ann rele nœuds ki ka jenere evènman "nœuds aktif'.
Nou pral rele nœuds ki pa ka jenere evènman "nœuds pasif'.

Lè yon ne jenere yon evènman (ki se, nouvo done parèt nan pwodiksyon li yo), Lè sa a, nan ka jeneral eta a nan tout chèn nan nœuds ki konekte ak pwodiksyon an nan nœuds dèlko evènman an chanje.

Pou fè li klè, konsidere egzanp ki nan figi a.

ShIoTiny: nœuds, koneksyon ak evènman oswa karakteristik nan pwogram desen

Nœuds aktif yo isit la se Input1, Input2 ak Input3. Nœuds ki rete yo se pasif. Ann konsidere sa k ap pase lè youn oswa yon lòt antre fèmen. Pou konvenyans, rezilta yo rezime nan yon tablo.

ShIoTiny: nœuds, koneksyon ak evènman oswa karakteristik nan pwogram desen

Kòm ou ka wè, lè yon evènman rive, yon chèn bati soti nan ne sous la nan evènman an nan ne final la. Eta a nan nœuds sa yo ki pa tonbe nan chèn lan pa chanje.

Yon kesyon lejitim leve: kisa ki pral rive si de oswa menm plizyè evènman rive ansanm?

Kòm yon moun ki renmen travay Gleb Anfilov, mwen tante voye yon moun kirye nan liv li "Escape from Surprise." Sa a se yon "teyori relativite pou ti moun yo", ki eksplike byen ki sa "similtane" vle di ak ki jan yo viv ak li.

Men, pratikman tout bagay se pi senp: lè de oswa menm plizyè evènman rive, tout chenn ki soti nan chak sous evènman yo se sekans bati ak trete nan vire, epi pa gen okenn mirak rive.

Pwochen kesyon an konplètman lejitim soti nan yon lektè kirye se sa ki pral rive si nœuds yo konekte nan yon bag? Oswa, jan yo di nan mitan mesye entelijan sa yo, prezante fidbak. Sa vle di, konekte pwodiksyon youn nan nœuds yo ak opinyon nœud anvan an pou eta pwodiksyon ne sa a afekte eta opinyon li yo. Editè a pa pral pèmèt ou konekte dirèkteman pwodiksyon an nan yon ne ak opinyon li yo. ElDraw. Men, endirèkteman, tankou nan figi ki anba a, sa ka fè.

Se konsa, sa ki pral rive nan ka sa a? Repons lan pral trè "defini": depann sou ki nœuds. Ann gade egzanp ki nan figi a.

ShIoTiny: nœuds, koneksyon ak evènman oswa karakteristik nan pwogram desen

Lè kontak yo antre nan Input1 yo louvri, opinyon anwo a nan ne A se 0. Pwodiksyon an nan ne A se tou 0. Pwodiksyon an nan ne B se 1. Epi, finalman, opinyon ki pi ba nan ne A se 1. Tout bagay se XNUMX. klè. Ak pou moun ki pa klè, gade anba a pou yon deskripsyon sou fason "AK" ak "PA" nœuds yo travay.

Koulye a, nou fèmen kontak yo nan opinyon Input1, se sa ki, nou aplike youn nan opinyon anwo a nan ne A. Moun ki abitye ak elektwonik konnen ke an reyalite nou pral jwenn yon sikwi dèlko klasik lè l sèvi avèk eleman lojik. Ak nan teyori, yon kous konsa ta dwe pwodwi san rete sekans 1-0-1-0-1-0... nan pwodiksyon eleman A ak B. ak 0-1-0-1-0-1-…. Apre yo tout, evènman an dwe toujou ap chanje eta a nan nœuds A ak B, kouri nan yon sèk 2-3-2-3-...!

Men, an reyalite sa a pa rive. Kous la pral tonbe nan yon eta o aza - oswa relè a ap rete sou oswa koupe, oswa petèt yon ti kras Buzz sou yo ak sou plizyè fwa nan yon ranje. Tout depann sou move tan an nan poto sid Mas la. Epi se poutèt sa sa rive.

Yon evènman ki soti nan node Input1 chanje eta a nan ne A, Lè sa a, ne B, ak sou sa nan yon sèk plizyè fwa. Pwogram nan detekte "bouk" evènman an ak fòse sispann kanaval sa a. Apre sa, chanjman nan eta a nan nœuds A ak B yo bloke jiskaske yon nouvo evènman rive. Moman kote pwogram nan deside "sispann vire nan ti sèk!" - an jeneral, li depann de anpil faktè epi yo ka konsidere kòm o aza.

Fè atansyon lè w konekte ne nan yon bag - efè yo pa pral toujou evidan! Gen yon bon lide sou sa ak poukisa w ap fè!

Èske li toujou posib pou konstwi yon dèlko sou nœuds yo disponib pou nou? Wi ou kapab! Men, sa mande pou yon ne ki ka jenere evènman tèt li. Epi gen yon ne konsa - sa a se "liy reta". Ann wè ki jan yon dèlko ak yon peryòd 6 segonn travay nan figi ki anba a.

ShIoTiny: nœuds, koneksyon ak evènman oswa karakteristik nan pwogram desen

Eleman kle nan dèlko a se ne A - liy reta a. Si ou chanje eta a opinyon nan liy lan reta soti nan 0 a 1, Lè sa a, 1 pa pral parèt nan pwodiksyon an imedyatman, men sèlman apre yon tan espesifye. Nan ka nou an li se 3 segonn. Nan menm fason an, si ou chanje eta a opinyon nan liy lan reta soti nan 1 a 0, Lè sa a, 0 nan pwodiksyon an ap parèt apre menm 3 segonn yo. Tan reta a fikse nan dizyèm nan yon segonn. Sa vle di, valè 30 la vle di 3 segonn.

Yon karakteristik espesyal nan liy lan reta se ke li jenere yon evènman apre tan an reta te ekspire.

Ann sipoze ke okòmansman pwodiksyon an nan liy lan reta te 0. Apre yo fin pase ne B - varyateur la - sa a 0 vire nan 1 epi ale nan opinyon an nan liy lan reta. Pa gen anyen ki rive touswit. Nan pwodiksyon an nan liy lan reta, li pral rete 0, men dekont la nan tan an reta ap kòmanse. 3 segonn pase. Lè sa a, liy lan reta jenere yon evènman. Nan pwodiksyon li yo li parèt 1. Inite sa a, apre yo fin pase nan ne B - varyateur la - vire nan 0 epi ale nan opinyon an nan liy lan reta. Yon lòt 3 segonn pase... ak pwosesis la repete. Sa vle di, chak 3 segonn eta a nan pwodiksyon an liy reta chanje soti nan 0 a 1 ak Lè sa a, soti nan 1 a 0. Relè a klike sou. Dèlko a ap travay. Peryòd batman kè a se 6 segonn (3 segonn nan zewo pwodiksyon an ak 3 segonn nan pwodiksyon youn).

Men, nan sikui reyèl, anjeneral pa gen okenn bezwen sèvi ak egzanp sa a. Gen nœuds revèy espesyal ki parfe epi san èd deyò jenere yon sekans pulsasyon ak yon peryòd bay yo. Dire "zewo" ak "yon sèl" nan pulsasyon sa yo egal a mwatye peryòd la.

Pou mete aksyon peryodik, sèvi ak nœuds revèy.

Mwen sonje ke siyal dijital sa yo, kote dire "zewo" ak "yon" egal, yo rele "meander".

Mwen espere ke mwen te klarifye kesyon an yon ti kras sou ki jan evènman yo pwopaje ant nœuds ak sa yo pa fè?

Konklizyon ak referans

Atik la te vin kout, men atik sa a se yon repons a kesyon ki te parèt konsènan nœuds ak evènman yo.

Kòm firmwèr devlope ak nouvo egzanp parèt, mwen pral ekri sou fason pou pwogram ShIoTiny ti atik osi lontan ke li pral enteresan pou moun.

Kòm anvan, dyagram, firmwèr, egzanp, deskripsyon eleman ak tout bagay rès la se isit la.

Kesyon, sijesyon, kritik - ale isit la: [imèl pwoteje]

Sous: www.habr.com

Add nouvo kòmantè