 | |
Предыдущие результаты
Ну и для лучшего понимания чисел с плавающей точкой:
Число 1026411,1 вообще невозможно записать в таком формате. Ближайшие приближённые числа 1026411,125 и 1026411,0625.
Это RSLogix500 при выводе на экран округляет по десятичным разрядам.
|
Можно попробовать исходный тег умножить на 10 затем положить в тег типа LongInt и выводить его без запятых, а запятую затем дорисовывать.
Сначала надо выяснить на каком этапе теряются младшие разряды. Если непостредственно при выводе float в поле, то вариант выше может сработать.
|
Здравствуйте.
Я не требую точности 5 знаков после запятой.
Numeric display (про который я и не упоминал) у меня с параметрами: 8 разрядов, 1 знак после запятой, Floating Point, с экспонентой.
Но и в нем (дисплее) значение тега не 1026411,1 а 1026410,
Ноль после запятой не влез, при 9 разрядах влазит - 1026410,0, но все равно не тот результат.
Вопрос вот в чем: можно ли донести более 6 разрядов в числе из SLC до вьюхи?
Отсюда -можно ли замониторить значение тега (float) с большим количеством используемых разрядов, т.е. если макс - 1.e+038, могу ли я замониторить тег равный например: 123456789,1234 в таком виде, а не в сокращенном?
|
Из SLC в RSView32 прописан тег Floating point типа.
Так вот, при значении тега в SLC 1026411,1 во вьюхе имеем 1026410,0
Причем, при значениях до мильена(6 знаков в целочисленной части) все отображается верно(в SCL ххххх.х и во вьюхе ххххх.х).
При мониторинге тега выдалось значение 1.02641E+006.
Может потому что тут после запятой 5 знаков всего, то остальные знаки слетели в ноли после шести знаков?
Помогите побороть сие.
настройки тега в Tag DB
min 0.0
max 1.e+038
scale 1.0
offset 0.0
тип floating point
|
После загрузки ОС сервер активаций не видит USB ключа, надо сделать серверу стоп/стар и refresh на вкладке лицензий - тогда все нормально становиться...
Подозреваю что кто-то где-то не успевает загрузиться или не том порядке грузиться...
В чем может быть проблема ?
|
Вообще в такой ситуации надо не первый скан фильтровать, а сам факт перезапуска. С другой стороны, правильнее будет не фильтровать событие, а записать его с флагом первого скана.
Первый проход скрипта определить очень легко, просто заведя глобальную переменную, используя любой мемори-тэг, ну или можно еще чего придумать поизвращеннее...
Например,
[code:1:ca4f2f9861]
dim Flag as Boolean
Private Sub ЧегонитьДелаем
If Not Flag Then
'вот тут и есть факт первого скана
Flag=True
'тут можно сделать чего надо и завершиться, например
'Exit Sub
End If
'тут основная математика
End Sub[/code:1:ca4f2f9861]
|
[quote:418323686c="cindirik"]Сорри за назойливость. Имеете ввиду так? Но опять таки ничего не получаеться. :([/quote:418323686c]
Так, но числа не те, картинка большая, а увидеть нужное :(
[quote:418323686c="Help"][b:418323686c]Input Min[/b:418323686c] - Enter a minimum value for the input (low end of range). This value can be a word address, a long (double-word) address, an integer constant, floating point data element, or a floating point constant.
[b:418323686c]Input Max[/b:418323686c] - Enter a maximum value for the input (high end of range). This value can be a word address, a long (double-word) address, an integer constant, floating point data element, or a floating point constant.
[b:418323686c]Scaled Min[/b:418323686c] - Enter a minimum scaling value representing the low end of the range to which you want to scale the input. The scaling relationship is linear. The value can be a word address, a long (double-word) address, an integer constant, floating point data element, or a floating point constant.
[b:418323686c]Scaled Max[/b:418323686c] - Enter a maximum scaling value representing the high end of the range to which you want to scale the input. The scaling relationship is linear. The value can be a word address, a long (double-word) address, an integer constant, floating point data element, or a floating point constant. [/quote:418323686c]
[URL=http://piccy.info/][img:418323686c]http://i.piccy.info/i5/05/42/354205/scp.jpg[/img:418323686c][/URL]
|
[URL=http://piccy.info/view3/354053/6439b62888d69cdd8e48aa84b5546a43/1200/][img:d0f1db66b8]http://i.piccy.info/i5/53/40/354053/test1_800.jpg[/img:d0f1db66b8][/URL]
Сорри за назойливость. Имеете ввиду так? Но опять таки ничего не получаеться. :(
|
[quote:4b6af9a325="cindirik"]А как масштабировать?
Есть соответствующая литература?[/quote:4b6af9a325]
В [b:4b6af9a325]RSLogix 500 [/b:4b6af9a325]хороший [b:4b6af9a325]Help [/b:4b6af9a325]по командам.
|
[quote:01df5cede9="cindirik"]А если подключить датчик давления, то в этом случае как будем калкулировать расчеты?[/quote:01df5cede9]
Какая разница, какой это датчик - давления или температуры? Правила пропорции никто, вроде бы не отменял. Пересчитайте из своих инжненерных единиц по пропорции в единицы кода.
[quote:01df5cede9]если давления в системе 1.5 атм, то пусть и отображаеться в модуле аналогового входа значения 1.5 атм, а не в единицах кода. Если возможно, то как?[/quote:01df5cede9]
Пересчитайте по пропорции из единиц кода в свои инженерные единицы, положите результат пересчёта в какую-нибудь floating-point ячейку F8:0 и смотрите на неё.
Модуль 1762-IF4 имеет два формата представления данных:
1. Режим "raw/proportional":
4 mA = 6241 ед. кода
20 mA = 31206 ед. кода
2. Режим "scaled for PID":
4 mA = 0 ед. кода
20 mA = 16383 ед. кода
|
Предыдущие результаты
Ещё результаты |
|
| |
|