|
SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании |
|
Опции темы | Поиск в этой теме |
15.11.2020, 04:56 | #601 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
|
16.11.2020, 11:29 | #602 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Одинаковые имена задать невозможно, переход по пробелу в 3.33 или трассировка по ПКМ в нём и более ранних лоджиках.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
30.11.2020, 16:48 | #603 |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Небольшие хотелки в SMLogix
Возможно, уже было, но не перечитывать же всю ветку.
Очень хотелось бы иметь синхровыход на входных modbus-переменных. То есть, чтобы мы были оповещены о факте записи во вход независимо от того, изменилось ли значение. Это даст возможность реализовывать командные регистры. Последний раз редактировалось MadKid, 30.11.2020 в 17:03 |
18.12.2020, 08:32 | #605 | ||
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили:
165 раз(а) в 157 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
Добавлено через 35 секунд +100500 поддержу Добавлено через 2 минуты Цитата:
и пусть при клике выделяется/фокусируется на источнике связи. оттуда уже можно перейти по входам.. ну или раскрывающийся список с +плюсиком и там уже весь блэкджек с красотками |
||
18.12.2020, 10:40 | #606 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
18.12.2020, 12:25 | #607 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили:
165 раз(а) в 157 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
вот только поиск бы туда сразу нужен.
и в проводник с фбд - тоже |
18.12.2020, 12:29 | #608 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Я уже продумал, идеальным был бы фильтр по деревьям (ФБД, макросы, железо, проводник), а в проводник также добавить и связи, которые также можно фильтровать и драг-н-дропать на входы блоков на поляне.
Получился бы хороший инструмент. Но... __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
18.12.2020, 13:00 | #609 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили:
165 раз(а) в 157 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
но без поиска по окну будет так же хреново как и сейчас
|
18.12.2020, 15:10 | #610 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
А сейчас там нету фильтра текстового. Проводник лично у меня отключен всегда за своей бесполезностью.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
18.12.2020, 18:31 | #611 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили:
165 раз(а) в 157 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
и чтоб в том дереве все причиндалы были - входы-выходы, весь суп-набор, со всеми мемзами, модбасами связями и т.д. и т.п. было б весьма недурственно |
|
19.01.2021, 16:29 | #612 |
Новичок
Регистрация: Apr 2020
Сообщения: 12
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Понимаю, что это "большая" хотелка... Но очень хотелось бы иметь блок "макрос для программирования".
Суть - снаружи это простой макрос с обычными входами/выходами. А при открытии этого макроса открывается не обычное поле для FBD, а текстовый редактор у которого слева поле для входов, а справа поле для выходов. Не надо никаких наворотов в виде объектно-ориентированных фишек. Всё что надо - конструкции: - if else - for () - switch (case) - пользовательские функции/процедуры, которые можно вызывать в данном макросе - массивы - преобразование типов - while do (хотя для подстраховки от входа в бесконечные циклы можно и не реализовывать) Например есть макрос расчета значения ЦАП для тиристорного регулятора: Как этот макрос выглядит внутри сейчас: А как хотелось бы работать с этим макросом: Понимаю, что для вентиляции и ИТП это конечно не нужно. Но для общепромышленных целей такого блока мне лично очень не хватает. |
19.01.2021, 16:54 | #613 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Нет, мы пока не планируем внедрять другие языки программирования в SMLogix
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
29.01.2021, 14:20 | #614 | |
Новичок
Регистрация: Apr 2020
Сообщения: 12
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
Ведь не зря существуют отдельно стандарты разработки FBD и обычное программирование. Если бы одно из них было во всём лучше другого, то осталось бы только лучшее. А так, FBD упрощает простые задачи, но при этом усложняет сложные. А программирование упрощает сложные задачи, но усложняет простые. Поэтому если в FBD добавить возможность программировать свои "блоки-макросы" - это бы совместило достоинства обоих подходов к разработке. Потому что FBD становится настоящим геммороем, когда дело доходит до множественных ветвлений в одном алгоритме (когда в зависимости от разных условий исполнительное устройство должно работать по-разному) , или когда надо что бы одно исполнительное устройство могло работать по многим сильно различающимся алгоритмам. Или в целом вся система должна уметь работать сразу по 4 и более разным алгоритмам. А это же в "общепромышленном применении" обычное дело. Работа ModBus "из коробки", SMArt, прочее "из коробки" - это большие плюсы контроллеров Segnetics. Но отказываться от всего этого, что бы получить возможность "нормально" программировать - это так себе вариант. Тогда ведь проще взять сразу контроллер, приспособленный для программирования. Тогда более мелкие хотелки: 1) Альтернативное перемещение по "рабочему полю" В SMLogix никак не задействована средняя кнопка мышки. Почему бы не повесить возможность перемещения рабочего поля на неё? Т.е. зажимаем среднюю кнопку мыши и движение мышки вниз перемещает рабочую область вверх, движение мышки влево перемещает рабочую область вправо. Потому что сейчас мне лично удобнее всего перемещаться по полю зажав ЛКМ в окне навигации и перемещая рамку рабочей области в нужное место. А перемещаться скроллом мышки или стрелками неудобно. 2) Очень напрягает отсутствие возможности изменить масштаб рабочей области. Приходится "скучивать" блоки, что бы иметь возможность видеть на одном экране связку блоков, которые реализуют какую-то общую функцию. А так уменьшил масштаб, пока работаешь над "большой функцией", когда надо вернул на 100%. И если сделать перемещение по полю как описано в пункте выше, то можно масштабирование повесить на скролл мышки. Это должно повысить удобство работы в SMLogix. А для тех кто привык к текущему интерфейсу, можно в настройках сделать переключатели режимов скролла. |
|
30.01.2021, 19:21 | #615 | |
Новичок
Регистрация: Apr 2020
Сообщения: 12
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Вот например как выглядит в Houdini "макрос - блок программирования":
Сравнение "макроса" расчетов, сделанного в визуальном программировании (FBD) с аналогичным "макросом", но сделанным "блоком программирования" Примечание 1: Цитата:
Меню со списком "блоков" автор руководства вызывает просто нажимая "Tab". И сразу набирает часть названия блока, который хочет вставить на рабочее поле... И в списке остаются только блоки, содержащие введенную строку в названии. Очень очень удобно. |
|
01.02.2021, 10:49 | #616 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Хотелось бы вести диалог с человеком, который понимает разницу между ПЛК и "программным пакетом для работы с трёхмерной графикой" и в курсе существования IEC61131. А также в каких условиях применяется первое и второе.
Если вы думаете, что я не знаю, что такое IL/ST/LD/SFC и ввод названия блока - это изобретение команды разработчиков Houdini, то ваши предположения неправильны. PS. Также лично мне очень не нравится насаждение своих привычек работы со словами "так будет лучше". Если вам интересно - поройтесь в архивах форума, вы далеко не первый, кто заблуждается в своих желаниях "хочу как в CAD/CAM-системах" - перетирать всё заново у меня нет ни малейшего желания. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
02.02.2021, 12:00 | #617 | |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
В нынешнем варианте верхнему устройству придётся сделать две записи. Это некрасиво, неудобно и даже чревато. |
|
02.02.2021, 17:34 | #618 | |
Новичок
Регистрация: Apr 2020
Сообщения: 12
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
Только блок ADD(int) обязательно должен быть или правее или ниже блока CMP(int). |
|
04.02.2021, 15:13 | #619 | |||
Новичок
Регистрация: Apr 2020
Сообщения: 12
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
Давайте чтобы не было недопонимания немного расскажу о себе и почему я считаю, что могу сравнить удобство применения FBD-программирования или программирования в виде "ST - структурированный текст" (как это называется по IEC61131/МЭК 6-1131) в одном конкретном реальном случае общепромышленного использования. В 2005 году я закончил БГУИР (бывший МРТИ - минский радиотехнический институт) по специальности "автоматическое управление в технических системах". По распределению попал на завод по производству синтетических алмазов. До прошлого года работал там и основной задачей было как раз обеспечивать работу АСУ. Там использовались ПЛК B&R System 2005 ( http://www.owen-spb.ru/catalog/br/ma...system2005.php ). Так вот за 15 лет работы мне много раз приходилось доделывать и переделывать ПО этого контроллера и встраивать разное новое оборудование в систему. Какое-то время назад бывшие коллеги организовали в другом месте производство на таких же установках для синтеза алмазов. На старте у них всё управление было в ручном режиме. Потом они прикупили контроллеры Segnetics, поскольку с ними могли начать что-то делать уже сами. И сделали некоторый полуручной режим управления нагревом. А потом пригласили меня, что бы сделать полноценную автоматизацию этих установок синтеза. Так и состоялось моё знакомство с контроллерами Segnetics. За полгода неспешной работы (заниматься надо было далеко не только автоматизацией, и в связи со спецификой производства тестирование версий ПО невозможно было проводить часто - только раз в неделю, максимум два, а отсутствие эмуляции не позволило делать это без оборудования). Какое-то время назад доделал стабильную версии автоматизации этих установок со всем нужным базовым функционалом. И уже несколько раз кое-что доделывал/переделывал. Именно поэтому я как раз могу сравнить "удобство и эффективность" программирования на практически одном и том же оборудовании контроллера с программированием на базе "ST - структурированный текст" (B&R System 2005) и контроллера с программированием на базе "FBD" (Segnetics SMH4). И, увы, в моём конкретном случае сравнение далеко не в пользу FBD. Этим я с Вами и поделился выше. Написал какие именно неудобства возникли при использовании FBD в моём случае (необходимо реализовывать множественные ветвления в алгоритме работы оборудования) и как можно было бы эти недостатки устранить, сделав тем самым контроллеры Segnetics SMH4 нормально применимыми и для тех задач, которые надо было решать в моем случае. И вот сейчас почитал про МЭК 61131-3 (IEC61131/3) и там именно это и пишут. То есть "жалобы" с которыми Вы сталкивались от других пользователей скорее всего связаны с тем же. Цитата:
Цитата:
Вот, представьте, у Вас задача просверлить что-то. Вы покупаете дрель. У неё в комплекте свёрла по дереву. Если надо сверлить дерево, то всё отлично. Но если у Вас стоит ЗАДАЧА просверлить металл? Если алюминий или другой мягкий метал, то в принципе можно и просверлить. А если вам надо просверлить твердный металл? Наверно тоже можно просверлить и сверлом по дереву, но это будет сделать сложно. Очевидно, что в таком случае вы пойдете в магазин и захотите купить сверло по металлу... Но вдруг оказывается что производитель купленной дрели не делает свёрла по металлу и даже не планирует, а свёрла других производителей не подходят. Производитель считает, что "если вы привыкли сверлить металл свёрлами по металлу, то это проблема ваших привычек. Нашей дрелью и сверлом по дереву прекрасно можно сверлить и металлы...". Вы ведь вряд ли с этим согласитесь? Если надо просверлить несколько дырок, то можно и помучиться, раз уж дрель уже куплена. Но если много, то ведь правильным решением будет купить "нормальную" дрель со сверлами по металу и сделаеть свою работу не мучаясь. Так вот. Для меня контроллер - это инструмент, с помощью которого мне надо решить определенные задачи. У этого "инструмента" могут быть, а могут и не быть разные "насадки", которые "заточены" под определенные задачи. Ведь не просто так в IEC61131 есть все 5 вариантов способов программирования контроллеров. Вы реализовали отличное средство для решения задач вентиляции, ИТП и прочих задач, где нет большого количество ветвлений в алгоритме работы оборудования. Но почему Вы не хотите даже рассмотреть возможность расширения сферы задач, которые можно было бы эффективно решать Вашим контроллером? Это же должно быть выгодно в первую очередь Вам. Если бы было одно универсальное сверло, которое прекрасно справлялось бы и с деревом, и с металлами, и с бетоном, и со стеклом. То очевидно, что если бы оно не было сильно дороже "специализированных", то оно рано или поздно осталось бы единственным стандартным сверлом. Если бы был универсальный язык программирования, которым было бы удобно решать АБСОЛЮТНО ВСЕ задачи, то он бы остался один в стандарте. Для моей задачи "чистый" FBD очень плохо подходит. Вот и всё. Если бы была возможность реализовывать свои блоки FBD на базе "ST Структурированный текст", то проблемы не было бы. Сложные/разветвленные места реализовал бы отдельными блоками, которые написаны на "структурированном тексте", остальное на FBD. Естественно, это только решение Вашей организации - целесообразно реализовать такое или нет. Но для примера - в Нашей организации уже 3 раза серьезно обсуждался вариант перехода на другие контроллеры, которые поддерживали бы программирование "структурированным текстом". Как раз буквально вчера директор поднял этот вопрос третий раз. Но поскольку стабильная базовая версия уже есть, а свободного времени нет, сейчас переход не целесообразен. Но в будущем если возникнет необходимость автоматизировать что-то со "сложными разветвленными алгоритмами работы", мы однозначно не выберем контроллеры Сегнетик (просто из-за неэффективновности FBD для таких задач, сами контроллеры по-моему отличные). |
|||
04.02.2021, 15:25 | #620 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
1) Посмотрите название темы. Поднятую вами тему возможно обозначить словом "небольшая"? 2) Вы уверены, что вы вообще обратились по адресу?) Здесь техническая поддержка Вам наверное с менеджерами нужно общаться, с руководством. Уж точно и 100% не со мной и 146% не на форуме. Добавлено через 16 минут Цитата:
Раз уж вы так откровенны со мной, то я тоже немного расскажу о себе. Я по специализации обучения чистый программист, победитель или призёр многократных олимпиад по информатике/программированию. Студентом писал за деньги дипломы для "автоматчиков" и "программистов" во всяких питерских ГУ, АП и ИТМО, большинство технических предметов сдавал исключительно экстерном на всех курсах. В совершенстве знаю несколько ассемблеров, С/С++, Паскаль/Дельфи, Фортран и Бейсик (в том числе object и vba). Можете мне рассказать о вашей задаче? Вот чтобы стало объективно видно, что FBD там ни к чёрту, а ST прямо вот самое оно? Я надеюсь, что я смогу более-менее непредвзято оценить ваши утверждения. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 04.02.2021 в 16:02 |
||
05.02.2021, 16:11 | #621 | |||
Новичок
Регистрация: Apr 2020
Сообщения: 12
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
Цитата:
Цитата:
В одной из задач надо было реализовать следующее: Нужно изменять мощность нагрева по заданному графику. Графиков много, и под конкретные задачи выбирается свой график. Графики делаются технологами. В контроллер график поступает в виде набора точек: точка №1 («прибавка мощности от старта №1» , «время №1»), точка №2 («прибавка мощности от старта №2» , «время №2»), точка №3 … точка №40. Вот это надо реализовать. Алгоритм: 1) Определить на каком отрезке графика мы находимся по времени 2) Рассчитать требуемую прибавку мощности на этом интервале 3) Периодически на этом интервале производить корректировку 4) "Сигнализировать" дальше если дошли до последней точки, что бы отключить процесс Структурированным текстом это делается достаточно просто и наглядно (для меня по крайней мере это и выглядит наглядно и достаточно просто): Описание переменных: Код:
TIMEPROC - общий таймер контроллера в секундах Process_Timer - таймер процесса в секундах. При запуске режима Process_Timer = TIMEPROC. already_corrected - для того что бы не обновлять много раз в нулевую секунду данной минуты process_power_minute - время в минутах от запуска процесса GR_POW.POW / GR_POW.MTIME - массив значений мощность / время для точек графика DELTA_POW_MINUTE - расчётная прибавка мощности в минуту на данном интервале графика RAS_POW - текущая расчётная мощность нагрева Код:
IF (TRUNC((TIMEPROC - Process_Timer) / 60.0 ) - (TIMEPROC - Process_Timer) / 60.0) = 0 THEN ; новая минута (таймер процесса в секундах делится на 60 без остатка) IF already_corrected = NO THEN ; в данную минуту уже производился пересчёт мощности? process_power_minute = UINT((TIMEPROC - Process_Timer) / 60) ; время от старта процесса в минутах IF process_power_minute = GR_POW.MTIME[POINT_GR_POW+1] THEN ; текущее время процесса в минутах равно времени следующей точки INC(POINT_GR_POW) ; перейти к следующему номеру точки графика IF POINT_GR_POW <> POINT_POW THEN ; если мы дошли до последней точки, то не рассчитывать дельту DELTA_POW_MINUTE = (REAL(GR_POW.POW[POINT_GR_POW+1]) - REAL(GR_POW.POW[POINT_GR_POW]))/(REAL(GR_POW.MTIME[POINT_GR_POW+1]) - REAL(GR_POW.MTIME[POINT_GR_POW])) ; рассчёт дельты, которая на этом отрезке графика будет прибавляться (отниматься) к текущей мощности каждую минуту ENDIF ENDIF IF ((RAS_POW + DELTA_POW_MINUTE) > 0) THEN ; если с учётом корректировки мощность больше нуля, произвести корректировку (график может и уменьшать мощность) RAS_POW = RAS_POW + DELTA_POW_MINUTE ENDIF already_corrected = YES IF POINT_GR_POW >= POINT_POW - 1 THEN ; если мы дошли до последней точки, то отключить процесс end_of_process = YES ENDIF ENDIF ELSE already_corrected = NO ENDIF Можно ли реализовать это на FBD как-то просто? Потому что то, как у меня получилось сделать это на FBD, ну никак нельзя назвать ни простым, ни наглядным (для меня по крайней мере). И заработала конструкция из FBD-блоков далеко не с первого раза. Если знаете, как реализовывать подобное на FBD просто, было бы очень полезно увидеть. Последний раз редактировалось Makrel, 05.02.2021 в 16:27 |
|||
05.02.2021, 17:18 | #622 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
12 минут с использованием копипаста.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
Благодарность от: |
16.02.2021, 18:34 | #623 | |
Новичок
Регистрация: Apr 2020
Сообщения: 12
Благодарил(а): 1 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
По поводу решения:
для моих задач её немного надо допилить. Например, глобальный таймер тут инкрементирует каждый тик. То есть это таймер тиков, но на минуты переделать легко. Когда в первой версии реализовывал измерение времени для графиков на таймере получилась в итоге очень большая погрешность. Запустили на ровно 2 суток - 48 часов. Но когда прошло 48 часов по реальным часам, на "тикающем таймере" контроллера было ощутимо меньше. Не помню точно сколько, но кажется не меньше, чем полчаса "потерялось". Причем при повторе было тоже самое. В итоге "тики глобального таймера" пришлось переповесить на обновление секунд в блоке GetRealTime, после этого расхождение с реальным временем исчезло. И мощность мне не надо "складывать" в течении точек, там надо как и в макросе времени, только "текущая" точка и "предыдущая". А на счётчиках реализовывать переключение точек, это получше, чем у меня на блоках сложения и сравнения. Благодарю за пример. Я как раз об этом. У меня только минут 15 ушло на то, чтобы перенести схему из Вашего сообщения в SMLogix. Вот для Вас эта задача на FBD на 12 минут, и "текстом", предполагаю, справились бы за приблизительно столько же времени. А я на тексте тоже решил бы эту задачу за 10-15 минут... А вот на FBD провозился часа 3-4. С одной стороны - это моя проблема, что плохо могу решать задачи на FBD. Но с другой-то стороны, я хорошо умею решать такие задачи "текстом". Но кроме автоматизации мне надо заниматься другими делами, поэтому не могу тратить много времени на изучение и наработку приёмов использования FBD. Поэтому лично мне логично использовать контроллер, который смогу программировать быстро - то есть имеющий возможность "текстового" программирования. И как Вы писали выше - я не один сталкиваюсь с такой дилеммой. Ведь именно поэтому IEC61131/МЭК 6-1131 требует, что бы была возможность использовать любой из пяти языков программирования. Ведь далеко не все "универсалы", то есть могут решать быстро одну и ту же задачу на любом языке. Цитата:
|
|
16.02.2021, 18:43 | #624 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
По любой задаче сначала строится алгоритм, потом алгоритм переносится на язык. Обычно построение алгоритма это 90% времени, перенос на язык 10%. В случае FBD эти стадии перекрываются, т.к. FBD это и есть блок-схемы, что фактически даёт ускорение перед линейными языками. Это ускорение компенсирует более низкую скорость программирования на визуальном языке перед текстовым. В определённых сложностях алгоритма визуальность FBD даёт экономию времени в десятки раз перед текстовыми языками именно за счёт наглядности. Но это требует дисциплинированного подхода прежде всего к самому себе - нельзя начинать программировать хотя бы без предварительной разбивки алгоритма на автономные части. PS. В текстовом виде у вас тоже можно чуть не вдвое всё подрезать __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
18.02.2021, 13:14 | #625 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Можно ли сделать такие блоки в SMLogix.
Данные расположены в ОЗУ 1 при на выходе блока текущее значение в ячейке памяти по адресу addr. 2. При установленном wr значение по адресу addr перезаписывается и оно же выдается на выход как прочитанное. Это для имитации массива. Могу показать конструкцию как использовать, но в ней есть Ваши недокументированные возможности. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
18.02.2021, 13:26 | #626 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
|
18.02.2021, 13:46 | #627 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Я впервые это захотел при создании универсального проекта ИТП
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
18.02.2021, 14:02 | #628 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Тогда совсем ничего не понимаю в приоритетах Вашего руководства.
Если сделать размер массива недоступным для изменения во время выполнения в том числе и в режиме отладки, то нет никакой опасности применения данного блока. Память выделяется один раз при старте. Реализация на С, С++ так вообще не о чем разговаривать int array [lenght] = default value; (или с входа) доступ a = array[addr]; И у Вас на десятки процентов выше производительность труда при той же зарплате. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
18.02.2021, 14:24 | #629 | |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
А то сдуру можно даже х.... |
|
18.02.2021, 14:43 | #630 | |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
Ответ: Небольшие хотелки в SMLogix
Цитата:
В лоджике память выделяется для многих блоков, но при старте. Данный блок в этом плане не будет ничем отличаться. Следовательно задача уже неоднократно решена. Отсюда же следует, что есть тот кто не сломал ничего сдуру и есть кому эту задачу решить. __________________ В жизни 2 правила успеха: 1 Не говори всего что знаешь 2 ... |
|