Результаты поиска по запросу «

научно производственный

»

Запрос:
Создатель поста:
Теги (через запятую):



научная фантастика Хьюго писатели толерантность 

В научной фантастике тоже наметились перемены.


Премия «Хьюго» — ежегодная англоязычная читательская литературная премия в области научной фантастики, учреждённая в 1953 году Всемирным конвентом научной фантастики  под патронажем зарегистрированного в США и других странах Всемирного общества научной фантастики.

Премия "Хьюго" в 20 веке ртур Кларк Айзек Азимов Премия "Хьюго" в 21 веке арли Андерс диуОкорафор ЖГ; Ш! 1 Ък. П,научная фантастика,Хьюго,писатели,толерантность

Развернуть

Отличный комментарий!

Гарри Поттер такая научная фантастика пиздец
summerhead summerhead14.08.202016:32ссылка
+75.2

Netflix научная фантастика экранизация 

Netflix заказал сериал по НФ-роману «Задаче трех тел» Лю Цысиня. За руль посадили шоураннеров «Игры престолов».

Netflix,научная фантастика,экранизация


Дэвид Бениофф и Д. Б. Уайсс нашли свой новый крупный проект после того, что случилось с финалом «Игры престолов» (мы постараемся его больше не упоминать). Год назад стало известно, что они заключили сделку с Netflix аж на $200 миллионов, а теперь мы знаем, над чем они будут работать — над экранизацией цикла «В память о прошлом Земли» Лю Цысиня («Задача трех тел», «Темный лес» и «Вечная жизнь Смерти»).

Тем временем в Японии студия Yoozoo Pictures уже год как работает над мультсериалом по первой книге цикла («Задача трех тел») из 24 серий. Сначала она же пыталсь снять полнометражный фильм, но он застрял в «производственном аду», так и не увидев свет.

(видео с концепт-артами)


 Произведение Цысиня — один из самых известных китайских фантастических романов. В нем рассказывается о первом контакте человечества с инопланетной расой, о том, как это событие одновременно и сплотило, и разделило людей, а также о его последствиях и т.д. Стартом всему послужила компьютерная игра «Задача трех тел», из которой люди узнали о готовящемся вторжении пришельцев. События в книгах развиваются, начиная с 60-х годов до конца времен.

Для работы над сериалом для Netflix собралась внушительная компания: к Бениоффу и Уайссу на позиции шоураннера присоединился Александр Ву (второй сезон «Террора»), исполнительными продюсерами проекта выступят Райан Джонсон («Звездные войны: Последние джедаи», «Достать ножи») и Рэм Бергман (те же фильмы), а за производство будет отвечать студия Plan B Entertainment, основанная Бредом Питтом. Также над сериалом в качестве консультантов будут работать сам Лю Цысинь и переводчица его книг на английский Кен Лиу.




Источник:

https://2x2tv.ru/blog/three-body-problem-netflix/


Развернуть

человечество anon научная фантастика Krowly 

Humanity, Fuck Yeah!

' 4111 / 1 «4 You ^3 siderealsandman bogleech Забавно, как часто в научной фантастике людей описывают как скучный «стандартный» вид, а то и вовсе как одних из самых слабых или тупых. Я бы хотел посмотреть на научно-фантастическую вселенную, в которой люди — один из наиболее
Развернуть

Отличный комментарий!

Ну на самом деле всё так и может быть)Если мыслить на уровне вселенной, то мы не убиваемые машины убийцы!
anon anon08.12.201509:27ссылка
+7.6
Убиваемые. Просто с чрезвычайно высоким КПД.
Зацени: спим 8 часов, функционируем в два раза дольше, порой даже втрое. Кто ещё таким может похвастаться?
anon anon08.12.201512:17ссылка
+8.0
А я сплю по 10, и потом не функционирую.
anon anon08.12.201512:21ссылка
+41.8

it-юмор geek слово пацана 

ну это невыносимо коллеги (аЛЛБдаБ Читать сериал «слово тимлида»: главный герой каждую серию сорок минут молча выслушивает требования бизнеса, а в конце говорит «ну это хуйня какая-то» 19:35 • 12.12.2023 из: ЕаЦЬ • Просмотров: 20,4К Репостов: 23 Цитат: 4 605 отметки(-ок) «Нравится» Закладок:
Развернуть

Half-Life Игры it-юмор geek работа 

Half-Life,Игры,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,работа
Развернуть

приколы для даунов it-юмор geek 

JUNIOR MIDDLE ART-DIR ОХРАННИК,приколы для даунов,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Развернуть

geek приколы для программистов 

РАБОЧИЙ КОД иЫ1Т-ТЕСТЫ,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,приколы для программистов
Развернуть

it-юмор geek стоматолог  Битрикс 

ту ВСЕ, ЗУБ шктщи-мы ВАМ УДАЛИЛИ! КАК ВАШЕ САМОЧУВСТВИЕ?I ОЩИЧНО, ХОЧУ СЩГЬ БИТРИКС РАЗРАБОТЧИКОМ!,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,стоматолог,1С,Битрикс

Развернуть

Отличный комментарий!

а чего не 1с?
sylla sylla09.07.202213:35ссылка
+2.4
Так ему не все зубы мудрости удалили
DutchL DutchL09.07.202213:53ссылка
+35.7

it-юмор geek ВОЛС 

6912 волокно в одном,

it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,ВОЛС
Развернуть

Отличный комментарий!

Ну че ж вы палитесь то?!
http://joyreactor.cc/post/4870680
Alexpmhihx Alexpmhihx24.07.202118:14ссылка
+37.9

песочница geek АСУ ТП программирование реактор образовательный длиннопост 

Часть 2, приоритеты и базовые сигналы

Часть 1,введение (отправил в политоту из-за двусмысленных высказываний, ибо было сложно удержаться)


Приоритеты команды
Итак, вы решили взяться за благое дело и сэкономить пару дефицитных рупей на найме программиста и запилить всё своими руками. Что же для этого надо?
1) скачайте среду разработки
2) откройте среду разработки

3) закройте среду разработки и идите искать программиста

Для начала, давайте проясним одну вещь. То что я рассказываю не является аксиомой. Это концепция архитектуры, позволяющая сделать максимально гибкое и устойчивое решение, позволяющее безболезненно изменять различные прослойки кода внутри проекта, не роняя завод.

Итак, помните, я говорил что всё есть сигнал? Я наврал. Всё есть объект.
Вход - это объект.
Выход - это объект.
Бутылка - тоже объект, но более высокого порядка.

А дальше мы начинаем собирать пирамидку из кубиков:
- базовые сигналы нижнего уровня, дискретные и аналоговые
- простые устройства
- сложные устройства
- технологические участки
- технологические линии
- производственные участки
...
- планирование производства

Вот всё что лежит до троеточия и будем рассматривать. Начнём с базиса, но перед этим - а кто здесь главный? Ты, я? оператор? директор? да пошёл ты в жопу, директор! Главная здесь ОНА:

песочница,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,АСУ ТП,программирование,реактор образовательный,длиннопост


Мне лень рисовать пирамидки маслоу, поэтому обойдёмся блок-схемами. ГОСТы - для слабаков! Главное, чтобы было понятно...

ооооо Глобальные переменные Внутренние переменные Управление из алгоритма Управление с НМ1 Внешние сигналы Ограничение уровней доступа на НМ1 [а] Администратор 0 Оператор [п~] Пользователь Без ограничений Приоритетность команд Приоритет управляющих сигналов и режимов работы от наивысшего


УХ, ебать! Но это лёгкий вариант, извините.

Глобальные переменные
Обратите внимание на "Глобальные переменные". Что в них входит? А всё, что проходит красной нитью через весь код и существует в единственном экземпляре:
- Аварийный останов
- Общий сброс аварий
- Общий режим эмуляции
- Общий перевод в автоматический режим всех устройств (очень полезно, если оператор любит пошарить ручками где надо и забывает что делал в недрах нашей системы)

Как оно выглядит в объявлении переменных? Вот так:

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 лежит:

1 2 3 4 5 € 7 3 3 10 11 12 13 14 15 16 17 13 13 20 21 22 23 24 TYPE system : STRUCT pulse_01s :BOOL, pulse_ls :BCDL, xON :BOOL, xOFF :BCXDL, Hand_DI :BOOL, Hand_D0 :BCDL, Hand_AI :BOOL, Hand_A0 :BOOL, Hand_M :BOOL, Hand_V :BOOL, Hand_Axis :BOOL, Hand_Any :BOOL,

Дану ёб твою мать, скажете вы, что это за херня? И будете правы!
- x - не потому что хуй, а потому что ON и OFF зарезервированы системой и их нельзя просто так применять;
- Hand - флаги, что хотя бы одно устройство данного типа переведено в ручной режим;
- Alm - флаги, что хоть одно устройство данного типа находится в аварии;
- Any - сборный флаг для всех флагов, привязанных к типам устройств;
- V - Valve, а не то что вы подумали. Клапан, заслонка, задвижка;
- M - не мудак, к сожалению, а Motor. Вентилятор, транспортёр, всё что вращается - всё Motor. Я иногда делю на MD и MDA, дикрестное и дискретно-аналоговое управления, но это личные заморочки, не более;
- DTL - DataTimeL.. хз что за L, типовая структура формата год-месяц-дата-час-минута-секунда, которую мы будем использовать при работе с расписанием и всем, что требует проверки системного времени.

Ну наконец-то! А где код-то? Хрена вам, а не код. Рано.
На очереди ещё одна структура, которая будет всегда и везде, обеспечивая работу вон той страшной картинки наверху, обычно я называю её CMD:

1 2 3 4 S € 7 3 s 10 11 12 TYPE CMD : STRUCT Start_A :BOOL, Start_M :BOOL. Hand :BOOL. Lock :BOOL. Force :BOOL. Vector :BOOL. ResetOp :BOOL. Reset :BOOL, END_ STRUCT END TYPE //управление в автоматическом режиме //управление в ручном режиме //режим управления, 0


УправлениеУра! Наконец-то! Мы добрались! И теперь...

FUNCTION drv_CMD : BOOL VAR_INPUT Alarm :BOOL; END_VAR VAR_IN_OUT CHD :CHD; END_VAR VAR END VAR // Опредление режима работы драйвера IF NOT All_Block THEN //He принудительный режим IF NOT CMD.Force THEN IF NOT CHD.Lock AND NOT Alarm THEN //Автоматический режим IF NOT CHD.Hand THEN

песочница,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,АСУ ТП,программирование,реактор образовательный,длиннопост

Видите вон там странный Alarm, которого раньше не было? Видите? И он есть!
А всё почему? Да потому что...
1) мы делаем универсальный код, который будет применим для всего и вся
2) программа - это не только программа, это ещё функциональный блоки функции

В чём же разница? Если кратко - функциональный блок может иметь свои внутренние, приватные, переменные, а функции - работает только с внешними и временными.
СтопЭ. временные и внутренние - какая в пень разница?
Внутренняя - сохраняет своё значения при переходе на новый цикл программы.
Временная - теряет своё значение может содержать случайную величину при переходе на новый цикл программы.
Таким образом, если вы внутри функции делаете А+Б=С и по значению С принимаете решение КАЖДЫЙ раз вызывая функцию, то можно использовать временную. А если делаете А+Б = С один раз и больше к этому не возвращаетесь, только читая С, то нужна внутренняя переменная. И опять таки... если вы хотите сохранить значение С при перезапуске контроллера - будьте добрый, сделать её энергонезависимой, т.е. Retain.

Вернёмся к Alarm. Для функциональных блоков (FB) и функций (FC) есть следующие виды переменных:
- входные - можно только читать
- выходные - можно только записывать
- входные-выходные - как тугая попка трапа, можно и читать и изменять значение
Это очень важно, когда у вас одна и та же внешняя переменная передаётся разныеFC/FB а вы сидите и хлопаете глазками, почему значение теряется посреди программы. Да потому что вы проебались и привязали не к тому типу. Наиболее наглядно сие видно в графических языках:

"«•оссл/и^рв1* "SseLCChjOt f eFE " n9Zjr*Lbu*m wrCAetualJ5p««dr — 1ч» a Lu ii On —Switch OÍÍ “ — P9ÜUT« .Actuad Sp«M» “Pebiule "Eag¿.ae* Huyauc_Or. — rK Oa' Prc5C5_3í>eed_?.síic "pl!_Pr**et_Sp*ed ? bsd " -eftohftd* SBC,песочница,geek,Прикольные гаджеты. Научный, инженерный и айтишный

Слева- входные (input) и входно-выходные (input-output) переменные, справа -выходные.

Фух, разобрались, теперь вызовем нашу страшную функцию:

2S 30 31 // Управлявшее слово drv_CMD(Alarm := stare.Alarm, CMD := CMD); IF CMD.Hand THEN sys.Hand_V := TRUE; END IF,песочница,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,АСУ ТП,программирование,реактор образовательный,длиннопост


Драйвера, устройства и состояния
Расширим очко овертона терминологию: драйвер. Нет, это не виндовый драйвер. Но близко. Это некий алгоритм и набор переменных, описывающий работу базового или типового устройства. Входа, выхода, насоса, клапана. Оно беспечивает автомномный контроль:
- безопасности
- аварий
- ручного и автоматического управления
- наработки
Включает в себя все необходимые для жизни параметры и настройки, коих дофига и больше. Но это мы рассмотрим потом. Или не рассмотрим. Если микроскоп вдруг сломается.

Выглядит управление дискретным входом следующим образом:

ооооо Глобальные переменные Ограничение уровней доступа на НМ1 Сигнал Внутренние переменные [а] Администратор 0 У BOOL = неопределён Управление из алгоритма 0 Оператор 0 У BOOL = TRUE Управление с НМ1 (ГГ) Пользователь 0 У BOOL = FALSE Внешние сигналы Без ограничений 0 У Значение Дискретный


Итак, для работы драйвера нам необходимы:
- CMD - структура команд, рассмотрена выше
- cfg - структура параметров
- state - структура состояний

Дискретный вход слишком прост и отдельный набор состояний ему не нужен. Состояния включают в себя коды аварий, подсчёт наработки, вспомогательные плюшки для удобства отображения оператору "что тут происходит, мамочки, почему оно встало?!"

TYPE cfg_DI : STRUCT use_NC :BOOL; //выбор типа сигнала, 0 - нормально открытый, 1 - нормально закрытый T_ON :INT; //время фильтрации дребезга на включение сигнала T_OFF :INT; //время фильтрации дребезга на выключение сигнала END_STRUCT END TYPE,песочница,geek,Прикольные гаджеты. Научный,

use_NC...
NC - нормальной закрытый сигнал
NO - нормально открытый сигнал
Например, у вас есть дверь. Стоит датчик, контролирующий что "дверь закрыта". 

Есликогда она закрыта сигнал = 0, а при открытии двери сигнал = 1, это нормально открытый сигнал.
Если когда она закрыта сигнал = 1, а при закрытии двери сигнал = 0, то это нормально закрытый сигнал.

Применение того или иного типа сигнала должно быть продиктовано соображениями безопасности. Например, аварийный стоп - должен быть нормально закрытым сигналом. Есть сигнал - всё хорошо, пропал - всё плохо. Почему так? Потому что Вася уронил топор на кабель и сигнал пропал - вы должны отключить всю систему, чтобы бедного Васю не намотало, превратив в инвалида пожизненно. Да-да, безопасность Васи - Ваша ответственность!

А если это не критичный сигнал, требующий контроля целостности сигнальной линии, то можно смело ставить нормально открытый датчик. Но это теория, а на практике ныне - что найдёте, то и поставите. Сорян.

УУУ, сука, сколько буков то! А это только начало! И я не ответил на главный вопрос - на кой хер нам вообще различать на уровне драйвера тип сигнала? В алгоритме основном поправим, да и делов то. НЕТ! Хватит! Не усложняйте себе жизнь!

Вам, как программисту, должно быть глубочайше насрать какой там тип датчика -сработал это всегда = 1, не сработал это всегда = 0. И именно эту задачу унификации решает драйвер дискретного входа. УНИ-ФИ-КА-ЦИИ, а не загрузки процессорного времени бесполезным хламом. Так менеджеру и ответите, что вы ускоряете дальнейший цикл разработки, ага.

ТаймерыАвтор, ты заебал, где код драйвера? Да вот он, только работать он у вас не будет:

1 2 3 4 5 € 7 3 5 10 11 12 13 14 15 FUNCTION BLOCK drv DI VAR_INPÜT Signal ENDJVAR VÄR_IN_OUT :BOOL; CMD cfg END_VAR VÄR_OUTPUT :CHD; :cfg_DI; Result END_VÄR VAR :BOOL; Clock :ARRAY [0..1] OF Time_S; END VAR,песочница,geek,Прикольные гаджеты. Научный, инженерный и айтишный

1 2 3 4 5 € 7 3 5 10 11 12 13 14 15 16 17 13 13 20 21 22 23 24 25 2€ 27 23 23 30 31 32 33 34 35 3€ 37 33 35 40 41 42 43 44 45 4€ 47 43 45 50 51 52 53 54 55 5€ 57 // ДИСКРЕТНЫЙ ВХОД // Сигналы от датчиков, например: // - уровень // -

А почему - угадаете? Не, вы не тупые, вы умные. Просто я хитрожопый и вместо системных таймеров использую самописные. Нахуа-хуа? Да потому что системные кривые. И их мало. И каждый системный таймер можно использовать только один раз(если они аппаратные, как в старых ПЛК).
Почему использовать системный таймеры, это грех:
- если вы измените во время работы таймера уставку времени и она окажется меньше, чем уже прошедшее время с момента запуска таймера, то он встанет раком
- нет паузы
- нет сброса
- нет контроля % отсчитанного времени
- и, самое главное, время в формате Time, которое очень неудобно выводить на панель оператора
Самописный таймер решает все эти задачи. Как вы уже догадались, там потребуется структура переменных для него и FC, вот они для самого простого таймера, который используется в драйвере выше:

1 ТУРЕ Т1те_3 : 2 БТЮТСТ 3 Бгагг :ВООЬ; //управление таймером 4 0 :ВООЬ; //выход таймера 8 Раизе :ВООЬ; //пауза € Иезег :ВООЬ; //сброс текущего времени 7 БР :ШГ; //ЗебРотпб - уставка, время, которое надо отсчитать запуска таймер^ 8 АР :ЮТ; //ActualPoint - аутальное время, которое

 FUNCTION drv_Time_S : bool VAR_IN_OUT T :|liine_S; END_VAR VAR END VAR // Таймер с краткостью 1 секунда IF T.Start AND NOT T.Reset THEN // Работа таймера IF T.AP < T.SP THEN IF NOT T.Pause AND sys.pulse_ls THEN T.AP := T.AP + 1; END_IF; T.Q := FALSE; ELSE // Заданное время достигнуто


И весь этот охреневший объём кода вам нужен в промышленном контроллере только для того, что проверить нажатие кнопочки или срабатывание маленького геркончика. Очень мило, не правда ли?)

Благодарю за терпение, забыл важную картинку и не смог отредактировать пост. В прошлом варианте поста были вопрос на тему, почему pulse_01s и pulse_1s имеют тип BOOL и как вообще эта мерзость должна работать. Не зря в начале было сказано об архитектуре, именно её мы затронем третьей части историй после кружечки кофе и предложим своё видение "как оно должно работать", что, естественно, не претендует на истину и даже не носит рекомендательного характера, потому что код каждого программиста индивидуален и уникален, но если мы сможем писать хотя бы так, чтобы сосед слева мог его прочитать - это уже хорошо.

Развернуть
В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме научно производственный (+1000 картинок)