Для Logix всегда комбинирование, примерно так:
LD - максимальное использование
FB - для регуляторов и когда нужно использовать команды, которые не доступны в LD.
ST - только для расчетов, но не всегда (CPT в LD не отменена)
SFC и PM - пока небыло задачи (правильнее будет - задача для SFC была, но контроллер был не тот - ML1500).
Есть предложение обосновать (если это не аксиома), в целях уменьшения энтропии информации.
Для меня LD нагляднее. Особенно на объекте, когда надо найти почему не работает.
Распределение между языками определяется ленью (не желаю писать много кода).
Ключевая фраза - "для меня", именно поэтому я и взываю к коллективному разуму, чтобы постараться абстрагироваться от собственного мнения. Но - это лирика.
Теперь о деле. Начну набрасывать те самые ключевые особености языков о которых говорил выше, и надеюсь на конструктивную дискуссию. Начнем, пожалуй с LD, раз уж мы о нем много говорили до этого.
1) Наглядность логических операций. Гораздо проще отслеживать прохождение логических вычислений ведя пальцем по лестничной диаграмме (проходит потенциал или не проходит), чем раскрывая в мозгу скобки, выстраивая таблицы основных логических операций и запоминая результаты промежуточных вычислений (ST, SFC, IL). В принципе, FBD при данных операциях тоже нагляднее чем ST, SFC и IL, но более громоздок и запутан.
Ключевая фраза - "для меня", именно поэтому я и взываю к коллективному разуму, чтобы постараться абстрагироваться от собственного мнения.
Да, мое мнение субъективное по определению, оно может совпасть, а может и не совпасть с объективным.
Мне кажется, что объективность в данном вопросе на каждом форуме будет своя, не будет, а уже есть...
Промышленные АСУ и контроллеры N4 2006 писал(а):
«Пожалуйста, не делайте обобщений на основе этих данных. Они относятся только к пользователям, обращавшимся в 3S с вопросами. По причине того, что язык LD популярен среди опытных специалистов, мало обращающихся за консультациями, его рейтинг вероятно существенно занижен.»
40in писал(а):
1) Наглядность логических операций. Гораздо проще отслеживать прохождение логических вычислений ведя пальцем по лестничной диаграмме (проходит потенциал или не проходит), чем раскрывая в мозгу скобки, выстраивая таблицы основных логических операндов и запоминая результаты промежуточных вычислений (ST, SFC, IL). В принципе, FBD при данных операциях тоже нагляднее чем ST, SFC и IL, но более громоздок и запутан.
У меня есть коллега, который для B&R предпочитает раскрывать в мозгу скобки, на LD даже смотреть не желает. Пример его кода:
Код:
if FAN.Start and not FAN.Stop and not FAN.PowerAlarm and not FAN._Run then
; при старте
FAN._Run=1 ;включаем контактор
Timer=GetTime() ;включаем таймер
FAN.Stopped=0 ;снимаем признак останова
endif
FAN.Start=0 ;сбрасываем команду
;стоп включается при наличии команды или аварии и при включенном контакторе
if (FAN.Stop or FAN.PowerAlarm) and FAN._Run then
FAN._Run=0 ;выключаем контактор
Timer=GetTime() ;включаем таймер
FAN.Running=0 ;снимаем признак работы
endif
FAN.Stop=0 ;сбрасываем команду
if FAN._Run and not FAN.Running and (GetTime()-Timer>=StartDelay)then
;если контактор включен , нет признака работы и истек таймаут
FAN.Running=1 ;устанавливаем признак работы
endif
if not FAN._Run and not FAN.Stopped and (GetTime()-Timer>=StartDelay)then
;если контактор выключен , нет признака останова и истек таймаут
FAN.Stopped=1 ;устанавливаем признак останова
endif
В этом году студент-практикант изъявил желание осваивать LD.
Много ли студентов знают про МЭК 61131?
А преподавателей ?
На каких специальностях?
Для меня LD нагляднее. Особенно на объекте, когда надо найти почему не работает.
Распределение между языками определяется ленью (не желаю писать много кода).
Совершенно согласен с dv_.
Писать нужно грамотно, тогда грани стираются. Главное не на каком языке писать, а как организовывать программу в целом.
Цитата:
Я же предлагаю попытаться вычленить ключевые особенности языков и попытаться найти им (языкам) сферы наиболее подходящего применения.
Абсолютно не согласен. Не языки определяют сферу применения, а задача в целом определяет язык написания отдельных процедур. "В целом" - имеется ввиду учет в том числе отработка кода новых процедур, нового оборудования. Работает не только программа на контроллере, работает обрудование, SCADa, человеческий фактор. Так-же не надо забывать, что проект может быть изменен на следующем заказе. Какую часть кода в чем писать? А какая часть наиболее часто изменяется, а какая вообще неизменна? Какую часть, возможно, необходимо будет немного скорректировать во время работы, а какую часть необходимо продумать более основательно в случае ошибки кода? В каком месте мне требуется быстрый анализ состояния меток или промежуточных значений в онлайне, а в каком месте интересен только результат операции? Какую часть забить в цикл, а какую часть наоборот расписать каждый шаг отдельно? А действительно нужен полный ПИД-регулятор, или нужен наипростейший? А кто может иметь доступ к редактированию проекта: КИПовец или программист на С++? И, конечно, наиглавнейшее условие - личное предпочтения программиста.
Таким образом "ключевые особенности языков" достаточно условное понятие. А общие рекомендации уже озвучены dv_ .
Грустно, товарищи... Похоже я не нашел понимания даже среди уважаемых экспертов. Но трудности нас не пугают, попробуем договориться.
Уважаемый dv_! Из вашего поста я делаю вывод, что у вас есть свое мнение и вам безразлично совпадет ли оно с чьим-либо ещё или нет. Более того, вы не намерены обсуждать и защищать свою точку зрения. Вам, также, льстит причислять себя к узкому кругу опытных специалистов, которые редко обращаются за помощью. Вас удручает низкий уровень образования, как студентов, так и преподавателей, но нести знания в массы вы не намерены. Приведенный вами кусок кода оставлен без анализа и, посему, не несет никакой смысловой нагрузки, более того, он не характерен (банален) и по нему невозможно сделать какие-либо выводы самостоятельно.
Давайте, все-же, попробуем с вами удержаться от детских выкриков "LD-лучший, и ниибет!" и попытаемся найти-таки, за что-же мы с вами так любим LD, а за что - ST, SFC, FBD, IL. Тем самым мы можем попытаться приблизиться к объективности, которая, как вы наверняка знаете, абсолютна в отличии от субъективности.
Уважаемый DIMIOKS! Грани стираются от частого употребления. А насчет грамотного использования, как ни совершенствуйся в использовании вилки для поедания киселя, так никогда и не узнаешь, чем-же ложка лучше.
Теперь последний абзац. С точки зрения логики выглядит он так: отрицание, тавтология, констатация очевидного, 7 вопросов, констатация субъективного. Так откуда-же - "таким образом"? Я не отрицаю, что ключевые особенности - условное понятие. Я предлагаю постараться определить эти условия.
И потом, вы действительно считаете, что "общие рекомендации" ничем не обоснованные, заслуживают внимания? dv_ - гуру, и прочь сомнения?
Обращаюсь ко всем оппонентам, я не намерен пытаться доказать здесь, что какой-либо из языков плохой или хороший и не намерен определять универсальный язык для любых задач. Я пытаюсь сказать, что каждый из них - хорош, но каждый - по-своему. И помочь с выбором тем специалистам, которые не очень хорошо знакомы с МЭК 61131.
Я пытаюсь сказать, что каждый из них - хорош, но каждый - по-своему
Уважаемый коллега, первоначально я хотел было написать, что доказывать это здесь вроде бы никому и не нужно, т.к. все и так априори согласны, и сей факт сомнению не подвергают, как мне удалось заметить.
Но, может быть, я Вас неверно понял? Хотелось бы поэтому уточнить, кому именно здесь (снова курсив) Вы пытаетесь это доказать?
Цитата:
И помочь с выбором тем специалистам, которые не очень хорошо знакомы с МЭК 61131.
Т.е., Вы хотите объяснить, зачем эти языки нужны и для какого целевого спектра задач они созданы и оптимизированы? Кому именно, если не секрет? _________________ Обращайтесь к профессионалам.
Ну, во-первых, "доказать" - это слишком громко, я написал "сказать", для меня это разные понятия. А во-вторых, если ли бы все были согласны, я бы писал в этой теме один, а так я ещё и сказать-то толком ничего не успел, только обозначил намеренья, а уже получил - "Абсолютно не согласен".
А вот хотя бы ему:
Liter писал(а):
Продолжайте , коллега ... (+1)
(на полном серьезе - тема интересна )
Или он не относится к вашим прихожанам, уважаемый oldDad?
Может быть вы присоединитесь к вещанию, уважаемый oldDad, если уж вам все очевидно, и вы со всем согласны? Вдвоем мы бы быстрей делились нашими знаниями с новичками и гостями форума, да и для меня ваша точка зрения представляет интерес, ибо я не уверен в своей абсолютной правоте. Или борьба за высокий уровень знаний специалистов нашей области не входит в ваши планы?
Что касаемо моей точки зрения, то я считаю, что если язык существует (и, более того, стандартизирован и освящен уважаемой международной организацией), то он кому-то таки нужен. Из этого исходя, полагаю, что ежели кто-то с этим не согласен, то он сильно заблуждается. Также считаю, что каждый язык имеет свою собственную сферу применения, ту, для которой он спроектирован и реализован, и для решения задач в которой оптимизирован. А разве может быть как-то иначе?
Итак, как будем сеять разумное-доброе-вечное, уважаемый коллега? Изложим основополагающие концепции? Устроим дискуссию? Или повторим Wikipediю? Что делаем-то? _________________ Обращайтесь к профессионалам.
А для меня главное это возможность быстрого(легкого) просмотра программы на обьекте. LD и FBD это позволяют. С остальные посложней гораздо. Мне кажется спор что лучше изначально определяется подготовкой. СИшник будет стремиться писать на 3-4. Кто с киповским уклоно на 1-2.
40in писал(а):
Грустно, товарищи... Похоже я не нашел понимания даже среди уважаемых экспертов. Но трудности нас не пугают, попробуем договориться.
Уважаемый dv_! Из вашего поста я делаю вывод, что у вас есть свое мнение и вам безразлично совпадет ли оно с чьим-либо ещё или нет. Более того, вы не намерены обсуждать и защищать свою точку зрения. Вам, также, льстит причислять себя к узкому кругу опытных специалистов, которые редко обращаются за помощью. Вас удручает низкий уровень образования, как студентов, так и преподавателей, но нести знания в массы вы не намерены. Приведенный вами кусок кода оставлен без анализа и, посему, не несет никакой смысловой нагрузки, более того, он не характерен (банален) и по нему невозможно сделать какие-либо выводы самостоятельно.
Давайте, все-же, попробуем с вами удержаться от детских выкриков "LD-лучший, и ниибет!" и попытаемся найти-таки, за что-же мы с вами так любим LD, а за что - ST, SFC, FBD, IL. Тем самым мы можем попытаться приблизиться к объективности, которая, как вы наверняка знаете, абсолютна в отличии от субъективности.
Уважаемый DIMIOKS! Грани стираются от частого употребления. А насчет грамотного использования, как ни совершенствуйся в использовании вилки для поедания киселя, так никогда и не узнаешь, чем-же ложка лучше.
Теперь последний абзац. С точки зрения логики выглядит он так: отрицание, тавтология, констатация очевидного, 7 вопросов, констатация субъективного. Так откуда-же - "таким образом"? Я не отрицаю, что ключевые особенности - условное понятие. Я предлагаю постараться определить эти условия.
И потом, вы действительно считаете, что "общие рекомендации" ничем не обоснованные, заслуживают внимания? dv_ - гуру, и прочь сомнения?
Обращаюсь ко всем оппонентам, я не намерен пытаться доказать здесь, что какой-либо из языков плохой или хороший и не намерен определять универсальный язык для любых задач. Я пытаюсь сказать, что каждый из них - хорош, но каждый - по-своему. И помочь с выбором тем специалистам, которые не очень хорошо знакомы с МЭК 61131.
Полностью согласен с вами, уважаемый oldDad, относительно нехватки времени, но постараюсь урвать минутку-другую для этой темы. По поводу посева разумного. Повторять Wikipediю мы, конечно же не будем, разумному досточно ссылки на неё. Но в статьях предлагаемых там нет одного, самого главного - опыта. В принципе можно на любой вопрос новичка отвечать ссылками на документацию: "Учите матчасть!", а можно, задавая наводящие вопросы, "вкурить" тему и поняв - предолжить: "Воткни красный провод в круглую дырку, родной, и будет тебе щастье!". Но для этого нужно самому пройти "путь ощибок трудных". По формату вещания я обдумываю следующий вариант:
1) Накопление информации. Свободное изложение практических особенностей применения каждого из языков для всех желающих, не надо высасывать из пальца про все языки, про какой можешь - про тот пиши. А также попробовать типизировать задачи автоматизации и разложить их по "сферам применения".
2) Анализ. Свободное обсуждение изложенных соображений, нахождение консенсуса, утверждение "ключевых особенностей" и "сфер применения".
3) Синтез. Продумать возможность совместной теоретической разработки виртуального проекта. С разработкой архитектуры системы и программного обеспечения, обильно сопровождая это пояснениями и ссылками на результаты анализа.
4) Вывод, или разработка набора универсальных правил (это уже из области фантастики, но а вдруг...)
В принципе можно на любой вопрос новичка отвечать ссылками на документацию: "Учите матчасть!", а можно, задавая наводящие вопросы, "вкурить" тему и поняв - предолжить: "Воткни красный провод в круглую дырку, родной, и будет тебе щастье!".
Я думаю, что истина находится где-то посредине. Нет, на мой взгляд, ничего такого уж плохого в том, чтобы иной раз дать несведущему человеку ссылку именно на то место в безбрежном море документации, где содержится ответ на его вопрос, и в результате чего ему будет щасте.
Иногда по антуражу проблематики просто-таки видно, что человек не читал вообще никаую документацию, не представляет себе даже элементарные принципы функционирования софта или аппаратуры. Тогда, IMHO, гораздо продуктивнее написать ему RTFM и дать ссылку на первоисточники, чем на пальцах объяснять довольно сложные вещи, требующие вдумчивого усвоения.
А в другой ситуации, конечно, достаточно подсказать человеку всего лишь одну маленькую фишку, как он радостно получит позитивный результат и полетит дальше, дальше. по пути побед и свершений
Пожалуй, я с вами согласен, уважаемый oldDad. Не люблю, когда люди задают вопросы "Я вообще не понимаю, как это сделать. Помогите?", в таких случаях да, только "Учите матчасть! Добьетесь конкретики вопроса, приходите - помогу."
Продолжим про LD.
2) Простота использования для неподготовленного специалиста (пришедшего из электроники). В чем-то верно, но до определенного предела. Допустим разобраться с одной картой, зная типовые обозначения, неподготовленный специалист сможет достаточно быстро, однако есть два случая в которых его ждут существенные трудности. 1. Сложный проект из многих взамосвязанных задач с большим количеством связей. Достаточно просто будет запутаться, не видя целой картины. В таких случаях гораздо наглядней FBD, где все связи графичны, понятны и помогают охватить взглядом всю картину, а иерархия раскрывающихся блоков поможет раскрыть её детали. 2. Область пересечения LD c другими языками, например: обработка системных событий или получение системной информации. Видя мегапрямоугольники специальных функций неподготовленный специалист, скорее всего, будет испытывать трудности понимания. В этом случае наглядней всего, по-моему, будет модуль на ST или IL.
Очень много лет назад, когда я только пришёл в Allen-Bradley, у меня была большая дискуссия с американцами.
Я пытался им доказать. что язык программирования есть инструмент для программиста, т.е., для человека с состоявшимся алгоритмическим системным мышлением, знакомым с фундаментальными понятиями "присваивание", "следование", "безусловный переход", "переход по условию", "метка" и т.п. И для которого само собой разумеется, что объектный код TSR-задачи в мультирограммной среде обязан быть реентерабельным (пока в такой вот формулировке для простоты восприятия .
Американсккие товарищи заливисто смеялись надо мной и советовали засунуть эти знания имени Дональда Е. Кнута в одно место. Они утверждали. что система програмирования должна быть реализована таким образом, чтобы человек без програмистского образования, обычный электроинженер (в Штатах и в Европе нет специалистов по АСУТП, этим занимаются электроинженеры), мог достаточно быстро и эффективно взять в руки контроллер, прикрутить провода, нарисовать понятную электроинженеру программу в терминах релейно-контакторных схем, и шоб это быстро заработало. А о диспетчеризации процессов или распределении памяти должна заботится операционная система контроллера, которая обязательно должна быть от этого электроинженера закрыта (что для меня тогда было дико, непредставимо и чуть ли не криминально). Время показало мне, что они были правы. Ох как правы.
В то время ещё не было ни FBD, ни ST, ни даже толком SFC. Был LD, и на нём делали всё, даже АСУТП доменных печей.
Конечно, АСУТП доменной печи или ректификационной колонны удобнее писать на FBD, а линию сварки кузовов автомобиля на SFC, но это уже (а) вопрос эффективности работы программиста (который стоит работодателю не так уж мало денег и поэтому должен быстро выдавать готовый продукт и (б) дело вкуса.
Интересно, считает ли кто-нибудь из коллег, что непрерывные процессы легче и эффективнее прогаммировать на LD, а, например, роботы и станки - на FBD? А, коллеги? _________________ Обращайтесь к профессионалам.
Здравствуйте коллеги я считаю что язык программирования пользователь должен выбирать сам. Какой удобней тем и пользуешся. Это позволит производителям PLC продавать больше своей продукции. А супер гениям предложил бы писать большии и сложные проги вообще в двоичке ведь ВЫ с машиной на одном языке будете говорить. И будет таких спецов например человек 100 в мире и столько же штук PLC.
Спасибо, это очень глубокая мысль. Хотелось бы знать, в каких случаях и почему Вы выбираете тот или иной язык - тот, который Вы лучше всего знаете, или тот, который наиболее подходит для данной задачи?
Что-то, извините великодушно, не улавливаю логики между "язык программирования пользователь должен выбирать сам" и "Это позволит производителям PLC продавать больше своей продукции". Каким образом выбор пользователя в каком-то конкретном случае определенного языка программирования позволит производителю PLC продавать больше продукции?
И ещё: Вам не приходило в голову, что язык выбирает не пользователь, а программист? И что пользователь не программирует и не выбирает языки, а просто пользуется? _________________ Обращайтесь к профессионалам.
Часовой пояс: GMT + 1 На страницу Пред.1, 2, 3След.
Страница 2 из 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна. Открытие страницы: 0.140 секунды