Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Свободнопрограммируемые или параметрические?
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
Страницы: 1, 2, 3, 4, 5, 6
GYUR22
К сожалению по созданию контроллеров нет ни одной книги...
Тема закрытая и только тыком и предыдущим опытом.
Есть общие практики программирования, но всему свое место - если есть продукт то придерживаясь стандартов вы можете сделать его стабильнее или удобнее для поддержки, но если вы даже не знаете с какой стороны подойти все намного сложнее.
v-david
Все мы в какой-то степени самоучки, другие здесь не ходят, но не на этом акцент. Просто есть вещи, которые уже пройдены до (и лучше?) нас. Может просто "прочитать инструкцию"? Меня в свое время этот букварь так нормально перестроил.
AlexG
Цитата(GYUR22 @ 18.1.2016, 15:24) *
К сожалению по созданию контроллеров нет ни одной книги...


Вы все-же преувеличиваете.
Вот, с полки взял: О.И.Николайчук, Системы малой автоматизации, 2003.

Конечно, найти книгу где было бы все по созданию контроллера, от и до трудно, но по отдельности вся необходимая информация определенно в книгах есть.
stscat
Цитата(AlexG @ 21.1.2016, 20:02) *
Вы все-же преувеличиваете.
Вот, с полки взял: О.И.Николайчук, Системы малой автоматизации, 2003.

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


Что значит создать контроллер? Надеюсь вы не имеете ввиду создать сам микроконтроллер - сердце почти любого электронного устройства. Этим занимаются мировые гиганты электроники не один десяток лет. Все что вы можете, это выбрать микроконтроллер исходя из цены и необходимых характеристик. Дальше берете среду программирования для выбранного контроллера и пишите почти с нуля программу. Поверьте, каждый полупук придется создавать самому. Примеров почти нет. Вернее они есть, но это в основном или намеки или откровенный мусор.
kosmos440o
Цитата(stscat @ 18.1.2016, 13:17) *
Можно поконкретнее. В каком ГОСТе, пункте. очень интересно как там учат программистов программировать.

Есть ГОСТы 19-й серии, есть госты по программированию ПЛК, есть ГОСТы по функциональной безопасности. Не скжу, что там прямо всё рассказано, но знать и хотя бы некоторые требования выполнять надо. Если Вы этого не знали, то не являетесь специалистом в области программирования, по моему ИМХУ. Впрочем, таких горе-автоматчиков полно.
stscat
Цитата(kosmos440o @ 22.1.2016, 11:05) *
Есть ГОСТы 19-й серии, есть госты по программированию ПЛК, есть ГОСТы по функциональной безопасности. Не скжу, что там прямо всё рассказано, но знать и хотя бы некоторые требования выполнять надо. Если Вы этого не знали, то не являетесь специалистом в области программирования, по моему ИМХУ. Впрочем, таких горе-автоматчиков полно.


Тогда уж горе-программистов.)

Честно говоря от вас, kosmos440o, не ожидал такое услышать, думал вы имеете к программированию непосредственное отношение. Тогда должны понимать, что чтение гостов лохматых годов ни на миллиграмм не поможет разобраться в том как эти самые микроконтроллеры программировать.
GYUR22
Цитата(stscat @ 21.1.2016, 22:16) *
... Дальше берете среду программирования для выбранного контроллера и пишите почти с нуля программу. Поверьте, каждый полупук придется создавать самому. Примеров почти нет. Вернее они есть, но это в основном или намеки или откровенный мусор.

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

Мы пошли другим путем - есть встроенные программы которые можно выбрать с пульта или web интерфейса или можно написать прогу и загрузить самому, если что то не устраивает wink.gif

kosmos440o
Цитата(stscat @ 22.1.2016, 12:30) *
Тогда уж горе-программистов.)

Честно говоря от вас, kosmos440o, не ожидал такое услышать, думал вы имеете к программированию непосредственное отношение. Тогда должны понимать, что чтение гостов лохматых годов ни на миллиграмм не поможет разобраться в том как эти самые микроконтроллеры программировать.

Различайте стратегию и тактику. То, что Вы должны набросать квадратиков по полю программы и соединить их особым образом - это тактика. А то, что после себя надо оставить инструкцию по эксплуатации - это стратегия.
v-david
и комменты в тексте проги. Которых порой должно быть больше, чем кода. Иначе через месяц не подойдешь, а через полгода легче будет новую написать
stscat
Цитата(kosmos440o @ 25.1.2016, 15:08) *
Различайте стратегию и тактику. То, что Вы должны набросать квадратиков по полю программы и соединить их особым образом - это тактика. А то, что после себя надо оставить инструкцию по эксплуатации - это стратегия.


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


Цитата(v-david @ 25.1.2016, 15:15) *
и комменты в тексте проги. Которых порой должно быть больше, чем кода. Иначе через месяц не подойдешь, а через полгода легче будет новую написать


Без комментов программа почти не имеет смысла. Можно сразу в бинарник перевести а исходник выбросить)
kosmos440o
Цитата(stscat @ 25.1.2016, 16:17) *
Не могу не согласиться. Фактически инструкция должна писаться параллельно с разработкой устройства, а частично и вперед как часть ТЗ. Ибо как задумаешься как некоторые вещи понятно объяснить в инструкции, так понимаешь, что проще в программе это поправить, чтобы более логично и понятно расписать в инструкции. Естественно это в первую очередь относится к интерфейсу пользователя. Здесь, конечно, рулят графические дисплеи. Только с их помощью можно практически без использования текста на интуитивном уровне донести до пользователя всю информацию.

Без комментов программа почти не имеет смысла. Можно сразу в бинарник перевести а исходник выбросить)

Дак вот это в гостах и написано, просто на другом уровне подаётся. Более того, инструкция - это индикатор того, что программист сам понимает, как работает программа.

kosmos440o
Рассмотрим ещё один случай.
Открываю программу, вношу вредоносный код случайно или намеренно, компилирую, прошиваю, закрываю программу.
Вопрос: Какова вероятность возможности этого случая?
Ответ: 100%
Вопрос: Как с этим бороться?
Ответ: Нужен комплексный подход, рекомендация необходимых (но возможно, недостаточных действий):
1. Полное тестирование программы при всём диапазоне всех входных переменных. (код, реагирующий на время "через год", не будет найден при этом)
2. Открытый исходный код. Пользователь должен иметь возможность просмотреть листинг программы. (Здесь подразумевается конечный пользователь).

Вопрос: Кто несёт ответственность за некачественную программу в ПЛК?
Ответ: В местечковых системах, как правило, никто. Крупные производители рискуют репутацией (ответственность за ущерб, как правило, декларативно снимают). Мелким производителям потеря репутации не так страшна, так как они работают с адресным клиентом и найти очередного лоха для них не такая проблема.

Правильные рекомендации к вышеописанному есть в гостах.
Blade runner
Цитата(kosmos440o @ 27.1.2016, 5:59) *
Вопрос: Кто несёт ответственность за некачественную программу в ПЛК?

Кому деньги платили, тот и несет.
Alexander_I
Цитата(kosmos440o @ 27.1.2016, 7:22) *
Дак вот это в гостах и написано, просто на другом уровне подаётся. Более того, инструкция - это индикатор того, что программист сам понимает, как работает программа.

Даже спросить стесняюсь, а программист может не понимать, как работает программа? unsure.gif И что это за программист, если не секрет? И кто тогда истинно понимаетт?
младшой
Цитата(Alexander_I @ 27.1.2016, 9:14) *
И кто тогда истинно понимаетт?

Контроллер все понимает.

Цитата
Вопрос: Какова вероятность возможности этого случая?
Ответ: 100%

Что-то у вас пробелы в области статистики и теории вероятностей.

Цитата
2. Открытый исходный код. Пользователь должен иметь возможность просмотреть листинг программы. (Здесь подразумевается конечный пользователь).

То-то я и смотрю - ко всем параметрическим контроллерам производители выкладывают листинги программ.
stscat
Цитата(kosmos440o @ 27.1.2016, 7:59) *
...Открываю программу, вношу вредоносный код случайно или намеренно, компилирую, прошиваю, закрываю программу....

...Открытый исходный код. Пользователь должен иметь возможность просмотреть листинг программы. (Здесь подразумевается конечный пользователь)...


Одно вытекает из другого. Только имея исходный код можно внести изменения в программу. В бинарник почти невозможно внести какие либо изменения. Разве что одну надпись на другую поменять.

Никто не будет выкладывать исходники, на которые потрачены месяцы, а то и годы упорного труда. Все что выложено это или мусор или намек на то как надо делать.
Alexander_I
Цитата(младшой @ 27.1.2016, 9:23) *
Контроллер все понимает.


Хм... Вот незадача... А я то думал, что программист, прежде чем писать программу, должен понимать контроллер, для которого пишет. Не? Вот и думаю, а не муйней ли я занимаюсь всю жизнь, пишучи программы для всего, что ни попадя.
v-david
Фишка в том, что хороший технолог и хороший программист это не всегда одно и то же лицо. Это идеальное сочетание встречается довольно редко, чаще всего процесс распределяется между двумя авторами. Тут собака и порылась, программист, воплотив чужие идеи, считает себя автором. Это правильно?
Alexander_I
Это абсолютно правильно. И пока я не вникну в детали процесса, как правило гораздо лучше, чем некий технолог, я программу делать не буду.
Ludvig
И совсем непонятно почему инженерам навязывают программирование. Ну не найден продходящий спрограммированный контроллер. Берем простейший СПК, программируем Не на С++, а на ФБД, языке понятном любому инженеру. С полным пониманием управления процессов еще на стадии рисования эл.схем. И вообще, о чем базар? Можешь программировать - программируй. Постоишь, поналаживаешь программу в неотапливаемом помещении, где-нибудь на выезде, сам поймешь что лучше.
Kotlovoy
Цитата(Ludvig @ 27.1.2016, 13:59) *
Берем простейший СПК, программируем Не на С++, а на ФБД, языке понятном любому инженеру. С полным пониманием управления процессов еще на стадии рисования эл.схем.

Вы тут понапишете, а они все как кинутся программировать, за уши не оттащишь smile.gif
stscat
Цитата(Kotlovoy @ 27.1.2016, 14:40) *
Вы тут понапишете, а они все как кинутся программировать, за уши не оттащишь smile.gif


Точно-точно. Мы же знаем, что программист приходит на объект, с важным видом включает ноутбук. На экране появляется огромная кнопка "ПУСК". Нажимает ее и вуаля - все работает. Делов-то.)))
Blade runner
Должен ли программист знать алгоритм управления объектом или ему это должен дать технолог ?
Kotlovoy
Скорее всего, после вопроса технологу получите встречный вопрос - "Ты это сейчас с кем разговаривал"?
Blade runner
В таком случае , кто должен знать алгоритм управления объектом ?
libra
Цитата(Alexander_I @ 27.1.2016, 11:32) *
Это абсолютно правильно. И пока я не вникну в детали процесса, как правило гораздо лучше, чем некий технолог, я программу делать не буду.

Ой ли? Смотря какой процесс smile.gif Для начала "Свойства жидкостей и газов " Р. Рида почитай. И т.д. и т.п.
Alexander_I
Даст технолог "ему", или не даст, но программист знать должен. И это априори от желаний технолога не зависит. Иначе никакой вразумительной программы не получится.
А что касается вопроса коллеги libra - Ой ли? Ответ: ой ли!
libra
Цитата(Blade runner @ 27.1.2016, 15:35) *
Должен ли программист знать алгоритм управления объектом или ему это должен дать технолог ?

Должен. Сегодня слышал "битву экстрасенсов" по удалению дымовых газов. smile.gif
Blade runner
Если технолог не знает, то откуда может знать программист.
WRybkin
Цитата(Blade runner @ 27.1.2016, 16:35) *
Должен ли программист знать алгоритм управления объектом или ему это должен дать технолог ?

Большинство толковых КИПовцев, АСУТПшников и программистов знают алгоритмы управления объектом и последствия отклонения от них лучше, чем технологи. И, после увольнения технолога, часто устраиваются работать на его место, если там платят больше (а там платят больше). Ещё бывают бестолковые вышеназванные работники, но они на производстве обычно долго не задерживаются, до второй-третьей аварии по их вине.

p.S. Толковый программист 1С обычно знает бухгалтерию на порядок лучше главбуха и аудиторов. Но бухгалтером работать не станет.
Blade runner
Это , если программисту известен объект управления, а если неизвестен.
Alexander_I
Если технолог не знает процесса, которым управляет, такого "технолога" смело можно удавить. Во-первых, кому нужен такой технолог, а во-вторых - какую программу можно написать, не зная процесса? Может подскажете пример таких удачных программ, а то я не знаю.
v-david
Alexander_I, утверждая, что программист должен разбираться в технологии лучше технолога Вы принципиально ошибаетесь. Если следовать Вашей логике, то тогда и технолог должен в совершенстве знать, например, теорию конечного автомата ну или матричное исчисление. Технолог должен уметь алгоритмизировать процесс, проще говоря - объяснить, что он хочет. Вот с этим и есть проблема. А пытаться самому сесть на 2 стула - результат понятен. Повторюсь, хорошо, если технолог как любитель сможет запрограммировать что-то там, но еще лучше, если он остановиться в своих дерзания (на FBD) и займется своим делом. А математику оставит для дома, для семьи, ну или займется ею с прицелом на будущее. Знаете, что такое Т-специализация?
Blade runner
Программист может математику не знать, не придумает же он математическую формулу, которой описывается управление объектом. Появляется еще один специалист - математик.
Alexander_I
Если вместо программиста тупой кодировщик, который переводит в строчки программы алгоритмы, предоставленные ему кем-то, то так и есть. Однако, в последние лет 15 не видел ни в одной организации (разработчике систем управления) ни разу ни неких алгоритмистов, ни кодировщиков, ни прочей хлебояди. В советское время - видил, и было их, как говорил Матроскин, ну просто завались.
Blade runner
Ну откуда программисту знать алгоритмы управления, например летательным аппаратом, если их не знает (!!!) , специалист авиаконструктор
Alexander_I
Понятно. Значит за программиста программу пишет "технолог летательных аппаратов". Результат широко известен.
Blade runner
Авиаконструктор не знает как управлять, а программист знает. Оч. оригинально.
Alexander_I
А мысль не приходит в голову, что авиаконструктор знает еще много чего, кроме как управлять, а программист просто обязан знать, как управлять, и должен знать еще много чего, что не знает авиаконструктор? И тогда что-то получится. Не?
Blade runner
Программист не имеет специального образования по летательным аппаратам, т.е. если что-то и знает, то на уровне дилетанта. Причем его знания в аэродинамике никто не проверял.
Т.е. управлять летательным аппаратом у вас будет дилетант.
WRybkin
Цитата(Blade runner @ 27.1.2016, 18:39) *
Программист не имеет специального образования по летательным аппаратам, т.е. если что-то и знает, то на уровне дилетанта. Причем его знания в аэродинамике никто не проверял.
Т.е. управлять летательным аппаратом у вас будет дилетант.

Программисту, который не имеет специального образования по летательным аппаратам, нельзя доверять написание программы управления летательным аппаратом. Для него есть должность кодировщика, а программист и тестировщик потом вместе проверят, чего он накодировал.
Для того, чтобы стать программистом АСУТП, я на первом курсе изучал языки программирования, а на четвёртом курсе среди прочих предметов теорию автоматического управления и машины и аппараты химических производств.
v-david
Цитата(Blade runner @ 27.1.2016, 16:47) *
Программист может математику не знать...

Цитата(Alexander_I @ 27.1.2016, 16:53) *
..в последние лет 15 не видел... ни неких алгоритмистов, ни кодировщиков, ни прочей хлебояди

Цитата(WRybkin @ 27.1.2016, 18:27) *
Программисту, который не имеет специального образования по летательным аппаратам, нельзя доверять написание программы управления летательным аппаратом...

хотьпоржал.
Я Вас уверяю, коллеги, программирующий технолог это человек, который на данный момент еще не определился со своей профессией. В одной из них он любитель. Ну или от нищеты конторы. Тем более не убедите меня в том, что написанная хорошим технологом с задатками программиста хорошо работающая программа уже является программным продуктом, за который можно брать деньги. Стопятьсот раз предлагалось резать аппендицит самому, чет желающих немного.. А давайте еще всех программистов обучим всему, чтоб во всем разбирались, чтоб и бухгалтерию, и траекторию, и... да все могли! Прям так и хочется Лаврова процитировать. Да пустой это разговор, ежу понятно, что попытки скрестить его с ужом бессмысленны. Технологи! делом займитесь и научитесь четко формулировать свои идеи. Можете даже на FBD, если свербит. Извините, если кого обидел, не хотел.
Blade runner
Авторитет программиста , понимающего в технологии много выше, чем не понимающего.
Осталось преобразовать авторитет в репутацию мегамозга и зарплату, что с успехом и делается.
Главное побольше таинсвенности и значимости нагнать, чтобы технолог даже пикнуть не мог, без учета мнения программиста или например киповца,
смотря по обстоятельствам.

WRybkin
Цитата(v-david @ 28.1.2016, 0:07) *
программирующий технолог это человек, который на данный момент еще не определился со своей профессией. В одной из них он любитель.

Если мне предложат на выбор две программы, одну написанную профессиональным технологом, но программистом-дилетантом, а вторую профессиональным программистом не знающим технологии, я выберу первую. У неё будет много недостатков по сравнению со второй, но будет и одно достоинство - она будет работать. Мысль, кстати, не моя, я её позаимствовал у замечательного электронщика, программиста и технического писателя Юрия Ревича. Всем рекомендую его книги по программированию и электронике.
v-david
чудак Вы, WRybkin. Вы и всерьез считаете, что программист без технолога полезет писать управление процессом? Ну-ну..
LordN
вы все ошибаетесь.
между технологом и программистом находится человек, который называется системным аналитиком.
он получает данные от технолога, проктолога, невролога и прочих сведущих людей и ставит/пишет задачу для программиста.
но! системным аналитиком может быть и технолог и программист, при наличии у них соответствующих навыков и умений.
у русских/советских людей так повелось что функции системного анализа в большинстве случаев выполняет программист.
но это скорее исключение чем правило для всего остального мира
Lex
Цитата(LordN @ 28.1.2016, 5:43) *
вы все ошибаетесь.

Жестко ! laugh.gif
Но участники дискуссии не дилетанты,
поэтому скорее всего мы все находимся в ситуации "слепые ощупывают слона"
и каждый его описывает по-своему.

Но, ИМХО, можно и нужно опираться на две аксиомы:
1. программист переводит алгоритм управления системой, заданный технологом,
на язык, понятный микроконтроллеру, контроллеру, компьютеру
для автоматизации процесса управления системой.
Грубо говоря, программист автоматизирует процессы, которые технолог делает вручную,
например, при повышении температуры на таком-то термометре выше заданного значения -
закрывать такой-то вентиль, до тех пор, пока температура на этом термометре не достигнет значения такого-то.

2. В нашем АВОКе (в отличие от общего АСУТП) большая часть процессов одинакова от объекта к объекту.
Например, управление водяным калорифером, или поддержание давления в воздуховоде или сблокированная работа
приточки и вытяжки. Поэтому через некоторое время опыта программист может обходиться без описания процесса
от технолога, потому что процессы одинаковые и решения уже есть. Таким программистам описания нужны только в случае
сложных процессов поддержания температуры, влажности, давления, блокировок систем.
А в общем АСУТП процессы каждый день отличаются - сегодня плавка стали, завтра крекинг нефти, послезавтра
растворный узел и т.д. Поэтому здесь программисту без технолога, умеющего описать весь процесс "в ручном режиме"
не обойтись.

Как-то так.

libra
Цитата(Blade runner @ 27.1.2016, 16:14) *
Если технолог не знает, то откуда может знать программист.

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

Цитата(Alexander_I @ 27.1.2016, 17:33) *
А мысль не приходит в голову, что авиаконструктор знает еще много чего, кроме как управлять, а программист просто обязан знать, как управлять, и должен знать еще много чего, что не знает авиаконструктор? И тогда что-то получится. Не?

Должен знать как управлять летательным аппаратом? А еще и уметь smile.gif Иначе не почувствует нюансов.

Цитата(Lex @ 28.1.2016, 6:50) *
А в общем АСУТП процессы каждый день отличаются - сегодня плавка стали, завтра крекинг нефти, послезавтра
растворный узел и т.д. Поэтому здесь программисту без технолога, умеющего описать весь процесс "в ручном режиме"
не обойтись.

Как-то так.

В этом то и суть. Сегодня органическая химия, завтра неорганическая. Потом криогенная техника и АВОК. Где набрать столько вундеркиндов. Хотя похоже один тут "есть" smile.gif
kosmos440o
Цитата(Alexander_I @ 27.1.2016, 10:14) *
Даже спросить стесняюсь, а программист может не понимать, как работает программа? unsure.gif И что это за программист, если не секрет? И кто тогда истинно понимаетт?

Бывает, что не понимает. До отладки практически всегда так. Думаешь одно, а на самом деле хрень полная. Слепая уверенность в том, что твоя программа рабочая - не показатель.


Цитата(WRybkin @ 27.1.2016, 17:14) *
Большинство толковых КИПовцев, АСУТПшников и программистов знают алгоритмы управления объектом и последствия отклонения от них лучше, чем технологи. И, после увольнения технолога, часто устраиваются работать на его место, если там платят больше (а там платят больше). Ещё бывают бестолковые вышеназванные работники, но они на производстве обычно долго не задерживаются, до второй-третьей аварии по их вине.

p.S. Толковый программист 1С обычно знает бухгалтерию на порядок лучше главбуха и аудиторов. Но бухгалтером работать не станет.


Мы тут с напарником недавно проектанту ОВ-шнику вдалбливали, как надо ставить трёхходовые клапана на нагрев и как на охлаждение. А он долбит своё "мне из Салдо так прислали...". Вроде чувак уже пяток лет на проектах отработал...
Alexander_I
Не бывает у хороших программистов слепой уверенности в том, что его программа работает, пока он не обкатает ее 10 раз для начала на столе, а затем на объекте автоматизации.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.