Результаты поиска по запросу «
образовательная программа
»реактор образовательный видео
Как на самом деле формируется пол, и что может пойти не так
Покажите это видео знакомой вате и любителям скрепSSETHTZEENTACH реактор образовательный видео
Лекция по иммуннологии и борьбе с раком от SsethTzeentach
длинопост реактор образовательный что за хуйня?
Подумаем вместе
Почему? Почему у нас чтобы пойти на работу кем-то нормальным нужно выучиться и пройти собеседование, чтобы ездить на автомобиле нужно выучиться и сдать экзамен, чтобы сделать что-то нужно доказать этим людишкам, что ты умеешь, что ты можешь!? А чтобы жить в квартире и сверлить с утра до вечера ничего не нужно, кроме денег. Приходишь с кучкой денег и вот квартира твоя, и никто тебе до этого не грел голову «а как надо следить за тем, чтобы не затопить соседей снизу» или «как сделать ремонт быстро и тихо». Просто живешь и на своем опыте все проходишь, а если опыта нет? Вот жил в деревне, выучился, заработал на квартиру, а как жить не знаешь и всем плевать, тебе дают квартиру. Считаю, что нужно сделать обязательную процедуру подготовки людей к жизни, например, в школе в 7-9 классах выделить несколько часов на жизненные темы типа «что такое частная собственность, порядок приобретения частного дома» и «основы жития-бытия в городе». Напишите свое мнение в комментах.
реактор образовательный бег спорт марафон
Как пробежать марафон и не сдохнуть. Руководство для начинающих.
Всем привет.
На днях я прошел свой первый марафон, который проходил 7 ноября в Стамбуле. После нескольких месяцев активной подготовки все таки смог это сделать за довольно хорошее, как для начинающего время. (За 3:43:57 с нуля, без мам пап и кредитов). Причина по которой я решил написать пост в том что в странах СНГ абсолютно отсутсвует так называемая "культура бега". Особенно наблюдая как здоровые люди гробят свое здоровье, понимаешь что мало кто знает о технике, пользе, вреде, плюсах и минусах бега. И вот собрав свой не большой но все же опыт, решил написать этот пост. Хочу что бы это “информационное пособие” было полезным для бегунов начального и любительского уровня и уберечь дорогих реакторчан от кучи ошибок которые могут подпортить ваше здоровье в начале вашей беговой “карьеры”. Так же информация будет полезна не только для людей которые хотят пробежать марафон, но и для кто просто хочет быть здоровым, сбросить пару кило и быть в тонусе.
И так, побежали...Так как дальше будут описаны подходы для прохождения длинных дистанций, то эти рекомендации не подойдут для людей которые хотят бегать спринты.
На самом деле дистанция в 42.2 км не такая уж страшная как кажется на первый взгляд. Среднестатистический человек может подготовится к прохождению марафонской дистанции за 3-6 месяцев. Что немаловажно, это можно сделать без особых страданий и изнурительных тренировок. Мне в возрасте 30+ хватило 4 месяца с нуля. И “с нуля” я имею ввиду до подготовки к марафону даже 10 км пробежать за час давалось с трудом. Главная же проблема подготовки - это избежать ряд ошибок которые могут остановить бегуна в начале пути. Начнем мы естественно с самых распространенны, который делает начинающий спортсмен.
1. На тренировках надо бегать так быстро, как можешь.
И это наверное самая большая и основная проблема начинающих, а возможно даже и бегунов с опытом.
Как это чаще всего происходит.
Мы выходим на тренировку, начинаем бежать с такой скоростью что слюни из рта размазывает по всей роже, через 5 минут начинаем задыхаться, после пробежки боль в ногах, отдышка, сопли текут, состояние как буду то под поезд попал. Потом с довольным лицом идем домой, думая “как хорошо я сегодня потренировался, No pain, no gain мать его!!”. На следующей тренировке понимая какие страдания нас опять ждут, идем уже с отсутствием желания бегать. Так две-три недели и люди забивают на бег. Говорят “ну очевидно что бег - это не мое”. Даже если новоиспеченного бегуна хватает на пол года такого “бега” то прогресс идет не очень активно, скорость и дистанция не сильно растет, тренировки сильно истощают морально и физически и уже это убивает мотивацию еще сильнее. И поверь реакторчанин, я через это прошел сам и знаю о чем говорю.
Но что же делать, как быть?
В чем суть: Для того что бы бегать быстро, надо научится бегать медленно. Примерно 85% (А для начинающих все 100%) тренировок должны проходить в медленном темпе. Медленный считается такой темп, при котором вы спокойно можете бежать 40 минут и более (Например максимальная дистанция такого бега для меня была 54км и заняло примерно 7 часов но данная тренеровка была что то вроде челенжа и не входила в мой план изначально), без отдышки при этом спокойно разговаривать связанными предложениями. Также пульс не должен превышать 60-70% от вашего максимального пульса. (Про пульс будет ниже) Такой бег отлично подготовит тельце начинающего бегуна к нагрузкам и поможет избежать травм, повреждения связок и суставов. “Медленный” бег у всех разный. Для кого то это может быть и 5 минут на километр, а для кого то и 10 и зависит от базовой подготовки бегуна. Так же добавлю что даже у профессиональных спортсменов медленные тренировки составляют 70-80% от тренировочного плана.
2. Игнорирование пульсовых зон и ЧСС.
Эта ошибка уже не такая веселая как хотелось бы. Думаю что каждый слышал что на очередном забеге кто то закончил гонку раньше времени и отправился в морг. Суть этой проблемы чаще всего заключается в том что бегуны-аматоры не знаю что такое ЧСС и как с ним работать. Тренируясь продолжительное время неправильно, бегуны нарабатывают себе пороки сердца и на очередной гонке финиширует уже в Вальгалле. И тут у людей конфуз. Мол “как так Витька помер на забеге а его сосед дядя Гриша бухает всю жизнь и живой!”. Хотя казало бы нам всю жизнь говорят о том что бег помогает тренировать наше сердце.В чем суть: Первым делом надо понять что если мы хотим бегать и быть здоровыми, то бег на тренировке, на пульсе 170 в течении часа а то и больше аж никак нам в этом не поможет. Сердце хоть и мощная мышца, но и у нее есть свой ресурс. И наша задача увеличить его, а не уменьшить. И для этого отлично подходит работа в низких или средних пульсовых зонах.
Как определить эти зоны и что это вообще такое?
Все довольно просто. Пульсовые зоны - это по сути процентное соотношение от вашего максимального пульса. Всего их 5. Рассчитать персональные пульсовые зоны можно при помощи любого онлайн калькулятора по запросу в поисковик -> “calculate pulse zones”. (В целом онлайн калькуляторы не всегда точные и для больше точности нужно проходить тест на газоанализаторе, но данные расчеты по формулам онлайн калькуляторов подходят для большей части людей) Нас интересуют пульсовые зоны 1-2. Например для меня в возрасте 31 год и пульс в покое 54 уд/мин, верхняя грань 2й зоны будет примерно до 135 уд/мин. Зная эти данные уже можно строить тренировочный план или просто заниматься бегом спокойно.
Так же хотел бы остановится и разобрать вкратце плюсы такого подхода.
- Бег на низком пульсе безопасен. Шанс наработать проблемы с сердцем минимален
- Это самый оптимальный пульс для жиросжигания.
- Именно работа в низкой пульсовой зоне лучше всего тренирует ваше сердце, растягивая его на полную амплитуду, тем самым увеличивая сердце в объеме.
- После тренировки на низком пульсе вы не будете чувствовать усталость. Например для меня было вполне нормально после пробежки пойти на тренировку в спорт зал или в бассейн. Так как оставалось куча сил после полуторачасовой беговой тренировки
3. Каденс.
"Что? Что это вообще?" - это чаще всего я слышу от бегунов в парке после вопроса «на каком каденсе они тренируются». В лучшем случае кто то знает что такое понятие вообще существует. (Но скажу сразу что это спорная тема и сети куча сторонников и противников каденса. Но так как вы поняли что я все же “сторонник” то расскажу про него) Каденс - это параметр частоты перемещения ваших ног за отрезок времени. Оптимальным считается каденс 180 шагов в минуту. Хочу заметить сразу что темп, скорость, ландшафт или ещё какие то параметры влиять на ваш каденс во время бега - не должен. Можно бегать как и быстро так и медленно с одинаковым каденсом.
“Зачем оно ваше надо?”
В чем суть: Задача бегуна не только натренировать ноги и сердце, но так же сделать вашу технику бега более экономичной и безопасной. Дело в том что начинающие бегуны в своей технике делают большие амплитудные шаги, с средним каденсом примерно 140-160. Но так как при беге каждый шаг создаёт дополнительную нагрузку в виде удара о землю, которая несколько раз выше чем при ходьбе, то эта нагрузка идет на колени, спину, связки, и иногда внутренние органы. Отсюда и растет большое количество мифов о том что бег убивает колени, и это действительно так если бегать с низким каденсом. Так же низкий каденс скорее всего свидетельствует о том что ноги при беге ставятся впереди себя и тормозят бегуна. Оптимальный каденс позволит сделать ваше бег более безопасным, так как ноги не будут совершать лишних ударных движений.
И охуенная история от себя на эту тему. 2 года назад мне ставили диагноз гонартроз второй стадии на двух коленях, делали уколы гилаурона, которые помогали на короткое время, говорили что уже вот вот и будет 3я стадия и будет все плохо и о беге даже речи быть не могло. Но после правильной постановке бега и каденсом, деградация сустава замедлилась и в целом уже год боли в коленях не беспокоят и по последним МРТ все хорошо. Как мне рассказали некоторые спортивные врачи с которыми я консультировался, на западе частая практика использовать ходьбу и бег как часть лечения проблем колен, так как при щадящей нагрузке колени сами вырабатывают нужное количество синовиальной жидкости которая работает как смазка в суставах. И правильный каденс в этом поможет. Но не могу сказать что данная рекомендация подойдет именно вам, по этому вопросу лучше консультироваться с хорошими специалистами.
Спасибо все кто дочитал до конца, надеюсь эта информация была полезна и поможет избежать проблем. Если данный пост был кому то интересен то могу продолжить данную рубрику, и рассказать много информации про бег.
Что жрать бегуну, еда, спортивное питание и тд.Алкоголь, курение, вредная еда и влияние на организм. (Любителям пива и вина могут облегченно вздохнуть)Альтернативщики в беге.(Да, тут есть и такое)Одежда и девайсы для ваших тренировок.(Без рекламы брендов и тд)Бег вместе с другими видами спорта (Качалка, велосипед, бассейн, тд и как это совмещать) Длительность тренировок, беговые объемы, тренировочные планы, как совмещать работу, личную жизнь и бег.Мифы о беге Как начать бегать с нуля (Даже если за всю жизнь ходил не дальше чем к холодильнику)По возможности могу ответить в комментах на вопросы по данной теме.
песочница geek АСУ ТП программирование реактор образовательный длиннопост
Часть 2, приоритеты и базовые сигналы
Часть 1,введение (отправил в политоту из-за двусмысленных высказываний, ибо было сложно удержаться)
Приоритеты команды
Итак, вы решили взяться за благое дело и сэкономить пару дефицитных рупей на найме программиста и запилить всё своими руками. Что же для этого надо?
1) скачайте среду разработки
2) откройте среду разработки3) закройте среду разработки и идите искать программиста
Для начала, давайте проясним одну вещь. То что я рассказываю не является аксиомой. Это концепция архитектуры, позволяющая сделать максимально гибкое и устойчивое решение, позволяющее безболезненно изменять различные прослойки кода внутри проекта, не роняя завод.
Итак, помните, я говорил что всё есть сигнал? Я наврал. Всё есть объект.
Вход - это объект.
Выход - это объект.
Бутылка - тоже объект, но более высокого порядка.
А дальше мы начинаем собирать пирамидку из кубиков:
- базовые сигналы нижнего уровня, дискретные и аналоговые
- простые устройства
- сложные устройства
- технологические участки
- технологические линии
- производственные участки
...
- планирование производства
Вот всё что лежит до троеточия и будем рассматривать. Начнём с базиса, но перед этим - а кто здесь главный? Ты, я? оператор? директор? да пошёл ты в жопу, директор! Главная здесь ОНА:
Мне лень рисовать пирамидки маслоу, поэтому обойдёмся блок-схемами. ГОСТы - для слабаков! Главное, чтобы было понятно...
УХ, ебать! Но это лёгкий вариант, извините.
Глобальные переменные
Обратите внимание на "Глобальные переменные". Что в них входит? А всё, что проходит красной нитью через весь код и существует в единственном экземпляре:
- Аварийный останов
- Общий сброс аварий
- Общий режим эмуляции
- Общий перевод в автоматический режим всех устройств (очень полезно, если оператор любит пошарить ручками где надо и забывает что делал в недрах нашей системы)
Как оно выглядит в объявлении переменных? Вот так:
All_Block:BOOL; //аварийная остановка
All_Reset :BOOL; //сброс всех аварий
All_Sim :BOOL; //общий режим эмуляции
All_Auto :BOOL; //перевести всё в автоматический режим
sys :system; //системные переменные
sec :REAL; //длительность одной секунды
Обратите внимание, на две последние переменные. Это наша опора и поддержка, которую мы будем гонять вместе с первой четвёркой по всем проектам.
sec - длительность секунды в часах, да, я знаю что считать в REAL повышает нагрузку на CPU, но пардон, у вас мощности позволяют то в 2к2+ году
sys - структура системных переменных, которая собирает в себя базовые компоненты, реализация которых отличает у разных производителей:
- флаг TRUE
- флаг FALSE
- импульсы с разным весом, которые живут ровно 1цикл программы
- прочая мелочёвка
Опс, опять что-то новенькое. 1 цикл программы. Да-да, ваш код всегда исполняется от начала и до конца сверху вниз, слевана право. За всякие go_to я лично вырываю руки, ибо нехер.
Итого, на текущий момент у меня в sys лежит:
Дану ёб твою мать, скажете вы, что это за херня? И будете правы!
- x - не потому что хуй, а потому что ON и OFF зарезервированы системой и их нельзя просто так применять;
- Hand - флаги, что хотя бы одно устройство данного типа переведено в ручной режим;
- Alm - флаги, что хоть одно устройство данного типа находится в аварии;
- Any - сборный флаг для всех флагов, привязанных к типам устройств;
- V - Valve, а не то что вы подумали. Клапан, заслонка, задвижка;
- M - не мудак, к сожалению, а Motor. Вентилятор, транспортёр, всё что вращается - всё Motor. Я иногда делю на MD и MDA, дикрестное и дискретно-аналоговое управления, но это личные заморочки, не более;
- DTL - DataTimeL.. хз что за L, типовая структура формата год-месяц-дата-час-минута-секунда, которую мы будем использовать при работе с расписанием и всем, что требует проверки системного времени.
Ну наконец-то! А где код-то? Хрена вам, а не код. Рано.
На очереди ещё одна структура, которая будет всегда и везде, обеспечивая работу вон той страшной картинки наверху, обычно я называю её CMD:
УправлениеУра! Наконец-то! Мы добрались! И теперь...
Видите вон там странный Alarm, которого раньше не было? Видите? И он есть!
А всё почему? Да потому что...
1) мы делаем универсальный код, который будет применим для всего и вся
2) программа - это не только программа, это ещё функциональный блоки функции
В чём же разница? Если кратко - функциональный блок может иметь свои внутренние, приватные, переменные, а функции - работает только с внешними и временными.
СтопЭ. временные и внутренние - какая в пень разница?
Внутренняя - сохраняет своё значения при переходе на новый цикл программы.
Временная - теряет своё значение может содержать случайную величину при переходе на новый цикл программы.
Таким образом, если вы внутри функции делаете А+Б=С и по значению С принимаете решение КАЖДЫЙ раз вызывая функцию, то можно использовать временную. А если делаете А+Б = С один раз и больше к этому не возвращаетесь, только читая С, то нужна внутренняя переменная. И опять таки... если вы хотите сохранить значение С при перезапуске контроллера - будьте добрый, сделать её энергонезависимой, т.е. Retain.
Вернёмся к Alarm. Для функциональных блоков (FB) и функций (FC) есть следующие виды переменных:
- входные - можно только читать
- выходные - можно только записывать
- входные-выходные - как тугая попка трапа, можно и читать и изменять значение
Это очень важно, когда у вас одна и та же внешняя переменная передаётся разныеFC/FB а вы сидите и хлопаете глазками, почему значение теряется посреди программы. Да потому что вы проебались и привязали не к тому типу. Наиболее наглядно сие видно в графических языках:
Слева- входные (input) и входно-выходные (input-output) переменные, справа -выходные.
Фух, разобрались, теперь вызовем нашу страшную функцию:
Драйвера, устройства и состояния
Расширим очко овертона терминологию: драйвер. Нет, это не виндовый драйвер. Но близко. Это некий алгоритм и набор переменных, описывающий работу базового или типового устройства. Входа, выхода, насоса, клапана. Оно беспечивает автомномный контроль:
- безопасности
- аварий
- ручного и автоматического управления
- наработки
Включает в себя все необходимые для жизни параметры и настройки, коих дофига и больше. Но это мы рассмотрим потом. Или не рассмотрим. Если микроскоп вдруг сломается.
Выглядит управление дискретным входом следующим образом:
Итак, для работы драйвера нам необходимы:
- CMD - структура команд, рассмотрена выше
- cfg - структура параметров
- state - структура состояний
Дискретный вход слишком прост и отдельный набор состояний ему не нужен. Состояния включают в себя коды аварий, подсчёт наработки, вспомогательные плюшки для удобства отображения оператору "что тут происходит, мамочки, почему оно встало?!"
use_NC...
NC - нормальной закрытый сигнал
NO - нормально открытый сигнал
Например, у вас есть дверь. Стоит датчик, контролирующий что "дверь закрыта".
Есликогда она закрыта сигнал = 0, а при открытии двери сигнал = 1, это нормально открытый сигнал.
Если когда она закрыта сигнал = 1, а при закрытии двери сигнал = 0, то это нормально закрытый сигнал.
Применение того или иного типа сигнала должно быть продиктовано соображениями безопасности. Например, аварийный стоп - должен быть нормально закрытым сигналом. Есть сигнал - всё хорошо, пропал - всё плохо. Почему так? Потому что Вася уронил топор на кабель и сигнал пропал - вы должны отключить всю систему, чтобы бедного Васю не намотало, превратив в инвалида пожизненно. Да-да, безопасность Васи - Ваша ответственность!
А если это не критичный сигнал, требующий контроля целостности сигнальной линии, то можно смело ставить нормально открытый датчик. Но это теория, а на практике ныне - что найдёте, то и поставите. Сорян.
УУУ, сука, сколько буков то! А это только начало! И я не ответил на главный вопрос - на кой хер нам вообще различать на уровне драйвера тип сигнала? В алгоритме основном поправим, да и делов то. НЕТ! Хватит! Не усложняйте себе жизнь!
Вам, как программисту, должно быть глубочайше насрать какой там тип датчика -сработал это всегда = 1, не сработал это всегда = 0. И именно эту задачу унификации решает драйвер дискретного входа. УНИ-ФИ-КА-ЦИИ, а не загрузки процессорного времени бесполезным хламом. Так менеджеру и ответите, что вы ускоряете дальнейший цикл разработки, ага.
ТаймерыАвтор, ты заебал, где код драйвера? Да вот он, только работать он у вас не будет:
А почему - угадаете? Не, вы не тупые, вы умные. Просто я хитрожопый и вместо системных таймеров использую самописные. Нахуа-хуа? Да потому что системные кривые. И их мало. И каждый системный таймер можно использовать только один раз(если они аппаратные, как в старых ПЛК).
Почему использовать системный таймеры, это грех:
- если вы измените во время работы таймера уставку времени и она окажется меньше, чем уже прошедшее время с момента запуска таймера, то он встанет раком
- нет паузы
- нет сброса
- нет контроля % отсчитанного времени
- и, самое главное, время в формате Time, которое очень неудобно выводить на панель оператора
Самописный таймер решает все эти задачи. Как вы уже догадались, там потребуется структура переменных для него и FC, вот они для самого простого таймера, который используется в драйвере выше:
И весь этот охреневший объём кода вам нужен в промышленном контроллере только для того, что проверить нажатие кнопочки или срабатывание маленького геркончика. Очень мило, не правда ли?)
Благодарю за терпение, забыл важную картинку и не смог отредактировать пост. В прошлом варианте поста были вопрос на тему, почему pulse_01s и pulse_1s имеют тип BOOL и как вообще эта мерзость должна работать. Не зря в начале было сказано об архитектуре, именно её мы затронем третьей части историй после кружечки кофе и предложим своё видение "как оно должно работать", что, естественно, не претендует на истину и даже не носит рекомендательного характера, потому что код каждого программиста индивидуален и уникален, но если мы сможем писать хотя бы так, чтобы сосед слева мог его прочитать - это уже хорошо.
песочница АСУ ТП программирование geek реактор образовательный длиннопост
Часть 3, каркас архитектуры
Часть 1, введение
Часть 2, приоритеты и базовые сигналы
Мда, я дико извиняюсь за большое количество опечаток в предыдщих постах. Руки не поспевают за мыслью, а при редактировании потеряется часть оформления регулярно. Не зналь(
Имея на руках пример того, с чем предлагается работать, впору поговорить об архитектуре, которая и будет обеспечивать корректное и стабильное исполнение кода, однако, перед этим сделаем ряд важных оговорок:1) концепт ориентирован на работу с жёстким распределением памяти (Siemens, OMRON CP/CJ series)
2) ввиду пункта 1 внутри одной структуры могут быть переменные которые И читаются, И пишутся, что существенно усложняет их проброс в коммуникацию(особенно тех, которые пишутся И с панели оператора, И из программы, например запуск в ручном режиме и сброс аварий в структуре управления)
3) объём памяти оперативность и для хранения кода, а также мощность CPU–считаются достаточно большими, чтобы не обращать на них внимания, в иных случаях требуется оптимизация кода
4) при работе с контроллерами, имеющими «классическое» распределение памяти, для обеспечения корректного управления моим кодом по ModBus RTU/TCP требуется дополнительная прослойка, которая будет пересобирать структуры в WORD и обратно, когда-нибудь я это исправлю, но явно не сейчас
5) вся концепция рассчитана на применение в обще-промышленной области, где потерять 10-20-30 мс роли не сыграет никакой, если вам нужна более высокая точность – добро пожаловать в чудный мир оптимизации и распределения кусков кода по разным циклам
Ещё одно лирическое отступление
Я осознанно не буду вам рассказывать как работает Промышленный Логический Контроллер (ПЛК), распределение его памяти, времени CPU по задачам системным и пользовательским, типы данных и прочую лабуду – это вы можете узнать на любых вводных курсах от любого производителя железа. Моя задача – показать пример прикладной реализации тех или иных задач.
Кстати, на ардуине в своё время использовал Union, который прекрасно решал проблему компоновки памяти, однако подавляющее большинство сред разработки для промышленного оборудования его или не поддерживают, или имеют кастрированную реализацию.
Генерация импульсов
Начнём с терминологии:
- импульс – это нечто, существующее предельно короткое время, в нашем случае сие ровно 1 цикл контроллера.
Большинство контроллеров предлагает свои системные генераторы импульсов в том или ином виде, но выглядят они следующим образом на примере 1 секунды:
Ёбушки воробушки, наш самописный таймер то проверяет когда сигнал = 1, а он равен 1 в течении 50 циклов, а за это время он насчитает 50 секунд, вместо 1! Лажа какая-то. Мы должны получить следующее:
Для этого есть несколько вариантов, и сначала мы отметём в сторону самый очевидный: мы НЕ будем в каждом таймере проверять фронт системного генератора импульсов, потому что каждая проверка фронта это +1 переменная в памяти ПЛК, а мы не хотим засирать его бесполезным хламом.
Итого остаётся:
1) вызывать системный импульс, проверять его передний или задний фронт и закидывать в pulse_1s;
2) вызвать стандартный таймер TON с длительностью 1 секунда и зациклить на самого себя, при срабатывании таймера взводить pulse_1s;
3) читать системное время и по внутренним часам ПЛК и при смене секунды однократно взводить pulse_1s, потребуется буфер для хранения и сравнения предыдущего времени;
4) прочитать из недр контроллера время предыдущего цикла, насуммировать несчастные наносекунды до 1 секунды и тоже записать в pulse_1s единичку, после чего очистить буфер.
5) ещё что-нибудь на ваше усмотрение.
Мне глубоко фиолетово, каким способом вы получаете в итоге pulse_1s, но вам достаточно получить его корректно 1 раз и все таймеры во всей программе сразу же заработают, причём корректно и, вау, синхронно. Т.е. если у вас в двух местах с разбегом менее 1 секунды начался счёт до 5, то закончится он тоже одновременно. В этом и плюс, и минус. Мы теряем точность. Но так ли она нужна?
Хотите точность до 100 мс? Пишем таймер Time_R для дробных значений генерируем pulse_01s.
Хотите точность до 10 мс? Ну… сделайте отдельный цикл ПЛК с такой частотой и там считайте. Или убедитесь, что ваше время цикла менее 10 мс на всю программу.Обратите внимание, что этот таймер сложнее – мы считаем прогресс времени от 0 до 1,который можно использовать для вспомогательных операций (типа на 30% всего времени моргнуть правой пяткой) и красивого прогресс-бара на экране.
Архитектура
Перейдём к тому, ради чего был затеян данный раздел. Следите за руками…
Где-то там приютилось ещё регулирование, типа ПИДов, но о них как-нибудь в другой раз.На повестке дня вопрос распределения переменных по областям памяти. Что будет глобальным, а что локальным?
К глобальным относится всё, что ранее было названо глобальным, а также туда настоятельно рекомендуется выносить:
- все структуры управления драйверами
- все структуры параметров драйверами
- все структуры состояний драйверами
- общие параметры техпроцесса
- общее управление техпроцессом, типа включить/выключить установку
Из них в раздел энергонезависимой памяти попадают только структуры параметров.
REQ – Request, запрос запуска. Сюда мы из авторежима будем писать команду для устройства, а затем скармливать драйверам в CMD.Start_A.
DONE – состояние устройств, если оно выключено или в аварии то соответствующий флаг =0, если успешно запущен = 1. Это хорошо заходит для минимизации алгоритма авторежима и всяких вспомогательных операций.
А что же тогда попадает в call’ы?Нерадивые любители звонков с автонабором? Увы, их неплохо бы там запереть, но места маловато. Там будут вызваны непосредственно экземпляры драйверов на исполнение со всей обвязкой. На примере уже рассмотренных дискретных входов это выглядит так… опс, в этом проекте их нет, вот вам выхода:
самолеты техника реактор образовательный песочница
Вызываю к помощи аэропидоров
Вот вышла новая статья, а я, как человек, ходящий на Взгляд только как на лакмусовую бумажку пиздеца, заинтересовался. Есть ли среди пидоров реактора аэропидоры или около пидоры, дабы пояснить, есть ли у самолёта шансы или все пиздежь, что вероятно.реактор образовательный it-безопастность Халява мануал видео Образование самообразование видеокурсы geek
Пак знаний, учение свет. Metasploitот - от теории к практике.
Саб реактор. Предыдущие (один и два) посты, по данной тематике хорошо зашли. И народ просил ещё. К сожалению данную информацию не так легко искать в понятном для конечного пользователя формате. Да и пока сам опробуешь\ подтвердишь инфу, пройдёт какое то время.
ДАННЫЙ МАТЕРИАЛ РАСПРОСТРОНЯЕТСЯ С ЦЕЛЬЮ ПРОФИЛАКТИКИ IT-БЕЗОПАСТНОСТИ. АВТОР МАТЕРИАЛА СНИМАЕТ С СЕБЯ ОТВЕТСТВЕННОСТЬ ЗА ТО, КАК БУДУТ ИСПОЛЬЗОВАТЬ ЭТОТ МАТЕРИАЛ. НЕ ОРУЖИЕ УБИВАЕТ ЧЕЛОВЕКА, А ЧЕЛОВЕК ДЕРЖАЩИЙ ЭТО ОРУЖИЕ.
Сегодня я принёс вам крупный видеокурс по одной интересной программке под названием "Metasploitот" Кратко говоря, данная программа позволяет найти уязвимости в ОС или сетевом оборудовании (и не только там) и использовать их (уязвимости) по вашему усмотрению.
Собственно вот раздача. Сидовать буду столько сколько смогу. Если будут проблемы с торрентом, напишите, я перезалью. Так что чекайте комменты.
UPD: Вижу что народ качает... Кто скачал - не уходите плиз с раздачи. Спасибо.
Отличный комментарий!
В чем суть: Для того что бы выходить из дома быстро, надо научится выходить медленно. Примерно 85% (А для начинающих все 100%) выходов из дома должны проходить в медленном темпе. Медленный считается такой темп, при котором вы спокойно можете выходить из дома 40 минут и более