This is topic Отображение отрицательного значения in forum Общие вопросы / Common questions at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/45/t/000389.html

Posted by kashpir88 (Участник № / Member № 8429) on :
 
Здравствуйте.
Чтение с контроллера происходит каналом класса Call ChGrReq, тип данных INT. Все читается правильно (значение нужного аргумента = -40). Привязываю канал класса Float с масштабированием 0.1 к аргументу групп реквеста. По идее на выходе должно быть значение -4. Но отображается значение 65000+ (примерно). В атрибутах канала Float тип данных на реальном значении, входном и аппаратном автоматически выставился REAL.
Как мне получить корректное отображение отрицательных чисел?
 
Posted by kashpir88 (Участник № / Member № 8429) on :
 
Было выявлено следующее:
Без масштабирования канал Float отображает число корректно, при применении масштабирования, видимо, происходит перевод в другой тип данных, беззнаковый, а перевод обратно не производится.
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
Какой Вы используете релиз TRACE MODE 6?
Описанная ситуация воспроизводится без источника/приемника, но при ручном вводе отрицательного значения в аргумент канала Call.CGR?
 
Posted by kashpir88 (Участник № / Member № 8429) on :
 
Версия 6.10.1
Описанная ситуация воспроизводится как с источником\приемником, так и без него. Т.е. при переводе атрибута состояния в off и ручной записи в аргумент канала CGR отрицательного значения.

При масштабировании канала на целое число, отображение происходит корректно
 
Posted by Nico (Участник № / Member № 5342) on :
 
задать тип аргумента DINT
 
Posted by kashpir88 (Участник № / Member № 8429) on :
 
Не помогло данное решение. Пробовал создать новый проект. Исходные данные: канал класса float и канал класса CGR. канал класса float (привязан к аргументу Arg00 канала CGR) и имеет множитель 0,1 в обработке. Тип данных аргумента Arg00 DINT; тип данных аргумента экрана DINT. Вывод значения канала float на экран в текстовое поле.
При подаче через панель МРВ в Arg00 положительного значения, выводимое значения канала float на экран корректное, при подаче отрицательного значения происходит искажение типа данных (определить тип данных не получается), выводимое значение не корректное.
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
Тип аргумента у канала Call.CGR и Call.Screen - INT
У аргумента канала Call.CGR будет отображено отрицательное значение.
Аргумент привязан к Входному значению канала Float, с масштабированием.
Значение,отображаемое в канале float будет целочисленным с учетом масштабирования.
На экран выводится Реальное значение канала Float.
У ГЭ Текст в Формате укажите Integer %hd
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2