kashpir88
Junior Member / Новичок
Участник № / Member № 8429
отправлено / posted
Здравствуйте. Чтение с контроллера происходит каналом класса Call ChGrReq, тип данных INT. Все читается правильно (значение нужного аргумента = -40). Привязываю канал класса Float с масштабированием 0.1 к аргументу групп реквеста. По идее на выходе должно быть значение -4. Но отображается значение 65000+ (примерно). В атрибутах канала Float тип данных на реальном значении, входном и аппаратном автоматически выставился REAL. Как мне получить корректное отображение отрицательных чисел?
Сообщения / Posts 12 | Из / From: Россия
| IP / IP: IP адрес / IP address |
kashpir88
Junior Member / Новичок
Участник № / Member № 8429
отправлено / posted
Было выявлено следующее: Без масштабирования канал Float отображает число корректно, при применении масштабирования, видимо, происходит перевод в другой тип данных, беззнаковый, а перевод обратно не производится.
Сообщения / Posts 12 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Какой Вы используете релиз TRACE MODE 6? Описанная ситуация воспроизводится без источника/приемника, но при ручном вводе отрицательного значения в аргумент канала Call.CGR?
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
kashpir88
Junior Member / Новичок
Участник № / Member № 8429
отправлено / posted
Версия 6.10.1 Описанная ситуация воспроизводится как с источником\приемником, так и без него. Т.е. при переводе атрибута состояния в off и ручной записи в аргумент канала CGR отрицательного значения.
kashpir88
Junior Member / Новичок
Участник № / Member № 8429
отправлено / posted
Не помогло данное решение. Пробовал создать новый проект. Исходные данные: канал класса float и канал класса CGR. канал класса float (привязан к аргументу Arg00 канала CGR) и имеет множитель 0,1 в обработке. Тип данных аргумента Arg00 DINT; тип данных аргумента экрана DINT. Вывод значения канала float на экран в текстовое поле. При подаче через панель МРВ в Arg00 положительного значения, выводимое значения канала float на экран корректное, при подаче отрицательного значения происходит искажение типа данных (определить тип данных не получается), выводимое значение не корректное.
Сообщения / Posts 12 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Тип аргумента у канала Call.CGR и Call.Screen - INT У аргумента канала Call.CGR будет отображено отрицательное значение. Аргумент привязан к Входному значению канала Float, с масштабированием. Значение,отображаемое в канале float будет целочисленным с учетом масштабирования. На экран выводится Реальное значение канала Float. У ГЭ Текст в Формате укажите Integer %hd
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |