totuin
0
Триста штук? Проектор (далеко не самый крутой), две камеры и чемоданчик? Как то скромненько просите))) Лебедев вон лям за лого просит, и ничего, лохи находятся.
totuin
0
Это Ваш вариант (в стиле — убейте мозг), у меня свой (который делает то же самое), но более читаемый. Каждый программист — как художник — видит по своему))))
totuin
+1
Практически ничем, по крайней мере не в 10 раз. Но это же жестокий и беспощадный Российский бизнес
totuin
0
Счётчик миллисекунд в ограничен разрядностью, и через какое то время сбросится в 0. Тут то эти таймеры и сглючат. Это реальная ситуация. Я уже четыре года занимаюсь проектом по действительному переводу ардуино на языки ПЛК. В первый год у меня были таймеры по такому же принципу. Было много реальных ошибок на устройствах собранных пользователями. Решается введением нескольких строчек.

bool _isTimer(unsigned long startTime, unsigned long period )
{
  unsigned long currentTime;
  currentTime = millis();
  if (currentTime >= startTime) {
    return (currentTime >= (startTime + period));
  }else {
    return (currentTime >= (4294967295 - startTime + period));
  }
}
totuin
0
Скромненько добавлю — Arduino+FLProg.
totuin
0
По моему вы забыли с чего начали. Из своих измерений вы никак падение сопротивления проводов не выкините, поэтому ваш платиновый датчик будете вместе с проводами мерить,

Ну вот зачем Вы себя опять позорите? Вы когда ни будь на расстояние пушечного выстрела подходили к промышленному оборудованию? Ладно просвятим темноту. Вот датчик температуры c выходом 4-20 мА

Должен Вас удивить, вот эта платочка — как раз и есть преобразователь. И ставится она совершенно неожиданно на сам датчик. Поэтому провода от датчика до платки манюююсенькие, и их сопротивление можно не учитывать (ну или учитывать известную длину в обработке сигнала от датчика непосредственно в преобразователе). А вот на выходе датчика уже токовая петля для которой длинна линии и количество клемников особого влияния не имеет.
totuin
0
Во первых — что значит пофиг? Как вы на токовом сигнале будете сопротивление мерить игнорируя эти 10% погрешности, если вам в данном случае надо будет измерять собственно сопротивление?

Я советую вам почитать немного о токовой петле. Датчик стабилизирует ток, пропорционалный передаваемому значению. Поскольку цепь замкнута то ток протекающий через датчик равен току протекающему через измерительную цепь в контроллере. На сопротивление линии (в разумных пределах) можно не смотреть. Увеличилось сопротивление — упал ток, схема датчика это увидала, увеличила приложенное напряжение и восстановила необходимое значение тока. Это так простым языком. Как я уже писал раньше — учите матчасть или не пишите глупых комментариев что бы не позориться.
Во вторых — какой, простите, идиот, будет ставить термосопротивление на провода длиннее нескольких см, максимум м?

Именно поэтому к датчикам температуры обычно прилагаются головки с преобразователями в 4-20 мА. Если расстояния небольшие и позволяют обойтись без промежуточных клеммников — применяют четырёх проводную схему с компенсацией линии. Но модули для такого подключения датчиков дороже модулей для 4-20 мА поэтому чаще применяются датчики с головками 4-20. Получается дешевле.
totuin
0
В сотнях — легко. Трассы то идут не по прямой. Ну а часть вспомогательного оборудования может быть вообще очень далеко.
totuin
0
А зачем? Это усложнение и удорожание оборудования. Быстродействия котроллера хватает. Аналоговый сигнал не имеет задержек, 4-20 прекрасно справляется по точности. Ну а дополнительное оборудование — это ещё одна возможная точка отказа. Да и установка оборудования непосредственно на конвеере — как я уже писал — не очень хорошая идея. Вибрация, электромагнитные помехи от приводов, моторов и т.д. Возможна повышенная влажность. А бывает и похуже. Я в свое время немного работал в Аксарайске (хим завод по переработке серы под Астраханью). Там в воздухе летала мелкодисперсная сера. Страшное дело (при соединении с водой — что то похожее на серную кислоту — не химик не знаю что точно но мерзость страшная). Так там печатные платы даже в специальном помещении съедались за полгода. Медь разъедалась. И это в серверной, с фильтрованием воздуха. А сколько бы они проработали в самом цеху))))
totuin
0
Во первых эти протоколы стандартизированны, соответственно те же таймауты имеют четко обозначенную в стандарте величину.
Во вторых вся промышленная автоматика — это системы реального времени. Например конвейеры. Стоит измеритль длинны прутка. Он аналоговый, при протяжке прутка в определенный момент его должен рубануть нож. Для обеспечения необходимой точности длинны (пусть это будут миллиметры, хотя часто требуется точность и выше) при высокой скорости работы линии конвейера (чем выше скорость — тем больше производительность) уже важны милисекунды. Алиния может быть длинной, и контроллер может стоять далеко (ставить контроллеры даже промышленного исполнения непосредственно в производственном цеху — плохая идея). Так что в таких случаях — только аналог
totuin
0
Ну и есть ещё одна проблема которая касается почти всех шинных протоколов. Это скорость. Например модбас для датчика. Мастер отправил запрос по определённому адресу. Потом таймаут что бы слейв понял что запрос кончился. потом слейв отправил мастеру ОДИН параметр. Опять таймаут. Потом мастер подтвердил приём данных. Опять таймаут. переход к следующему адресу. Эта процедура ускоряется для устройств с кучей параметров. Там слейв отправляет сразу МНОГО параметров. Тогда в модбасе появляется смысл. И это актуально для всех шинных протоколов. Если увеличивать скорость — падает помехозащищённость и появляются потери пакетов.
totuin
0
Выходит дешевле. Ну по крайней мере я знаю очень мало датчиков с интерфейсом Modbus на борту. Обычно его имеют более сложные устройства. Например измерители сети — там необходимо передавать достаточно много параметров (напряжение в каждой фазе. ток. ну и ещё кучу расчитываемых самим прибором параметров — можность активная, реактивная ....). А вот отдельные трансформаторы тока расчитанные на удалённое расположение — поголовно 4-20. Не очень выгодно тратить один адрес на один параметр.
totuin
0
А если длинна линии до датчика километр — другой. И при этом он проходит через десяток соединительных коробок с клемниками которые имеют достаточно высокое переходное сопротивление?
totuin
0
TWI и SPI очень чувствительны к помехам. Поэтому в промышленности они и не применяются. А вот RS485 — да — это транспорт для модбаса — очень старого и проверенного протокола (правда уже потихоньку умирающего — его заменяет профинет). 485 позволяет кидать линии до 1200 метров (на практике нормально с потерями в 15-20 процентов посылок работает до 3 км). Но датчики с интерфейсом модбас стоят в разы дороже датчиков 4-20 мА.
И вторая проблема — в сегменте модбас может быть не более 250 датчиков. А значит ещё нужны устройства сегментирования которые то же недёшевы.
totuin
0
Опять вы считаеть не умеете. Кабеля намного меньше не станет. Во первых к вашим имкам все равно тащить три кабеля — два питания и один оптика (то же очень не дешёвый, медь не пойдёт, максимальная длинна сегмента даже для экранированного если не ошибаюсь 250 метров ).
Да и стоит прежде чем давать «полезные» советы стоит немного поучить матчасть. Никто не будет тащить к каждому датчику свой кабель. В проекте рассчитывается оптимальный маршрут, кабеля от датчиков группируются в многожилку (например все датчики и исполнительные устройства от одного охладителя в одну соеденительную коробку, оттуда многожилкой в коробку более высокого уровня и так далее). В результате на щит с контролером приходит несколько кабелей с кучей жил.
Расчёт наиболее оптимального маршрута как раз и является задачей разработчика. И в таком варианте исполнения как раз проявляется вся прелесть токового сигнала. Ему плевать сколько клемников он прошёл, и какое у них переходное сопротивление (конечно в разумных пределах), значения передаваемые с него всегда будут точными.
А вот установка удалённых станций оправданно там, где в небольшом объёме сконцентрированно большое количество датчиков и исполнительных механизмов. У нас например они стоят непосредственно на турбине. Там да — они оправданны.
Так что как говорится вставайте с дивана товарищ и учите матчасть. Ну или просто помолчите, зачем позорится то.
totuin
0
Да не нужно вообще то — установка уже действующая. Кстати проект разрабатывал сименс, а их тяжело назвать глупыми. Не имеет смысла. Во первых 4-20 мА все таки является промышленным стандартом.
Ну и второй вопрос. Вы как то странно считаете. 2 станции ET200 — это далеко не всё. Блок питания для них нужен? Конечно! И желательно два с резервированием (требование процесса), два фидера питания (опять таки резервирование), вводные автоматы, автоматический переключатель питания (то же не дешёвая штука как ни странно). Потом нужен шкаф для всего этого хозяйства, причём уличного исполнения. Конечно же клемники, монтаж и т.п. Опять таки этот шкаф надо закрепить на чём то, то есть фундамент варить, а кое где и отдельный столб бетонировать.
Ну и как Вы думаете, пару кабелей на 500 метров бросить всё таки дешевле будет? Считать правильнее надо товарищ, если собираетесь советы профессиональному проектировщику давать)))))
totuin
0
О ВЕЛИКИЙ ГЕНИЙ Вы нас просветили. Как же мы идиоты не додумались ставить удалённые станции. Теперь на каждые 2 датчика ОБЯЗАТЕЛЬНО будем ставить такую станцию. Ведь датчики в поле разнесены на большие расстояния (установка не маленькая) и плотность датчиков составляет где то 1 — 2 на 100 метров. Ну ВАМ то ГЛАВНОМУ СПЕЦИАЛИСТУ по проектированию систем автоматизации сверху не видно)))
totuin
+1
А кому то проще LAD и FBD. А Вам как программисту изучить LAD, не? Вообще то в основном проектировкой систем управления промышленными системами занимаются как раз специалисты в предметной области (в основном это касается энергетики, да и в остальных областях человек разрабатывающий систему автоматизации должен как минимум разбираться в электрике, поскольку все системы как раз электричеством управляются). Ну а программистов которые не отличают нормально открытый контакт от нормально закрытого в разработку систем управления нельзя подпускать на пушечный выстрел. Как то жить ещё хочется)))
totuin
0
А вы уверенны что инженеру — проектировщику понятнее и ближе ST и IL. Я в области проектирования и наладки систем АСУ работаю уже почти 15 лет, и честно скажу — очень редко вижу вставки на IL или ST. Ну и конечно обычно те самые проектировщики и наладчики громко матерятся на тех кто эти вставки сделал.
totuin
0
Планирую, но в будущем. Пока и ардуинок хватает. В сутках всего 24 часа, и рук всего две)))))
totuin
0
Но с часами и ридером можно сделать автономное устройство. И не таскать с собой ноут
totuin
0
Ну во первых не спортивно)))) Смотрите какой здесь полёт мысли пошёл.
Ну и во вторых стоит такой сертифицированных люксометр будет наверное немало.
totuin
0
Ну и для полного счастья подключаем часы реального времени, картридер, и гоним на флешку статистику с метками времени в csv файл.
После проведения замеров флешку в комп, и считай готовый отчёт в экселе (который кстати умеет строить графики по таблицам).
Получится готовый анализатор
totuin
0
То же верно
totuin
+1
Для измерения пульсаций можно добавить простой фоторезистор. Ведь не требуется измерять освещённость (этим занимается люксометр), а необходимо только измерять её изменение за определённый период времени.
То есть в течении например 500 мс в цикле читаем значение с аналогового выхода к которому подключён фоторезистор, определяем максимальное и минимальное значение за это время, и разница между ними в процентах как раз будет необходимая величина.
totuin
0
Ну раз с электричеством разбираешся, а с кодом сложно — то тебе точно сюда.
Кстати для люксометра (BH1750) там есть стандартный блок. Так же есть стандартный блок для измерителя цвета TCS230.
totuin
+1
Только один вопрос — а зачем здесь WS2812. Обычный трёхцветный светодиод (который кстати и стоит в WS2812) — не кошерно?
WS2812 — это хорошо для тех случаев когда их много, для пиксельной адресации, а здесь он один, и приводит к такой куче проблем. Не понятно.

Упс, нашёл ответ выше
totuin
0
PS так и не увидел понятного рисунка из квадратиков, который получил бы пятые степени.

Дайте ссылочку на описание алгоритма (я честно говоря не нашёл его описание в нете) Вы же вроде об этом где то писали. Я думаю без проблем реализую его в FBD.
totuin
0
Ни в коей мере не принижая все сделанное перечисленными Вами людьми, позволю себе заметить, что ветка началась с фразы в комментарии (не моем) «никто же программы не пишет блок-схемами» и эта фраза безусловно верна.

Ладно, посмотрим с другой стороныю Смотрим википедию.

Компью́терная програ́мма — 1) комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления


Языки FBD и LAD соответствуют этому определению? Блоки представляют собой инструкции, имеются входные данные, программа на этих языках выполняется согласно описанного алгоритма.

Ищем дальше

FBD (англ. Function Block Diagram) — графический язык программирования стандарта МЭК 61131-3. Предназначен для программирования программируемых логических контроллеров (ПЛК). Программа образуется из списка цепей, выполняемых последовательно сверху вниз. Цепи могут иметь метки. Инструкция перехода на метку позволяет изменять последовательность выполнения цепей для программирования условий и циклов.


Это не просто язык, а стандартизированный, мэковский.

Ladder Diagram (англ. LD, англ. LAD, рус. РКС) — язык релейной (лестничной) логики.

Применяются также названия:

язык релейно-контактной логики
релейные диаграммы
релейно-контактные схемы (РКС)
язык программирования релейно-лестничной логики стандарта МЭК 61131-3.


То же себе настоящий стандартизированный язык.

Теперь сравним С и FBD.
1. В языке С используются стандартные функции заранее прописанные в спцификации языка. В FBD в их качестве используются функциональные блоки.
2.В С есть классы, которые имеют свои интерфейсы для взаимодействия с ними. В FBD так же существуют аналоги классов. В зависимости от реализации это могут быть чарты, нетворки, FB ( функциональные блоки), функции (да да именно так они и называются у сименса) или платы как в FLProg. Они так же имеют интерфейсы — переменные, входы, выходы.
3. Как и в С в FBD реализована вся математика, алгебра, и работа со всеми типами данных, возможность создания собственных типов данных, реализация собственных библиотек, а так же пользовательских блоков (аналогов функций и классов в С ). Добавление блока на схему аналогично созданию нового инстанса класса в С.
4. Вы будете очень удивлены но в FBD как и в С реализовано ветвление, циклическое выполнение, и даже рекурсия (скажу чесно, рекурсию в FLProg я пока не реализовал, всё остальное есть. У сименса и рекурсия есть ). Учите матчасть прежде чем плевать в кого то. Может вернуться.
А теперь расскажите мне что может С того чего не может FBD. Функционал то одинаковый, разница как говорится только в синтаксисе, и в способе его отображения. Значит и сложность алгоритмов который можно описать обеими этими языками одинакова.

Теперь посмотрим на разработчиков. Вы как «классический» программист думаете текстом — то есть программа на FBD для Вас непонятное нагромождение квадратиков и линий. Ну что поделаешь — не дано(((
А теперь представте себе (если конечно воображения хватит ) разработчика АСУ, по большому счёту электронщика, который эти кубики и линии читает так же как Вы листинг, на счёт раз. А вот Ваш любимый набор буковок для него китайская грамота (как и для Вас схема программы на визуальном языке). Он тупее Вас? Или он не способен описать сложный алгоритм? Ведь возможности языков как мы уже выяснили одинаковые. Значит разница только в разработчиках. Исходя из этого получается что Вы считаете всех программистов АСУ тупыми недоумками которые не способны написать программу (они ведь не пользуются великим и могучем С) а балуются всякими «Здравствуй мир». Опять таки исходя из Вашего мнения, мы, программисты АСУ можем считать Вас — программистов на С такими же недопрограмистами, ведь Вы не пользуетесь и не понимаете великий и могучий FBD на котором вообще то работает вся промышленность, за счёт которой Вы вообще то живёте.

Вот так гражданские войны и начинаются (шутка).

Ну и так, напоследок, поинтересуйтесь у автора программы FLProg, на чем он ее реализовывал. Если на блок-схемах, то я обещаю съесть свою шляпу.


Ну вообще то я написал её на языке SmallTalk. Он кстати далёк от C так же примерно как и FBD но только немного в другую сторону, а точнее сказать в бок. Это язык где нет примитивов (так всё — объекты — это сложо понять, но когда понимаешь — влюбляешся), где нет кучи файлов, а есть шикарный класс браузер. В этом языке можно остановить программу, внести изменения в код, или заменить значения переменных, и продолжить выполнение программы с того же места дальше. Это наверное единственный язык, где возможно программирование через дебаг (нет я не извращенец, это действительно удобно). И именно он позволяет мне одному развивать проект FLProg достаточно интенсивно. Ни на каком другом языке я бы не справился.
totuin
+1
Ну как я и говорил Вы абсолютно ничего не понимаете в системах АСУ. Печально что Вы пытаетесь судить о них, с упорством Б.
Я не знаю об алгоритме поиска суммы пятых степеней числа, не нужен был пока (понадобится — найду и разберусь).
А насчет простоты алгоритма… Как Вы думаете логика задания соотношения подачи газа и воздуха в зависимости от состава и температуры газа, температуры, влажности, давления окружающего воздуха, нагрузки турбины, величины пульсаций на роторе, да и ещё пары десятков параметров прост? Да ещё с точной подгонкой под конкретную турбину? Это всего пара чартов в программе. А их как я уже говорил несколько тысяч. А ПИД регулятор работающий с десятком — другим параметров?
Возьмём систему антиобледенения. Система на основании температуры, влажности, давления, для каждой турбины отдельно, на основании её оборотов, отдаваемой мощности, расхода воздуха (она его тоже сама определяет на основании перепада давления на фильтрах) определяет количество тепла необходимое каждой турбине для предотвращения образования льда на фильтрах, и с помощью заслонок поддерживает это количество тепла. Я думаю это будет посложнее определения сумм пятых степеней числа. И это то же только малая часть алгоритма.
Я думаю что бы хоть немного развеять темноту в Вашей голове Вам стоит немного почитать о построении управляющих систем.

Я работаю в обеих областях. Уже лент 15 я проектирую и обслуживаю автоматизированные (и достаточно сложные) системы. Примерно столько — же я занимаюсть прикладным программированием (мои проекты — cadel.ru и flprog.ru, причем последний я разрабатываю один ) и я могу сравнивать оба направления программирования в отличии от Вас. И можете мне поверить, логика работы даже одной турбины на порядок сложнее любого из моих проектов в прикладном программировании. Ну это и понятно, поскольку их разрабатывали целые проектные институты сименса.
Ну а насчет Вашего уровня в области АСУ говорит эта фраза

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


Оставайтесь уверенным, тяжело объяснить человеку который не видит дальше того уровня который он освоил, что его знания — не истина в последней инстанции, а лишь маленькая часть её.
totuin
+1
Ну не пишут программы блок-схемами, не пишут и все тут. И не следует алгоритмы работы промышленной автоматики, довольно таки примитивные по своей сути, называть программами.


Конечно очень примитивные программы))))
Я работаю на газотурбинной электростанции. У нас семь турбин по 45 мегаватт. Прошивка контроллера турбина (если точнее там два контроллера S7-400 — система повышенной безопасности, обязательное дублирование) содержит несколько тысяч чартов (один чарт представляет собой как бы законченную плату выполняющую определённую функцию — аналог класса в С — имеет свои виртуальные клеммы — аналог геттеров и сеттеров в С- с помощью которых она соединяется с другими платами (чартами)). На турбине установлено несколько сотен датчиков и исполнительных устройств. Прошивка регулирует работу турбины в зависимости от кучи параметров (температура и давление воздуха, необходимая мощность, всякие пульсации, состав газа (получает и анализирует данные от хроматографа), и ещё куча всего), производит автоматический старт (по протоколу — 73 шага), автоматический ввод в сеть, регулирование турбины по частоте, или мощности.
Давайте назовём это простеньким процессом автоматизации, который не имеет права называться программой. Они же не на С написаны, а нарисованы блок — схемами и программой называться не имеют права (кстати в этой прошивке Вы не найдёте ни строчки кода).
Кроме этого есть ещё общестанционная АСУ которая управляет вспомогательными стемами станции (4 котла — подогрев газа и отопления, система охлаждения турбин — по 12 вентиляторов с регулируемом с помощью ПЧ производительностью на каждую из турбин, несколько сотен автоматизированных клапанов и задвижек ну и опять таки много чего ещё ) — в которой как ни странно Вы то же не найдёте ни одной строчки кода, а только так не любимые Вами квадратики и линии. Ну то же назовем это примитивом — так калькулятор написанный на дельфях.

Я не советую Вам оценивать ту область, в которой Вы полный ноль (извините за грубость) — иначе можно оказаться по уши в том самом (ещё раз извините).

totuin
–1
Скажите мне, C сложный? Простой, обычный Pure C.

А вот вы мне скажите, схема блока питания в Вашем компьтере сложная? Осилите её хотя-бы перерисовать? (я уж молчу что бы самому разработать).
В вашей фразе звучит обычное высокомерие программиста
А ТС даже Scratch for Arduino не осилил.

То есть если человек не умеет читать текстовый код — значит он бездарность…
Вы даже представить себе не можете что люди могут думать по другому, не в текстовом формате, а в схематическом. Но при этом ни грамма не задумываетесь а кто для вас создал эти непонятные ящики на которых Вы пишете эти строки. Они же элетронщики — низшая каста, не идущая ни в какое сравнение с вами — программистами, богами С.

никто же не программы не пишет блок-схемами.


Да неужели! Скажите об этом Сименсу, АББ, Шнайдеру, и ещё десятку производителей промышленных контроллеров. Они будут очень удивленны, и срочно уволят своих программистов, и возьмут Вас на работу с зарплатой в лям баксов. Ну и заодно разгонят всю армию программистов АСУ.

totuin
0
В МК все либо дешево, либо очень дешево, если потрудиться спуститься по лестнице абстракций до железа

Меня всегда смешили подобные заявления. Это пишет человек который смотрит данный пост в браузере написанном на языке высокого уровня (я думаю его писали не в машинных кодах). Даже программируя на ассемблере (если он конечно это делает) — он пользуется для этого программами написанными на языках высокого уровня (блокнот то же не на асме писался).
Почему то современные программисты считают что что они имеют право писать легко и красиво, а вот разработчики железа на МК должны работать только на ассемблере. Только хардкор.
Получалось, либо дорого, либо очень дорого.

Ну это то как раз понятно, среды доступные для понимания электрикам и элетронщикам до появления FLProg существовали только для промышленных контроллеров. А они действительно очень дорогие.
totuin
0
В России считается нормальной наценка 300%, так что ребята ещё скромные. )))))
totuin
+1
И искать её потом под кроватью, за комодом и т.д. Дома четверо детей. Тут же клава и мыш на телефоне, ну а телефон всегда с собой
totuin
0
Если жена использует конкретный плеер, например KODI или VLC то ей на телефон ставится программа управления этим конкретным плеером.


Жена использует группу в контакте «Самые бесбашенные сериалы», так что не прокатит

Если очень хочется отдельный девайс — Lenovo Yoga Mouse

70 баков, и без клавиатуры? Спасибо!!! Arduino micro — 200 руб, HC-05 -60 руб. Всё что нужно! Почувствуй разницу.
totuin
0
Например на компе запрещена или невозможна установка дополнительного ПО. Или на борту нет сети и блютуз. Или закрыты все порты (как у нас например). Ну и самое интересное — у нас есть панельные компы с Win CE на борту (сименс). При выходе из строя тача вешается мышь на проводке. И висит она несчастная свисая на дверце шкафа. Втыкаем вместо мыши это устройство и при необходимости прекрасно работаем (вот только не надо криков о ардуинке в промышленности — мышь мы то же самую дешевую китайскую вешаем, а это просто замена мыши). Кстати в виде временного варианта (пока придут новые панели) эта идея вполне рассматривается.
totuin
0
Насчет надёжности — почти за месяц испытаний проблем не замечено. Лагов так же не наблюдалось. Пробовалось на многих компах, с разными ОС (включая МАС), никаких драйверов или дополнительных программ не требовалось. Подключаешь и работаешь. Проблем никаких. По поводу программного эмулятора (по поводу вашей ссылки) — ничего сказать не могу — не пробовал
totuin
0
Действительно, тут нужен более творческий склад ума