Segnetics

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

SMArt Разработка интерфейсов пользователя

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2014, 16:52   #1
asen
Новичок
 
Регистрация: May 2014
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Exclamation Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Суть проблемы: при определенной достаточно простой последовательности действий в SMArt зависает работа с внутренней памятью (флаг "память не готова" не снимается до перезагрузки питания)

Контроллер Pixel 2511-02-00
Прикладываю FBD для воспроизведения проблемы.
- прошить (тип компоновки значения не имеет)
- запустить (запуск или под отладкой значения не имеет)
- нажать F1 (запускает нужную последовательность действий)
- загорится светодиод который привязан в FBD к флагу "память не готова"
- попытки вручную отредактировать любое число на экране после этого ни к чему не приведут

Проблема воспроизводится на двух разных экземплярах контроллерах.
Тест памяти по ячейками хранения контроллера показывает норму (ARRAY пишет всю память различными числами и верно читает записанное)

Обновился полностью перед проверкой:
Версия прошивки контроллера 3.293.000
Версия SMLogix 3.25.0132

Прошу помощи разработчиков.
Вложения
Тип файла: psl Ошибка пиксела.psl (65.7 Кбайт, 42 просмотров)
asen вне форума   Ответить с цитированием
Старый 01.09.2014, 13:18   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Цитата:
Сообщение от asen Посмотреть сообщение
Проблема воспроизводится на двух разных экземплярах контроллерах.
Тест памяти по ячейками хранения контроллера показывает норму (ARRAY пишет всю память различными числами и верно читает записанное)

Обновился полностью перед проверкой:
Версия прошивки контроллера 3.293.000
Версия SMLogix 3.25.0132

Прошу помощи разработчиков.
Да, у меня тоже повторяется. Глянем.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 02.09.2014, 13:10   #3
asen
Новичок
 
Регистрация: May 2014
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Exclamation Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Вероятно, есть еще одна ошибка, в разборе числа

воспроизведение еще более простое.

1) прошить приложенный файл (там нет ничего сложнее чем поле LONG!)
2) попытаться в первое из полей ввести число 738328586
- введется число 738328576

Другие числа вводятся успешно, хотя не все.. причем числа бОльшие - тоже обычно вводятся успешно.
Границы чисел заданы от 0 до максимума.n
Вложения
Тип файла: psl Ошибка пиксела 2.psl (16.4 Кбайт, 22 просмотров)
asen вне форума   Ответить с цитированием
Старый 02.09.2014, 16:50   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Цитата:
Сообщение от asen Посмотреть сообщение
Вероятно, есть еще одна ошибка, в разборе числа

воспроизведение еще более простое.

1) прошить приложенный файл (там нет ничего сложнее чем поле LONG!)
2) попытаться в первое из полей ввести число 738328586
- введется число 738328576

Другие числа вводятся успешно, хотя не все.. причем числа бОльшие - тоже обычно вводятся успешно.
Границы чисел заданы от 0 до максимума.n
Это "нормально". В том плане, что внутри СМАрта любое число хранится в real, а 32-хбитный real - это 6 гарантированных значащих разрядов в мантиссе.

Показанный вами пример - это ошибка округления. В СМАрте не предполагается хранение более, чем пятиразрядных чисел.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 02.09.2014, 18:32   #5
asen
Новичок
 
Регистрация: May 2014
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Цитата:
Сообщение от Arsie Посмотреть сообщение
В том плане, что внутри СМАрта любое число хранится в real
Эмм. Не ожидал.. Ладно, примем как есть. Для любых чисел кроме LONG такое решение по крайней мере это не вызывает ошибок..

Мне нужно вводить много различных коротких настроечных целочисленных переменных. Я предполагал получать их распаковывая LONG переменные SMArt'а на биты, и потом собирая обратно в нужных мне длинах. Используя INT я потеряю 50% памяти благодаря тому же подходу, а памяти и так мало.

При декларируемом наличии "графической среды" будет странно писать интерфейсные макросы на FBD, но поскольку графическая среда не выполняет заявленные функции придется писать на FBD
asen вне форума   Ответить с цитированием
Старый 02.09.2014, 19:51   #6
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Цитата:
Сообщение от asen Посмотреть сообщение
При декларируемом наличии "графической среды" будет странно писать интерфейсные макросы на FBD, но поскольку графическая среда не выполняет заявленные функции придется писать на FBD
Примочки из SMArt работают немного быстрее самосбора из FBD (оптимизированный код?). Но при этом их функционал настолько ограничен, что подходит далеко не для всех задач.
Засим и получается, что проще организовать силами SMArt несколько "пустых" экранов (благо переходы между ними "программировать" просто), которые уже и заполнять своими конструкциями на FBD...

P.S.
Есть у SMArt, если я в другой теме правильно понял Arsie, и еще одна подстава, а именно:
он всегда размещается ПЕРЕД FBD. То есть, если вы делаете в СМАрте что-то, достаточно часто пишушееся в память - вы будете тупо убивать память контроллера, а не "внешнюю" FRAM или флешку. Для настроек и тому подобной фигни это, наверное, мелочи - но задачи разные бывают, иногда СМАртовский "журнал" может словить под сотню записей за считанные секунды...
ailcat вне форума   Ответить с цитированием
Старый 03.09.2014, 11:21   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Цитата:
Сообщение от ailcat Посмотреть сообщение
иногда СМАртовский "журнал" может словить под сотню записей за считанные секунды...
Не берите это в голову, всё равно памяти надолго хватит. Появление ошибок на объекте - не самое распространённое явление. Объект должен работать, а не стоять в сотне ошибок, как новогодняя ёлка в гирляндах.

Ещё ни в одном контроллере, включая самые ранние SMH1010, журнал не высосал весь ресурс памяти.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 03.09.2014, 13:47   #8
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

В задачах АВОК - да, авария - это штука, редко случающаяся.
Впрочем, журнал может фиксировать не только аварии, но и события (да-да, я помню, что Сегнетиксы - они как бы для вентиляции-отопления, а не для всего на свете, и я их юзаю в "нештатных" устройствах) - а события могут возникать в разы чаще...
Вот и приходится конструировать свои "журналы" для событий (благо, это несложно), оставляя смартовский журнал для действительно серьезных аварий...

P.S.
В задаче, которую "от нефиг делать" (больше чтоб мозги не засохли) пытаюсь решить сейчас - возможны "цепочные" аварии, когда аварийные сообщения посыпятся по 70-80 сразу (жуткая ситуация, но в любом случае уменьшить - не выходит)... Вот и получится, что в журнале смарта "ждём" несколько секунд окончания этого "аварие-пада" и просто фиксируем сам факт, а сами аварии - просматриваем в самописном журнале (кстати, Arsie: можно ли при выборе аварии в жрнале СМАрт ддля её "подтверждения" переходить на другой экран (с самописным журналом, в частности), возврат с коротого и будет считаться подтверждением?
ailcat вне форума   Ответить с цитированием
Старый 03.09.2014, 15:32   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Цитата:
Сообщение от ailcat Посмотреть сообщение
В задачах АВОК - да, авария - это штука, редко случающаяся.
Впрочем, журнал может фиксировать не только аварии, но и события (да-да, я помню, что Сегнетиксы - они как бы для вентиляции-отопления, а не для всего на свете, и я их юзаю в "нештатных" устройствах) - а события могут возникать в разы чаще...
Вот и приходится конструировать свои "журналы" для событий (благо, это несложно), оставляя смартовский журнал для действительно серьезных аварий...
Нет, "Сегнетиксы" - общепромышленные. АВОК - это только Пиксели.

А журнал в Конструкторе это именно журнал аварий. Да и в СМАрте это журнал аварий и ничего другого.




Цитата:
Сообщение от ailcat Посмотреть сообщение
можно ли при выборе аварии в жрнале СМАрт ддля её "подтверждения" переходить на другой экран (с самописным журналом, в частности), возврат с коротого и будет считаться подтверждением?
В журнале СМАрта нет квитирования. Там нечего подтверждать.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 03.09.2014, 17:25   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Цитата:
Сообщение от asen Посмотреть сообщение
Суть проблемы: при определенной достаточно простой последовательности действий в SMArt зависает работа с внутренней памятью (флаг "память не готова" не снимается до перезагрузки питания)

Контроллер Pixel 2511-02-00
Прикладываю FBD для воспроизведения проблемы.
- прошить (тип компоновки значения не имеет)
- запустить (запуск или под отладкой значения не имеет)
- нажать F1 (запускает нужную последовательность действий)
- загорится светодиод который привязан в FBD к флагу "память не готова"
- попытки вручную отредактировать любое число на экране после этого ни к чему не приведут

Проблема воспроизводится на двух разных экземплярах контроллерах.
Тест памяти по ячейками хранения контроллера показывает норму (ARRAY пишет всю память различными числами и верно читает записанное)

Обновился полностью перед проверкой:
Версия прошивки контроллера 3.293.000
Версия SMLogix 3.25.0132

Прошу помощи разработчиков.
Будет исправлено в версии 3.25.0136


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 03.09.2014, 18:15   #11
asen
Новичок
 
Регистрация: May 2014
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

Цитата:
Сообщение от Arsie Посмотреть сообщение
Будет исправлено в версии 3.25.0136
СПАСИБО!!!
asen вне форума   Ответить с цитированием
Старый 16.09.2014, 15:23   #12
malyga
Сотрудник Segnetics
 
Регистрация: Apr 2008
Сообщения: 146
Благодарил(а): 13 раз(а)
Поблагодарили: 21 раз(а) в 20 сообщениях
По умолчанию Ответ: Ошибки алгоритма SMArt работы с памятью при вводе числа / Pixel

выложили версию 3.25.0136


__________________
Инженер "Сегнетикс"
malyga вне форума   Ответить с цитированием
Ответ


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

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



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


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