реклама на сайте
подробности

 
 
> Сложные программы
Буратино
сообщение Jan 4 2017, 06:47
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Доброго времени! Всех с НГ! sm.gif

Занимаюсь созданием приборов с микроконтроллерным управлением. Ничего эдакого, как говорит ЛИ "автоматизация курятников". Из последнего у меня получилось 32К на Си. Освоил и пользуюсь методами из теории конечных автоматов. Сообщения, таймеры много канальные программные.
Однако новые требования заказчиков, косяки в архитектуре ПО и некоторые другие факторы вынуждали меня что то править, что то и вовсе переписывать. Это вылилось в трудно модифицируемую систему с костылями и тп хренью.
С нового года я работаю над еще более сложным прибором и понимаю, что так как было делать нельзя. Смотрю в сторону объектно ориентированных принципов построения ПО, а также подумываю над идеями из теории ОС.
Как вы решали свои задачи, что можете посоветовать посмотреть-почитать? Спасибо!


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
gte
сообщение Jan 4 2017, 09:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(Буратино @ Jan 4 2017, 09:47) *
Занимаюсь созданием приборов с микроконтроллерным управлением. Ничего эдакого, как говорит ЛИ "автоматизация курятников".

Автоматизация курятников гораздо легче (и разумнее) делается с использованием промышленных контроллеров и соответствующего программного обеспечения. Так легче и, в итоге, дешевле. Можно учитывать особенности каждого курятника и новые требования заказчиков. Кроме того, заказчику легче эксплуатировать такие системы. Например что то модифицировать в будущем или заменить датчик на другой, добавить что-то новое.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 4 2017, 14:08
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(gte @ Jan 4 2017, 12:48) *
Кроме того, заказчику легче эксплуатировать такие системы. Например что то модифицировать в будущем или заменить датчик на другой, добавить что-то новое.

.... и отказаться в результате от услуг разработчика. crying.gif
Заказчику не должно быть что-то легко переделать самостоятельно в устройстве, иначе у него может возникнуть крамольная мысль "а нафига я столько плачу этому разработчику? эта работа столько не стОит! Я и сам это могу" biggrin.gif

Цитата(Буратино @ Jan 4 2017, 12:49) *
Ну например: в устройстве есть некий цифровой выход, который должен уметь быть включенным на x секунд в диапазоне от 0 до 120. При этом выход может быть сконфигурирован как инверсным так и без инверсии. Также выход должен уметь работать циклами включен на y сек, выключен на z секунд. Естественно работа этого выхода связана с другими узлами и логикой системы Так например работа выхода может быть прервана на w секунд, а после продолжена.
Согласен ничего такого в этом выходе нет, но что если приходит заказчик и говорит: хочу чтоб этот выход включался только если темное время суток, а если светлое время суток то хочу чтоб включался другой выход с другими x,y,z,w
Я это реализую, но выглядит это стремно: глобальные переменные, флаги, общие в целом куски ПО. Кароче не то.

Ну если так часто ходят заказчики с такими тривиальными задачами (и у каждого она немного отличается от другого), то у Вас наверное неправильно составлено ТЗ. И вообще - решение задачи архитектурно сделано неверно.
Усложните себе задачу - поставьте её по-нормальному:
1.Реализовать в устройстве поддержку выполнения скриптов (записанных в любом формате, хоть соответствующем некоему стандарту, хоть доморощенном).
2.Реализовать некий необходимый пользовательский функционал со скриптовым доступом (вкл/выкл ноги, послать пакет в порт, задать паузу, установить таймер и т.п.).
3.Привязать выполнение скриптов к событиям от периферии.
4.Дать возможность пользователю редактировать и запускать скрипты на Вашем устройстве.
Всё! С этого места можете спокойно плевать в потолок, попивая пиво и посылая пользователей читать мануал на скрипты.
laughing.gif

Цитата(AlexandrY @ Jan 4 2017, 15:28) *
Только скрипты позволяют пока клиент рассказывает о своей хотелке реализовать ее в это же время.

О, блин! Уже посоветовали....

Цитата(hsoft @ Jan 4 2017, 15:45) *
многочисленные switch/case, if/else как виноградные гроздья начали обрывать ствол программы под своей тяжестью. В итоге я тогда решил что уйду на RTOS... но проекты встали и дело заглохло.
С тех пор у меня сложилось устойчивое мнение, как только количество ветвей превышает 16 надо уходить на RTOS.

Дело тут не в RTOS, а в стиле написания. Наличие RTOS тут равнобедренно.

Цитата(яман-тау @ Jan 4 2017, 16:28) *
Если проектируемая система единична зачем городить на МК, если есть ПЛК как предлагали выше. Масштабировать, сенсорную панель прикрутить или на верхний уровень АСУТП завести намного легче.

... но как только окажется что чего-то не хватает в функционале этого ПЛК, то уже никак не объедешь. МК - более гибкий подход.
Go to the top of the page
 
+Quote Post
яман-тау
сообщение Jan 4 2017, 14:14
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 662
Регистрация: 15-02-09
Из: Магнитогорск
Пользователь №: 44 875



Цитата(jcxz @ Jan 4 2017, 19:08) *
... но как только окажется что чего-то не хватает в функционале этого ПЛК, то уже никак не объедешь. МК - более гибкий подход.


Например чего?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 4 2017, 15:19
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(яман-тау @ Jan 4 2017, 17:14) *
Например чего?

Например - низкой цены с возможностью поставить на множество мелких объектов с простым функционалом и ограниченным бюджетом.
Или возможности работать долго от батарейки без подзарядки с минимумом потребления.
Или на объекте эксплуатации мало места и никакой готовый ПЛК просто не лезет.
Да мало-ли чего ещё. Практические задачи они такие непредсказуемые.... в теории всё легко.
А захотел клиент чего-нить этакого, чего в готовых кубиках нету и приплыли.... laughing.gif
Go to the top of the page
 
+Quote Post
яман-тау
сообщение Jan 4 2017, 16:02
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 662
Регистрация: 15-02-09
Из: Магнитогорск
Пользователь №: 44 875



Цитата(jcxz @ Jan 4 2017, 20:19) *
Например - низкой цены с возможностью поставить на множество мелких объектов с простым функционалом и ограниченным бюджетом.
Или возможности работать долго от батарейки без подзарядки с минимумом потребления.
Или на объекте эксплуатации мало места и никакой готовый ПЛК просто не лезет.
Да мало-ли чего ещё. Практические задачи они такие непредсказуемые.... в теории всё легко.
А захотел клиент чего-нить этакого, чего в готовых кубиках нету и приплыли.... laughing.gif

простите меня теоретика, сдающего по нескольку объектов под ключ за сезон.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 4 2017, 16:51
Сообщение #7


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(яман-тау @ Jan 4 2017, 18:02) *
простите меня теоретика, сдающего по нескольку объектов под ключ за сезон.


Может что нибудь предложить? Какой ПЛК самый лучший?

Тож в Австралии один "курятник" надо автоматизировать.
Go to the top of the page
 
+Quote Post
яман-тау
сообщение Jan 4 2017, 17:06
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 662
Регистрация: 15-02-09
Из: Магнитогорск
Пользователь №: 44 875



Цитата(AlexandrY @ Jan 4 2017, 21:51) *
Может что нибудь предложить? Какой ПЛК самый лучший?

Тож в Австралии один "курятник" надо автоматизировать.


Последние 2 года в основном ставлю Овен ПЛК110-60 и ПЛК110-30. Самый лучший не подскажу, выбираю под конкретные задачи. По надежности одним из них считаю Simatic S-300. В принципе все хотелки Вам должен написать заказчик в техусловиях на проектирование АСУТП. Может у них Аллен Бредли или Омрон в почете, им виднее.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 4 2017, 20:25
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(яман-тау @ Jan 4 2017, 20:06) *
В принципе все хотелки Вам должен написать заказчик в техусловиях на проектирование АСУТП.

Повезло вам с заказчиками... У нас в основном "хочу что-то вот так, включать, чтобы само отключалось потом...", да чтоб картинки красивые, и сенсорные кнопочки с анимашками... Вот и пиши с этого техзадание...
Цитата(dm37 @ Jan 4 2017, 19:17) *
5) модули для контроля входов 220V как правило с трудом выдерживают режим работы 24/7 (приходится опять городить что-то свое).

Если ПЛК не может работать в 24\7 - это плохой ПЛК, но чаще всего исполнитель не заботится о защите линий от бросков напряжения и т.п.
Цитата(Огурцов @ Jan 4 2017, 20:42) *
значит время таки пришло ?

Пришло к чему? Поставить винду на 8и битник?? biggrin.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 4 2017, 20:26
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(mantech @ Jan 4 2017, 23:22) *
Повезло вам с заказчиками... У нас в основном "хочу что-то вот так, включать, чтобы само отключалось потом...", да чтоб картинки красивые, и сенсорные кнопочки с анимашками... Вот и пиши с этого техзадание...

...а после этого обычно оказывается, что "Вы всё неправильно сделали, и вообще я хотел другого. Вы виноваты. Переделывайте всё....".
Сколько занисаюсь разработкой - ТЗ всегда писали сами, заказчик только читал и говорил что ему не нравится. Хотя потом всё равно приходилось переделывать, так как оказывалось что "я хотел не такого, а с перламутровыми пуговицами...."
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 4 2017, 20:32
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(jcxz @ Jan 4 2017, 23:26) *
Сколько занисаюсь разработкой - ТЗ всегда писали сами, заказчик только читал и говорил что ему не нравится.

Да так и есть, к сожалению..
Цитата(dm37 @ Jan 4 2017, 23:30) *
если исполнитель должен заботиться о защите линий по входам 220V, то я скорее выберу свой вариант преобразования из 220V в 24V (с защитой) и возьму обычный модуль дискретного ввода

Тоже неплохой вариант, вообще считаю, чем больше низковольтки, тем надежнее.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Буратино   Сложные программы   Jan 4 2017, 06:47
- - AlexandrY   Цитата(Буратино @ Jan 4 2017, 08:47) Как ...   Jan 4 2017, 08:36
|- - Make_Pic   Цитата(AlexandrY @ Jan 4 2017, 12:36) ......   Jan 4 2017, 09:04
||- - AlexandrY   Цитата(Make_Pic @ Jan 4 2017, 11:04) Ужас...   Jan 4 2017, 12:28
||- - mantech   Цитата(AlexandrY @ Jan 4 2017, 15:28) Но ...   Jan 4 2017, 20:29
|- - zltigo   Цитата(AlexandrY @ Jan 4 2017, 10:36) И т...   Jan 4 2017, 09:32
|- - haker_fox   QUOTE (AlexandrY @ Jan 4 2017, 16:36) Вся...   Jan 5 2017, 10:06
|- - k155la3   Цитата(gte @ Jan 4 2017, 12:48) . . . . ...   Jan 4 2017, 10:16
|- - Огурцов   си шарп и микрофреймворк   Jan 4 2017, 14:59
||- - alexunder   Цитата(Огурцов @ Jan 4 2017, 15:59) си ша...   Jan 4 2017, 15:46
||- - Огурцов   Цитата(alexunder @ Jan 4 2017, 16:46) авт...   Jan 4 2017, 17:42
|- - zltigo   Цитата(jcxz @ Jan 4 2017, 22:26) Сколько ...   Jan 4 2017, 22:56
- - Буратино   нет, готовые RTOS меня не интересуют. Я работаю с ...   Jan 4 2017, 09:49
|- - Onkel   Цитата(Буратино @ Jan 4 2017, 12:49) .......   Jan 4 2017, 12:38
- - яман-тау   Если проектируемая система единична зачем городить...   Jan 4 2017, 13:28
- - dm37   Занимался как раз задачами автоматизации птичника ...   Jan 4 2017, 16:17
- - dm37   ЦитатаМожет что нибудь предложить? Какой ПЛК самый...   Jan 4 2017, 17:33
- - Буратино   В этой теме речь не идет о пром контроллерах, арма...   Jan 4 2017, 19:11
|- - AlexandrY   Цитата(Буратино @ Jan 4 2017, 21:11) В эт...   Jan 4 2017, 21:26
|- - Огурцов   Цитата(Буратино @ Jan 4 2017, 20:11) В эт...   Jan 5 2017, 09:15
|- - Буратино   Цитата(Огурцов @ Jan 5 2017, 13:15) тогда...   Jan 6 2017, 07:38
|- - syoma   Цитата(Буратино @ Jan 6 2017, 09:38) Чего...   Jan 6 2017, 08:52
|- - Огурцов   Цитата(Буратино @ Jan 6 2017, 07:38) Я с ...   Jan 7 2017, 19:37
|- - desh   Цитата(Буратино @ Jan 6 2017, 10:38) Чего...   Jan 7 2017, 21:04
||- - syoma   Цитата(desh @ Jan 7 2017, 23:04) Присмотр...   Jan 7 2017, 22:36
|- - Укушенный воблой   Цитата(Буратино @ Jan 6 2017, 07:38) меня...   Jan 8 2017, 13:27
|- - Огурцов   Цитата(Укушенный воблой @ Jan 8 2017, 14...   Jan 8 2017, 14:04
|- - gerber   Цитата(Укушенный воблой @ Jan 8 2017, 16...   Jan 8 2017, 14:28
- - dm37   С++ для микроконтроллеров. в первую очередь эта с...   Jan 4 2017, 19:24
- - dm37   ЦитатаЕсли ПЛК не может работать в 24\7 - это...   Jan 4 2017, 20:30
- - dm37   ЦитатаА насколько сложные программы вам удается пи...   Jan 5 2017, 06:46
- - k155la3   Цитата(Буратино @ Jan 4 2017, 23:11) . . ...   Jan 5 2017, 07:22
- - Буратино   Спасибо за ответы. Немного почитал о ОС. Мне точн...   Jan 5 2017, 07:40
|- - k155la3   Цитата(Буратино @ Jan 5 2017, 11:40) . . ...   Jan 5 2017, 07:59
|- - AlexandrY   Цитата(Буратино @ Jan 5 2017, 09:40) Еще ...   Jan 5 2017, 10:16
|- - haker_fox   QUOTE (AlexandrY @ Jan 5 2017, 18:16) Cor...   Jan 5 2017, 13:03
|- - jcxz   Цитата(haker_fox @ Jan 5 2017, 16:03) Ну,...   Jan 6 2017, 07:52
- - Буратино   компилятора!? о_О   Jan 5 2017, 08:07
|- - k155la3   Цитата(Буратино @ Jan 5 2017, 12:07) комп...   Jan 5 2017, 08:12
- - Drozd2   Protothreads в помощь   Jan 5 2017, 09:40
|- - k155la3   Цитата(Drozd2 @ Jan 5 2017, 13:40) Protot...   Jan 5 2017, 10:03
|- - jcxz   Цитата(k155la3 @ Jan 5 2017, 13:03) Это н...   Jan 5 2017, 11:19
- - syoma   Буратино, я думаю, что ваша проблема в том, что у ...   Jan 5 2017, 11:12
|- - iosifk   Цитата(syoma @ Jan 5 2017, 14:12) Буратин...   Jan 6 2017, 08:10
|- - AlexandrY   Цитата(iosifk @ Jan 6 2017, 10:10) Вот эт...   Jan 6 2017, 09:02
|- - iosifk   Цитата(AlexandrY @ Jan 6 2017, 12:02) Не ...   Jan 6 2017, 09:13
||- - HardEgor   Цитата(iosifk @ Jan 6 2017, 16:13) А для ...   Jan 6 2017, 13:35
||- - iosifk   Цитата(HardEgor @ Jan 6 2017, 16:35) Упс,...   Jan 6 2017, 15:15
|- - zltigo   Цитата(AlexandrY @ Jan 6 2017, 11:02) Нын...   Jan 6 2017, 09:19
|- - iosifk   Цитата(zltigo @ Jan 6 2017, 12:19) Слова,...   Jan 6 2017, 09:25
- - Drozd2   Цитатаназываются "кооперативные" ? Чтоб ...   Jan 5 2017, 11:41
- - ViKo   Писать надо туда, где больше заработаешь. А I/O м...   Jan 6 2017, 09:11
|- - syoma   Цитата(ViKo @ Jan 6 2017, 12:11) А I/O ме...   Jan 6 2017, 09:49
|- - AlexandrY   Цитата(syoma @ Jan 6 2017, 11:49) о I/O м...   Jan 6 2017, 10:25
||- - syoma   Цитата(AlexandrY @ Jan 6 2017, 12:25) Eth...   Jan 6 2017, 14:57
||- - AlexandrY   Цитата(syoma @ Jan 6 2017, 16:57) Alexand...   Jan 7 2017, 19:05
||- - syoma   Цитата(AlexandrY @ Jan 7 2017, 22:05) А в...   Jan 8 2017, 09:11
|- - Укушенный воблой   Цитата(syoma @ Jan 6 2017, 10:49) В одном...   Jan 6 2017, 11:42
|- - ViKo   Цитата(Укушенный воблой @ Jan 6 2017, 14...   Jan 6 2017, 12:47
|- - Укушенный воблой   Цитата(ViKo @ Jan 6 2017, 13:47) Универса...   Jan 6 2017, 13:45
- - dm37   "Буратино", всё таки предложу ещё раз по...   Jan 6 2017, 12:26
- - aiwa   Цитата(Укушенный воблой @ Jan 6 2017, 11...   Jan 6 2017, 13:02
|- - zltigo   Цитата(aiwa @ Jan 6 2017, 15:02) Недостат...   Jan 6 2017, 14:31
- - haker_fox   QUOTE (jcxz @ Jan 6 2017, 15:52) "Чт...   Jan 6 2017, 13:04
|- - jcxz   Цитата(haker_fox @ Jan 6 2017, 16:04) Я д...   Jan 6 2017, 15:31
- - TSerg   Сложные программы.. Угу, посмотрел бы я на любител...   Jan 7 2017, 23:11
|- - BackEnd   Цитата(TSerg @ Jan 7 2017, 23:11) Угу, по...   Jan 8 2017, 04:16
|- - agregat   Цитата(BackEnd @ Jan 8 2017, 07:16) Ну оз...   Jan 8 2017, 10:26
|- - syoma   Цитата(agregat @ Jan 8 2017, 12:26) Я мож...   Jan 8 2017, 11:11
- - Буратино   Огурцов, не хамите. Я в этом деле первый после Бог...   Jan 8 2017, 08:27
|- - Огурцов   Цитата(Буратино @ Jan 8 2017, 09:27) Огур...   Jan 8 2017, 10:07
- - BackEnd   Цитата(Буратино @ Jan 4 2017, 06:47) Смот...   Jan 8 2017, 08:57
- - -SANYCH-   ЦитатаА автору советую взять AT91SAM7 установить н...   Jan 8 2017, 11:32
|- - AlexandrY   Цитата(-SANYCH- @ Jan 8 2017, 13...   Jan 8 2017, 12:24
- - Буратино   Огурцов, сори, но Вы не в теме. Просто не понимает...   Jan 8 2017, 12:34
|- - HardEgor   Цитата(Буратино @ Jan 8 2017, 19:34) еще ...   Jan 8 2017, 17:01
- - SlavaV   Буратино, лично моё мнение, все Ваши проблемы реш...   Jan 8 2017, 13:45
|- - Буратино   Цитата(SlavaV @ Jan 8 2017, 17:45) Бурати...   Jan 8 2017, 14:04
- - SlavaV   У Вас название темы "Сложные программы" ...   Jan 8 2017, 14:14
- - Укушенный воблой   А вообще, ИМХО, топикстартер просто не специалист ...   Jan 8 2017, 14:47
- - Буратино   детский сад.   Jan 8 2017, 15:32
- - aiwa   Цитата(Буратино @ Jan 8 2017, 14:34) Есте...   Jan 8 2017, 17:45
- - Эдди   Как по мне, так ртось как раз и надо бритвой Оккам...   Jan 8 2017, 18:44
- - TSerg   Для меня и Windows NT - тоже RTOS.   Jan 8 2017, 18:47
5 страниц V   1 2 3 > » 


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 21:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01575 секунд с 7
ELECTRONIX ©2004-2016