This is topic Проблема с типом данных SINT в связке Экран-Программа in forum Общие вопросы / Common questions at Форум TRACE MODE: техническая поддержка.
Здравствуйте. Наткнулся на пренеприятнейшую проблему. При связи каналов вызова программы и экрана через аргументы типов SINT экран некорректно воспринимает отрицательные значения. Опытным путём выявлена следующая картина: __________________________________________________________________ ______Тип данных___ | в программе|в экране|Результат|_Пример_ |__Комментарий ========= |====== |======= |========|====================== 1. Программа шлет значения в экран ___SINT___ |__SINT__|__НЕТ___|-1 -> 255 | ПОЧЕМУ?! ___SINT___ |__ INT __|__НЕТ___|-1 -> 255 | Положим, неявное преобразование типов здесь не работает: на выходе 8-разрядный допкод от -1 ___ INT ___ |__ INT __|__ ДА___| -1 -> -1 | Как и должно быть ___ INT ___ |__SINT__|__НЕТ___|-1 -> 255 | Положим, неявное преобразование типов здесь не работает : на выходе допкод от -1, усеченный до 8 разрядов 2. Экран тянет значения из программы ___SINT___ |__SINT__|__НЕТ___|-1 -> 255 | ПОЧЕМУ?! ___SINT___ |__ INT __|__НЕТ___|-1 -> 255 | Положим, неявное преобразование типов здесь не работает: на выходе 8-разрядный допкод от -1 ___ INT ___ |__ INT __|__ ДА___| -1 -> -1 | Как и должно быть ___ INT ___ |__SINT__|__ ДА___| -1 -> -1 | А вот это интересно! ______________________________________________________________________________________
При этом неотрицательные значения воспринимаются нормально. Испытывалась одна и та же программа на языке Техно ST, и она действительно выдавала минус единицу, в этом можно не сомневаться. Прошу дать комментарии.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Мы рассмотрим Ваше обращение в дальнейшей работе над системой.