PDA

Просмотр полной версии : СП3хх - графики и преобразование типов



ks-app
29.03.2016, 12:51
Может тема уже и обсуждалась, но я не нашёл.
А вопрос такой: панель СП-310. Реальной панели пока нет - балуюсь эмулятором.
Никак не могу добиться адекватного отображения на графике реального времени данных из регистра с типом float.
Может кто подскажет, как это сделать? Просто выбор формата float на графике не работает (в эмуляторе во всяком случае).
Пробовал преобразовать float в dec простым копированием регисторв. Но это тоже не проканало.
Вообще есть возможность преобразования float в dec?
Заранее благодарен всем откликнувшимся.

Евгений Кислов
29.03.2016, 13:01
Может тема уже и обсуждалась, но я не нашёл.
А вопрос такой: панель СП-310. Реальной панели пока нет - балуюсь эмулятором.
Никак не могу добиться адекватного отображения на графике реального времени данных из регистра с типом float.
Может кто подскажет, как это сделать? Просто выбор формата float на графике не работает (в эмуляторе во всяком случае).
Пробовал преобразовать float в dec простым копированием регисторв. Но это тоже не проканало.
Вообще есть возможность преобразования float в dec?
Заранее благодарен всем откликнувшимся.

Формат Float в эмуляторе, действительно, в данный момент отображается некорректно на графиках.
А вот Dec отображается нормально. Выложите ваш проект, пожалуйста.

petera
29.03.2016, 13:17
Может тема уже и обсуждалась, но я не нашёл.
А вопрос такой: панель СП-310. Реальной панели пока нет - балуюсь эмулятором.
Никак не могу добиться адекватного отображения на графике реального времени данных из регистра с типом float.
Может кто подскажет, как это сделать? Просто выбор формата float на графике не работает (в эмуляторе во всяком случае).
Пробовал преобразовать float в dec простым копированием регисторв. Но это тоже не проканало.
Вообще есть возможность преобразования float в dec?
Заранее благодарен всем откликнувшимся.
Преобразовать Float в Dec можно так
Используйте ф.область с вычислением ЗначениеDec=ЗначениеFloat*(10в степени n)
23473

23474

Здесь в регистре PSW300 получится десятичное значение pрегистра PSW256(Float) с одним знаком после запятой.
23478 23479

ks-app
29.03.2016, 13:30
Формат Float в эмуляторе, действительно, в данный момент отображается некорректно на графиках.
А вот Dec отображается нормально. Выложите ваш проект, пожалуйста.

Формат dec у меня тоже нормально отображается. Поэтому я и хотел преобразовать float в dec - на графике особая точность не требуется.
Спасибо за ответ.

petera
29.03.2016, 13:38
Формат dec у меня тоже нормально отображается. Поэтому я и хотел преобразовать float в dec - на графике особая точность не требуется.
Спасибо за ответ.
Я Вам и предлагаю способ преобразования исходных данных в формате Float в формат Dec.
Для графика используйте промежуточный регистр PSW, в котором с помощью ф.области, приведенной в примере, будете получать Dec значения из слейва.

ks-app
29.03.2016, 13:43
Преобразовать Float в Dec можно так
Используйте ф.область с вычислением ЗначениеDec=ЗначениеFloat*(10в степени n)

Здесь в регистре PSW300 получится десятичное значение pрегистра PSW256(Float) с одним знаком после запятой.


Мне подобная мысль приходила в голову, но видимо где-то недожал с комбинациями ))) Ваш вариант работает. Спасибо.

ks-app
30.03.2016, 08:59
Ещё одна проблема нарисовалась: с помощью petera удалось отобразить более-менее нормальные значения на графике реального времени. Но график работает только когда отображается экран, на котором этот график расположен. При переходе на другой экран значение на графике "замирает". То есть если, например, значение непрерывно растёт (наклонная линия на графике), то после перехода на другой экран, а через некоторое время при возврате на экран графика видим прямую линию с того момента, когда был переход на другой экран. Это так и должно быть или можно как-то сделать, чтобы график работал независимо от того, какой экран включен в текущий момент? Просто оператора такое поведение может ввести в заблуждение - он может подумать, что значение параметра какое-то время не изменялось, хотя на самом деле это не так.

Евгений Кислов
30.03.2016, 09:02
Ещё одна проблема нарисовалась: с помощью petera удалось отобразить более-менее нормальные значения на графике реального времени. Но график работает только когда отображается экран, на котором этот график расположен. При переходе на другой экран значение на графике "замирает". То есть если, например, значение непрерывно растёт (наклонная линия на графике), то после перехода на другой экран, а через некоторое время при возврате на экран графика видим прямую линию с того момента, когда был переход на другой экран. Это так и должно быть или можно как-то сделать, чтобы график работал независимо от того, какой экран включен в текущий момент? Просто оператора такое поведение может ввести в заблуждение - он может подумать, что значение параметра какое-то время не изменялось, хотя на самом деле это не так.

Предположу, что дело не в графике, а в функциональной области. Нажмите на нее ПКМ и сделайте глобальной.

ks-app
30.03.2016, 09:08
Предположу, что дело не в графике, а в функциональной области. Нажмите на нее ПКМ и сделайте глобальной.
Спасибо. Я уже додумался. Так и оказалось.