![]() |
![]() ![]() |
![]() |
#31 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]() Я так думаю, что за очень редким исключением, пользователи используют всё-таки SMLogix. При всех его недостатках, это удобная среда разработки. И ее надо всячески развивать, в том числе расширяя функциональность и повышая скорострельность блоков и шины расширения. 2. Совет несколько не в тему, потому что я писал про Pixel с двумя модулями расширения. 3. Раз пошли советы перейти на Си, предлагаю тему закрыть, ибо мне гораздо проще повысить быстродействие внешней релейной логикой, как я уже писал... |
![]() |
![]() |
![]() |
#32 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]()
Я понимаю ваши аргументы. Но в нашем случае есть нехилый ограничивающий фактор - объём ПЗУ контроллера.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#33 |
Member
Регистрация: Feb 2009
Сообщения: 50
Благодарил(а): 0 раз(а)
Поблагодарили:
9 раз(а) в 5 сообщениях
|
![]()
Вот намыл интересненький сайт по FBD-блокам - http://www.tinyfbd.com/rus/technolog...htm#derivative Надеюсь что это не баян.
Понравился систематический подход автора к библиотеке FBD-блоков (хотя это не ново, всё давно уже придумано в РЕМИКОНТ-130 и Step7 с библиотеками регулирования, нужно только систематизировать по аксиоме - Необходимо и Достаточно). Тут есть много интересного, от FBD узмерения (например нелинейные преобразования, правда всего 6 точек, а желательно до 10 точек - для преобразования перепада в расход на сужающем устройстве), регулирования (начиная от фильтров и зоны нечувствительности и заканчивая интегратором и блоком производной, но то-же не безупречно, нет ограничения мин/мах и ограничения скорости), всё что нужно по логическому управлению и мультиплексеры (а вот демультиплексоров почему-то нет) Рекомендую посмотреть. ![]() Еще достойно внимания ПО от AutomationDirect PLC CLICK. В нем мне понравилась очень лаконичная логическая библиотека и математика. К сожалению не полная библиотека работы с аналоговыми сигналами, но прекрасный матблок, пример для подражания. ![]() Ну и опять повторюсь, хоть и не всем нравится Step7 и считают CoDeSys де-факто стандартом мне больше импонирует Step7 с расширениями и документация (в отличии от скундной инфы по CoDeSys к Step7 есть полная документация на русском размером в несколько увесистых томов с диаграммами и примерами, ну прям готовый учебник по ПЛК). Это не реклама, а инфа к размышлению - "Каким Должно Быть ПО?" ![]() С уважением АндрейХ. |
![]() |
![]() |
![]() |
#34 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]()
Очередное пожелание разработчикам.
Хотелось бы иметь область глобальных переменных. И возможность назначения на вход FBD (даже многократно вложенного в макросы) связи, как индекса/указателя этой области. Если глобальные переменные будут автоматически отображаться на пространство регистров Modbus и им можно будет кроме индекса/указателя назначать еще и символьные имена - было бы вообще замечательно. Обоснование целесообразности - на примере: Необходимо в зависимости от условий подставлять в функцию один аргумент из нескольких десятков возможных. Конечно, можно поставить MUX. А если таких функций несколько и используют они одни и те же несколько десятков аргументов? Такое замучаешься программировать, да и программной памяти может не хватить. PS: Контроллеры использую на ПРОМЫШЛЕННЫХ объектах, поэтому Си даже не советуйте... |
![]() |
![]() |
![]() |
#35 |
Senior Member
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Думаю, что в чисто ФБДшных средах Вы не встретите желаемого.
А вот CoDeSys, который обещает появиться в новых контроллерах (согласно новостей Сегнетикса) поможет решить конкреино Ваш вопрос и , вообще, много в чем "развяжет" руки. Кстати в новом контроллеле памяти будет побольше да и сам контроллер будет пошустрее, поэтому даже работая с Лоджиксом проблема ПАМЯТИ в Вашем случае может и стоять даже не будет. |
![]() |
![]() |
![]() |
#36 |
Новичок
Регистрация: Feb 2006
Сообщения: 5
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Отвечая Lau: помучившись с CodeSys оценишь всю простоту и прозрачность SMLogix.
|
![]() |
![]() |
![]() |
#37 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]() Насколько я понимаю, в SMLogix для каждого FBD создается локальная таблица указателей входных и выходных переменных. Но сами переменные в глобальной памяти данных. Если вместо указателя в локальной таблице FBD использовать указатель на указатель, то вместо прямой адресации получим косвенную. А если вместо указателя использовать смещение в заданной области памяти данных, то вместо прямой адресации получим индексную. Конечно, надо будет контролировать выход указателя за границы области памяти данных, но по моему мнению оно того стоит. Если будет сложно реализовать универсальные входы и выходы для всех FBD, можно хотя бы ограничиться созданием GET(bool)...GET(real) и PUT(bool)...PUT(real) чтения и записи глобальных переменных соответственно. |
![]() |
![]() |
![]() |
#38 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() 2) Символьные имена модбас не поддерживает. Дальше размышлять на эту тему смысла нет, т.к. это уже будет называться LON. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#39 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() ![]() 2) В лоджике уже скоро год, как появилась индексная адресация переменных слейва. Назначаете нулевой базовый адрес и все адреса будут смещениями от этой базы: 0, 1, 2 и т.д. Но повторюсь: что это за странные программеры, для которых цифра адреса вызывает вопросы? . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#40 |
Новичок
Регистрация: Mar 2006
Сообщения: 15
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() |
![]() |
![]() |
![]() |
#41 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() ![]() Подстраивание под чужие адреса - это уже иное. Нет разницы, как подстраиваться под адрес, изменяя цифру 11 -> 20 или 11111 -> 20. Но подстраивание под чужих - тоже решённый вопрос в лоджике, оно там есть ![]() . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#42 |
Новичок
Регистрация: Mar 2006
Сообщения: 15
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() |
![]() |
![]() |
![]() |
#43 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]()
Еще одно предложение:
можно ли один из регистров системной страницы "привязать" к клавиатуре по аналогии с буфером экрана? С доступом на запись, разумеется. |
![]() |
![]() |
![]() |
#44 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() 1) Из сети записали "кнопка отпущена", а человек в это время нажал эту кнопку. 2) Из сети записали "кнопка нажата" и связь оборвалась. Как только вы предоставите универсальное решение этих проблем, я подниму перед разработчиками ваш вопрос. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#45 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]() ![]() Либо ввести тайм-ауты на "сетевые нажатия кнопок". Величины тайм-аутов в 1..3 сек вполне хватит, имхо. |
![]() |
![]() |
![]() |
#46 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() Программе - программево, ядру - ядрёво ![]() . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#47 |
Новичок
Регистрация: Aug 2006
Сообщения: 11
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Просьба к инженерам сегнетикса
УВЕЛИЧЬТЕ КОММУТИРУЕМУЮ МОЩНОСТЬ ВЫХОДОВ НА БУДУЩИХ СЕРИЯХ (2Gi) хотя бы до 2А, а лучше до 5! Сейчас IOR делает такие опторелюшки, они нам так помогли бы при частой (более 1000000 срабатываний) коммутации индуктивной нагрузки и БУДЕТ ВСЕМ СЧАСТЬЕ! |
![]() |
![]() |
![]() |
#48 |
Новичок
Регистрация: Sep 2010
Сообщения: 3
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() Увеличение коммутируемого тока пока не планируется. Дело в том, что эти реле относительно дороги и заставлять платить всех за них не хочется. К тому же нагрузки у всех разные и по вольтажу и по току, а данные реле - вещь все-таки специфичная. Может быть включим более сильноточные реле в модуль MR, если будет много желающих. ...Обычно народ коммутирует нашим реле свое мощное внешнее реле. Так более универсально и в конечном итоге - дешевле. |
![]() |
![]() |
![]() |
#49 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 404
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
![]()
Ребята, а может - можно все-таки сделать единственный FBD-элемент "Задержка включения и отключения"???
Главное в нём - возможность задержки задавать в миллисекундах, независимо от времени тика! Эта возможность - я уверен! - будет очень востребована многими пользователями ваших контроллеров (в первую очередь - благодаря "тико-независимости"). Естественно, что реализацию изменения состояний надо производить во время прогона программы по очередному тику... Полагаю, что элемент должен иметь булевый вход "данных", а также булевые прямой и инверсный выходы (уже с учетом задержек), величины задержек разумно задавать входами типа хотя бы Int (а уж если реализуете Long или Real с максимальным интервалом минут в 15-30 - честь вам будет и премногая благодарность!) Если таки на такой элемент можно надеяться - готов дать более подробную инфу по телефону (у меня напряги с инетом), он етсь в профиле |
![]() |
![]() |
![]() |
#50 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() блок TimeToTick . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#51 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 404
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
![]() Уже хотя бы в силу того, что типичная задержка для моих применений - 200-700 миллисикунд (и таких - десятки в программе, притом ощутимая часть доступна наладчику, а некоторые - и оператору), в то время как TimeToTick оперирует только целыми секундами (чего, вполне возможно, более чем достаточно для АВОК - я же пытаюсь использовать ваш контроллер для управления технологической установкой), в силу чего пригоден разве что для сильно медленных процессов, которые тянутся минутами... Ну а мне поневоле приходится корячить "математику" между вводом данных и счетчиковыми выкрутасами в алгоритме. Ну а про то, что некоторые программы после "апгрейда" перестают укладываться в старое время тика (которое, сами понимаете, для технологической установки выбирается минимально возможным) - что влечет изменение 30-50 "абсолютно синхронных" задержек, раскиданных по программе - уже просто и говорить не хочется, ибо чувствую бессмысленность... P.S. На предыдущей установке, аналогичной создаваемой сейчас, стоит "контроллер" Siemens Logo. В первой версии программы тик был меньше 70 мс; во второй (с которой она проработала первые полгода) - 130 мс. В финальной (с расширенной диагностикой и более навороченной "защитой от дурака") - 180 мс. И при этом при апгрейдах я НИ РАЗУ не менял ни одну из 34 имеющихся в программе задержек! Просто в силу того, что все они заданы в миллисекундах. |
![]() |
![]() |
![]() |
#52 |
Senior Member
Регистрация: May 2009
Сообщения: 1 033
Благодарил(а): 9 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
![]()
То ли мы чего то не можем понять, то ли Вы так объясняете.
![]() __________________ RTFM |
![]() |
![]() |
![]() |
#53 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]() Оператор прекрасно может оперировать сотнями миллисекунд. Просто я с трудом могу себе представить необходимость в задержках с точностью десятков миллисекунд, не говоря уже про единицы. Это должен быть какой-то очень быстродействующий исполнительный механизм типа сервопривода. Но реализовывать такое программно на сегнетиксе - мягко говоря неудачное решение. Остается показывать оператору задержки либо в виде "*00 мс", либо в виде "* х 100 мс", что в принципе одно и то же: точность в сотни миллисекунд, а остальное -дело вкуса. Или тик равным 50 мс, 25 мс с соответствующими счетчиками тиков 4-14, 8-28... ![]() ![]() |
![]() |
![]() |
![]() |
#54 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 739
Благодарил(а): 0 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
![]()
Различных задержек в проекте много. Не хочется зависеть от времени тика, поэтому перевод секунд в тики становится практически обязательной задачей, и соответственно при использовании блоков с временным входом практически всегда появляется один дополнительный блок TimeToTick. Блоков вроде бы и много, но когда есть запас и проект быстрее делается, так как не надо ужимать и оптимизировать.
Таким образом имеем некоторое неудобство работы (хотя и небольшое) плюс увеличение количества блоков. Думаю в план работ 25 (125) строчкой поставить можно. |
![]() |
![]() |
![]() |
#55 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() А если идти по пути истинной асинхронности, когда все счётчики обрабатываются отдельным процессом в ядре, то тут мы получаем существенно бОльшее общее падение быстродействия всего контроллера, т.к. счётчики приходится обрабатывать когда надо, а не когда есть возможность. В итоге я пока вижу только психологическое неудобство. Которое всё же нужно пересилить, ибо контроллер выполняет не 100-200 ФБ, а тысячи. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#56 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() Даже если включить в это время два перекура и чаепитие, то всё равно получается много меньше, чем то внимание, которое уделено этой тематике в переписке ![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#57 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 739
Благодарил(а): 0 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
![]()
Есть некоторые потребительские характеристики, психологическое удобство работы в контроллером тоже совсем отбрасывать нельзя.
|
![]() |
![]() |
![]() |
#58 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 3 860
Благодарил(а): 225 раз(а)
Поблагодарили:
141 раз(а) в 133 сообщениях
|
![]() сложно реализуемо? для всей линейки? |
![]() |
![]() |
![]() |
#59 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#60 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]() Да и программист - программисту рознь ![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конструктор ИТП, пожелания. | LordN | SMConstructor (теплопункты) | 210 | 02.02.2023 11:12 |
Конструктор HVAC, пожелания. | LordN | SMConstructor (вентиляция) | 7 | 15.02.2021 15:26 |
Пожелания к прайс-листу | AlexG | Форум Segnetics | 10 | 27.01.2011 17:01 |