ShioTiny: Titik, Tautan, sareng Kajadian atanapi Fitur Program Ngagambar

ShioTiny: Titik, Tautan, sareng Kajadian atanapi Fitur Program Ngagambar

Poin utama atawa naon artikel ieu ngeunaan

Topik tulisan nyaéta pemrograman PLC visual SIoTiny pikeun bumi pinter anu dijelaskeun di dieu: ShIoTiny: automation leutik, Internét tina hal atanapi "genep bulan sateuacan liburan".

Sakeudeung pisan konsep saperti knots, komunikasi, acara, kitu ogé fitur loading na executing program visual dina ESP8266, anu mangrupa dasar tina PLC SIoTiny.

Bubuka atanapi sababaraha patarosan organisasi

Dina artikel saméméhna ngeunaan pamekaran kuring, kuring masihan gambaran ringkes ngeunaan kamampuan controller SIoTiny.

Oddly cukup, publik némbongkeun minat cukup kuat sarta nanya kuring rada loba patarosan. Sababaraha babaturan malah langsung nawaran meuli controller ti kuring. Taya, Kaula mah ngalawan earning saeutik duit, tapi nurani kuring teu ngidinan kuring pikeun ngajual hiji hal anu masih pisan atah dina hal software.

Ku alatan éta, kuring masangkeun binari firmware sareng diagram alat dina GitHub: firmware + parentah shortest + diagram + conto.

Ayeuna dulur tiasa flash ESP-07 sarta maénkeun kalayan firmware sorangan. Upami aya anu hoyong persis papan anu sami sareng dina poto, maka kuring gaduh sababaraha di antarana. Tulis ku email [email dijaga]. Tapi, sakumaha unforgettable Ogurtsov dipaké pikeun nyebutkeun: "Kuring teu jawab nanaon!"

Janten, hayu urang angkat ka titik: naon éta "cangreud"(node) jeung"acara"? Kumaha programna dieksekusi?

Sakumaha biasa, hayu urang mimitian dina urutan: ku ngundeur program.

Kumaha program dimuat

Hayu urang mimitian ku naon anu lumangsung nalika urang mencet tombol upload dina redaktur ElDraw sarta circuit-program kami, diwangun ku kuadrat geulis, flies kana alat.

Firstly, dumasar kana diagram kami geus digambar, pedaran na dina wangun téks diwangun.
Kadua, éta pariksa naha sadaya input node disambungkeun ka kaluaran. Sakuduna teu aya lawang "gantung". Upami input sapertos dideteksi, sirkuit moal dimuat kana ShIoTiny, sareng éditor bakal nunjukkeun peringatan anu saluyu.

Lamun sagalana jalan ogé, redaktur ngirimkeun déskripsi téks sirkuit hiji titik dina hiji waktu ka ShIoTiny. Tangtosna, sirkuit anu aya ti ShIoTiny mimiti dipiceun. Pedaran téks anu dihasilkeun disimpen dina mémori FLASH.

Ku jalan kitu, upami anjeun hoyong miceun sirkuit tina alat, teras kantun ngamuat sirkuit kosong ka dinya (henteu ngandung unsur titik tunggal).

Sakali sakabéh program sirkuit dimuat kana ShIoTiny PLC, éta mimiti "ngaéksekusi". Naon éta hartosna?

Catet yén prosés pikeun ngamuat sirkuit tina mémori FLASH nalika kakuatan dihurungkeun sareng nalika nampi sirkuit ti redaktur idéntik.

Kahiji, objék titik dijieun dumasar kana déskripsi maranéhanana.
Lajeng sambungan antara titik dijieun. Nyaéta, tautan kaluaran ka input sareng input ka kaluaran dihasilkeun.

Sareng saatos sadayana ieu, siklus palaksanaan program utama dimimitian.

Kuring nulis pikeun lila, tapi sakabeh proses - ti "loading" sirkuit tina mémori FLASH pikeun ngamimitian siklus utama - nyokot fraksi detik pikeun sirkuit 60-80 titik.

Kumaha cara kerja loop utama? Basajan pisan. Mimiti anjeunna ngantosan munculna acara dina sababaraha titik, teras ngolah kajadian éta. Jeung saterusna endlessly. Nya, atanapi dugi aranjeunna unggah skéma énggal ka ShIoTiny.

Sababaraha kali geus kuring geus disebutkeun hal kawas acara, knots и komunikasi. Tapi naon ieu ti sudut pandang software? Urang bakal ngobrol ngeunaan ieu dinten ieu.

Titik, sambungan sareng acara

Ngan kasampak di conto program circuit pikeun SIoTinyngartos yen diagram diwangun ku ukur dua éntitas - titik (atawa elemen) jeung sambungan antara aranjeunna.

titik, tapi enya atawa unsur sirkuit mangrupakeun ngagambarkeun virtual sababaraha lampah leuwih data. Ieu tiasa operasi aritmatika, operasi logis, atanapi operasi naon waé anu aya dina pikiran urang. Hal utama nyaéta yén titik ngagaduhan lawang sareng kaluar.

asup - ieu tempat dimana titik narima data. Gambar input mangrupikeun titik anu sok aya di sisi kénca titik.

kaluar - ieu mangrupikeun tempat dimana hasil tina operasi node dicandak. Gambar kaluaran mangrupikeun titik anu sok aya di sisi katuhu titik.

Sababaraha titik teu gaduh input. Titik sapertos ngahasilkeun hasil internal. Contona, titik konstan atawa titik sensor: maranéhna teu butuh data ti titik séjén pikeun ngalaporkeun hasilna.

Titik anu sanés, sabalikna, henteu gaduh kaluaran. Ieu mangrupikeun titik anu nunjukkeun, contona, aktuator (relay atanapi anu sami). Aranjeunna nampi data tapi henteu ngahasilkeun hasil komputasi anu sayogi pikeun titik anu sanés.

Sajaba ti éta, aya ogé titik comment unik. Teu nanaon, teu boga inputs atanapi outputs. Tujuanana pikeun jadi katerangan dina diagram.

Aya naon "acara"? Kajadian nyaéta mecenghulna data anyar dina titik mana wae. Contona, acara ngawengku: parobahan dina kaayaan input (node ngasupkeun), narima data ti alat sejen (node MQTT и UDP), béakna periode waktu nu tangtu (node otomatis и nunda) teras salajengna.

Naon ari acara? Leres, pikeun nangtoskeun dimana titik data énggal parantos timbul sareng nagara bagian mana titik kedah dirobih dina sambungan sareng nampi data énggal. Kajadian, saolah-olah, "ngaliwatan" sapanjang ranté titik dugi ka ngalangkungan sadaya titik anu kaayaanna kedah dipariksa sareng dirobih.

Sadaya titik tiasa dibagi kana dua kategori.
Hayu urang nelepon titik nu bisa ngahasilkeun acara "titik aktip".
Kami bakal nyauran titik anu teu tiasa ngahasilkeun acara "titik pasip".

Nalika titik hiji dibangkitkeun hiji acara (nyaéta, data anyar némbongan dina kaluaran na), dina kasus umum kaayaan sakabéh ranté titik disambungkeun ka kaluaran tina acara generator titik robah.

Sangkan jelas, pertimbangkeun conto dina gambar.

ShioTiny: Titik, Tautan, sareng Kajadian atanapi Fitur Program Ngagambar

Titik aktif di dieu nyaéta Input1, Input2 sareng Input3. Titik sésana pasip. Hayu urang nganggap naon anu lumangsung nalika hiji atawa input sejen ditutup. Pikeun genah, hasilna diringkeskeun dina tabél.

ShioTiny: Titik, Tautan, sareng Kajadian atanapi Fitur Program Ngagambar

Sakumaha anjeun tiasa tingali, nalika hiji kajadian lumangsung, ranté diwangun ti titik sumber kajadian ka titik tungtung. Kaayaan éta titik anu henteu digolongkeun kana ranté henteu robih.

Patarosan anu sah timbul: naon anu bakal kajantenan upami dua atanapi sababaraha acara lumangsung sakaligus?

Salaku pencinta karya Gleb Anfilov, kuring kagoda pikeun ngirim pananya panasaran kana bukuna "Escape from Surprise". Ieu mangrupikeun "téori rélativitas pikeun budak leutik", anu ngajelaskeun ogé naon hartosna "simultaneous" sareng kumaha carana hirup sareng éta.

Tapi sacara praktis sadayana langkung saderhana: nalika aya dua atanapi malah sababaraha kajadian, sadaya ranté tina unggal sumber kajadian sacara berurutan diwangun sareng diolah, sareng teu aya keajaiban.

Patarosan lengkep sah salajengna ti pamaca panasaran naon anu bakal kajadian lamun titik disambungkeun kana ring? Atanapi, sakumaha anu aranjeunna nyarios diantara jalma-jalma pinter ieu, ngenalkeun tanggapan. Nyaéta, sambungkeun kaluaran salah sahiji titik ka input titik saméméhna supados kaayaan kaluaran titik ieu mangaruhan kaayaan input na. Éditor moal ngijinkeun anjeun langsung nyambungkeun kaluaran titik ka inputna. ElDraw. Tapi sacara henteu langsung, sapertos dina gambar di handap ieu, ieu tiasa dilakukeun.

Janten naon anu bakal kajadian dina hal ieu? Jawabanna bakal "pasti": gumantung kana titik mana. Hayu urang nempo conto dina gambar.

ShioTiny: Titik, Tautan, sareng Kajadian atanapi Fitur Program Ngagambar

Nalika kontak input Input1 dibuka, input luhur titik A nyaéta 0. Kaluaran titik A ogé 0. Kaluaran titik B nyaéta 1. Sareng, tungtungna, input handap titik A nyaéta 1. jelas. Sareng pikeun anu henteu écés, tingali di handap pikeun pedaran kumaha titik "AND" sareng "NOT".

Ayeuna urang nutup kontak tina input Input1, nyaeta, urang nerapkeun hiji ka input luhur titik A. Jalma anu wawuh jeung éléktronika nyaho yén dina kanyataanana urang bakal meunang sirkuit generator Palasik ngagunakeun elemen logika. Sareng dina tiori, sirkuit sapertos kitu kedah ngahasilkeun sekuen 1-0-1-0-1-0… dina kaluaran unsur A sareng B. jeung 0-1-0-1-0-1-…. Barina ogé, acara kudu terus ngarobah kaayaan titik A jeung B, ngajalankeun dina bunderan 2-3-2-3-...!

Tapi dina kanyataanana ieu teu lumangsung. Sirkuit bakal digolongkeun kana kaayaan acak - atanapi relay bakal tetep hurung atawa mareuman, atawa meureun rada buzz sareng mareuman sababaraha kali dina urutan. Eta sadayana gumantung kana cuaca di kutub kidul Mars. Jeung éta naha ieu kajadian.

Hiji kajadian ti titik Input1 ngarobah kaayaan titik A, lajeng titik B, jeung saterusna dina bunderan sababaraha kali. Program ngadeteksi "looping" acara sareng maksa ngeureunkeun karnaval ieu. Saatos ieu, parobahan dina kaayaan titik A sareng B diblokir dugi ka kajadian anyar. Momen di mana program mutuskeun "eureun spinning di bunderan!" - sacara umum, éta gumantung kana sababaraha faktor sareng tiasa dianggap acak.

Ati-ati nalika nyambungkeun knot kana cincin - épékna moal atra! Boga ide anu saé ngeunaan naon sareng kunaon anjeun lakukeun!

Naha masih tiasa ngawangun generator dina titik anu sayogi pikeun urang? Sumuhun, anjeun tiasa! Tapi ieu merlukeun titik nu bisa ngahasilkeun acara sorangan. Sareng aya titik sapertos kitu - ieu mangrupikeun "garis reureuh". Hayu urang tingali kumaha generator ku periode 6 detik jalan dina gambar di handap ieu.

ShioTiny: Titik, Tautan, sareng Kajadian atanapi Fitur Program Ngagambar

Unsur konci generator nyaéta titik A - garis reureuh. Upami anjeun ngarobih kaayaan input tina garis reureuh tina 0 ka 1, 1 moal langsung muncul dina kaluaran, tapi ngan saatos waktos anu ditangtukeun. Dina kasus urang éta 3 detik. Dina cara anu sami, upami anjeun ngarobih kaayaan input tina garis reureuh tina 1 ka 0, maka 0 dina kaluaran bakal muncul saatos 3 detik anu sami. Waktu reureuh disetel dina sapuluh detik. Hartina, nilai 30 hartina 3 detik.

A fitur husus tina garis reureuh téh nya éta dibangkitkeun hiji acara sanggeus waktu reureuh geus kadaluwarsa.

Hayu urang nganggap yén mimitina kaluaran tina garis reureuh éta 0. Sanggeus ngaliwatan titik B - inverter - ieu 0 robah jadi 1 sarta mana anu ka input tina garis reureuh. Euweuh kajadian langsung. Dina kaluaran garis reureuh, éta bakal tetep 0, tapi undur-unduran waktos reureuh bakal ngamimitian. 3 detik ngaliwat. Lajeng garis reureuh dibangkitkeun hiji acara. Dina kaluaran na némbongan 1. Unit ieu, sanggeus ngaliwatan titik B - inverter nu - robah jadi 0 sarta mana anu ka input tina garis reureuh. Séjén 3 detik kaliwat ... sarta prosés nu repeats. Hartina, unggal 3 detik kaayaan kaluaran garis reureuh robah tina 0 ka 1 lajeng ti 1 ka 0. relay nu clicks. Generator berpungsi. Periode pulsa nyaéta 6 detik (3 detik dina kaluaran nol sareng 3 detik dina kaluaran hiji).

Tapi, dina sirkuit nyata, biasana henteu kedah nganggo conto ieu. Aya titik timer husus anu sampurna sarta tanpa bantuan luar ngahasilkeun runtuyan pulsa kalawan periode nu tangtu. Durasi "enol" sareng "hiji" dina pulsa ieu sami sareng satengah période.

Pikeun nyetel tindakan périodik, paké titik timer.

Kuring dicatet yén sinyal digital sapertos, dimana durasi "enol" jeung "hiji" sarua, disebut "meander".

Kuring miharep kuring geus netelakeun patarosan saeutik ngeunaan kumaha kajadian anu propagated antara titik jeung naon teu ngalakukeun?

Kacindekan jeung rujukan

Tulisan éta pondok, tapi tulisan ieu mangrupikeun jawaban kana patarosan anu timbul ngeunaan titik sareng acara.

Nalika firmware ngembang sareng conto anyar muncul, kuring bakal nyerat ngeunaan kumaha program SIoTiny artikel leutik salami eta bakal metot pikeun jalma.

Sapertos sateuacanna, diagram, firmware, conto, pedaran komponén sareng sadayana sésana aya di dieu.

Patarosan, saran, kritik - buka di dieu: [email dijaga]

sumber: www.habr.com

Tambahkeun komentar