Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.12.2022, 13:36   #1
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Обновление (а не перетирание) настроек программы

Коллеги!

Типовая жизненная ситуация такова, про приходится дорабатывать и обновлять FBD-программу на контроллере. Не является исключением добавление новых уставок. Но текущая ситуация не позволяет это нормально сделать.

Рассмотрим, для примера, ситуацию с SMH4/Trim/Matrix.

1. Есть программа с кучей настроек.
2. Добавили где-то настройку в программе (элемент меню настроек).
3. Технически, текущие настройки хранятся в файле /projects/load_files.eep по определенным смещениям.
4. После добавления настройки в п.2. эти все смещения съезжают и старые настройки уже не совмещаются с новой программой, нужно загрузить настройки по умолчанию заново функцией "Загружать EEPROM".

В итоге, после обновления имеем ОПАСНУЮ ситуацию, когда нужно сначала "переписать на бумажку" старые настройки, потом пройтись по всем менюшкам и их восстановить, при этом ничего не забыв, не перепутав и не ошибиться в вводе!

Неужели такая ситуация всех устраивает?

Я лично, что бы избежать подобной ситуации, занимаюсь "хакерством". Сначала выясняю смещение новой настройки, потом беру старый eep-файл, вставляю требуемое значение.

Давайте что-то делать с этим опасным безобразием!
Gel вне форума   Ответить с цитированием
Старый 05.12.2022, 13:54   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
Давайте что-то делать с этим опасным безобразием!
Нужно делать не что-то, а переходить на хранение данных в БД. В младших контроллерах это нереально.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 05.12.2022, 14:01   #3
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата:
Сообщение от Arsie Посмотреть сообщение
Нужно делать не что-то, а переходить на хранение данных в БД. В младших контроллерах это нереально.
Да не нужно здесь БД, это из пушки по воробьям. И почему младшие контроллеры вдруг стали влиять на старшие? Разрешение экрана, цвета, количество памяти и прочее как-то ограничивают старшие контроллеры?

Начать можно с того, что бы формировать MAP-файл, содержащий смещение, тип, идентификатор и название значений для EEP-файла.
Gel вне форума   Ответить с цитированием
Старый 05.12.2022, 14:50   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
Начать можно с того, что бы формировать MAP-файл, содержащий смещение, тип, идентификатор и название значений для EEP-файла.
поздравляю, вы только что изобрели реляционную БД


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 05.12.2022, 14:51   #5
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата:
Сообщение от Arsie Посмотреть сообщение
Нужно делать не что-то, а переходить на хранение данных в БД. В младших контроллерах это нереально.
вот да, стараюсь всегда делать исторический блок со всеми уставками и вывожу их в журнал. гемморно конечно, хотелось бы такой автоматизации в элементе "меню настроек". для каждого элемента галка "журнал/история". или как-то так.


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 05.12.2022, 14:57   #6
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 740
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
Да не нужно здесь БД, это из пушки по воробьям.
Почему? База есть и не одна. Даже значения шаредов в базе водятся.

Цитата Начать можно с того, что бы формировать MAP-файл, содержащий смещение, тип, идентификатор и название значений для EEP-файла
Да это и получиться слепить пародию на базу данных.

Цитата И почему младшие контроллеры вдруг стали влиять на старшие? Разрешение экрана, цвета, количество памяти и прочее как-то ограничивают старшие контроллеры?
Еще как тормозят. Всех старичков по 2Gi включительно надо было оставить в версии 3.28 и не пускать в новые.

А уж если посмотреть на конструкторы то проблемы совместимости макросов просто тормозят их развитие.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 05.12.2022, 17:15   #7
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата:
Сообщение от Arsie Посмотреть сообщение
поздравляю, вы только что изобрели реляционную БД
Причем здесь реляционная база данных? Где здесь связи между данными, зачем там ACID, если к EEP-файлу однопользовательский доступ FBD приложения?

Не надо усложнять без необходимости.


Добавлено через 3 минуты


Цитата
Сообщение от ATS Посмотреть сообщение
Почему? База есть и не одна. Даже значения шаредов в Да это и получиться слепить пародию на базу данных.
Это к БД никакого отношения не имеет.

MAP-файл просто позволит читать и писать в EEP-файл внешними инструментами, только и всего.

Пока Сегнетикс будет собираться и городить непонятно что с хранением настроек, используя MAP-файл можно за вечер написать инструмент для сохранения, восстановления и обновления настроек.


Добавлено через 13 минут


Для шаредов осилили же формирование MAP-файла в форме load_files.srv. Осталось сделать небольшой шажочек и сделать похожую штуку для load_files.eep.

Тогда наступит счастье и конец костылям и опасным действиям при обновлении.
Gel вне форума   Ответить с цитированием
Старый 05.12.2022, 17:47   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
Причем здесь реляционная база данных? Где здесь связи между данными, зачем там ACID, если к EEP-файлу однопользовательский доступ FBD приложения?
Ну вот в этом весь вы. Знаете много умных слов и даже в них разбираетесь, но сути за ними не видите


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 05.12.2022, 18:01   #9
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата:
Сообщение от Arsie Посмотреть сообщение
Ну вот в этом весь вы. Знаете много умных слов и даже в них разбираетесь, но сути за ними не видите
Арсений, ну поясните, в чем я не прав, аргументируйте.

Я свои аргументы привел.
Gel вне форума   Ответить с цитированием
Старый 05.12.2022, 18:06   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
Арсений, ну поясните, в чем я не прав, аргументируйте.

Я свои аргументы привел.
Монопольность доступа к БД не тождественна монопольности доступа к файлу БД. И наоборот.

Одни записи ссылаются на другие - это достаточный признак реляционности БД. Ясно дело, что такие ссылки можно хоть через DB3 сделать, но таки в основе DB3 это индексная база и вся реляционность должна делаться ручками.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 05.12.2022, 18:14   #11
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата:
Сообщение от Arsie Посмотреть сообщение
Монопольность доступа к БД не тождественна монопольности доступа к файлу БД. И наоборот.

Одни записи ссылаются на другие - это достаточный признак реляционности БД. Ясно дело, что такие ссылки можно хоть через DB3 сделать, но таки в основе DB3 это индексная база и вся реляционность должна делаться ручками.
Так тут нет ссылок одних данных на другие. Здесь просто описание формата eep-файла.

Например, когда вы компилируете программу на C, ассемблере, паскале, ..., создается MAP-файл с информацией о расположении функций, переменных и т.п. Это к реляционным базам данных не имеет отношение от слова совсем.
Gel вне форума   Ответить с цитированием
Старый 05.12.2022, 18:27   #12
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
Так тут нет ссылок одних данных на другие. Здесь просто описание формата eep-файла.

Например, когда вы компилируете программу на C, ассемблере, паскале, ..., создается MAP-файл с информацией о расположении функций, переменных и т.п. Это к реляционным базам данных не имеет отношение от слова совсем.
Ну понятно. Белый тигр это не тигр. Это кожаный мешок с мясом и костями.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 05.12.2022, 18:33   #13
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

В FBD есть связи? Есть. Вывод FBD -- это реляционная база данных, а SMLogix -- сервер баз данных.
Gel вне форума   Ответить с цитированием
Старый 05.12.2022, 18:42   #14
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 857
Благодарил(а): 4 раз(а)
Поблагодарили: 85 раз(а) в 66 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Да какая разница, как это делать?
Интенция дельная. Тоже мучаюсь, когда надо где-то программу обновить.
младшой вне форума   Ответить с цитированием
Старый 05.12.2022, 19:03   #15
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Я завтра ещё на почту в Сегнетикс напишу. Надо решать эту проблему.
Gel вне форума   Ответить с цитированием
Старый 06.12.2022, 17:26   #16
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
Я завтра ещё на почту в Сегнетикс напишу. Надо решать эту проблему.
В общем, такая ситуация...

...в текущем лоджике маловероятно сейчас дел очень много по разработкам

в лоджике 2.0 (на другой платформе постараемся учесть)...


Gel вне форума   Ответить с цитированием
Старый 06.12.2022, 18:59   #17
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 857
Благодарил(а): 4 раз(а)
Поблагодарили: 85 раз(а) в 66 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
в лоджике 2.0
но ведь уже 3.34!
младшой вне форума   Ответить с цитированием
Старый 14.12.2022, 16:17   #18
Bigcrash
Senior Member
 
Регистрация: Aug 2018
Сообщения: 199
Благодарил(а): 6 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Поддерживаю автора, сброс настроек это адовая головная боль. Когда на обслуживании 60 ПЛК, и нужно добавить какую-то менюшку (а заказчик частенько что-то новое хочет), вводить все по новой это боль (особенно с расписанием). Это не просто проблема, это ПРОБЛЕМИЩЕ. Но, зная ТП сигнетика, решение этого вопроса мы увидим еще не скоро... Если вообще увидим.
Bigcrash вне форума   Ответить с цитированием
Старый 14.12.2022, 16:40   #19
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Краткое описание действий по добавлению настройки с сохранением настроек на рабочем контроллере, кому интересно:

1. После заведения новой настройки, в нее записывается некоторое "маркерное значение".

2. Проект компилируется, загружается на отладочный контроллер. Из него (или из каталога %TEMP%\sm_logix\ извлекается файл eep, в нем ищется это маркерное значение (оно должно быть одно в файле, что бы точно определить положение), определяется смещение.

3. С рабочего контроллера извлекается .eep-файл. Производится вставка по нужному смещению нужного количества данных (можно делать утилитой dd, например).

4. Проект заливается на рабочий контроллер.

5. Останавливается служба logix.

6. Заменяется файл eep отредактированным, полученным на шаге 3

7. Рабочий контроллер перезапускается.
Gel вне форума   Ответить с цитированием
Старый 14.12.2022, 16:44   #20
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 740
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Bigcrash Посмотреть сообщение
Но, зная ТП сигнетика, решение этого вопроса мы увидим еще не скоро... Если вообще увидим.
Проблема в том что там нет никаких привязок кроме кроме порядкового номера блока FBD.



Цитата
Сообщение от Gel Посмотреть сообщение
Краткое описание действий по добавлению настройки с сохранением настроек на рабочем контроллере...
Ну новый файлик .eep проще найти на компе даже не загружая в контроллер.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 14.12.2022, 17:13   #21
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от ATS Посмотреть сообщение
Ну новый файлик .eep проще найти на компе даже не загружая в контроллер.
А я и упомянул %TEMP%\sm_logix

Другое дело, что для запуска компиляции (зачем-то) нужен подключенный контроллер.

Процедура распространения приложения продумана недостаточно хорошо (это я политкорректно выразился), в идеале хотелось бы формировать "дистрибутив" и потом уже его заливать утилитой командной строки для Windows/Linux, без запуска среды программирования.
Gel вне форума   Ответить с цитированием
Старый 14.12.2022, 17:17   #22
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 740
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
Другое дело, что для запуска компиляции (зачем-то) нужен подключенный контроллер.
Не нужен Ctrl+F7.

Цитата в идеале хотелось бы формировать "дистрибутив" и потом уже его заливать утилитой командной строки для Windows/Linux, без запуска среды программирования
Если очень хочется.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 14.12.2022, 17:24   #23
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от ATS Посмотреть сообщение
Не нужен Ctrl+F7.
А, ну да. Есть такая недокументированная функция.



Миниатюры
Нажмите на картинку для увеличения

Название:  hotkeys.png
Просмотров: 163
Размер:  22.8 Кбайт  
Gel вне форума   Ответить с цитированием
Старый 14.12.2022, 20:00   #24
dsboss
Senior Member
 
Регистрация: Jul 2014
Сообщения: 225
Благодарил(а): 3 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
в идеале хотелось бы формировать "дистрибутив" и потом уже его заливать утилитой командной строки для Windows/Linux, без запуска среды программирования.
Поддержу Вас в этой мысли. Бывают случаи, когда нужно загрузить проект на удаленный объект без доступа контроллера в интернет, но без возможности исполнителю ковыряться в проекте: чтобы человек просто загрузил в контроллер присланный ему файл без возможности открыть, посмотреть, редактировать.
Может конечно есть такие способы, а я не знаю просто?
dsboss вне форума   Ответить с цитированием
Старый 15.12.2022, 07:33   #25
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от dsboss Посмотреть сообщение
Может конечно есть такие способы, а я не знаю просто?
Штатной возможности точно нет, но при наличии CTRL+F7 можно что-нибудь придумать.
Gel вне форума   Ответить с цитированием
Старый 15.12.2022, 12:00   #26
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 740
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Обновление (а не перетирание) настроек программы

Цитата
Сообщение от Gel Посмотреть сообщение
при наличии CTRL+F7 можно что-нибудь придумать.
Не совсем. В этом режиме не все файлы создаются.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление прошивки 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


Часовой пояс GMT +4, время: 08:46.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023