Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром

Связь с внешним миром Modbus, RS232, RS485, Lon и другое.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.03.2012, 09:11   #1
dima
Senior Member
 
Регистрация: Jun 2008
Адрес: солнечный Алтай
Сообщения: 161
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Элемер EL-4019: как правильно прочитать данные

Необходимо с входа модуля аналогового ввода 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?
dima вне форума   Ответить с цитированием
Старый 06.03.2012, 13:56   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Элемер EL-4019: как правильно прочитать данные

Цитата
Сообщение от dima
при 4 мА ValueNorm=21820;
при 12 мА ValueNorm=21868;
при 20 мА ValueNorm=-15;
Это было при настройке переменной в карте памяти на формат данных "Integer".

[...]

Но как получить значение ValueNorm=65528 при 20 мА, как это получается в элемеровской программе? И еще: в руководстве на модуль написано, что формат данных регистра- целое двухбайтовое число без знака. Это какой формат? Как обработать эти данные, чтоб можно было ими пользоваться в SMLogic?
Для начала изучите эту статью:

Т.к. в лоджике нет беззнакового целого, то вам придётся при получении числа "преобразовать" его в более "старший" формат, над которым затем и производить необходимые математические операции.

Как преобразовать - изображено на картинке:
Миниатюры
Нажмите на картинку для увеличения

Название:  Безымянный.PNG
Просмотров: 274
Размер:  15.8 Кбайт  


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 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 вместо одного будут считаны два регистра.
У Сегнетикса целочисленные переменные только со знаком. А Вам нужны беззнаковые. Ничего страшного - их можно самому программно преобразовать.
Например вот так:
Миниатюры
Нажмите на картинку для увеличения

Название:  1.JPG
Просмотров: 253
Размер:  9.6 Кбайт  


__________________
Автомат АК - самый распространенный преобразователь стека в очередь
Sergey Cherevko вне форума   Ответить с цитированием
Старый 06.03.2012, 16:40   #4
dima
Senior Member
 
Регистрация: Jun 2008
Адрес: солнечный Алтай
Сообщения: 161
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Smile Ответ: Элемер EL-4019: как правильно прочитать данные

Спасибо, заработало!
dima вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно подключить контроллер к тестовому серверу SMConnect the answer SMConnect & SMConfig 35 20.06.2023 11:19
SMLogix Как узнать что получены данные по Modbus? Artsen SMLogix 21 25.01.2019 17:29
Как правильно пользоваться ArrayII() (решено) dp38 SMLogix 29 03.04.2018 10:46
Как правильно подключить реле HD-1025.DD3 dsboss Форум Segnetics 2 03.10.2016 18:08
Как правильно настроить Moxa Uport 1150 Arsie ЧаВо - Часто задаваемые Вопросы 1 27.04.2016 13:47


Часовой пояс GMT +4, время: 13:50.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023