Вход

Просмотр полной версии : В программе происходит наложение переменных



FPavel
07.07.2022, 15:02
Здравствуйте, уважаемые специалисты.

В программу добавил измерение ещё одного параметра, для этого объявил
- в Modbus Ethernet Slave 5 переменных для панели (диапазон, коррекцию, постоянную фильтра, значение параметра для панели),
- в переменных объявил ещё один самодельный ФБ, состоящий из функции ограничителя и масштабирования, и ФБ DIG_FLTR.
- увеличил массив слов, принимаемых из модуля ввода вывода
- в Modbus RS485 Master изменил (увеличил на 2) размер принимаемой строки - читаю не по одному регистру.

Результат - несмотря на входные данные, значение на выходе остаётся равным значению другого измеряемого параметра.

Месяц назад подобное было - появилось из-за объявления типа (без объявления переменной) размером в 3 байта. Т.к. тип не использовался - удалил его описание и работа восстановилась.
Сейчас такое не добавлял, только переменные к обмену с панелью, внутреннюю глобальную переменную, размер строки от модуля ввода.

Через глобальный поиск не нашёл случайных присвоений.

Как найти ошибку и что искать?

61564

61565

61566

YuriBel
07.07.2022, 17:01
Слышали что-нибудь про выравнивание?

kondor3000
07.07.2022, 17:36
Вы пишите какие типы переменных вы используете, и про выравнивание вам правильно уже сказали.

FPavel
07.07.2022, 17:47
Слышал про выравнивание, но не пойму, куда его применить, т.к. напрямую не обращаюсь по адресам, только по именам переменных.

YuriBel
07.07.2022, 17:58
Выкладывайте проект, иначе так и будут одни догадки.

FPavel
07.07.2022, 20:41
Просил ещё помощь у техподдержки.

Ответил Скворцов Александр Алексеевич - спасибо ему огромное за помощь!

У меня грубейшая ошибка - после копирования не переименовал переменную экземпляр ФБ - на холсте два amVapourPresMeasure.

Сейчас уже не проверю, но завтра с утра перезалью программу и, думаю, что всё заработает. Очень уж грубая ошибка.

Всем Спасибо, за отзывчивость!