ShioTiny: гиреҳҳо, пайвастҳо ва рӯйдодҳо ё хусусиятҳои барномаҳои рассомӣ

ShioTiny: гиреҳҳо, пайвастҳо ва рӯйдодҳо ё хусусиятҳои барномаҳои рассомӣ

Нуқтаҳои асосӣ ё ин мақола дар бораи он чӣ аст

Мавзӯи мақола барномасозии визуалии PLC мебошад ShioTiny барои хонаи интеллектуалӣ, ки дар ин ҷо тавсиф шудааст: ShioTiny: автоматизатсияи хурд, Интернети ашё ё "шаш моҳ пеш аз таътил".

Хеле мухтасар мафхумхо ба монанди гиреҳҳо, алоқа, чорабиниҳо, инчунин хусусиятҳои боркунӣ ва иҷрои барномаи визуалӣ оид ба ESP8266, ки асоси PLC мебошад ShioTiny.

Муқаддима ё якчанд саволҳои ташкилӣ

Дар мақолаи қаблӣ дар бораи рушди худ, ман дар бораи имкониятҳои контроллер шарҳи мухтасар додам ShioTiny.

Аҷиб он аст, ки мардум таваҷҷӯҳи зиёд зоҳир карданд ва ба ман саволҳои зиёде доданд. Баъзе дӯстон ҳатто дарҳол пешниҳод карданд, ки аз ман контроллер бихаранд. Не, ман мухолиф нестам, ки каме пул кор кунам, аммо виҷдонам намегузорад, ки чизеро, ки ҳанӯз аз ҷиҳати нармафзор хеле хом аст, фурӯшам.

Аз ин рӯ, ман бинарҳои нармафзор ва диаграммаи дастгоҳро дар GitHub ҷойгир кардам: нармафзори миёнаравӣ + дастурҳои кӯтоҳтарин + диаграмма + мисолҳо.

Акнун ҳама метавонанд ESP-07-ро дурахш кунанд ва худашон бо нармафзор бозӣ кунанд. Агар касе дар ҳақиқат ҳамон тахтаи дар акс доштаро мехоҳад, пас ман якчандтои онҳоро дорам. Ба воситаи почтаи электронӣ нависед [почтаи электронӣ ҳифз карда шудааст]. Аммо, чунон ки Огурцови фаромӯшнашаванда мегуфт: «Ман барои ҳеҷ чиз ҷавобгар нестам!».

Пас, биёед ба нуктае биравем: чист?данд"(гиреҳ) ва"событие"? Барнома чӣ гуна иҷро мешавад?

Мисли маъмул, биёед бо тартиб оғоз кунем: бо зеркашии барнома.

Чӣ тавр барнома бор карда мешавад

Биёед аз он оғоз кунем, ки вақте ки мо тугмаро пахш мекунем, чӣ мешавад Замима дар мухаррир ElDraw ва программам схемавии мо, ки аз чоркунчахои зебо иборат аст, ба аппарат парвоз мекунад.

Аввалан, дар асоси диаграммае, ки мо кашидаем, тавсифи он дар шакли матн сохта мешавад.
Дуюм, он месанҷад, ки оё ҳама вурудоти гиреҳ ба баромадҳо пайвастанд. Даромадгоҳҳои "овезон" набояд бошанд. Агар чунин вуруд ошкор шавад, схема ба ShioTiny бор карда намешавад ва муҳаррир огоҳии мувофиқро нишон медиҳад.

Агар ҳама чиз хуб бошад, муҳаррир тавсифи матнии схемаи як гиреҳро дар як вақт ба ShioTiny мефиристад. Албатта, схемаи мавҷуда аз ShioTiny аввал хориҷ карда мешавад. Тавсифи матни натиҷавӣ дар хотираи FLASH нигоҳ дошта мешавад.

Дар омади гап, агар шумо хоҳед, ки схемаро аз дастгоҳ хориҷ кунед, пас танҳо ба он схемаи холӣ бор кунед (дар таркиби як унсури гиреҳ).

Вақте ки тамоми барномаи схемавӣ ба ShioTiny PLC бор карда мешавад, он ба "иҷро кардан" оғоз мекунад. Ин чӣ маъно дорад?

Аҳамият диҳед, ки равандҳои боркунии схема аз хотираи FLASH ҳангоми фурӯзон кардани барқ ​​ва ҳангоми қабули схема аз муҳаррир якхелаанд.

Аввалан, объектҳои гиреҳ дар асоси тавсифи онҳо сохта мешаванд.
Сипас дар байни гиреҳҳо алоқаҳо анҷом дода мешаванд. Яъне пайвандҳои баромадҳо ба воридот ва воридот ба натиҷаҳо тавлид мешаванд.

Ва танхо баъди хамаи ин давраи асосии ичрои программа огоз меёбад.

Ман муддати тӯлонӣ навишта будам, аммо тамоми раванд - аз "бор кардан"-и схема аз хотираи FLASH то оғоз кардани цикли асосӣ - барои як схемаи 60-80 гиреҳ як қисми сонияро мегирад.

Давраи асосӣ чӣ гуна кор мекунад? Хеле содда. Аввал вай пайдоиши худро интизор аст чорабиниҳо дар ягон гиреҳ, пас он ҳодисаро коркард мекунад. Ва ғайра беохир. Хуб, ё то он даме, ки онҳо нақшаи навро ба ShioTiny бор кунанд.

Якчанд бор аллакай ман чунин чизҳоро зикр кардам чорабиниҳо, гиреҳҳо и алоқа. Аммо ин аз нуқтаи назари нармафзор чист? Мо имрӯз дар ин бора сӯҳбат хоҳем кард.

Гиреҳҳо, робитаҳо ва рӯйдодҳо

Танҳо ба мисолҳои барномаҳои ноҳиявӣ нигаред ShioTinyБарои фаҳмидани он, ки диаграмма танҳо аз ду объект иборат аст - гиреҳҳо (ё элементҳо) ва робитаҳои байни онҳо.

Нод, аммо бале ё элементи схема намояндагии виртуалии баъзеҳо мебошад амал бар маълумот. Ин метавонад амалиёти арифметикӣ, амали мантиқӣ ё ҳама гуна амалиёте бошад, ки ба фикри мо меояд. Чизи асосй он аст, ки гирех даромаду баромад дорад.

даромад - ин ҷоест, ки гиреҳ маълумотро қабул мекунад. Тасвирҳои воридотӣ нуқтаҳое мебошанд, ки ҳамеша дар тарафи чапи гиреҳ ҷойгиранд.

Баромадан - ин ҷоест, ки натиҷаи кори гиреҳ гирифта мешавад. Тасвирҳои баромад нуқтаҳое мебошанд, ки ҳамеша дар тарафи рости гиреҳ ҷойгиранд.

Баъзе гиреҳҳо вуруд надоранд. Чунин гиреҳҳо натиҷаро дар дохили он тавлид мекунанд. Масалан, гиреҳи доимӣ ё гиреҳи сенсор: онҳо барои гузориш додани натиҷа маълумот аз гиреҳҳои дигар лозим нест.

Дигар гиреҳҳо, баръакс, натиҷа надоранд. Инҳо гиреҳҳое мебошанд, ки масалан, актуаторҳоро (реле ё чизи шабеҳ) намоиш медиҳанд. Онҳо маълумотро қабул мекунанд, аммо натиҷаи ҳисоббарориро, ки барои гиреҳҳои дигар дастрас аст, тавлид намекунанд.

Илова бар ин, як гиреҳи шарҳи беназир низ вуҷуд дорад. Он ҳеҷ кор намекунад, вуруд ё баромад надорад. Мақсади он шарҳи диаграмма аст.

Чӣ гап шудааст "событие"?" Чорабинӣ пайдоиши маълумоти нав дар ҳама гуна гиреҳ аст. Масалан, рӯйдодҳо инҳоро дар бар мегиранд: тағир додани ҳолати вуруд (гиреҳ вуруди), гирифтани маълумот аз дастгоҳи дигар (гиреҳҳо MQTT и UDP), гузаштани давраи муайян (гиреҳ соат и Тафовут) ва ғайра.

Чорабиниҳо барои чист? Бале, барои муайян кардани он, ки дар кадом гиреҳ маълумоти нав ба вуҷуд омадааст ва ҳолати кадом гиреҳҳоро вобаста ба гирифтани маълумоти нав иваз кардан лозим аст. Ҳодиса, гӯё, аз силсилаи гиреҳҳо "мегузарад" то он даме, ки ҳама гиреҳҳоеро, ки ҳолати онҳоро тафтиш ва тағир додан лозим аст, канор гузорад.

Ҳама гиреҳҳоро ба ду категория тақсим кардан мумкин аст.
Биёед гиреҳҳоро даъват кунем, ки метавонанд рӯйдодҳоро тавлид кунанд "гиреҳҳои фаъол".
Мо гиреҳҳоеро даъват мекунем, ки рӯйдодҳоро тавлид карда наметавонанд "гиреҳҳои ғайрифаъол".

Вақте ки гиреҳ ҳодисаро тавлид мекунад (яъне дар баромади он маълумоти нав пайдо мешавад), он гоҳ дар ҳолати умумӣ ҳолати тамоми занҷири гиреҳҳои ба баромади гиреҳи генератори ҳодиса пайвастшуда тағир меёбад.

Барои равшан кардани он, мисоли дар расм овардашударо дида бароед.

ShioTiny: гиреҳҳо, пайвастҳо ва рӯйдодҳо ё хусусиятҳои барномаҳои рассомӣ

Гиреҳҳои фаъол дар ин ҷо Input1, Input2 ва Input3 мебошанд. Гиреҳҳои боқимонда ғайрифаъол мебошанд. Биёед дида бароем, ки ҳангоми баста шудани ин ё он вуруд чӣ мешавад. Барои роҳат, натиҷаҳо дар ҷадвал ҷамъбаст карда мешаванд.

ShioTiny: гиреҳҳо, пайвастҳо ва рӯйдодҳо ё хусусиятҳои барномаҳои рассомӣ

Тавре ки шумо мебинед, ҳангоми рух додани ҳодиса, занҷир аз гиреҳи сарчашмаи ҳодиса то гиреҳи ниҳоӣ сохта мешавад. Ҳолати он гиреҳҳое, ки ба занҷир намеафтанд, тағир намеёбад.

Саволи конуние ба миён меояд: агар дар як вакт ду ва хатто якчанд вокеа руй дихад, чй мешавад?

Ман хамчун дустдори эчодиёти Глеб Анфилов майлу хохиш дорам, ки ба китоби у «Рихо аз тааччуб» саволчии кунчков фиристам. Ин «назарияи нисбият барои хурдсолон» мебошад, ки маънои «ҳамзамон» ва чӣ гуна бо он зиндагӣ карданро хуб мефаҳмонад.

Аммо амалан ҳама чиз хеле соддатар аст: вақте ки ду ё ҳатто якчанд ҳодиса рух медиҳад, ҳама занҷирҳо аз ҳар як манбаи ҳодиса пайдарпай сохта мешаванд ва коркард мешаванд ва ҳеҷ гуна мӯъҷиза рӯй намедиҳад.

Саволи навбатии комилан қонунии як хонандаи кунҷкоб ин аст, ки агар гиреҳҳо ба ҳалқа пайваст шаванд, чӣ мешавад? Ё, чунон ки мегӯянд, дар байни ин бачаҳои оқилонаи шумо, фикру мулоҳизаҳоро пешниҳод кунед. Яъне баромади яке аз гиреҳҳоро ба вуруди гиреҳи қаблӣ пайваст кунед, то ҳолати баромади ин гиреҳ ба ҳолати вуруди он таъсир расонад. Муҳаррир ба шумо имкон намедиҳад, ки баромади гиреҳро ба вуруди он мустақиман пайваст кунед. ElDraw. Аммо бавосита, чунон ки дар расми зер ин корро кардан мумкин аст.

Пас, дар ин ҳолат чӣ мешавад? Ҷавоб хеле «аниқ» хоҳад буд: вобаста ба кадом гиреҳҳо. Биёед мисоли дар расмро дида бароем.

ShioTiny: гиреҳҳо, пайвастҳо ва рӯйдодҳо ё хусусиятҳои барномаҳои рассомӣ

Вақте ки контактҳои вуруди Вуруд1 кушода мешаванд, вуруди болоии гиреҳи А 0 аст. Баромади гиреҳи А низ 0 аст. Баромади гиреҳи B 1. Ва ниҳоят, вуруди поёнии гиреҳи А 1 аст. Ҳама чиз равшан. Ва барои онҳое, ки фаҳмо нестанд, дар зер шарҳи кори гиреҳҳои "VA" ва "NO"-ро бубинед.

Акнун мо контактҳои вуруди Input1-ро мепӯшем, яъне якеро ба вуруди болоии гиреҳи А татбиқ мекунем. Онҳое, ки бо электроника ошно ҳастанд, медонанд, ки дар асл мо як схемаи генератори классикиро бо истифода аз унсурҳои мантиқӣ мегирем. Ва дар назария, чунин схема бояд беохир пайдарпаии 1-0-1-0-1-0…-ро ҳангоми баромади элементҳои А ва В тавлид кунад. ва 0-1-0-1-0-1-…. Охир, ходиса бояд доимо холати гиреххои А ва В-ро тагйир дода, дар доираи 2-3-2-3-... мегузарад!

Аммо дар асл ин тавр намешавад. Схема ба ҳолати тасодуфӣ меафтад - ё реле фаъол ё хомӯш мемонад, ё шояд якчанд маротиба пай дар пай каме садо медиҳад ва хомӯш мешавад. Ин ҳама ба обу ҳаво дар қутби ҷанубии Миррих вобаста аст. Ва аз ин рӯ, ин рӯй медиҳад.

Ҳодиса аз гиреҳи Input1 ҳолати гиреҳи А, баъд гиреҳи B ва ғайраро дар доира чанд маротиба тағйир медиҳад. Барнома "халал" -и ҳодисаро муайян мекунад ва ин карнавалро маҷбуран қатъ мекунад. Пас аз ин, тағирот дар ҳолати гиреҳҳои А ва В то рух додани ҳодисаи нав баста мешаванд. Лаҳзае, ки дар он барнома қарор қабул мекунад, ки "дар давраҳо чарх заданро бас кунед!" — умуман ба бисьёр омилхо вобаста аст ва онро тасодуфй хисоб кардан мумкин аст.

Ҳангоми пайваст кардани гиреҳҳо ба ҳалқа эҳтиёт шавед - эффектҳо на ҳамеша аён хоҳанд буд! Тасаввур кунед, ки чӣ кор мекунед ва чаро!

Оё дар гиреҳҳои дастраси мо генератор сохтан мумкин аст? Бале, шумо метавонед! Аммо ин гиреҳеро талаб мекунад, ки худи рӯйдодҳоро тавлид кунад. Ва чунин гиреҳ вуҷуд дорад - ин "хати таъхир" аст. Биёед бубинем, ки генератори дорои давраи 6 сония дар расми зер чӣ гуна кор мекунад.

ShioTiny: гиреҳҳо, пайвастҳо ва рӯйдодҳо ё хусусиятҳои барномаҳои рассомӣ

Унсури асосии генератор гиреҳи А - хати таъхир мебошад. Агар шумо ҳолати вуруди хати таъхирро аз 0 ба 1 иваз кунед, 1 дар баромад фавран не, балки танҳо пас аз вақти муайяншуда пайдо мешавад. Дар ҳолати мо ин 3 сония аст. Ба ҳамин тариқ, агар шумо ҳолати вуруди хати таъхирро аз 1 ба 0 иваз кунед, пас 0 дар баромад пас аз ҳамон 3 сония пайдо мешавад. Вақти таъхир дар даҳяки сония муқаррар карда мешавад. Яъне, арзиши 30 маънои 3 сонияро дорад.

Хусусияти махсуси хати таъхир дар он аст, ки он пас аз гузаштани мӯҳлати таъхир ҳодисаро тавлид мекунад.

Фарз мекунем, ки дар аввал баромади хати таъхир 0 буд. Пас аз гузаштани гиреҳи В - инвертер - ин 0 ба 1 табдил меёбад ва ба вуруди хати таъхир меравад. Дарҳол ҳеҷ чиз рӯй намедиҳад. Ҳангоми баромади хати таъхир, он 0 боқӣ мемонад, аммо ҳисобкунии вақти таъхир оғоз мешавад. 3 сония мегузарад. Ва он гоҳ хати таъхир як ҳодиса тавлид мекунад. Дар баромади он 1 пайдо мешавад. Ин воҳид пас аз гузаштан аз гиреҳи В - инвертер ба 0 мубаддал мешавад ва ба вуруди хати таъхир меравад. 3 сонияи дигар мегузарад... ва раванд такрор мешавад. Яъне ҳар 3 сония ҳолати баромади хати таъхир аз 0 ба 1 ва баъд аз 1 ба 0 тағйир меёбад. Эстафета клик мекунад. Генератор кор мекунад. Давраи набз 6 сония аст (3 сония дар баромади сифр ва 3 сония дар баромади як).

Аммо, дар схемаҳои воқеӣ одатан истифодаи ин мисол лозим нест. Гиреҳҳои махсуси таймер мавҷуданд, ки ба таври комил ва бидуни кӯмаки беруна пайдарпайии импулсҳоро бо давраи додашуда тавлид мекунанд. Давомнокии «сифр» ва «як» дар ин импулсҳо ба нисфи давра баробар аст.

Барои муқаррар кардани амалҳои даврӣ, гиреҳҳои таймерро истифода баред.

Ман қайд мекунам, ки чунин сигналҳои рақамӣ, ки давомнокии "сифр" ва "як" баробаранд, "меандер" номида мешаванд.

Умедворам, ки ман саволро дар бораи чӣ гуна паҳн кардани рӯйдодҳо дар байни гиреҳҳо каме равшан кардаам ва чӣ бояд кард?

Хулоса ва истинодҳо

Мақола кӯтоҳ буд, аммо ин мақола ҷавоб ба саволҳое мебошад, ки дар бораи гиреҳҳо ва рӯйдодҳо ба миён омадаанд.

Вақте ки нармафзори миёнаравӣ таҳия мешавад ва мисолҳои нав пайдо мешаванд, ман дар бораи чӣ гуна барномасозӣ менависам ShioTiny мақолаҳои хурд, то даме ки он барои одамон ҷолиб хоҳад буд.

Мисли пештара, диаграмма, нармафзор, мисолҳо, тавсифи ҷузъҳо ва ҳама чиз боқимонда дар ин ҷост.

Саволҳо, пешниҳодҳо, танқид - ин ҷо равед: [почтаи электронӣ ҳифз карда шудааст]

Манбаъ: will.com

Илова Эзоҳ