Ошибка с Long Integer

В данный форум Вы можете заносить найденные Вами ошибки.При добавления ошибки пожалуйста приложите файлик error.log который находится в папке с установленной программой
Ответить
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

Ошибка с Long Integer

Сообщение eugeneb »

Столкнулся с неприятным эффектом самопроизвольного изменения типа данных(!).

Вот тестовая схема:
[spoiler=Спойлер][/spoiler]На верхнем входе вычитателя тип данных Integer(синий). Данные идут с потенциометра. Я держу там 0.
На нижнем входе тип Long Integer(серый).
На выходе я ожидаю Long Integer(серый).

А получаю Unsigned Long Integer(!):
[spoiler=Спойлер][/spoiler]Если я вместо потенциометра поставлю константу Integer со значением 0, то всё будет нормально:
[spoiler=Спойлер][/spoiler]
Эффект наблюдается в FLProg 2.5.1 и в 3.0.0.

И как жить дальше?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось eugeneb 01 дек 2017, 15:14, всего редактировалось 1 раз.
С уважением,
Евгений Бобков
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

Ошибка с Long Integer

Сообщение support »

Положите значение с выхода блока вычитания в переменную типа longInteger, и далее импользуйте её. Все должно заработать нормально. Дело в том что для экономии памяти, я не везде использовал переменные для выходов блоков, и кое какие блоки расчитываются на лету, и как там компилятор определит тип - не всегда известно. Создавая переменную, вы четко указываете компилятору какой тип Вам нужен.
Автор программы FLProg.
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

Ошибка с Long Integer

Сообщение eugeneb »

Спасибо! Маневр с промежуточной переменной решил проблему:
[spoiler=Спойлер][/spoiler][spoiler=Спойлер][/spoiler]
Однако, это пенальти надёжности FLProg.
Может ну её нафиг экономию памяти, бо надёжность всегда важнее?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
С уважением,
Евгений Бобков
pan
Полковник
Сообщения: 2860
Зарегистрирован: 13 апр 2017, 11:57
Имя: noname

Ошибка с Long Integer

Сообщение pan »

eugeneb писал(а):Может ну её нафиг экономию памят
 ближе к 80% загрузки, дуню начинает плющить. с чем сам недавно столкнулся. пришлось выискивать как освободить драгоценные байты...
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

Ошибка с Long Integer

Сообщение eugeneb »

Согласен, что память очень ценный ресурс. Но надёжность программирования я ценю больше. Мне вообще очень нравится наглядность FLProg. Всегда есть уверенность в правильности работы контроллера. Это и язык FBD и разбиение на платы. (Правда не хватает ещё языка SFC. Я писал уже об этом http://forum.flprogwiki.ru/viewtopic.php?f=10&t=1988 Я спокойно ставлю свои поделки в Продакшн на производство своим друзьям. Но вот такие косячки подрезают эту уверенность. Они увеличивают необходимый объём тестирования.
С уважением,
Евгений Бобков
pan
Полковник
Сообщения: 2860
Зарегистрирован: 13 апр 2017, 11:57
Имя: noname

Ошибка с Long Integer

Сообщение pan »

это не косячки, а тонкости программы) их нужно просто знать и принимать во внимание
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

Ошибка с Long Integer

Сообщение eugeneb »

Да-да, это не баги, это фичи
С уважением,
Евгений Бобков
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

Ошибка с Long Integer

Сообщение support »

eugeneb писал(а):Спасибо! Маневр с промежуточной переменной решил проблему:Однако, это пенальти надёжности FLProg.
Этот манёвр - это временное решение. В принципе это бага (я то же не знаю всех тонкостей низкоуровнего компилятора), как её устранить, я уже знаю, так что эта проблема будет решена. К сожалению в версии которая сегодня выйдет я уже не смогу исправит (релиз уже выпущен и загружен на сервер), а в следующей всё будет нормально
Автор программы FLProg.
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

Ошибка с Long Integer

Сообщение Сергей »

support, если никто не против задам вопрос здесь.
Колупаюсь со своим автоматом. Хочу сделать систему скидок при продажах. Процент скидки будет привязан к брелку пользователя, вместе с балансом. Проблема с умножением. Вопрос на фото.

Может я в 3 ночи чего то не догоняю?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

Ошибка с Long Integer

Сообщение eugeneb »

На Due ошибка не воспроизводится:
[spoiler=Спойлер][/spoiler]
А если результат деления пропустить через вспомогательную переменную?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось eugeneb 12 дек 2017, 11:11, всего редактировалось 1 раз.
С уважением,
Евгений Бобков
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

Ошибка с Long Integer

Сообщение Сергей »

eugeneb писал(а):А если результат деления пропустить через вспомогательную переменную?
то же самое. Да и у вас работает, и у меня раньше таких глюков не было. У меня в таких ситуациях мозг ломается. Вижу что черное, а все говорят белое)))
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

Ошибка с Long Integer

Сообщение eugeneb »

Надо повнимательнее разглядеть С-код, который генерится.
А может это какая-нибудь шняга с Модбасом?
Последний раз редактировалось eugeneb 12 дек 2017, 13:59, всего редактировалось 1 раз.
С уважением,
Евгений Бобков
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Ошибка с Long Integer

Сообщение Sancho »

Сергей, Попробуйте константу 100 объявить тем-же типом, что и делимое.
Последний раз редактировалось Sancho 12 дек 2017, 16:10, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

Ошибка с Long Integer

Сообщение Сергей »

eugeneb писал(а):Надо повнимательнее разглядеть С-код
Та там проект как "Война и мир", это кусочек проекта. Попробую. Модбас просто отображает. Не должен влиять.
Sancho писал(а):Сергей, Попробуйте константу 100 объявить тем-же типом, что и делимое
Это я изначально делал, что бы все вычисления были с одним типом.
Позже попробую вообще на другую плату вынести и заодно код посмотрю + сделаю свой блок для вычисления процентов.
Интересный глюк получился.
Аватара пользователя
nalnik
Подполковник
Сообщения: 1320
Зарегистрирован: 14 май 2016, 17:12
Откуда: Кисловодск
Имя: Александр

Ошибка с Long Integer

Сообщение nalnik »

Сергей
Ваши слова:  Интересный глюк получился.

Никогда не говори: "Я ошибся", лучше скажи: "Надо же, как интересно получилось..." Николай II, 1905 год.

Последний раз редактировалось nalnik 12 дек 2017, 16:58, всего редактировалось 1 раз.
Я хочу быть добрее, но люди сами нарываются.
CraCk
Лейтенант
Сообщения: 676
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Ошибка с Long Integer

Сообщение CraCk »

Сергей писал(а):Модбас просто отображает. Не должен влиять.
 Чтоб убедиться что не модбас. Замените модбас на отправку переменной в uart.
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

Ошибка с Long Integer

Сообщение Сергей »

nalnik писал(а):"Надо же, как интересно получилось..."
Ответить

Вернуться в «Новые»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей