[?]: как найти место изменения показаний датчика

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

[?]: как найти место изменения показаний датчика

Post by marluna » Wed Mar 01, 2017 4:27 am

работаю в кип и а,
поменяли датчик давления в танке 4-20ма,
набрали в танк продукта 800л на экране видим 500,
можно конечно в датчике подкрутить, но это не совсем правильно и в других танках та же беда,
вместо 2 тонн 400 литров,
вместо 1 тонны 7 тонн,
сам занимаюсь программированием интерес к программе есть и понимания немного имею, в общем залез в проект посмотрел от куда приходит информация, lt18_5 db3 dbd380, пошел по этому пути, открыл блок LT18_5 : INT ; //2AI2-6: Текущее значение уровня LT18

Code: Select all

 LT18_5 := 0; 
 LT18_5 : "Struct. pasp.";	//2AI2-6: Текущее значение уровня LT18
 LT18_5.MUL := 1.000000e+000; 
   LT18_5.SUM := 0.000000e+000; 
   LT18_5.Scale_max := 1.000000e+002; 
   LT18_5.Scale_min := 0.000000e+000; 
   LT18_5.Signal_real := 0.000000e+000; 
   LT18_5.Filter_time := T#0MS; 
   LT18_5.Error_mod := FALSE; 
   LT18_5.In_square := FALSE; 
   LT18_5.CUT := FALSE; 
   LT18_5.Error_kan := FALSE; 
   LT18_5.Error := FALSE; 
   LT18_5.Temperature := FALSE; 
MUL это коэффициент плотности, сум я не знаю что такое равен он -2000 примерно на всех танках, масштабирование 4-20ма=0-6тонн, и на этом мое понимание закончилось. почему в танке 300 литров, а на экране 0 и показывать начинает с 301 на экране 1 литр покажет, масштабирование правильное, датчик проверял показывает правильно, где как искать причину не пойму, хотел попробовать сум поменять выдало "insufficient memory space or work memory on the module, or specified storage medium not accessible" до этого симатик в глаза не видел, помогите пожалуйста. проект могу скинуть. и попытался найти датчик, смотрел видео там вводят piw и адресс датчика, но как выяснить у какого какой адресс тоже не разобрался.

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

Re: [?]: как найти место изменения показаний датчика

Post by CoMod » Wed Mar 01, 2017 6:11 am

для начала в Таблице Символьных Имён определи нужный тебе вход
Image
аналоговый вход имеет адрес PIW*** и тип INT
иногда бывает и IW*** и тип INT
уточни адрес через HW Config

настрой фильтр показа ВСЕХ данных в таблице перекрёстных ссылок - поставь Галки как на картинке
Image

можно посмотреть в HW Config где этот вход находится
и найти где он используется в таблице перекрёстных ссылок
Image
конкретно тут в функции пользователя FC94 он масштабируется через сименовскую функцию FC105 SCALE

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Wed Mar 01, 2017 7:01 am

я открывал эту таблицу, размер не знаю в чем измеряется 17000, имеет 500 строк, там написана информация по блокам, например fc160-фасовка с танка16 и т.д., больше я там ничего не нашел, точнее остальное не подписано. фильтр перекрестных ссылок я настраивал вот тока что искать еще не знаю, я как понял датчик, но как его определить.., в ручную все что в символьной таблице не подписано сверять по показаниям на экране? через вкладку не скажу какую там вводиться piw адрес входа и единицы отображения... я открывал конфигурацию там внизу адреса, их вводил смотрел их показания, я как понимаю они и не должны быть такими как на экране? так как до функции. рабочий день уже закончился, завтра если надо могу скинуть нужный скриншот

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

Re: [?]: как найти место изменения показаний датчика

Post by CoMod » Wed Mar 01, 2017 7:24 am

адрес аналогового входа PIW** датчика известен ?
Схема электрическая принципиальная с подключением этого датчика к определённому входу есть ?

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: [?]: как найти место изменения показаний датчика

Post by Rex2701 » Wed Mar 01, 2017 9:58 am

Аналоговые величины обычно пересчитываются из входа на выход линейной функцией y = kx+c, так вот MUL это не плотность, а множитель (k), а SUM соответственно смещение (c).

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Wed Mar 01, 2017 9:22 pm

https://yadi.sk/i/YEb9eGeZ3Es9iu
Image
нашел схему, выглядит она примерно так.
Rex2701 подвела меня интуиция( спасибо.
318el000ab0 рядом с ним 8 модулей аналогового ввода, по схеме датчики давления 2 и 3 модуль,
2ai2 и 2ai3.
зашел в программу и открыл схему подключения, открыл свойства 2 модуля,адреса у него от 16 до 31 там в настройках каналы 0-7 4-24ма, открыл отображение 2 модуля вылез список iw16. iw18...до 31.
я как понял LT18 ch6-это iw28 там показана цифра 5000...
в символьной таблице ничего нет не по каким датчикам.
когда у нас что то происходит серьезное, звоним спецам они из другого города подключаются, довольно быстро все находят и корректируют, я не видел мне это рассказывали, и просили что бы ничего в этот момент не работало, и для обнуления показаний датчика просили что бы был пустой танк.
LT18_5 : "Struct. pasp."; //2AI2-6: Текущее значение уровня LT18
вот была такая строчка выше, 2 analog input 2 - 6CH. сейчас только понял что это значит, это я брал из огромной таблицы со всеми датчиками клапанами и всем возможным...
как правильно искать в таблице перекрёстных ссылок? piw..iw...?

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

Re: [?]: как найти место изменения показаний датчика

Post by CoMod » Thu Mar 02, 2017 5:37 am

зашел в программу и открыл схему подключения, открыл свойства 2 модуля,адреса у него от 16 до 31 там в настройках каналы 0-7 4-24ма, открыл отображение 2 модуля вылез список iw16. iw18...до 31.
Кликнув на Hardware в Симатик Менеджере открой HWConfig - там адреса, фамилии явки, как на моих картинках выше.
Копию экрана сюда http://5cm.ru/
тогда совместив с твоей схемой можно будет точно узнать какой адрес.
IW - это адреса области процесса с обычным доступом
PIW - адреса Периферийных устройств с Периодическим Прямым доступом
у разных программистов свои предпочтения в использовании тех или иных.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Tue Mar 14, 2017 10:08 pm

приболел на недельку(
Image
http://5cm.ru/view/i7/HZFp.jpg вот HWConfig, как я и писал выше, я попробовал сопоставить. 2 модуль с адресами 16-31 это всё датчики давления разных танков, для каждого датчика на сколько я знаю 2 бита, по схеме CH6 это или 26,27 или 28,29 биты(LT18_5 : "Struct. pasp."; //2AI2-6: Текущее значение уровня LT18), могу посмотреть показания этих датчиков, цифры иные...на экране 100, а тут будет 3000, как дальше искать?
Image
http://5cm.ru/view/i7/f0lt.jpg в символьной таблице датчиков нет, описание блоков только
http://5cm.ru/view/i7/lT0A.jpg еще есть такой файлик, но информации он мало дает.
Image
не получается картинки вставлять=(
у вас все подписано и комментарии есть, а у меня ничего... я открывал кроссреференс, но найти там тоже ничего не удалось связанного с(LT18_5 : "Struct. pasp."; //2AI2-6: Текущее значение уровня LT18), если не против я могу вам проект скинуть.

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

Re: [?]: как найти место изменения показаний датчика

Post by CoMod » Wed Mar 15, 2017 5:12 am

Архивируй проект и выкладывай на яндекс-диск... ссылку в личке или в форуме.

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

Re: [?]: как найти место изменения показаний датчика

Post by CoMod » Wed Mar 15, 2017 5:35 pm

CoMod wrote:Архивируй проект и выкладывай на яндекс-диск... ссылку в личке или в форуме.
программу писали кипвампиры... тёмные существа, питающиеся кровью киповцев... поэтому Таблица перекрёстных ссылок пуста и фон экранов Чёрный :(
Image
чтение аналоговых портов начиная с PIW0 и кончая PIW1** с последующим инкрементом ссылки на адрес
производится в FC10
затем полученное превращается в число с плавающей точкой и масштабируется и пересылается в индексированную ячейку блока данных.
Времени копаться на этой неделе нет - сам на объекте сейчас наладкой занимаюсь.
Особой секретности в этой монстроидальной программе нет - можешь выложить на общий разбор.

Из самого простого могу посоветовать не копаться в индексах, а сразу после этой ветки добавить свою, в которой считать напрямую значение из интерисуемого входа датчика
L PIW16 //(или какой там у тебя датчик)
и отмасштабировать как тебе надо
затем полученные результаты записать в нужных ячейках той DB, заместив неправильные значения.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Wed Mar 15, 2017 10:48 pm

спасибо большое, я все понял теперь надо попробовать реализовать, с симатиком все таки еще не работал, хотя само программирование кажется мне простым, а вот менеджер...я уже подумывать начал написать программку новую хотя может и на эту () исходник найду.
и второй вопрос, как мне в контроллер добавить информацию? в режиме онлайн я как понял менять ничего нельзя пока работает, нужно все останавливать, можете инструкцию набросать кратко и понятно, не получилось четкой информации найти. боюсь я начудить(

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Thu Mar 16, 2017 4:44 am

сколько не лазию понять не могу эту проклятую схему, db1 - реальные значения с датчиков, db3 - обработанные, в db1 dbw 1300 добавляется датчик, в db1 dbw 1302 то на сколько калибруем и db1 dbx 1304.1 команда скалибровать, fc10 обрабатывает наверное, а где хранятся значения на сколько изменены показания...
https://yadi.sk/d/jdMQizcZ3Fr5bZ

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Thu Mar 16, 2017 11:04 pm

Image

нашел я вчера вот такой экран, половина датчиков в аварии( тут есть кнопка коррекция, Y это с датчика, а X это вывод на экран, если нажать коррекция происходит сброс в 0, на кнопке коррекция висит db1 dbx 1304.1 при нажатии.
в дб3 например датчик 18 по адресу 380 можо открыть этот блок и появиться табличка мул сум скале...в этом блоке хранятся данные или они сюда приходят от куда то? и можно ли их менять в онлайн? опять же как правильно в онлайн работать с контроллером я еще не разобрался(

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: [?]: как найти место изменения показаний датчика

Post by Rex2701 » Fri Mar 17, 2017 6:13 am

Посмотрел проект...
Пересчёт из АЦП в реальное значение происходит в FC10. Но сделано всё (на мой взгляд) слишком замудрённо. Пол-блока можно стереть и заменить одним вызовом библиотечной FC105.
Возможно, конечно, вся эта использованная дичь имеет конкретный смысл в рамках этого проекта и обусловлена спецификой производства, но сказать наверняка нельзя, не видя само производство.
А PIW адрес LT18-5 определяется достаточно просто - он совпадает со смещением в DB1, т.е. PIW28. Это 6й канал AI модуля в 5 слоте.
Выложи сюда реальные значения из DB3 c 364 по 388 ячейки включительно.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Mon Mar 20, 2017 4:39 am

Пол-блока можно стереть и...по этому поводу есть одна мысля, завод монтировала компания которая по всей стране такие заводы монтирует и что бы для каждого завода не писать новую программу у них есть основа, один человек приехал под наши нужды допилил код, соответственно лишние куски остались висеть и они в этом коде как рыбы в море. и никаких инструкций, ничего давать не собираются и ничего не подскажут, я поднимал тему, обращался...
Image

Image

Image

когда я обращаюсь к датчикам PIW 0-14 значения совпадают с тем что в дб1, а вот начиная с PIW 16 как видно на скрине цифры разные, я думал дб1 заполняется прямо с датчиков.?

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

Re: [?]: как найти место изменения показаний датчика

Post by Usver » Mon Mar 20, 2017 5:32 am

DB1 заполняется после обработки сигналов с датчиков в FC10. На последней картинке видно: PIW28 = 456, значит
DB1.DBW28 = 456*1.097143+700 = 1200.297208. После округления 1200. На второй картинке данные немного отличаются, но это из-за частоты опроса тега. А так все тоже самое.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Mon Mar 20, 2017 6:01 am

спасибо что то для меня уже прояснилось=)

для того что бы скорректировать показания датчика я как понимаю нужно менять SUM, я это могу сделать с экрана, а можете расписать как с менеджера это делать? в DB3 изменить значение SUM, а как его записать в контроллер я не разобрался.
и дайте совет как правильно корректировка делается, я сегодня попробовал на полном танке, в него залили пару тон и я подправил до этого значения, но на сколько я знаю это делается на пустой ёмкости.

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

Re: [?]: как найти место изменения показаний датчика

Post by Usver » Mon Mar 20, 2017 6:25 am

Это нужно делать через VAT таблицу. Т.е. вбить туда DB3.DBD364 и DB3.DBD368. В поле Modify Value занести новое значение и нажать на двойную стрелочку радом с очками (очки должны быть включены). Коэффициенты можно рассчитать вручную. Для данного модуля, для 4-20мА 4мА это код PIW28 должен быть равен нулю, а для 20мА код 27648. Значит коэффициент MUL можно рассчитать исходя из параметров датчика, а SUM выставить при пустой емкости. Т.е. обычные математические рассчеты, исходя из формулы Параметр = (Код с датчика * MUL) + SUM.
Либо можно посмотреть код на PIW28 при нулевом уровне и при полной емкости и рассчитать коэффициенты.
В VAT таблице конечно представление на MUL и SUM должно быть Floating point

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

Re: [?]: как найти место изменения показаний датчика

Post by Usver » Mon Mar 20, 2017 6:36 am

Грузить саму DB3 не надо. На сколько я понял, она была выгружена из контроллера с текущими значениями на тот момент времени, поэтому, если ее опять залить, то все коэффициенты окажутся те, которые тогда были.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Mon Mar 20, 2017 7:15 am

SUM я уже попробовал, если большое значение выставить при пустом танке, датчик начнет показывать литры которых нет в ёмкости, и после этого уменьшать значение пока не будет 0, надеюсь я правильно сделал=) а вот..."коэффициент MUL можно рассчитать исходя из параметров датчика" от куда вообще *1.097143 эта цифра произошла я не догадываюсь=( сначала я думал это перевод веса в литры...

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

Re: [?]: как найти место изменения показаний датчика

Post by Usver » Mon Mar 20, 2017 7:36 am

Пустой танк - это PIW28*MUL+SUM = 0. Верно? Значит, если при пустом показывает больше нуля, то SUM надо скорректировать именно настолько, насколько больше показывает. MUL скорее всего вводилась еще при наладке таким же методом, как я и написал, или не таким, но принцип тот же. На счет параметров датчика - это я сказал для простого параметра, например давление в трубопроводе. Как у Вас происходит измерение и на основании чего, я не знаю. Поэтому лучше посмотреть код с PIW28 при пустом танке и при полном, а затем высчитать коэффициенты.

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

Re: [?]: как найти место изменения показаний датчика

Post by Usver » Mon Mar 20, 2017 7:53 am

В общем например, SUM = 0 и при пустом танке PIW28 был 175, а после того, как туда загрузили 500 литров (или чего у вас там) код стал 24050. Отсюда получается MUL=500/(24050-175). А SUM = -(175*MUL).

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: [?]: как найти место изменения показаний датчика

Post by Rex2701 » Mon Mar 20, 2017 8:31 am

marluna wrote:и дайте совет как правильно корректировка делается, я сегодня попробовал на полном танке, в него залили пару тон и я подправил до этого значения, но на сколько я знаю это делается на пустой ёмкости.
Насколько я понял из кода FC10 - корректировка делается в 2 этапа: сначала устанавливаем сигнал в пределах -10...+10% от нуля шкалы и нажимаем коррекцию. Блок определяет, что идёт калибровка нуля и выставляет его, пересчитывая внутренние коэффициенты (скорее всего только SUM). Затем выставляем сигнал в пределах 90...110% от шкалы и снова жмем коррекцию. Происходит перерасчёт коэффициентов для всей шкалы (скорее всего MUL).
Опять же, для получения максимально точных результатов коррекций, 0% и 100% должны быть набраны максимально точно.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Mon Mar 20, 2017 10:45 am

датчики LT их много и они все одинаковые стоят на дне каждой емкости, принцип действия как у весов.
например на втором скрине
при пустом танке PIW -712 * MUL 1.097143 + SUM 700 должно быть равно 0, у меня -81.165816 значит SUM надо выставить 781

или набираем продукт например 500 литров
"SUM = 0 и при пустом танке PIW28 был 175, а после того, как туда загрузили 500 литров (или чего у вас там) код стал 24050. Отсюда получается MUL=500/(24050-175). А SUM = -(175*MUL)."
и таким методом делаем расчет
MUL=500/(24050-175). -- 500/(24050+712) = 0.02019223002988450044422906065746
SUM = -(175*MUL). --712*0.020192 = 14.376704
и вносим эти значения? к сожалению полную емкость я набрать никогда не смогу(
если честно я запутался, надо поэкспериментировать

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

Re: [?]: как найти место изменения показаний датчика

Post by Usver » Mon Mar 20, 2017 11:51 am

1. Полную емкость набирать не обязательно, но желательно.
Usver wrote:В общем например, SUM = 0 и при пустом танке PIW28 был 175, а после того, как туда загрузили 500 литров (или чего у вас там) код стал 24050. Отсюда получается MUL=500/(24050-175). А SUM = -(175*MUL).
2. Цифры эти я написал от балды просто для примера. 24050 это значение PIW28, после того, как загрузите сколько-то там литров. Сколько Вы загрузите и какой будет код я не в курсе. Т.е код нужно будет посмотреть в VAT таблице точно так-же , как у Вас на картинке. И сперва высчитывается MUL, а затем SUM.
3. PIW28 = -712 это не хорошо! Если код меньше 0, то это отрицательная перегрузка (ток меньше 4мА), а датчик 4-20мА. Если датчик подстраивается, то можно его подстроить. Можно и не подстраивать.
датчики LT их много и они все одинаковые стоят на дне каждой емкости, принцип действия как у весов.
например на втором скрине
при пустом танке PIW -712 * MUL 1.097143 + SUM 700 должно быть равно 0, у меня -81.165816 значит SUM надо выставить 781
Если -712 Вас устраивает, то да, выставить 781.165816. Но это если доверяете коэффициенту MUL.

Короче, я не знаю как еще проще объяснить)))))))))))))))))))
Можно еще так:
1. На датчик забить(в конце-концов -712 не так и много) и его не подстраивать.
2. Выяснилось, что при 0 литров(или в чем там) PIW28 = -712. Значит в SUM вносите 781.165816.
3. Набираете в танк то, что обычно набираете и смотрите сколько получилось в DB1. Если количество совпало - классно, а если нет, то смотрим PIW28 и делаем расчет: MUL = Сколько реально загрузили/(PIW28 - (-712)), А SUM = -(-712*MUL).
Пробуйте )))))).

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

Re: [?]: как найти место изменения показаний датчика

Post by Usver » Mon Mar 20, 2017 2:07 pm

Кстати, если со времен Вашего первого поста коэффициенты и код программы не менялся
marluna wrote:работаю в кип и а,
поменяли датчик давления в танке 4-20ма,
набрали в танк продукта 800л на экране видим 500,
можно конечно в датчике подкрутить, но это не совсем правильно и в других танках та же беда,
вместо 2 тонн 400 литров,
вместо 1 тонны 7 тонн,
сам занимаюсь программированием интерес к программе есть и понимания немного имею, в общем залез в проект посмотрел от куда приходит информация, lt18_5 db3 dbd380, пошел по этому пути, открыл блок LT18_5 : INT ; //2AI2-6: Текущее значение уровня LT18

Code: Select all

 LT18_5 := 0; 
 LT18_5 : "Struct. pasp.";	//2AI2-6: Текущее значение уровня LT18
 LT18_5.MUL := 1.000000e+000; 
   LT18_5.SUM := 0.000000e+000; 
   LT18_5.Scale_max := 1.000000e+002; 
   LT18_5.Scale_min := 0.000000e+000; 
   LT18_5.Signal_real := 0.000000e+000; 
   LT18_5.Filter_time := T#0MS; 
   LT18_5.Error_mod := FALSE; 
   LT18_5.In_square := FALSE; 
   LT18_5.CUT := FALSE; 
   LT18_5.Error_kan := FALSE; 
   LT18_5.Error := FALSE; 
   LT18_5.Temperature := FALSE; 
MUL это коэффициент плотности, сум я не знаю что такое равен он -2000 примерно на всех танках, масштабирование 4-20ма=0-6тонн, и на этом мое понимание закончилось. почему в танке 300 литров, а на экране 0 и показывать начинает с 301 на экране 1 литр покажет, масштабирование правильное, датчик проверял показывает правильно, где как искать причину не пойму, хотел попробовать сум поменять выдало "insufficient memory space or work memory on the module, or specified storage medium not accessible" до этого симатик в глаза не видел, помогите пожалуйста. проект могу скинуть. и попытался найти датчик, смотрел видео там вводят piw и адресс датчика, но как выяснить у какого какой адресс тоже не разобрался.
то MUL = 1,509433962, SUM = 1074,716981132)))))))))))

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Tue Mar 21, 2017 2:57 am

Usver я понимаю, что цифры это ты звезды в небе считал, просто что бы убедиться правильно ли я понял математику, заодно и нюансы узнаю "PIW28 = -712 это не хорошо!"
с менеджера теперь знаю как что-то менять, спасибо=)
со времен первого поста менялись только мул и сум.
на этой недели, скорее всего в субботу постараюсь выяснить, что при 0 литров и попробую сам мул и сум выставить, при нажатии кнопки коррекция 0 выставляется, но при 700л показывает только 500. надеюсь докопаюсь до истины=)

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Tue Mar 21, 2017 5:12 am

установил сегодня новый датчик, при нуле показывал -656, налили 2000л показывает 11150 и 1500 литров, решил я подсчитать сам 2000/11800=мул0.16*656=сум111 и в итоге датчик показывает 200 литров( эх...не пойму, для других я нажимал кнопка коррекция и они врут всего на 10 литров. а этот на 500, кнопка коррекция только сум подгоняет, а мул только вручную задавать

пол дня размышлений привели меня к scale, для 13 резервуара 0-3333, полез я искать табличку на резервуаре все они советских времен и кроме года ничего не видно, и как раз на одном 13 танке табличка более менее 87г 4100л, изменил в программе 3333 на 4100 и стало 1900 литров, я на 4300 подправил что бы 2000л показывало гляну что будет=)

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Thu Mar 23, 2017 9:25 pm

разобрался что за множитель и для чего он, для чего сум. и как что с этим делать, спасибо за помощь, основная сложность возникла в температуре, из-за нее непонимания было много. при одной температуре 2000л на 20 градусов нагрели 2300л.
подскажите можно ли в фс10 добавить корректировку по температуре? я пока плохо это представляю, может опыт у кого есть в этом

almaz78
Posts: 108
Joined: Tue Dec 16, 2008 7:36 pm

Re: [?]: как найти место изменения показаний датчика

Post by almaz78 » Fri Mar 24, 2017 12:37 pm

Не могли бы вы выложить тип и производителя вашего датчика?

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

Re: [?]: как найти место изменения показаний датчика

Post by Usver » Fri Mar 24, 2017 3:40 pm

marluna wrote:установил сегодня новый датчик, при нуле показывал -656, налили 2000л показывает 11150 и 1500 литров, решил я подсчитать сам 2000/11800=мул0.16*656=сум111 и в итоге датчик показывает 200 литров( эх...не пойму, для других я нажимал кнопка коррекция и они врут всего на 10 литров. а этот на 500, кнопка коррекция только сум подгоняет, а мул только вручную задавать

пол дня размышлений привели меня к scale, для 13 резервуара 0-3333, полез я искать табличку на резервуаре все они советских времен и кроме года ничего не видно, и как раз на одном 13 танке табличка более менее 87г 4100л, изменил в программе 3333 на 4100 и стало 1900 литров, я на 4300 подправил что бы 2000л показывало гляну что будет=)
Во-первых не 0,16, а нужно точнее брать (в калькуляторе высчитывается). Во-вторых: Лучше бы прикреплять картинки, на которых смотрите параметры, а то возникает чувство, что Вы даете некорректную информацию. Например: откуда scale? + к этому еще и шильдики на баках? Там дополнительно обработка есть? Кому и откуда об этом известно? Вот лично я думал, что в DB1 уже окончательный результат. В Step7 можно это и не увидеть сразу, ведь некоторые пишут так, что сходу не разобрать.
По-моему есть 2 типа программеров на степе:
1. Делают все замечательно, удобно, понятно и при выходе из строя канала (входа или выхода) можно быстро все заменить;
2. Усложняют программу до того, чтобы только они реально знали как она работает. Так делают либо извращенцы, либо для того, чтобы их взяли на обслуживание этого объекта и платили им баблосы.
Ваш случай №2!
marluna wrote:разобрался что за множитель и для чего он, для чего сум. и как что с этим делать, спасибо за помощь, основная сложность возникла в температуре, из-за нее непонимания было много. при одной температуре 2000л на 20 градусов нагрели 2300л.
подскажите можно ли в фс10 добавить корректировку по температуре? я пока плохо это представляю, может опыт у кого есть в этом
при одной температуре 2000л на 20 градусов нагрели 2300л
Ну это вообще забавно.
подскажите можно ли в фс10 добавить корректировку по температуре?
Да конечно можно добавить в самый конец фс10. А что и как корректировать? И главное, для чего? Недостаточно информации для этого.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Sun Mar 26, 2017 9:29 pm

да это действительно второй случай, но обращаться за обслуживанием не хотят и оно так висит, сломанное поломанное и показывает черти что, датчики dtrans p30 0.025 с разделительной мембраной.
при монтаже завода тому кто этим занимался не доплатили он бросил, пришел второй поматерился и ему не заплатили он бросил...в итоге там только масштабирование и то не правильное было, объем емкости везде стоял не правильно. цифры с неба. емкость 600л а в программе 1320...я все выставил и показания более менее на правду похожи стали. сегодня пришел на работу аппаратчица говорит набрала молока 800л, показывает на экране 780 при 5 градусах, нагрела до 90 градусов показывает 500л и на этом я все спекся. я уже ничего не понимаю.

на вопрос и для чего. да как бы это наф тут никому не нужно. я могу провода выдрать и забить и ни кто даже не спросит. я для себя так как интересно. а на вопрос что...

у нас есть датчик например piw 20, допустим емкость 600 литров и в нее все эти 600 набрали, piw 20 показывает 10000, я не знаю по каким формулам, я так выставляю... с начало множитель 0-27648=0-600 в данном примере mul = 2.7648 sum = piw при пустом танке например 100 на 2.7648 = 276.48 и эта цифра(10000) после умножения сложения или вычитания 600=(27648) попадает в DB1 и все больше не каких обработок
то есть в этом масштабе 0-27648=0-600 мы видим объем
я то как киповец знаю 1 тонна 1028 литров, плюс у нас меняются температура
значит у нас как минимум один коэффициент должен быть в программе, но в программе я 0 и опыта совсем нет...надеюсь на ваш опыт.
исходник выше
Last edited by marluna on Mon Mar 27, 2017 3:31 am, edited 1 time in total.

almaz78
Posts: 108
Joined: Tue Dec 16, 2008 7:36 pm

Re: [?]: как найти место изменения показаний датчика

Post by almaz78 » Mon Mar 27, 2017 1:26 am

датчики LT их много и они все одинаковые стоят на дне каждой емкости, принцип действия как у весов.
например на втором скрине
датчик dtrans p30 измеряет давление а не вес.
какои у вас танк открытии или закритыи ?
если у вас pressurized tank то датчик должен измерять дифференциалное давление.
вот неплохая публикация о измерении уровня:
http://www.emerson.com/resource/blob/7 ... -data.pdf
оттуда:
1.6.4
Factors affecting density
Fluid density is defined as the mass of a material
per unit of volume. Mass is the amount of matter
an object contains and is often equivocated to
weight and is expressed in terms of weight: pounds,
tons, kilograms or grams. If a fluid becomes more
concentrated, then more mass is added to that fluid
and the density changes. For example, 10% sulfuric
acid has a density of 1.07 kg/l, but concentrated
sulfuric acid has a density of 1.83 kg/l.
Mass is unaffected by temperature. However, as
a fluid is heated or cooled, its volume will expand
or contract which will cause the density value
(mass per volume) to change. Thus, temperature
will have a significant impact on density. For level
devices that incorporate density as part of the
measurement, the temperature change will impact
the level measurement. While compensation for
density change can be accomplished by including
a temperature measurement, density is a factor
that can contribute significant errors to level
measurements relying on density.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Mon Mar 27, 2017 3:45 am

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

almaz78
Posts: 108
Joined: Tue Dec 16, 2008 7:36 pm

Re: [?]: как найти место изменения показаний датчика

Post by almaz78 » Mon Mar 27, 2017 3:49 am

[img]
http://5cm.ru/view/i7/ZcqX.png
[/img]

по моему тут должно быть PIW_real

ето не так важно и в принципе на результат не влияет но все же :)

almaz78
Posts: 108
Joined: Tue Dec 16, 2008 7:36 pm

Re: [?]: как найти место изменения показаний датчика

Post by almaz78 » Mon Mar 27, 2017 4:15 am

у нас абсолютное давление, танк закрытый, но не герметичный. воздух попадает и выходит
из той же книжки :)

Image

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Mon Mar 27, 2017 4:36 am

это в fc10?
про ультразвуковой передатчик я не понял(

almaz78
Posts: 108
Joined: Tue Dec 16, 2008 7:36 pm

Re: [?]: как найти место изменения показаний датчика

Post by almaz78 » Mon Mar 27, 2017 11:29 am

Да fc 10.
Про ультразвуковой датчик я ничего не писал. Я писал про дифференциальное давление.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Mon Mar 27, 2017 9:10 pm

у меня в этой книжке
2.4.1 Basic principle
Suspended Solids Monitoring
The percentage of suspended solids within a slurry
can be calculated by measuring how much an
ultrasonic signal is attenuated as it travels through
the fluid.
An ultrasonic transmitter/ receiver pair is submerged
in a tank or mounted within a pipe section. An
ultrasonic signal is transmitted between the
transmitter and receiver crystals and is scattered by
suspended solids particles that are present in the
slurry. The amount of signal received by the receiver
crystal is inversely proportional to the percentage of
suspended solids within the slurry (sludge density).
спасибо. жалко плохо английский понимаю


marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Tue Mar 28, 2017 5:54 am

спасибо большое, почитаю обязательно. но я уже все проверил. все пути привели к мул и сум, сум я понимаю при пустом танке значение датчика умножаем на множитель что бы у нас при пустом танке показывало 0, а как множитель узнать? в моем случае множитель это подгонка 0-27648 под объем емкости. половину танков вроде выставил показывают нормально, а вторая половина то на 500 литров больше то меньше....замучился уже)

almaz78
Posts: 108
Joined: Tue Dec 16, 2008 7:36 pm

Re: [?]: как найти место изменения показаний датчика

Post by almaz78 » Tue Mar 28, 2017 1:50 pm

Ок, будем считать что с датчиками все в порядке.
все пути привели к мул и сум,
Не только мул и сум.

результат в инженерных единицах рассчитывается по формуле (проекта перед собой нет, пишу по памяти, возможны не точности):

минимум_шкала + (максимум_шкала- минимум_шкала)* input_S,
где input_S ето коеффициент после калибровки, квадратирования, отсечки и филтрации.
Кстати проверьте что у вас квадратирование не выставлено.

сум и мул влияют на input_S.

то есть для того чтобы правильно просчитать уровень вам надо знать 4 параметра мул, сум, максимум_шкала- минимум_шкал.
Насколько я понял из кода FC10 - корректировка делается в 2 этапа: сначала устанавливаем сигнал в пределах -10...+10% от нуля шкалы и нажимаем коррекцию. Блок определяет, что идёт калибровка нуля и выставляет его, пересчитывая внутренние коэффициенты (скорее всего только SUM). Затем выставляем сигнал в пределах 90...110%
Насколько я понимаю калибровка НЕ производится в два етапа. при калибровке программа определяет если сигнал ближе к 0 или ближе к 100% и расчитывает параметры исходя из етого.

расчет новых параметров сум и мул производится частично основиваясь на старых параметрах мул и сум :)

я бы наверное попробывал следуешее (ето теория на правильность не претендую):

1. выставил мул = 1 и сум = 0.
2. откалибровал при пустом танке.
ето расчитает сум и мул . в принципе если максимум_шкала и минимум_шкала виставлены верно все должно начать работать.

3. если максимум_шкала неизвестна. набрал известное количество жидкости и расчитал каким должен быть уровень при 27648.
4. выставил максимум_шкала

sania
Site Admin
Posts: 1372
Joined: Sat Aug 13, 2005 6:15 am
Contact:

Re: [?]: как найти место изменения показаний датчика

Post by sania » Tue Mar 28, 2017 1:56 pm

обычно датчик давления не стоит на дне танка
тогда сум это объём который ниже датчика
а мул это коэф. 4-20 на объём выше датчика...

Usver
Posts: 191
Joined: Fri Feb 24, 2012 8:28 am

Re: [?]: как найти место изменения показаний датчика

Post by Usver » Tue Mar 28, 2017 6:01 pm

sania, конечно это все так, если бы не отрицательные значения при пустом танке (как говорит marluna) со входа модуля чего-то около (-600) - (-700).
marluna, выложи фотки с того экрана, где наблюдаются аномалии, вроде увеличения или уменьшения объема при изменении температуры. Яснее будет.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Tue Mar 28, 2017 11:56 pm

на дне в самом центре идет труба с клапаном по которой наполняется и сливается продукт и рядом с ней датчик давления.
я пришел в выходной когда емкости ночь простояли без работы и имеют комнатную температуру,
танк 11 - LT13_5 - IW18 - 6000л. (iw -1232)
танк 12 - LT14_5 - IW20 - 6000л. (iw -2848)
танк 13 - LT15_5 - IW22 - 4000л. (iw -672)
танк 14 - LT16_5 - IW24 - 2500л. (iw 1368)
танк 15 - LT17_5 - IW26 - 2500л. (iw 200)
танк 16 - LT18_5 - IW28 - 2500л. (iw -920)
танк 17 - LT19_5 - IW30 - 2500л. (iw 656)
танк 18 - LT20_5 - IW32 - 2000л. (iw 1720)
танк 19 - LT21_5 - IW34 - 1000л. (iw 2376)
танк 20 - LT22_5 - IW36 - 600л. (iw 272)
и выставил множитель 1 и сум 0, показывает 20л изменил сум на (iw ***) стало 0 литров.
потом в 20 танк набрал 600л заглянул в него он действительно полный, расходомеры нормально работают. iw реальный был примерно 10000 и 200л. я выставил множитель 2.7, iw реал изменился до 27000 и литры изменились до ~590, потом стал выставлять сум 272*2.7 примерно 800 внес в программу и снова изменились литры выше 600. точно цифры я сейчас не скажу, но суть в том что мул и сум друг на друга влияют. мне пришлось снова менять множитель и сум...до тех пор пока не стало 590л, больше 600 не показывает, пришел утром и увидел 600л, стал уменьшать множитель с 2.7 до 2.3 что бы вышло снова 590, то есть там к утру стало 650л примерно. из закваски микробы что ли расплодились на 50 кг=) закваска в данном случае порошок грамм 100, загуститель с бактериями. но от них только объем может меняться, но не вес.
и по окончанию получается что при пустом танке показывает меньше 0 так как множитель уменьшил, а сум снова не стал исправлять и при наполнение почти правильно показывает. ну хоть что то, до этого ппц был.
а теперь о емкостях в 6000л.
их к сожалению полностью не набирают, но говорят это не обязательно, я примерно той же методикой выставляю, налили 2000 я выставил, слили потом снова налили уже 3000, показывает 2500, выставляю 2500, слили налили 2500 показывает опять черт знает что, я не могу поймать настройки...
кнопка коррекция работает только на пустом танке, если показатель iw уходит в + вроде после 1000 эта кнопка уже не реагирует.

в общем тут проблема не в температуре как я думал, а в сум и мул, если чуть не так выставлю, при пустом танке 200л может показать, и при стирилизации паром датчик чуть ведет. но не очень сильно 30л. может, но это не страшно.

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Wed Mar 29, 2017 12:09 am

обычно датчик давления не стоит на дне танка
тогда сум это объём который ниже датчика
а мул это коэф. 4-20 на объём выше датчика...
я бы сказал сум это объем выше или ниже 0 при пустом танке,
а мул коэф. 0-27648 на объем танка

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Wed Mar 29, 2017 12:40 am

может сможете скинуть программу или документ, как правильно делается весь этот процесс. у меня нет примеров того как должно быть и попросту не знаю, что бы понять что тут не так

almaz78
Posts: 108
Joined: Tue Dec 16, 2008 7:36 pm

Re: [?]: как найти место изменения показаний датчика

Post by almaz78 » Wed Mar 29, 2017 3:05 am

мне пришлось снова менять множитель и сум...до тех пор пока не стало 590л, больше 600 не показывает, пришел утром и увидел 600л, стал уменьшать множитель с 2.7 до 2.3 что бы вышло снова 590, то есть там к утру стало 650л примерно. из закваски микробы что ли расплодились на 50 кг=) закваска в данном случае порошок грамм 100, загуститель с бактериями. но от них только объем может меняться, но не вес.

я перефразирую. вы выставили коеффициенты и ушли спать. никто ничего не трогал ничего не менялось в программе и никто ничего не добавлял в танк. на следуешее утро при тех же коеффициентах вы получили другои результат.
единственное что могло изменится - ето показания датчика. тем не менее вы обвиняете коеффициенты. надо было сравнить показание датчика вечером и на утро
еше раз напомню что вы измеряете ДАВЛЕНИЕ а не ВЕС.

на моы взгляд вы немного зациклились на сум и мул.
даваите забудем на секунду про измерение уровня в вашем танке. и представим что вы измеряете температуру. (FC10 универсальниы блок и используется для любых сигналов)
итак мы имеем очень точниы датчик температуры коториы не требует калибровки он подключен к ПЛЦ шкала датчика 4..20 -> -50..150C. к примеру ТТ18_5. так как датчик практически идеален мул = 1 сум =0.
теперь все что нужно сделать на стороне контроллера ето виставить ТТ18_5_Scale max = 150 и ТТ18_5_Scale mин = -50

логично?

теперь вернемся к уровню. вы писали
что танк 20 - LT22_5 - IW36 - 600л. (iw 272) но в программе етот танк 1322л.

все что вам нужно сделать ето внести в Scale max ожидаемое знзчение в инженерних единицах при 27648.
и установить сум= 0 и мул = 1.

далее если надо немного откорректировать
опустошите танк и нажмите кнопку

marluna
Posts: 27
Joined: Tue Feb 28, 2017 12:38 am

Re: [?]: как найти место изменения показаний датчика

Post by marluna » Wed Mar 29, 2017 3:37 am

да я писал что скале макс не соответствовал ему реальному объему и это было со всеми емкостями, я выставил везде по табличке, в данном случае 0-600 литров. при мул 1 сум 0 полная емкость 10000 по датчику iw реал.
IN 10000 * mul +- sum = out
10000*2.7-(272*2.7)

almaz78
Posts: 108
Joined: Tue Dec 16, 2008 7:36 pm

Re: [?]: как найти место изменения показаний датчика

Post by almaz78 » Wed Mar 29, 2017 4:54 am


http://wikisend.com/download/683298/marluna.xlsm


Marluna, здесь excel в коториы я перенес ваш код. (надеюсь без ошибок)

я проигнорировал отсечки и тп.

подставьте реальние данние если ресультат совпадет с ПЛЦ то будет легче разбираться дальше.

в фаиле включены макросы. вирусов нет

Post Reply