Будет......
Вид для печати
Валенок,
спасибо)
Всем здравия!
Прошу помочь мне разобраться с проблемой.
Имеются два модуля МВА8.
Имеются 7 термометров-сопротивлений ДТС125-50М.В2.60 .
Термометры подключены к этим МВА по трёхпроводным схемам.
Настройки входов, к которым подключены данные термометры одинаковые -- ТСМ50М (Cu`50) W100=1,428
Проблема в том, что на выходе МВА я получаю температуру примерно на 24 градуса меньше, чем реальная температура.
Причём эту неправильную температуру я получаю даже в конфигураторе опрашивая нужные входы МВА8.
Неверные показания получаются по ВСЕМ термометрам на всех входах, и смещение (-24гр.) у всех градусников одинаковое.
Где я ошибаюсь? Что я не так настроил??
Причём, в начале работы я точно помню что в тестовых целях подключал один из этих ДТС125-50М.В2.60 к МВА8 и получал вроде бы правильную температуру (но тогда она была примерно +26+27гр., а сейчас датчики находятся в температуре примерно +10гр.)
Уже всю голову сломал, перебирал все возможные типы датчиков из тех что зашиты в конфигуратор МВА8 -- результат перебора отрицательный. Или совсем далёкие значения начинают сниматься, или ошибка по данному входу выскакивает.
Сопротивление градусников мерял - 50 Ом как положено.
Линии достаточно длинные - 1,2 Ома одна жила. Но я уже пробовал и прямо короткими проводами прицепить датчик к МВА8, с тем же результатом.
А сделайте тип, например, 900ом и прицепите соотв.резистор прям на клеммы мва8 и посмотрите рез-т.
Ну и в РЭ есть что-то про юстировку.
Я уже знаю, что просто так Вы не напишете ничего ))) только опять я пока не могу догадаться к чему Вы клоните...)))
Я подцеплю многооборотный переменник на 1К и посмотрю.
Смущает одно - сразу два МВА8 одинаково разъюстировались?
И как, интересно, оценить адекватность реакции МВА8 на тестовые 900 Ом??
Кстати, на других входах, сконфигурированных на 0..20Ма, показания снимаются корректно!
Просто модуль за 80 км от меня, поэтому доберусь до него не скоро. Вот и теоретизирую.
Cобссно к чему клоню ? Просто узнать что показывает модуль непосредственно на клеммах при известном R. От этого и оттолкнутся.
Локализовать:
1.Проблема МВА и/или условий его эксплуатации
2.Проблема подключения к МВА
3.Проблема линии
4.Проблема подключения к датчикам
5.Проблема датчиков
Часть проблем наверное отвалилась, но мешают 80 км)))
Тоже теоретизирую
900ом - это тип входа а не тестовое значение. Есть еще 2000
Я понял, что имеется ввиду сконфигурить вход на 900-омный датчик. Но что должен теоретически показать модуль при подключении к этому входу ровно 900-омного резистора? Может он опять ошибется на 24 градуса, но я то как его проверю? Или мысль в том, что "а вообще он покажет хоть что нибудь"?
И еще раз повторюсь (вдруг это не воспринялось, но мне это кажется важным) - все другие входы этих же модулей с прицепленными активными датчиками 0..20 Ма работают как надо!
Прошу еще идей на эту тему. А то когда я буду на 80 км дальше от того места, где я сейчас нахожусь, то там мне не у кого будет умных мыслей спрашивать! )))
И да, предлагаю на неправильность подключения не грешить , ибо если не так подключить, то модуль тупо выпадет в ошибку. А ошибки у меня все обрабатываются. И я уже цеплял термометр прямо в шкафу тремя разноцветными проводами 20-сантиметровой длины, так что ошибиться в подключении ну никак не реально.
Подключи магазин сопротивлений и прогони по таблице для начала, убедись что МДВВ показывает правильно или нет.
petera
summa:=summa+IN;
kwt:=summa/3600000;
Это неправильная формула.
Предположим на счетчике показания 12000,00 кВт-ч
при опросе через секунду мощность на входе 1500 Вт
(12000+1500)/3600000=0,00375 кВт-ч
только фактически 1500/360000=0,00041666666 кВт-ч
Чтобы формула стала правильной надо в течение часа каждую секунду складывать показания IN и только потом делить на 3600000 и еще потом прибавлять к показаниям на час ранее.
Так что формула для расчета не канает как ни крути. По ней нельзя узнать расходуемую мощность через 17 минут, 30 секунд и так далее.
Видимо Вы так же говорите о режиме юстировки? Я просто туда никогда ещё не лазил. Нужно же когда то начинать! Почитал мануал, потыкал конфигуратор в режиме оффлайн (но в оффлайне юстировка ничего не хочет делать). Подготовлюсь и буду пробовать непосредственно на модулях.
А что это за таблица, по которой Вы предлагаете проверить модуль МВА?
В моей формуле
Показания на счетчике не summa, а kwt. Для этого значения(12000) kwt, summa была бы равна 12000*3600000=43 200 000 000.
И через одну секунду
summa:=43 200 001 500
А показания на счетчике будут
kwt:=43 200 001 500/3600000=120000,000416666666666666666666667 кВт*ч.
Так, что все верно.
UPD.
Начинаем считать с 0
summa:=0 Вт*с
kwt:=0 кВт*с
через 1 сек
summa:=1500 Вт*с
kwt:=0,00041666666666666666666666666666667 кВт*ч
через 2 сек
summa:=3000 Вт*с
kwt:=0,00083333333333333333333333333333333 кВт*ч
через 3 сек
summa:=4500 Вт*с
kwt:=0,00125 кВт*ч
.........................
через 60 сек(1 мин)
summa:=90 000 Вт*с
kwt:=0,025 кВт*ч
.........................
через 3600 сек(1 час)
summa:=5 400 000 Вт*с
kwt:=1,5 кВт*ч
Ну так если тип входа в омах - в них и покажет.
На магазине задаешь омы 0град-50ом итд, в конфигураторе если правильно задал тип датчика видишь градусы, таблицы градуировочные, поищи в нете.
petera великоваты циферки получаются для суммы, 43 миллиарда только для нынешних показаний счетчика....
Подскажите, как можно реализовать блокировку алгоритма по времени (таймеру) для жадного заказчика?
Вот вот, что то в этом духе:)
У меня такая задача.
Есть устройство, которое с определенной периодичностью - примерно раз в 0,5 сек. шлет данные в COM-порт.
Я хочу считывать эти данные в ПЛК100 через один COM-порт, обрабатывать и пересылать обработанные данные через другой COM-порт.
Есть загвоздка, связанная с тем, что размер посылки заранее неизвестен.
Длина посылки может варьироваться в диапазоне от 4 до 22 байт.
Формат сообщения известен.
Написал программу на основе первого примера отсюда:
http://www.owen.ru/forum/showthread.php?t=13585
Проблема в том, что функции из библиотеки требуют указания фиксированного размера в байтах для чтения/записи.
Если сделать размер буфера чтения больше, чем размер посылки: например, 25 байт,
то в конце получается мусор, который переносится в новые строки.
Причем не получается очистить буфер, присвоив переменной пустую строку.
Если сделать буфер меньше и потом склеивать строки (как в примере PR2.pro), то я не могу получить нормальную строку,
т. к. запись в буфер может начаться с середины посылки и я получу вместо данных мусор.
В обоих вариантах можно, конечно, отбрасывать неправильные строки, но тогда часть посылок будет теряться, что нежелательно.
Посоветуйте, пожалуйста, как решить эту задачу.
Либо дайте, пожалуйста, какой-то пример, в котором контроллер просто слушает порт,
а затем обрабатывает полученные посылки.
И еще у меня данные не приходят с того порта, который RS-232 Debug,
хотя в программе наблюдаю, что вроде бы отправка идет.
Может ли данный порт использоваться для пересылки данных или для этого можно задействовать только обычный порт RS-232?
Незнаю большая разница в них нет, но я панель подключаю только к RS-232, а модем к RS-232 Debug. Пробывал подключать панель к RS-232 Debug, начинались какие то не понятки.
У меня такая задача.
Есть устройство, которое с определенной периодичностью - примерно раз в 0,5 сек. шлет данные в COM-порт.
Я хочу считывать эти данные в ПЛК100 через один COM-порт, обрабатывать и пересылать обработанные данные через другой COM-порт.
Есть загвоздка, связанная с тем, что размер посылки заранее неизвестен.
Длина посылки может варьироваться в диапазоне от 4 до 22 байт.
Формат сообщения известен.
Написал программу на основе первого примера отсюда:
http://www.owen.ru/forum/showthread.php?t=13585
Проблема в том, что функции из библиотеки требуют указания фиксированного размера в байтах для чтения/записи.
Если сделать размер буфера чтения больше, чем размер посылки: например, 25 байт,
то в конце получается мусор, который переносится в новые строки.
Причем не получается очистить буфер, присвоив переменной пустую строку.
Если сделать буфер меньше и потом склеивать строки (как в примере PR2.pro), то я не могу получить нормальную строку,
т. к. запись в буфер может начаться с середины посылки и я получу вместо данных мусор.
В обоих вариантах можно, конечно, отбрасывать неправильные строки, но тогда часть посылок будет теряться, что нежелательно.
Посоветуйте, пожалуйста, как решить эту задачу.
Либо дайте, пожалуйста, какой-то пример, в котором контроллер просто слушает порт,
а затем обрабатывает полученные посылки.
Парни, такой вопрос. Вот картинка
Вложение 14469
Меня интересуют цифры, обведённые овалами.
Если я присвою адресу %QB8.2.32 переменную, то с этого регистра я смогу не только читать, но ещё и писать? Как это сделать?
Возвращаясь к моим баранам хочу доложить следующее:
Проблема решилась, правда причина осталась не ясной.
Вооружившись точным тестером, переменными резисторами и градуировочной таблицей я обнаружил, что оба моих модуля МВА8 врут при выборе типа датчика ТСМ50М (Cu`50) W100=1,428.
За неимением магазина сопротивлений, с помощью которого нужно проводить юстировку, я заморозил воду, сделал водно-ледяную смесь и засовывая в неё термометр ТСМ50М (тихонько помешивая градусником смесь в посудине) по нему калибровал модули согласно инструкции в РЭ.
Тестер, кстати, показывал сопротивление градусника, помещённого в водно-ледяную смесь, ровно 50 Ом.
Снимаемые через МВА8 показания с термометров стали похожими на правду.
Вот только я поздно догадался, что нужно было взять с собой ещё и обычный термометр (поверенный, используемый для выдачи спирта) чтобы точно убедиться в правильности юстировки!
Прошу опытных товарищей выразить своё мнение - юстировка таким способом может быть признана правильной?
Здравствуйте такой вопрос есть модем ПМ01 на который приобрели сим карту мтс (заранее скажу что услуга мобильный офис на ней подключена) вставил ее с конфигурил ат командами набираю команду АТD8925******* на что он мне пишет no carier
вставил другую более старую симку заработало и дозвон пошел и все замечательно. Пробовал других операторов на каких работает на каких нет. Что за особенность такая и какие тогда симки надо брать? Что мне делать может кто подскажет?
Расскажите пожалуста как работать с массивами данных, желательно с примерами, как создавать, как вызывать. И желательно в CFC.
Как создавать дошло. Как теперь это вызывать, не понятно?
если в смысле как найте в массиве нужное, то для этого используйте цикл FOR, для перебора данных и функцию EXit, для выхода из цикла при совпадении искомого.
Подробно это описано в книге уважаемого И.Петрова, по программированию ПЛК.
А выглядит примерно так:
cN:=0;
FOR cN:=0 TO 30 DO (*Месячный архив 31 день*)
IF in_arx_God=ARX[cN].God AND
in_arx_Mes=ARX[cN].Mesiac AND
in_arx_Den=ARX[cN].Den THEN (*Если год месяц и день в архиве совпали,то в выходные переменные массива запишем*)
Out_arx_D1:=ARX[cN].Dnevnaia1;
Out_arx_D2:=ARX[cN].Dnevnaia2;
Out_arx_D3:=ARX[cN].Dnevnaia3;
Out_arx_D4:=ARX[cN].Dnevnaia4;
Out_arx_D5:=ARX[cN].Dnevnaia5;
Out_arx_N1:=ARX[cN].Nochnaia1;
Out_arx_N2:=ARX[cN].Nochnaia2;
Out_arx_N3:=ARX[cN].Nochnaia3;
Out_arx_N4:=ARX[cN].Nochnaia4;
Out_arx_N5:=ARX[cN].Nochnaia5;
cn:=cN+1;
EXIT; (*выход из поиска*)
ELSE (*если не нашел, то выставляем флаг неудачного поиска*)
M_NEnachel:=TRUE;
END_IF
END_FOR
Спасибо. вроде все понятно.
Добрый день! Помогите разобраться с подключением ПЛК73 к модулю МК1104ДН4Р. Интерфейсная плата ПУ-5. Использую стандартный пример записи "Modbus запись Int и Real (ST)"
Вложение 14723
Value пробовал 1 и 255