Языки программирования МЭК 61131-3 в сравнении

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы

Языки программирования МЭК 61131-3 в сравнении

Сообщение san » 27 ноя 2012, 21:25

Михайло писал(а): Если сравнивать три языка: LD, FBD и SFC, то самым популярным у профессионалов считается LD, новички предпочитают понятные им блоки FBD, а язык SFC не распространен из-за слабой его поддержки в средах разработки (зачастую его просто нет). При всем при этом сложные задачи удобнее всего решать именно на SFC.
Имеются еще 2 языка программирования - IL и ST. Они оба текстовые. ST (паскалеподобный) обычно предпочитают программисты, которым неохота переучиваться с Паскаля или Си, хотя есть отдельные задачи, для которых этот язык подходит лучше всего. Язык IL - подобие ассемблера, на нем тоже нередко решают специфические задачи.

Ну зачем Вы человека снабжаете субъективной информацией. Нет плохих/хороших, легких/сложных языков, есть плохие/хорошие среды или реализация языков в этих средах. Есть задачи для которых одни языки лучше подходят, другие хуже. Есть людик которым удобнее программровать на одном языке чем на другом.
Вот например симатиколюбы признают в основном только один язык STL, поскольку он "самый родной". И они думают, что всюду так. Что LD всюду одинкаовый, FBD всюду одинаковые.... а они то разные. FBD - самый подходящий для задач регулированияя, так как весь контур представляется в графическом виде. Вот кстати давича лабу наваял, как раз под задачу FBD



лаба по SFC

а на счёт зелио - это не тот уровень чтоб полноценно SFC делать, хотя в UNITY PRO мне тоже меньше нравится, чем скажем Grafcet в PL7, там хоть попроще но и понагляднее ИМХО
Аватара пользователя
san
Специалист
 
Сообщения: 117
Зарегистрирован: 13 окт 2012, 17:17
Откуда: Киев

Re: Обучаем новичка

Сообщение Михайло » 28 ноя 2012, 04:13

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

Я довольно корректно отметил предпочтения тех или иных языков различными группами специалистов и неспециалистов. Ну разве что FBD немного опустил. У Сименса есть мощный FBD под названием CFC.

san писал(а):Вот например симатиколюбы признают в основном только один язык STL, поскольку он "самый родной".

Не уверен, что STL/IL дико популярен. Его, скорей, для некоторых задач применяют типа коммуникационных, то есть связанных с отправкой сообщений по сетевому интерфейсу.
Михайло
Администратор
 
Сообщения: 3412
Зарегистрирован: 19 сен 2012, 19:16

Re: Обучаем новичка

Сообщение Степа » 28 ноя 2012, 05:43

Михайло писал(а):Я довольно корректно отметил предпочтения тех или иных языков различными группами специалистов и неспециалистов.

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

Михайло писал(а):Не уверен, что STL/IL дико популярен. Его, скорей, для некоторых задач применяют типа коммуникационных, то есть связанных с отправкой сообщений по сетевому интерфейсу.

Открывай учебные материалы Siemens /те, которые трехсотки-четырехсотки касаются/. Или ты в них не заглядывал ни разу?
Степа
Любитель
 
Сообщения: 98
Зарегистрирован: 21 окт 2012, 10:09

Re: Обучаем новичка

Сообщение ward » 28 ноя 2012, 08:05

Михайло писал(а):Не уверен, что STL/IL дико популярен. Его, скорей, для некоторых задач применяют типа коммуникационных, то есть связанных с отправкой сообщений по сетевому интерфейсу.


ЛОЛ, ниче лучше ст не придумали пока, для подавляющего большинства задач необходимо использовать только его
ward
Специалист
 
Сообщения: 411
Зарегистрирован: 12 ноя 2012, 08:44

Re: Обучаем новичка

Сообщение Михайло » 28 ноя 2012, 08:35

Никакого субъективизма. Я написал информацию, с которой никто не поспорит: я рассказал, кто и что предпочитает и что некоторые задачи удобно выполнять на определенном языке. Про документацию Сименса тут нечего говорить, ее писал коллектив из нескольких человек. Их предпочтение нельзя принять к рассмотрению. Наиболее популярен LD и это подтверждают результаты опросов на некоторых профессиональных форумах (эти результаты репрезентативны, так как участников было гораздо больше сотни). Практически любая система автоматизации включает в себя логическое управление (вкл/откл), этим можно объяснить популярность LD. Математические вычисления встречаются гораздо реже, поэтому FBD там не попал даже в тройку. Кажется второе место за ST. По всей видимости, среди автоматчиков немало программистов, либо попадаются задачи, для которых этот язык подходит лучше.

Независимые экспертные мнения:
1) Нашел интересный материал по языкам среды Codesys:
http://www.codesys.ru/docs/iecdeb03.pdf
2)http://www.dmcinfo.com/Blog/articleType/ArticleView/articleId/111/IEC-61131-3-Choosing-a-Programming-Language.aspx
Ladder Diagram is most popular in the USA.

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


3) http://www.promserv.ru/information/96--plc.html

4) http://proasutp.com/articles/plc/understanding_the_iec61131_3_programming_languages.html
Михайло
Администратор
 
Сообщения: 3412
Зарегистрирован: 19 сен 2012, 19:16

Re: Обучаем новичка

Сообщение Михайло » 28 ноя 2012, 08:37

ward писал(а):ЛОЛ, ниче лучше ст не придумали пока, для подавляющего большинства задач необходимо использовать только его

Здесь осторожно: не спутай STL с ST. Язык ассемблера IL фирма Сименс называет STL.
Михайло
Администратор
 
Сообщения: 3412
Зарегистрирован: 19 сен 2012, 19:16

Re: Обучаем новичка

Сообщение Степа » 28 ноя 2012, 09:43

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

И именно эта информация вызывает жуткие сомнения...
LD проще всего в освоении среднему человеку. Люди, много практически работавшие с железными логическими блоками /микросхемы/ быстрее осваивают FBD. Впервые ознакомившиеся с программированием на различных курсах - STL: львиная доля учебных курсов построена именно на Siemens, все программы обучения Siemens, какие я видел, построены на этом языке. Имеющие опыт работы исключительно с очень древними ПЛК - STL: этот язык не шибко отличается от тех, древних, языков.
Действительно опытные люди иногда применяют несколько языков в одном проекте: как задачу решить проще и быстрее - так и решают.

А вообще попытка ставить языки по местам - признак сказочного дебилизма. Язык - инструмент. Можно данным инструментом быстро и качественно решить поставленную задачу - инструмент хорош. Нет - плох. Остальное - пузомерки.
Степа
Любитель
 
Сообщения: 98
Зарегистрирован: 21 окт 2012, 10:09

Re: Обучаем новичка

Сообщение ward » 28 ноя 2012, 09:54

ну я имел ввиду всеже сименсовский STL, хороший инструмент, но LD отличная вещь, там где нужна наглядность и простота=)
ward
Специалист
 
Сообщения: 411
Зарегистрирован: 12 ноя 2012, 08:44

Re: Обучаем новичка

Сообщение Михайло » 28 ноя 2012, 11:33

Нет, ну никто пузами не меряется. Вот, например, для примера с тележкой наилучшим языком является LD. Другое дело, что некоторым людям требуется переориентация/обучение на этот язык. А то, что кому-то удобнее FBD в связи с большим опытом ваяния схем на логических элементах, то таких людей еще найти надо. Они, как правило, уже переобучились на LD. Вообще народ, который умеет программировать ПЛК, в среднем по больнице достаточно молод, мне кажется.
Михайло
Администратор
 
Сообщения: 3412
Зарегистрирован: 19 сен 2012, 19:16

Re: Обучаем новичка

Сообщение san » 28 ноя 2012, 12:30

Михайло писал(а):А то, что кому-то удобнее FBD в связи с большим опытом ваяния схем на логических элементах, то таких людей еще найти надо. Они, как правило, уже переобучились на LD. Вообще народ, который умеет программировать ПЛК, в среднем по больнице достаточно молод, мне кажется.
Я в жизни никогда не работал на схемах с логическими элементами. Говоря о FBD надо думать о сименсовском и кодесисовском CFC, потому как это и есть нормальная реализация FBD, а не те которые там есть. Для меня вобще дико, что FBD есть, а числовых связей в нём нет, что это тогда за FBD? Знакомясь с FBD у симатиков люди сразу же думают о нём как о недоязыке. Ещё раз повторюсь - это недостаток СИМАТИКОВСКООЙ РЕАЛИЗАЦИИ FBD, а не самого языка FBD.
Аватара пользователя
san
Специалист
 
Сообщения: 117
Зарегистрирован: 13 окт 2012, 17:17
Откуда: Киев

Re: Обучаем новичка

Сообщение ward » 28 ноя 2012, 12:34

овеновский кодесисовский FBD - я не заметил что он чем то явно отличается от сименсовского
ward
Специалист
 
Сообщения: 411
Зарегистрирован: 12 ноя 2012, 08:44

Re: Обучаем новичка

Сообщение san » 28 ноя 2012, 12:35

ward писал(а):овеновский кодесисовский FBD - я не заметил что он чем то явно отличается от сименсовского

san писал(а): Говоря о FBD надо думать о сименсовском и кодесисовском CFC, потому как это и есть нормальная реализация FBD, а не те которые там есть.
Аватара пользователя
san
Специалист
 
Сообщения: 117
Зарегистрирован: 13 окт 2012, 17:17
Откуда: Киев

Re: Обучаем новичка

Сообщение Степа » 28 ноя 2012, 13:50

Михайло писал(а):Они, как правило, уже переобучились на LD.

А оно им надо? Если и так задачи решаются быстро?

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

Неправильно кажется. История ПЛК насчитывает уже лет тридцать-сорок, как не больше. Те ПЛК тоже кто-то программировал.
Степа
Любитель
 
Сообщения: 98
Зарегистрирован: 21 окт 2012, 10:09

Re: Обучаем новичка

Сообщение Михайло » 28 ноя 2012, 13:50

san писал(а):Говоря о FBD надо думать о сименсовском и кодесисовском CFC

Я тут посмотрел вкратце стандарт МЭК61131-3... Он предполагает, что в FBD должна быть куча математических функций типа SIN, COS, LN, ADD, SUB, DIV, MUL и т.д. То есть CFC больше соответствует FBD по МЭК. И между прочим, МЭК для языка LD не вводит математические функции...
Михайло
Администратор
 
Сообщения: 3412
Зарегистрирован: 19 сен 2012, 19:16

Re: Обучаем новичка

Сообщение Михайло » 28 ноя 2012, 13:53

Степа писал(а):Неправильно кажется. История ПЛК насчитывает уже лет тридцать-сорок, как не больше. Те ПЛК тоже кто-то программировал.

Мы говорим о разном. То, что ты знаешь, что массовые ПЛК появились в 1960-х годах, молодец. Но при этом надо понимать, что распространенность ПЛК по сравнению с другими средствами автоматизации не зашкаливала.
Михайло
Администратор
 
Сообщения: 3412
Зарегистрирован: 19 сен 2012, 19:16

Re: Языки программирования МЭК 61131-3 в сравнении

Сообщение Степа » 28 ноя 2012, 14:09

Михайло писал(а):Мы говорим о разном.

Мы говорим о программировании ПЛК. Если ПЛК так много лет, то их кто-то программировал... Не сами же они программировались...
А то, что их было небогато... Так сейчас контроллеры только разве что в унитазах пока не очень распространены, а программистов этих самых контроллеров много? По пальцам одной руки посчитать...
Не способных подключиться, залить программу, посмотреть параметры, а именно взять схему, написать под нее программу, внятно рассказать, что и как сделано и почему именно так. И главное: чтобы это программа выдавала правильный результат при любых комбинациях входных переменных.
Скажем, вот только что пришел с объекта. В теории он вполне исправен и работоспособен. Но программист был любитель интуитивного подхода. Т.е. объект нормально работает только в очень узком диапазоне внешних условий. Температура воздуха чуть упала, давление в магистрали чуть повыше - все, объект уже не держит заданные режимы. Вчера вот подогнали все режимы, сегодня стало холоднее на пару градусов - по новой. И так через день да каждый день... А того любителя интуитивного подхода притащить и приковать к объекту не получается. Хотя надо было бы. И отпустить только после того, как объект полгодика поработает так, как у него в документации написано, то бишь полностью сам.
Степа
Любитель
 
Сообщения: 98
Зарегистрирован: 21 окт 2012, 10:09

Re: Обучаем новичка

Сообщение san » 28 ноя 2012, 14:26

Михайло писал(а):Я тут посмотрел вкратце стандарт МЭК61131-3... Он предполагает, что в FBD должна быть куча математических функций типа SIN, COS, LN, ADD, SUB, DIV, MUL и т.д. То есть CFC больше соответствует FBD по МЭК.
и я Вам о том же говорю, что Сименс испоганил FBD, а вместо нориального FBD предлагает CFC, наверное только по причине взаимной конвертимости языков LD-FBD-STL (кому она вобще нужна эта конвертимость, если жертва это недоFBD?)
Аватара пользователя
san
Специалист
 
Сообщения: 117
Зарегистрирован: 13 окт 2012, 17:17
Откуда: Киев

Re: Языки программирования МЭК 61131-3 в сравнении

Сообщение ward » 28 ноя 2012, 14:30

вообще то там не взаимная конвертимость,LAD в STL можно, наоборот в некоторых случаях не получиться и он будет ругаться.....
ward
Специалист
 
Сообщения: 411
Зарегистрирован: 12 ноя 2012, 08:44

Re: Языки программирования МЭК 61131-3 в сравнении

Сообщение san » 28 ноя 2012, 14:54

ward писал(а):вообще то там не взаимная конвертимость,LAD в STL можно, наоборот в некоторых случаях не получиться и он будет ругаться.....

ну да, потому что что бы ты ни делал в Step7 это всё равно в конце концов STL. Вот по этой причине в STEP7 в STL можно сделать всё, а вдругих языках - нет. Это у Step7 так, но это не значит что в других средах так.
Аватара пользователя
san
Специалист
 
Сообщения: 117
Зарегистрирован: 13 окт 2012, 17:17
Откуда: Киев


Вернуться в АВТОМАТИЗАЦИЯ

Кто сейчас на конференции

Сейчас этот форум просматривают: Google Feedfetcher и гости: 3