Как стать автором
Обновить

Комментарии 20

Ничего лично, но читая у меня кровь из глаз чуть не пошла.
Ваш комментарий не лучше и выполнен в стиле:
«Подъезжая к сией станцыи и глядя на природу в окно, у меня слетела шляпа».
Нравится ваша история, за исключением пафоса и грамматики. Это ведь описание программы. Ну да, оно понизит порог вхождения, но не более. Сочувствую Вашим травмам, но не могу сказать, что история тянет на то, чем она хочет казаться.
Ну, ведь я писал что не Толстой.
Нет, я не хочу упрекать Вас в грамматике, у каждого свой уровень, я и сам часто косячу, просто субъективно я не особо осознал именно идею и конечную цель Вашего поста. Прорекламировать книжку, описать свою ситуацию или рассказать о технологии? Я дочитал до конца, меня правда зацепило чем-то, но идеи я абсолютно не понял, честно.
Не понял фразу
Получалось, либо дорого, либо очень дорого.

В МК все либо дешево, либо очень дешево, если потрудиться спуститься по лестнице абстракций до железа(покупать AVR и собирать девайсы самому), а не пользоваться готовым решением. Это если конечно не ползти в сторону FPGA, там и правда все не очень бюджетно.

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

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

Ну это то как раз понятно, среды доступные для понимания электрикам и элетронщикам до появления FLProg существовали только для промышленных контроллеров. А они действительно очень дорогие.
Скажите мне, C сложный? Простой, обычный Pure C.
Да он предоставит миллион способов отстрелить ногу, но он прост как палка. Я же не говорю, что надо писать на 草泥马

Программисты меняют право писать легко и красиво на производительность программ, либо необходимо знать как оно работает под капотом.

А ТС даже Scratch for Arduino не осилил.

И проводя прямую аналогию, про «писать легко и красиво», никто же не программы не пишет блок-схемами.
Скажите мне, C сложный? Простой, обычный Pure C.

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

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

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


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

Схема блока питания даже можно сказать примитивная, кроме случая специальной обфускации чтобы не копировали.
А блок-схемами программы не пишут, только алгоритмы и то самые простые. Вы удивитесь сколько сложных вещей скрыты под некоторыми блоками в FLPROG, и они-то написаны на С, ассемблере и ещё не знаю на чём.
Блок-схемы в автоматике, в том числе и FLPROG уместнее называть конфигурациями, чем программами. Эти блок-схемы просто связывают ранее написанные на языках более низкого уровня программные блоки.
Из-а чего применяются блок-схемы в автоматике так это исключительно из-за наглядности параллельной и/или каскадной обработки данных. Но там где есть циклы или последовательная обработка — тут уже ховайся блоксхема теряет в наглядности и возрастает визуальная сложность, ориентироваться в такой схеме становится сложно, возрастает вероятность ошибки.

Ну не пишут программы блок-схемами, не пишут и все тут. И не следует алгоритмы работы промышленной автоматики, довольно таки примитивные по своей сути, называть программами.
Да, для простых задач язык блок-схем может оказаться подходящим, но это не повод идеализировать его.
Хотя для данного класса задач он вполне подходит именно за счет наглядности.

Ну не пишут программы блок-схемами, не пишут и все тут. И не следует алгоритмы работы промышленной автоматики, довольно таки примитивные по своей сути, называть программами.


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

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

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

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

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

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


Оставайтесь уверенным, тяжело объяснить человеку который не видит дальше того уровня который он освоил, что его знания — не истина в последней инстанции, а лишь маленькая часть её.
Система на основании температуры, влажности, давления, для каждой турбины отдельно, на основании её оборотов, отдаваемой мощности, расхода воздуха (она его тоже сама определяет на основании перепада давления на фильтрах) определяет количество тепла необходимое каждой турбине для предотвращения образования льда на фильтрах, и с помощью заслонок поддерживает это количество тепла >

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


Вы, похоже, искренне не понимаете понятия сложности алгоритма и упорно его путаете со сложностью (в Вашем понимании) системы, которой он управляет.


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

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

Дайте ссылочку на описание алгоритма (я честно говоря не нашёл его описание в нете) Вы же вроде об этом где то писали. Я думаю без проблем реализую его в FBD.
Я являюсь тем самым пользователем, для которого и написали (создали) программу FLProg. Мне нужна цель и быстрая реализация задачи. И у меня нет времени изучать язык программирования. И я не готов посвятить всю жизнь изучению низших языков программирования. Все те кто пишет негативные отзывы об этой программе, а особенно настоящие программисты, я думаю испытывают щемящее чувство утраты монополии. Я отношусь к професиональным программистам как к «богам». Но не боги горшки обжигают. Как согнали богов с Алимпа, так и сейчас ситуация меняется. Как Прометей, создатель программы FLProg, принёс простым людям возможность самим программировать контроллеры. Кто знает что будет дальше. Возможно при помощи голосовых команд можно будет создавать задачи для программирования. Любой кто подвергает критики меня, или создателя программы FLProg, для начала скиньте ссылку на вашу книгу, пусть корявую как у меня, или видеоурок с акцентом как у Грачика. Где вы делитесь своими знаниями, или опытом, и учите простых пользователей. И поверьте, люди которые программируют в FLProg, несут как правило свет в наши дома ( в среде флопчиков, много электриков). Причём и в стужу и жару и на «когтях» зависают, чтобы кто то сидя дома, учил нас, как программировать.
С уважением ко всем людям, Boss220v

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


Я давно уже ушел из области промавтоматики и не испытываю никаких щемящих чувств, но мой знакомый, который сейчас работает на Сименс, в разговоре мне сказал, что они в своей работе используют обычное текстовое представление, а при передаче заказчика специальная программа превращает его в блок-схему. Просто потому, что так удобнее, хотя и требует некоторого расширения знаний.


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


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

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

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

Компью́терная програ́мма — 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 достаточно интенсивно. Ни на каком другом языке я бы не справился.

Так все таки, почему Вы взяли SmallTalk, а не "настоящий стандартизированный язык"?
Наверное, потому, что он предназначен для программирования ПЛК, то есть на узкий и весьма специфичный класс задач, о чем я постоянно указывал в своих комментариях.


Впрочем, Вам очень легко доказать свою правоту (возможность создавать сложные программы на графическом языке, ведь там же есть все, что есть в текстовых языках, "Значит и сложность алгоритмов который можно описать обеими этими языками одинакова") — переписать Вашу программу из текстового представления в графическое (можно найти утилиту, которая это сделает, или сделать ее самому) и продолжать разработку в графическом виде.
Но что то внутри меня подсказывает, что подобной теоретической возможностью Вы не воспользуетесь, и именно по той причине, что текстовое представления (в том числе и для Вас, который умеет читать кубики и линии на раз) намного удобнее графического.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий