Михайло писал(а): Если сравнивать три языка: LD, FBD и SFC, то самым популярным у профессионалов считается LD, новички предпочитают понятные им блоки FBD, а язык SFC не распространен из-за слабой его поддержки в средах разработки (зачастую его просто нет). При всем при этом сложные задачи удобнее всего решать именно на SFC.
Имеются еще 2 языка программирования - IL и ST. Они оба текстовые. ST (паскалеподобный) обычно предпочитают программисты, которым неохота переучиваться с Паскаля или Си, хотя есть отдельные задачи, для которых этот язык подходит лучше всего. Язык IL - подобие ассемблера, на нем тоже нередко решают специфические задачи.
Ну зачем Вы человека снабжаете субъективной информацией. Нет плохих/хороших, легких/сложных языков, есть плохие/хорошие среды или реализация языков в этих средах. Есть задачи для которых одни языки лучше подходят, другие хуже. Есть людик которым удобнее программровать на одном языке чем на другом.
Вот например симатиколюбы признают в основном только один язык STL, поскольку он "самый родной". И они думают, что всюду так. Что LD всюду одинкаовый, FBD всюду одинаковые.... а они то разные. FBD - самый подходящий для задач регулированияя, так как весь контур представляется в графическом виде. Вот кстати давича лабу наваял, как раз под задачу FBD
лаба по SFC
а на счёт зелио - это не тот уровень чтоб полноценно SFC делать, хотя в UNITY PRO мне тоже меньше нравится, чем скажем Grafcet в PL7, там хоть попроще но и понагляднее ИМХО
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 04:13
Михайло
san писал(а):Ну зачем Вы человека снабжаете субъективной информацией. Нет плохих/хороших, легких/сложных языков, есть плохие/хорошие среды или реализация языков в этих средах. Есть задачи для которых одни языки лучше подходят, другие хуже. Есть людик которым удобнее программровать на одном языке чем на другом.
Я довольно корректно отметил предпочтения тех или иных языков различными группами специалистов и неспециалистов. Ну разве что FBD немного опустил. У Сименса есть мощный FBD под названием CFC.
san писал(а):Вот например симатиколюбы признают в основном только один язык STL, поскольку он "самый родной".
Не уверен, что STL/IL дико популярен. Его, скорей, для некоторых задач применяют типа коммуникационных, то есть связанных с отправкой сообщений по сетевому интерфейсу.
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 05:43
Степа
Михайло писал(а):Я довольно корректно отметил предпочтения тех или иных языков различными группами специалистов и неспециалистов.
Я вот тоже соглашусь, что пошел субъективизм и твои предпочтения отличаются от таковых у других людей.
Михайло писал(а):Не уверен, что STL/IL дико популярен. Его, скорей, для некоторых задач применяют типа коммуникационных, то есть связанных с отправкой сообщений по сетевому интерфейсу.
Открывай учебные материалы Siemens /те, которые трехсотки-четырехсотки касаются/. Или ты в них не заглядывал ни разу?
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 08:05
ward
Михайло писал(а):
Не уверен, что STL/IL дико популярен. Его, скорей, для некоторых задач применяют типа коммуникационных, то есть связанных с отправкой сообщений по сетевому интерфейсу.
ЛОЛ, ниче лучше ст не придумали пока, для подавляющего большинства задач необходимо использовать только его
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 08:35
Михайло
Никакого субъективизма. Я написал информацию, с которой никто не поспорит: я рассказал, кто и что предпочитает и что некоторые задачи удобно выполнять на определенном языке. Про документацию Сименса тут нечего говорить, ее писал коллектив из нескольких человек. Их предпочтение нельзя принять к рассмотрению. Наиболее популярен LD и это подтверждают результаты опросов на некоторых профессиональных форумах (эти результаты репрезентативны, так как участников было гораздо больше сотни). Практически любая система автоматизации включает в себя логическое управление (вкл/откл), этим можно объяснить популярность LD. Математические вычисления встречаются гораздо реже, поэтому FBD там не попал даже в тройку. Кажется второе место за ST. По всей видимости, среди автоматчиков немало программистов, либо попадаются задачи, для которых этот язык подходит лучше.
The choice of programming language is dependent upon the following:
* The programmers’ background
o Are they better/faster at programming and debugging a particular language
* The end user’s preference
o As consultants, we often select a language based upon our customer's skill set. If they prefer one language over another, we will use it even if it would not have been our first choice.
o Code that is easy to maintain may be much better than code that was easy to write in the first place
* The task at hand
o Ladder, Instruction List, and Function Block Diagram are work well for bit logic.
o SFC is great for sequential operations.
o Structured Text is perfect for complex math functions, array operations, and string operations.
o Instruction List is well suited for low level processor commands and PLC memory/register access.
* The way in which the logic is defined
o If your pseudo code is written as a graphical flow chart, SFC is a good choice.
o If your logic is defined as a stateless system where the outputs and inputs are linked with interlock logic, then Ladder is a good choice
ward писал(а):ЛОЛ, ниче лучше ст не придумали пока, для подавляющего большинства задач необходимо использовать только его
Здесь осторожно: не спутай STL с ST. Язык ассемблера IL фирма Сименс называет STL.
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 09:43
Степа
Михайло писал(а):Я написал информацию, с которой никто не поспорит: я рассказал, кто и что предпочитает и что некоторые задачи удобно выполнять на определенном языке.
И именно эта информация вызывает жуткие сомнения...
LD проще всего в освоении среднему человеку. Люди, много практически работавшие с железными логическими блоками /микросхемы/ быстрее осваивают FBD. Впервые ознакомившиеся с программированием на различных курсах - STL: львиная доля учебных курсов построена именно на Siemens, все программы обучения Siemens, какие я видел, построены на этом языке. Имеющие опыт работы исключительно с очень древними ПЛК - STL: этот язык не шибко отличается от тех, древних, языков.
Действительно опытные люди иногда применяют несколько языков в одном проекте: как задачу решить проще и быстрее - так и решают.
А вообще попытка ставить языки по местам - признак сказочного дебилизма. Язык - инструмент. Можно данным инструментом быстро и качественно решить поставленную задачу - инструмент хорош. Нет - плох. Остальное - пузомерки.
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 09:54
ward
ну я имел ввиду всеже сименсовский STL, хороший инструмент, но LD отличная вещь, там где нужна наглядность и простота=)
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 11:33
Михайло
Нет, ну никто пузами не меряется. Вот, например, для примера с тележкой наилучшим языком является LD. Другое дело, что некоторым людям требуется переориентация/обучение на этот язык. А то, что кому-то удобнее FBD в связи с большим опытом ваяния схем на логических элементах, то таких людей еще найти надо. Они, как правило, уже переобучились на LD. Вообще народ, который умеет программировать ПЛК, в среднем по больнице достаточно молод, мне кажется.
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 12:30
san
Михайло писал(а):А то, что кому-то удобнее FBD в связи с большим опытом ваяния схем на логических элементах, то таких людей еще найти надо. Они, как правило, уже переобучились на LD. Вообще народ, который умеет программировать ПЛК, в среднем по больнице достаточно молод, мне кажется.
Я в жизни никогда не работал на схемах с логическими элементами. Говоря о FBD надо думать о сименсовском и кодесисовском CFC, потому как это и есть нормальная реализация FBD, а не те которые там есть. Для меня вобще дико, что FBD есть, а числовых связей в нём нет, что это тогда за FBD? Знакомясь с FBD у симатиков люди сразу же думают о нём как о недоязыке. Ещё раз повторюсь - это недостаток СИМАТИКОВСКООЙ РЕАЛИЗАЦИИ FBD, а не самого языка FBD.
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 12:34
ward
овеновский кодесисовский FBD - я не заметил что он чем то явно отличается от сименсовского
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 12:35
san
ward писал(а):овеновский кодесисовский FBD - я не заметил что он чем то явно отличается от сименсовского
san писал(а): Говоря о FBD надо думать о сименсовском и кодесисовском CFC, потому как это и есть нормальная реализация FBD, а не те которые там есть.
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 13:50
Степа
Михайло писал(а):Они, как правило, уже переобучились на LD.
А оно им надо? Если и так задачи решаются быстро?
Михайло писал(а):Вообще народ, который умеет программировать ПЛК, в среднем по больнице достаточно молод, мне кажется.
Неправильно кажется. История ПЛК насчитывает уже лет тридцать-сорок, как не больше. Те ПЛК тоже кто-то программировал.
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 13:50
Михайло
san писал(а):Говоря о FBD надо думать о сименсовском и кодесисовском CFC
Я тут посмотрел вкратце стандарт МЭК61131-3... Он предполагает, что в FBD должна быть куча математических функций типа SIN, COS, LN, ADD, SUB, DIV, MUL и т.д. То есть CFC больше соответствует FBD по МЭК. И между прочим, МЭК для языка LD не вводит математические функции...
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 13:53
Михайло
Степа писал(а):Неправильно кажется. История ПЛК насчитывает уже лет тридцать-сорок, как не больше. Те ПЛК тоже кто-то программировал.
Мы говорим о разном. То, что ты знаешь, что массовые ПЛК появились в 1960-х годах, молодец. Но при этом надо понимать, что распространенность ПЛК по сравнению с другими средствами автоматизации не зашкаливала.
Re: Языки программирования МЭК 61131-3 в сравнении
Добавлено: 28 ноя 2012, 14:09
Степа
Михайло писал(а):Мы говорим о разном.
Мы говорим о программировании ПЛК. Если ПЛК так много лет, то их кто-то программировал... Не сами же они программировались...
А то, что их было небогато... Так сейчас контроллеры только разве что в унитазах пока не очень распространены, а программистов этих самых контроллеров много? По пальцам одной руки посчитать...
Не способных подключиться, залить программу, посмотреть параметры, а именно взять схему, написать под нее программу, внятно рассказать, что и как сделано и почему именно так. И главное: чтобы это программа выдавала правильный результат при любых комбинациях входных переменных.
Скажем, вот только что пришел с объекта. В теории он вполне исправен и работоспособен. Но программист был любитель интуитивного подхода. Т.е. объект нормально работает только в очень узком диапазоне внешних условий. Температура воздуха чуть упала, давление в магистрали чуть повыше - все, объект уже не держит заданные режимы. Вчера вот подогнали все режимы, сегодня стало холоднее на пару градусов - по новой. И так через день да каждый день... А того любителя интуитивного подхода притащить и приковать к объекту не получается. Хотя надо было бы. И отпустить только после того, как объект полгодика поработает так, как у него в документации написано, то бишь полностью сам.
Re: Обучаем новичка
Добавлено: 28 ноя 2012, 14:26
san
Михайло писал(а):Я тут посмотрел вкратце стандарт МЭК61131-3... Он предполагает, что в FBD должна быть куча математических функций типа SIN, COS, LN, ADD, SUB, DIV, MUL и т.д. То есть CFC больше соответствует FBD по МЭК.
и я Вам о том же говорю, что Сименс испоганил FBD, а вместо нориального FBD предлагает CFC, наверное только по причине взаимной конвертимости языков LD-FBD-STL (кому она вобще нужна эта конвертимость, если жертва это недоFBD?)
Re: Языки программирования МЭК 61131-3 в сравнении
Добавлено: 28 ноя 2012, 14:30
ward
вообще то там не взаимная конвертимость,LAD в STL можно, наоборот в некоторых случаях не получиться и он будет ругаться.....
Re: Языки программирования МЭК 61131-3 в сравнении
Добавлено: 28 ноя 2012, 14:54
san
ward писал(а):вообще то там не взаимная конвертимость,LAD в STL можно, наоборот в некоторых случаях не получиться и он будет ругаться.....
ну да, потому что что бы ты ни делал в Step7 это всё равно в конце концов STL. Вот по этой причине в STEP7 в STL можно сделать всё, а вдругих языках - нет. Это у Step7 так, но это не значит что в других средах так.