Аналоговые входы

Автор Evdoc, 14 июля 2022, 23:11:31

« назад - далее »

Evdoc

Заметил, что при после последних обновлениях стало сильно скакать измеряемое значение резистивных датчиков.
Будет ли реализован фильтр в свойствах универсального входа при выборе аналоговых измерений.
Если нет, то как с этим бороться? Уж больно большие фильтры приходится ставить

Artem

Можете поподробнее описать какие именно выходы скачут, какой примерно разброс показаний и на каком датчике это наблюдается?

Evdoc

Цитата: Artem от 18 июля 2022, 08:23:36
Можете поподробнее описать какие именно выходы скачут, какой примерно разброс показаний и на каком датчике это наблюдается?
Для подключения датчиков температуры использую универсальные входы с 7 по 18. Датчики использую разные от Pt1000 до NTC10K. Настраиваю универсальный вход под измерение сопротивления, потом составляю таблицу зависимости сопротивления к значению температуры.
При выводе на экран значения температуры, десятки температуры выводятся нормально, единицы и десятые доли уже практически не читаются. Из-за непрерывного изменения показаний.
Само измеряемое значение сопротивления тоже постоянно скачит.

VladislavMorozov

#3
Для подключения датчиков PT1000 годятся только входы Ui 13 - 18.
С похожей ситуацией сталкивался при подключении датчиков PT1000 к входам Ui17 и Ui18. Значение скакало рывками по 1,5-1,6 градуса. Опытным путем (весь день копался, так как большой проект) выяснил,  что была опечатка в ST модуле который переключал режим работы универсального входа (подавал mode на входе блока).
Опечатка по типу "IF var = 1 OR 2", то есть не дописал второе условие: "IF var = 1 OR  var = 2".
Далее магия, так как компилятор ошибок не выдавал и сам модуль работал корректно, но когда значение mode из него подавалось на блок универсального входа, измеряемое сопротивление начинало измеряться рывками по 6 Ом.
Действительно много багов нашел в ST. Теперь несмотря на то что он часто удобнее FBD, в новых проектах стараюсь его не использовать...

mike

Цитата: VladislavMorozov от 20 июля 2022, 11:49:04
Для подключения датчиков PT1000 годятся только входы Ui 13 - 18.
С похожей ситуацией сталкивался при подключении датчиков PT1000 к входам Ui17 и Ui18. Значение скакало рывками по 1,5-1,6 градуса. Опытным путем (весь день копался, так как большой проект) выяснил,  что была опечатка в ST модуле который переключал режим работы универсального входа (подавал mode на входе блока).
Опечатка по типу "IF var = 1 OR 2", то есть не дописал второе условие: "IF var = 1 OR  var = 2".
Далее магия, так как компилятор ошибок не выдавал и сам модуль работал корректно, но когда значение mode из него подавалось на блок универсального входа, измеряемое сопротивление начинало измеряться рывками по 6 Ом.
Действительно много багов нашел в ST. Теперь несмотря на то что он часто удобнее FBD, в новых проектах стараюсь его не использовать...
ST пока делаем, он не объявлен официально в поддержке, к сожалению

Tyumentsev

Сильно скачут аналоговые входы на измерение тока 4-20мА. Ядро 3,32. Причем такая странность. Входы задействованы Ui1 Ui2 остальные входы все дискретные, заняты все. Скачет вход Ui1. На объекте три контроллера. Эти входы измеряют температуру. Так вот на всех трех контроллерах входы Ui2 не скачут совсем, а вот Ui1 скачет у всех, но не всегда. Работали нормально и вдруг температура стала на 6 градусов врать. Хотя длина кабеля до датчиков Ui2 длиннее на много, а на Ui1 кабели короткие около 7 метров. Наводки исключены (да и в принципе на токовой петле их можно исключить). Преобразователи температуры показывают температуру правильную, а вот М245 начал скакать. Заказчик спрашивает, что можно сделать?
Там уже экранировали, переэкранировали все что можно и нельзя.

Nikolai

Цитата: Tyumentsev от 07 ноября 2022, 12:03:31
Сильно скачут аналоговые входы на измерение тока 4-20мА. Ядро 3,32. Причем такая странность. Входы задействованы Ui1 Ui2 остальные входы все дискретные, заняты все. Скачет вход Ui1. На объекте три контроллера. Эти входы измеряют температуру. Так вот на всех трех контроллерах входы Ui2 не скачут совсем, а вот Ui1 скачет у всех, но не всегда. Работали нормально и вдруг температура стала на 6 градусов врать. Хотя длина кабеля до датчиков Ui2 длиннее на много, а на Ui1 кабели короткие около 7 метров. Наводки исключены (да и в принципе на токовой петле их можно исключить). Преобразователи температуры показывают температуру правильную, а вот М245 начал скакать. Заказчик спрашивает, что можно сделать?
Там уже экранировали, переэкранировали все что можно и нельзя.
Ядро обновите до последнего и проконтролируйте заново. И укажите точную модификацию контроллера М245-??

Tyumentsev

Контроллер просто М245 без цифр после. Чтобы обновить ядро, заказчику придется ехать из Волгограда в Питер. Поэтому если есть еще версии, то огласите весь список пожалуйста. Иначе будут очень недовольны если после этой поездки придется ехать еще раз и еще раз.

Nikolai

Цитата: Tyumentsev от 07 ноября 2022, 22:14:46
Контроллер просто М245 без цифр после. Чтобы обновить ядро, заказчику придется ехать из Волгограда в Питер. Поэтому если есть еще версии, то огласите весь список пожалуйста. Иначе будут очень недовольны если после этой поездки придется ехать еще раз и еще раз.
Как можно огласить весь список. Я вот даже не представляю, что может быть. Я бы начал поиск неисправности с того;
1 пересмотрел всю линию на предмет повреждения проводов;
2. Озаботился протяжкой всех клеммников на пути следования.
3. Взял бы кусок провода нужной длинны и пробросил от датчика до контроллера времянку напрямую и посмотрел, что даст.
4. В конце концов, если это датчик температуры с выходом 4-20мА взял бы из руководства на датчик таблицу ток/температура вклинился тестером между поводом и входом прибора и посмотрел, какой ток реально течет в цепи и чему это соответствует.
5. Промерил напряжение питания  со стороны БП и со стороны датчика. И когда показывает правильно и когда врет.
6. Ну и последний шаг, запустить проект в отладке в устройстве и сравнить, что намеряет вход и показывает прибор. Но для этого нужен проект и ZWorkBench. Поэтому шаг затруднителен.
Ну а понятие "скачут но не всегда" не очень информативен.

Tyumentsev

#9
Цитата: Nikolai от 08 ноября 2022, 21:03:36
Как можно огласить весь список. Я вот даже не представляю, что может быть. Я бы начал поиск неисправности с того;
1 пересмотрел всю линию на предмет повреждения проводов;
2. Озаботился протяжкой всех клеммников на пути следования.
3. Взял бы кусок провода нужной длинны и пробросил от датчика до контроллера времянку напрямую и посмотрел, что даст.
4. В конце концов, если это датчик температуры с выходом 4-20мА взял бы из руководства на датчик таблицу ток/температура вклинился тестером между поводом и входом прибора и посмотрел, какой ток реально течет в цепи и чему это соответствует.
5. Промерил напряжение питания  со стороны БП и со стороны датчика. И когда показывает правильно и когда врет.
6. Ну и последний шаг, запустить проект в отладке в устройстве и сравнить, что намеряет вход и показывает прибор. Но для этого нужен проект и ZWorkBench. Поэтому шаг затруднителен.
Ну а понятие "скачут но не всегда" не очень информативен.
Я это все опустил конечно же, но поясню:
1. Линию не то что проверяли ее меняли вообще (там всего 7 метров не проблема)
2. Протягивали все что можно много раз, тем более там линия не большая.
3. Датчик сажали прямо в щите напрямую на проводах 30см (хотя 7 метров не так уж и много тоже)
4. Мерили тестером, к датчику есть возможность подключиться с помощью его ПО. Он показывает правильную температуру и ток который он выдает. Ток который он выдает и ток который измеряет М245 отличается на 4мА. Мы ввели коррекцию по току в программе.
5. Блок питания всегда показывает одинаково. Тем более что есть второй датчик где длина провода метров 40 - 50 он не врет и не скачет при этом.
6. В программе сделан выход на экран где видно что принимает М245. Как он измеряет ток, поэтому мы и увидели, что есть большая разница в 4мА. Т.е. датчик выдает ток 8мА, тестер показывает, что это действительно 8мА, а вход ПЛК измеряет его как 12мА. Но это не страшно если бы это было всегда так, добавили коррекцию и все. Но затем измеряемый ток меняется на ПЛК, а датчик как выдавал одно значение так и выдает. Странность в том, что из двух портов Ui1 и 2 - это происходит только с одним входом. Менять порты не пробовали т.к. это прояснилось позже (ну и смысл не ясен тогда). И причем там три системы и у всех трех такая беда, а не на одном ПЛК.
   Заказчик собирается ехать туда, будем обновлять ядра ПЛК. Просто поездка дороговатая получается - ради этого ехать. Поэтому он и спрашивает. Это не моя прихоть или претензия. Я описал ситуацию, чтобы вошли в положение и понимание заказчика. Поэтому если есть еще что то, то он спрашивает, может еще что нужно сделать пока я там буду?

Tyumentsev

Обновление ядра до последней версии ничего не дало. Там уже скандал назревает. Много людей уже включилось в процесс и идут на принцип. Что еще можно сделать. Температуры плывут. Отличаются на 5 или 6 градусов. Три шкафа стоят рядом поэтому в глаза бросается эта проблема. Объект газпромовский у них все до этого было на сименсах, это первые шкафы на российских контроллерах, они требуют одинаковых показаний, пусть отличаются на 0,5 или 1 градус, но не на 5 или 6. Можно ли это исправить? Или они заставят ставить что то другое.

Nikolai

Возможно я разобрался в чем причина. Ошибка в измерении составляет 0,04 мА. Если стоят датчики типа КТК с выходом 4-20 мА, то ошибка в 0,04 мА как раз и может составить 5-6 градусов. В вашем случае тут только два выхода. 1. Настроить диапазон измерения температуры в датчике (то есть измерять не во всем диапазоне температур (-100 / +600 или какой там диапазон)) или установить для измерения температуры некий внешний блок с соответствующей точностью измерения.

Tyumentsev

#12
Ошибка в измерении кстати не 0.04мА, а прям 4 мА. Т.е вместо 8мА, что показывает и сам датчик и тестер. М245 его измерят как 12мА, а это примерно при диапазоне 150 (-50 +100) это очень много (грубо около 40 градусов).
Я уже об этом думал. Дома с другим ПЛК я не могу воспроизвести эту ошибку. Перекалибровывать датчики наверное не получится. Там стоят элементы РТ1000, а в башке у него стоит нормирующий преобразователь с выходом 4-20. Когда подключаемся к преобразователю через mini usb, то он как мерил точно и одинаково так и мерит. Ток он как выдавал, допустим 8 мА так и выдает 8 мА, а в ПЛК данные плывут. Была версия, что это по разному настроенные входы группы 1. У меня первые 2 сконфигурированы как Токовые, а остальные 4 шт как дискретные. И у одного человека было такое, что при приходе плюса 24 на дискретный(е) вход(ы), ток увеличивался на аналоговых. Поэтому он сделал их аналоговыми все 6 штук, а программно обрабатывал сигнал и делал из него дискретный и в таком случае у него все стало стабильно. Я дома пробую хоть так хоть сяк, у меня это не влияет ни на что, ток в принципе скачет не сильно на 0,05мА, в пересчете на температуры это +\- 0.5 - 0.3 градуса (фигня в общем) это не страшно. Дома у меня все работает хорошо. Не могу воспроизвести. И на объекте тоже сначала все хорошо, а потом что то бац и на тебе, поплыли.
    Поэтому я склоняюсь уже ко второму варианту, ставить какой нибудь ПИД регулятор (терморегулятор) с входом 4-20мА и передавать данные по modbus в ПЛК М245. Пока только так придумал. Придется еще там городить огород, но иначе они там сожрут моего заказчика.
   Возможно это связано с самими чипами внутри, может это их не устойчивая работа и хоть какие там версии ядра ставь, возможно программно это не решить. Поэтому и склоняюсь к второму варианту и уже заказал три ПИД регулятора с токовым входом и выходом по модбас.

mike

Похоже на сгоревший шунт
Контроллер с какой версией прошивки?

Tyumentsev

их три штуки. Версии ядра последние.