Скорее всего у Вас W100=1,426, вот так в макросе реализовано, можно откорректировать под Ваш диапазон, с небольшим запасом.
Вид для печати
что то я все таки не догоняю. сейчас переменная выводится на дисплей, но не сохраняется по нажатию ОК.
вообще то задача такова: нужна некая переменная , имеющая некое значение по умолчанию, величину
которой можно редактировать и затем эту измененную величину передать с помощью WB в счетчик или тригер,
для отсчета циклов. То , что все элементы надо подключать уже понял. Если можно приложите пример решения такой задачи.
А почему в группе "сопротивление больше диапазона" происходит умножение на 2? Это и есть запас?
тогда просто не понятно, что изменилось, по сравнению с исходником?
И еще один вопрос, если в процессе работы эта переменная, которая будет записана в счетчик и надо будет следить за состоянием этого счетчика, необходимо создать еще окно, в которое считывать с помощью RB переменную?
Там нет умножения на 2, там организован вывод в переменную ошибки числа 1-если КЗ, т.е сопротивление меньше нижней границы, и 2-если обрыв, т.е сопротивление > верхней границы? вот те 2 числа Вы и можете отредактировать под свой диапазон используя НСХ для датчика, примем пока что W100 у него 1.426.
Спасибо, разобрался. Буду пересчитывать.
Кстати, в ТЗ указана температура хранения прибора ОВЕН -56°С, это реально? ПР200 такую температуру в нерабочем состоянии перенесёт?
В моём техзадании.
Да я понимаю, что это всё их непонятные запросы) У нас на заводе ТРМ1 и ему подобные приборы не только хранились, но и несколько лет успешно работали и при минус 35 градусах) Пока печка не нагреет воздух в операторской до плюсовой температуры.
А формула-то для расчёта температуры по сопротивлению останется та же? Какой коэффициент изменится?
И с этим разобрался)
Вопрос ещё возник: как работать с отрицательными числами в ОЛ? При расчёте температуры.
В ОЛ через FLOAT, передавать туда-сюда можно во FLOAT и INT, как угодно, для интов макросы есть: http://www.owen.ru/forum/showthread.php?t=13106&page=3
Вложение 27371
У меня после деления и появления знака минус, всё нарушается. Перестаёт температуру на выходе показывать.
Вы хоть на картинке покажите, а то с Вами не желая, ясновидящим станешь, а лучше в проекте, типа здесь бяка:
Вложение 27372
Вот изображение Вложение 27373
Если подать на вход 50 Ом, то всё нормально - 0 градусов на выходе. Меньше 50 Ом, сразу не выходит ничего хорошего.
так вы от значения меньше 1 отнимаете 1-цу, и чего вы хотите ? вас напугала запись -2Е-02 ?
на экран выведите переменную, она будет нормальной, так симулятор работает. Ну и если надо округлите до 1 и 2-х знаков после запятой то и в симуляторе будет нормально работать.
В ОЛ отрицательные значения только во FLOAT, если хотите в инте передать по сети, я макросы Вам предлагал, нет Вы идёте своим непонятным путём, так у Вас полная лабуда получится!
Короче FLOAT значение, если хотите иметь один знак после запятой умножаете на 10, два на 100 и преобразуете в инт с помощью моего макроса, передаёте куда хотите в инте, после передачи делите, на сколько умножали до передачи, всё! Не помешает округлить, не очень давно округление разбирали по косточкам! Если на экран ПР надо, только во FLOAT!
Если вкратце в ОЛ INT не INT, а UINT, точнее UDINT, поэтому нельзя в него отрицательные значения преобразовывать, они не бывают отрицательными!
Если лениво идти по ссылке, вот Вам проект с макросами:
Просто хотелось бы разобраться, а не копировать) В макросах не всё понятно. А на экран не надо выводить, только по сети передать.
Для чего 15-й бит читается в макросе?
Этим в инте обозначается знак "минус", единицей в 15 бите! В теме, где я макросы выложил, есть ссылка на википедию!
https://ru.wikipedia.org/wiki/%D0%A6...BA.D0.BE.D0.BC
Ничего не получается с этими макросами. Оставлю как есть. По сети такие же числа передадутся: -4,7Е+00 или нормальная температура?
Float у меня. И, хотелось бы узнать, почему некоторые линии связи в ОЛ красного цвета? Похоже, что они к целочисленным и булевским блокам подходят.
Возможно нужно байты "потусовать" в массиве из двух вордов!
Вложение 27382
И повторюсь на всякий случай, мои макросы только чтобы в инте передавать по сети, если передаёте во флоате, они не нужны, как-то так!
float передается нормально, хоть + хоть минус.
в виде 4Е+ и так далее отображается только в симуляторе, в приборе так же все нормально при выводе на экран и передачи по сети.
Спасибо всем за помощь!) Я хоть и почти год как на сайте, но работать по этому направлению почти не приходилось) Поэтому так много непонятного и глупых вопросов) Больше всего сложностей с созданием разветвлённых и сложных программ в ОЛ, сами логические функции вопросов не вызывают.
Если в симуляции вас не устраивает 4Е+ поставьте округлялку тогда и видеть все будете :)
AI! а где на выходе минус при значении больше 65536 ?
в общем я не понял как оно работает :) флоат там только в названии....
встречный вопрос - как в 16 бит затолкать числа больше 65536?
PS на входе -32768..32767, только в "неправильном виде"
(65535=-1, 32768=-32768, даж не знаю как объяснить.... просто поверьте, а поймёте потом...)
PPS на выходе float - это тип данных такой...... в OL - сиреневенький...