![]() |
![]() ![]() |
|
SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]()
Коллеги!
Типовая жизненная ситуация такова, про приходится дорабатывать и обновлять FBD-программу на контроллере. Не является исключением добавление новых уставок. Но текущая ситуация не позволяет это нормально сделать. Рассмотрим, для примера, ситуацию с SMH4/Trim/Matrix. 1. Есть программа с кучей настроек. 2. Добавили где-то настройку в программе (элемент меню настроек). 3. Технически, текущие настройки хранятся в файле /projects/load_files.eep по определенным смещениям. 4. После добавления настройки в п.2. эти все смещения съезжают и старые настройки уже не совмещаются с новой программой, нужно загрузить настройки по умолчанию заново функцией "Загружать EEPROM". В итоге, после обновления имеем ОПАСНУЮ ситуацию, когда нужно сначала "переписать на бумажку" старые настройки, потом пройтись по всем менюшкам и их восстановить, при этом ничего не забыв, не перепутав и не ошибиться в вводе! Неужели такая ситуация всех устраивает? Я лично, что бы избежать подобной ситуации, занимаюсь "хакерством". Сначала выясняю смещение новой настройки, потом беру старый eep-файл, вставляю требуемое значение. Давайте что-то делать с этим опасным безобразием! |
![]() |
![]() |
![]() |
#2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 384
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]() Начать можно с того, что бы формировать MAP-файл, содержащий смещение, тип, идентификатор и название значений для EEP-файла. |
![]() |
![]() |
![]() |
#4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 384
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() ![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 3 863
Благодарил(а): 226 раз(а)
Поблагодарили:
141 раз(а) в 133 сообщениях
|
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 285
Благодарил(а): 8 раз(а)
Поблагодарили:
164 раз(а) в 161 сообщениях
|
![]() А уж если посмотреть на конструкторы то проблемы совместимости макросов просто тормозят их развитие. __________________ Не являюсь сотрудником Segnetics !!! |
![]() |
![]() |
![]() |
#7 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]() Не надо усложнять без необходимости. Добавлено через 3 минуты MAP-файл просто позволит читать и писать в EEP-файл внешними инструментами, только и всего. Пока Сегнетикс будет собираться и городить непонятно что с хранением настроек, используя MAP-файл можно за вечер написать инструмент для сохранения, восстановления и обновления настроек. Добавлено через 13 минут Для шаредов осилили же формирование MAP-файла в форме load_files.srv. Осталось сделать небольшой шажочек и сделать похожую штуку для load_files.eep. Тогда наступит счастье и конец костылям и опасным действиям при обновлении. |
![]() |
![]() |
![]() |
#8 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 384
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() ![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]() Я свои аргументы привел. |
![]() |
![]() |
![]() |
#10 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 384
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() Одни записи ссылаются на другие - это достаточный признак реляционности БД. Ясно дело, что такие ссылки можно хоть через DB3 сделать, но таки в основе DB3 это индексная база и вся реляционность должна делаться ручками. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#11 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]() Например, когда вы компилируете программу на C, ассемблере, паскале, ..., создается MAP-файл с информацией о расположении функций, переменных и т.п. Это к реляционным базам данных не имеет отношение от слова совсем. |
![]() |
![]() |
![]() |
#12 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 384
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#13 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]()
В FBD есть связи? Есть. Вывод FBD -- это реляционная база данных, а SMLogix -- сервер баз данных.
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 770
Благодарил(а): 3 раз(а)
Поблагодарили:
80 раз(а) в 62 сообщениях
|
![]()
Да какая разница, как это делать?
Интенция дельная. Тоже мучаюсь, когда надо где-то программу обновить. |
![]() |
![]() |
![]() |
#15 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]()
Я завтра ещё на почту в Сегнетикс напишу. Надо решать эту проблему.
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]() ...в текущем лоджике маловероятно сейчас дел очень много по разработкам в лоджике 2.0 (на другой платформе постараемся учесть)... ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 770
Благодарил(а): 3 раз(а)
Поблагодарили:
80 раз(а) в 62 сообщениях
|
![]() |
![]() |
![]() |
![]() |
#18 |
Senior Member
Регистрация: Aug 2018
Сообщения: 187
Благодарил(а): 6 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Поддерживаю автора, сброс настроек это адовая головная боль. Когда на обслуживании 60 ПЛК, и нужно добавить какую-то менюшку (а заказчик частенько что-то новое хочет), вводить все по новой это боль (особенно с расписанием). Это не просто проблема, это ПРОБЛЕМИЩЕ. Но, зная ТП сигнетика, решение этого вопроса мы увидим еще не скоро... Если вообще увидим.
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]()
Краткое описание действий по добавлению настройки с сохранением настроек на рабочем контроллере, кому интересно:
1. После заведения новой настройки, в нее записывается некоторое "маркерное значение". 2. Проект компилируется, загружается на отладочный контроллер. Из него (или из каталога %TEMP%\sm_logix\ извлекается файл eep, в нем ищется это маркерное значение (оно должно быть одно в файле, что бы точно определить положение), определяется смещение. 3. С рабочего контроллера извлекается .eep-файл. Производится вставка по нужному смещению нужного количества данных (можно делать утилитой dd, например). 4. Проект заливается на рабочий контроллер. 5. Останавливается служба logix. 6. Заменяется файл eep отредактированным, полученным на шаге 3 7. Рабочий контроллер перезапускается. |
![]() |
![]() |
![]() |
#20 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 285
Благодарил(а): 8 раз(а)
Поблагодарили:
164 раз(а) в 161 сообщениях
|
![]() __________________ Не являюсь сотрудником Segnetics !!! |
![]() |
![]() |
![]() |
#21 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]() Другое дело, что для запуска компиляции (зачем-то) нужен подключенный контроллер. Процедура распространения приложения продумана недостаточно хорошо (это я политкорректно выразился), в идеале хотелось бы формировать "дистрибутив" и потом уже его заливать утилитой командной строки для Windows/Linux, без запуска среды программирования. |
![]() |
![]() |
![]() |
#22 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 285
Благодарил(а): 8 раз(а)
Поблагодарили:
164 раз(а) в 161 сообщениях
|
![]() ![]() __________________ Не являюсь сотрудником Segnetics !!! |
![]() |
![]() |
![]() |
#23 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#24 |
Senior Member
Регистрация: Jul 2014
Сообщения: 223
Благодарил(а): 2 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]() Может конечно есть такие способы, а я не знаю просто? |
![]() |
![]() |
![]() |
#25 |
Senior Member
Регистрация: Nov 2017
Сообщения: 556
Благодарил(а): 2 раз(а)
Поблагодарили:
35 раз(а) в 28 сообщениях
|
![]() |
![]() |
![]() |
![]() |
#26 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 285
Благодарил(а): 8 раз(а)
Поблагодарили:
164 раз(а) в 161 сообщениях
|
![]() __________________ Не являюсь сотрудником Segnetics !!! |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обновление прошивки Trim5 (решено) | laserist | Вопросы о Trim5 | 9 | 19.07.2017 15:02 |
Меню настроек | tvf | SMArt | 9 | 15.02.2016 14:19 |
Журнал. Автоматическая очистка при загрузки программы | Arsie | SMArt | 0 | 01.04.2015 12:22 |
Как оценить время выполнения программы в контроллере? | Arsie | ЧаВо - Часто задаваемые Вопросы | 0 | 04.10.2013 16:51 |