Показать сообщение отдельно
Старый 06.03.2012, 13:57   #3
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Элемер EL-4019: как правильно прочитать данные

Цитата:
Сообщение от dima
Необходимо с входа модуля аналогового ввода EL-4019 считывать значение
тока (4-20 мА). В элемеровской программе для настройки модуля есть возможность посмотреть значение на входе в виде единиц измеряемой величины (мА) и целочисленного представления "ValueNorm", которое принимает следующие значения:
при 4 мА ValueNorm=21817;
при 12 мА ValueNorm=43672;
при 20 мА ValueNorm=65528;

Подсоединяю модуль к 2Gi, и считываю из регистра ValueNorm следующие значения:
при 4 мА ValueNorm=21820;
при 12 мА ValueNorm=21868;
при 20 мА ValueNorm=-15;
Это было при настройке переменной в карте памяти на формат данных "Integer". Меняю формат на "long" и получаю:
при 4 мА ValueNorm=715915250;
при 12 мА ValueNorm=715893359;
при 20 мА ValueNorm=715805994;
Далее, в руководстве EL-4019 написано, что значение регистра ValueNorm связано со значением Value следующим образом: ValueNorm=(Value-min)/(max-min), где мах и min это 20 и 4 соответственно. Но как получить значение ValueNorm=65528 при 20 мА, как это получается в элемеровской программе? И еще: в руководстве на модуль написано, что формат данных регистра- целое двухбайтовое число без знака. Это какой формат? Как обработать эти данные, чтоб можно было ими пользоваться в SMLogic?
Считывать в формате long не надо. При чтении long вместо одного будут считаны два регистра.
У Сегнетикса целочисленные переменные только со знаком. А Вам нужны беззнаковые. Ничего страшного - их можно самому программно преобразовать.
Например вот так:
Изображения
Тип файла: jpg 1.JPG (9.6 Кбайт, 253 просмотров)


__________________
Автомат АК - самый распространенный преобразователь стека в очередь
Sergey Cherevko вне форума   Ответить с цитированием