Страница 1 из 3
Пользовательский блок "измерение переменного тока"
Добавлено: 19 янв 2017, 00:52
lopezmil
Здравствуйте. Появилась необходимость в измерении среднеквадратичного значения переменного тока. Нашел в интернете скетч для датчика ТА12 и на его основе начал делать пользовательский блок, но что-то пошло не так. Я не программист. Язык FBD мне приблизительно знаком, но с текстовыми языками программирования не дружу совсем. Прошу посмотреть его знающим людям и поправить, что я сделал не так.
Пользовательский блок "измерение переменного тока"
Добавлено: 19 янв 2017, 11:37
slavas
lopezmil, ну давай уже не томи уже, выкладывай чаво нарыл чаво сам натворил. Давай файлы, посмотрим и поправим.
Пользовательский блок "измерение переменного тока"
Добавлено: 19 янв 2017, 12:07
lopezmil
Так я вроде прикрепил в первом сообщении.
Пользовательский блок "измерение переменного тока"
Добавлено: 19 янв 2017, 13:30
slavas
вот теперь прикрепил, исходники кинь ещё.
Добавлено (19.01.2017, 13:30)
---------------------------------------------
проект пустой!
Пользовательский блок "измерение переменного тока"
Добавлено: 19 янв 2017, 18:03
lopezmil
Вот исходный скетч
Пользовательский блок "измерение переменного тока"
Добавлено: 19 янв 2017, 22:22
slavas
lopezmil, если этот код рабочий я могу попрбовать накидать пользовательский блок.
Пользовательский блок "измерение переменного тока"
Добавлено: 19 янв 2017, 22:22
lopezmil
Понял почему был пустой проект. Вот то, что у меня получилось, точнее не получилось ...
Пользовательский блок "измерение переменного тока"
Добавлено: 19 янв 2017, 22:32
slavas
Завтра на работе посмотрю.
Пользовательский блок "измерение переменного тока"
Добавлено: 19 янв 2017, 22:36
lopezmil
Код очень даже рабочий. У меня на шильдике вентилятора рабочий ток 0,63 А, а трансформатор тока с этим скетчем показывает от 0,58 до 0,64 А. Было бы очень хорошо, если бы вы сделали пользовательский блок. Я бы увидел что я сделал те так в своём и где ошибся.
Добавлено (19.01.2017, 22:36)
---------------------------------------------
Ну а я, в таком случае, в понедельник проведу боевые испытания вашего творения ))
Пользовательский блок "измерение переменного тока"
Добавлено: 20 янв 2017, 15:13
slavas
нарисовал заготовку, в настройках можно выбрать номер входа, на данные выводит на компорт.
TA12
Пользовательский блок "измерение переменного тока"
Добавлено: 24 янв 2017, 22:00
lopezmil
Попробовал вашу заготовку. Вполне себе нормально работает. За что огромное спасибо. Но, понятно, что нужно не просто выводить цифры на экран. Целью является определение работы или не работы оборудования с соответствующей сигнализацией. Для этого не хватает выхода, который я сделал во вкладке "Выходы", тип float. Во вкладке Function section добавил функцию с названием void Output (float nCurrentThruWire). Сама функция имеет вид curr = nCurrentThruWire; Что должно было присваивать выходу блока curr значение nCurrentThruWire ( как я полагал). И после компиляции я просто добавил в самом скетче строки для вывода на экран данных с выхода этого блока (так как не знаю как это сделать в flprog) Serial.print("tok="); Serial.println(curr); И значение curr ни разу не отличалось от 0.
Пользовательский блок "измерение переменного тока"
Добавлено: 26 янв 2017, 15:49
slavas
может так
у меня с экранами беда хотя патч применил.
Пользовательский блок "измерение переменного тока"
Добавлено: 27 янв 2017, 00:05
lopezmil
Что значит с экранами беда? А по поводу блока, то да, именно такой и я задумывал. Но, похоже ардуина надо мной издевается. Я подключил выход wire на второй вход компаратора, на первый вход компаратора записал константу равную 600. Условие I1<I2. Выход компаратора подключил к 13 пину ардуины. Скомпилировал, загрузил проект и подключил реле к физическому 13 пину ардуины. Запустил вентилятор и значение тока на выходе wire показало 638. По идее реле должно замыкаться, когда значение wire будет больше 600. Но на деле оно замыкается как только подаешь питание на ардуину. И никак не реагирует на изменение значения wire. Вопрос: откуда на 13 пине ардуины берется еденица??? У меня уже паника начинается, я себя идиотом начинаю ощущать. Программку тоже приложил.
Пользовательский блок "измерение переменного тока"
Добавлено: 27 янв 2017, 00:07
lopezmil
Вот программка, забыл приложить.
Пользовательский блок "измерение переменного тока"
Добавлено: 27 янв 2017, 01:01
OlegAn1962
А если не 13-й?
Пользовательский блок "измерение переменного тока"
Добавлено: 27 янв 2017, 01:31
garikb
Ну это смотря какой у Вас модуль реле.
Вот два реле и они по разному управляются:
1
На этом реле включается когда подать логическую единицу
2
А на этом включается когда подать логический ноль.
И на 13 пине светодиод висит, возможно он свою лепту вносит.
Пользовательский блок "измерение переменного тока"
Добавлено: 27 янв 2017, 08:36
Dev1
Контролировать весь процесс достаточно легко. В вашем случае нужно вывести данные флоат и болейн в компорт(UART). А там уже анализируйте что там происходит. Компорт можно смотреть как в программе, так и в IDE. И да, состояние на 13 пине можно по светодиоду на ардуино смотреть.
Пользовательский блок "измерение переменного тока"
Добавлено: 27 янв 2017, 09:32
OlegAn1962
Еще могли этот вывод спалить во время опытов, у меня на одной из плат нескольео выводов постоянно 1.
Пользовательский блок "измерение переменного тока"
Добавлено: 30 янв 2017, 09:41
lopezmil
Попробовал, не помогло. На 7 пине так же, постоянно замкнуто реле.
Пользовательский блок "измерение переменного тока"
Добавлено: 30 янв 2017, 11:18
garikb
lopezmil писал(а):Попробовал, не помогло. На 7 пине так же, постоянно замкнуто реле.
Вы так и не написали, какое у Вас реле?