[?]: Как и что выводится на аналоговый выход и FC105 ?

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
willis
Posts: 36
Joined: Thu Dec 18, 2008 11:08 am
Location: Ukraine

[?]: Как и что выводится на аналоговый выход и FC105 ?

Post by willis »

Может не совсем в тему, но вопрос похожый, есть контроллер 315 и модуль аналоговых выходов 0-10В, модель модуля с ходу сказать не могу, но помоему sm332.
К одному из выходов модуля подключен регулятор с позиционером на 0-10В, я пытался передать на выход значение real , но на выходе получаю вообще не понятные значения напрежений, если передаю значение ниже 8000 напряжение получаю в 0В, регулируется напряжение 0-10В в диапозоне значений 8000-12000, если передаю значение больше 12000, опять получаю 0В... по идее так же не должно быть (((
CoMod
Site Admin
Posts: 3992
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Re: [?]: как отобразить PQW в VARIABLE TABLE ,

Post by CoMod »

willis wrote:есть контроллер 315 и модуль аналоговых выходов 0-10В, модель модуля с ходу сказать не могу, но помоему sm332. К одному из выходов модуля подключен регулятор с позиционером на 0-10В, я пытался передать на выход значение real , но на выходе получаю вообще не понятные значения напряжений... (((
На модули аналогового вывода подают только 16-битовое число со знаком INT (0...27648 или двухполярное -27648 ...27648 ).
Для масштабирования реального числа (реальной величины) в подаваемое в модуль 16-битовое число со знаком надо использовать функцию масштабирования REAL=>INT FC106 UNSCALE
При считывании с модуля входа используешь функцию перемасштабирования INT=>REAL FC105 SCALE
Image
Смотри документацию
http://www.automation-drives.ru/as/down ... 20mA_r.pdf
http://www.automation-drives.ru/as/down ... T100_r.pdf

Code: Select all

http://www.automation-drives.ru/as/download/doc/simatic_s7/s7_300/GS_SM331_4-20mA_r.pdf
http://www.automation-drives.ru/as/download/doc/simatic_s7/s7_300/GS_SM331_U&PT100_r.pdf
willis
Posts: 36
Joined: Thu Dec 18, 2008 11:08 am
Location: Ukraine

Re: [?]: как отобразить PQW в VARIABLE TABLE ,

Post by willis »

CoMod, опять же огромное спасибо. Я подозревал что real не тот тип, и должны быть функции преобразования, но инет на работе очень уж медленный, чтобы найти ответы все. Буду разбираться!!!
willis
Posts: 36
Joined: Thu Dec 18, 2008 11:08 am
Location: Ukraine

Re: [?]: как отобразить PQW в VARIABLE TABLE ,

Post by willis »

А вот вопрос ещё такой, по сути FC105 Это просто функция с формулой, преобразующей real в int по верхней и нижней границе и полярности/биполярности. А если у меня есть DB с int значениями от 0 до 100(якобы проценты) и зная, что максимальное значение которое можно поставить на модуле это 27768, я просто перемножу значение из DB на 277, получая таким образом соотношение моих процентов и диапозона значений модуля и далее через move переправлю значение на выход модуля без FC105, такая схема может работать?
Заранее благодарен
CoMod
Site Admin
Posts: 3992
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Re: [?]: как отобразить PQW в VARIABLE TABLE ,

Post by CoMod »

Обрати внимание на мою описку - должно быть 27648
FC 106 wrote:Масштабирование FC106 производится по следующей формуле:
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1

Константы K1 и K2 в формате числа с плавающей точкой задаются в зависимости от типа входного сигнала двухполярного BIPOLAR или однополярного UNIPOLAR.
· BIPOLAR двухполярный сигнал: Входная величина находится в пределах от –27648 до 27648, поэтому, K1 = –27648.0 и K2 = +27648.0
· UNIPOLAR однополярный сигнал: Входная величина находится в пределах от 0 до 27648, поэтому, K1 = 0.0 и K2 = +27648.0
Если входное значение больше K2 (переполнение аналогового входа >+27648), то на выходе (OUT) будет установлено максимально заданный предел HI_LIM, и выставлен флаг ошибки.
Если входное значение меньше K1 (отрицательное переполнение аналогового входа или выход за нижнюю границу номинального диапазона), то на выходе (OUT) будет установлено минимально заданный предел LO_LIM, и выставлен флаг ошибки.

CALL "UNSCALE" //CALL FC106
IN :="Distance" //вещественное число - заданное расстояние УЗ удара в мм
HI_LIM :=3.000000e+002 // верхний предел
LO_LIM :=6.000000e+001 // нижний предел
BIPOLAR:=FALSE
RET_VAL:=MW0 //код ошибки
OUT :="Analog_Output" //целое число в диапазоне 0...+27648 для передачи в аналоговый модуль вывода
Преимущество использования этих функций в случае Если входное значение ...
иначе тебе придётся все эти проверки самому писать
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: [?]: как отобразить PQW в VARIABLE TABLE ,

Post by CHANt »

willis wrote:А вот вопрос ещё такой, по сути FC105 Это просто функция с формулой, преобразующей real в int по верхней и нижней границе и полярности/биполярности. А если у меня есть DB с int значениями от 0 до 100(якобы проценты) и зная, что максимальное значение которое можно поставить на модуле это 27768, я просто перемножу значение из DB на 277, получая таким образом соотношение моих процентов и диапозона значений модуля и далее через move переправлю значение на выход модуля без FC105, такая схема может работать?
Заранее благодарен
1) Ты путаешь FC105 "Scale" и FC106 "Unscale"
2) Если так охота реализовать собственно, то
2.1 Масштабирование входной переменной

Code: Select all

      L     входная_величина     // тип Integer (вставь свое!)
      ITD                                // преобразовать в двойное целое
      DTR                               //преобразовать в плавающую точку
      L     2.764800e+004        //загрузить диапазон АЦП = 27648
      /R                                 //поделить
      L     верхняя_шкала        // загрузить значение верхней шкалы, тип REAL
      *R                                //перемножить
      T     выходная_величина 
2.2 Демасштабирование выходной переменной

Code: Select all

      L     входная_величина    // тип REAL
      L     верхняя_шкала         // загрузить значение верхней шкалы, тип REAL
      /R                                  //поделить значения
      L     2.764800e+004         //загрузить диапазон ЦАП=27648
      *R                                 //перемножить         
      TRUNC                           //выделить целое число 
      T     выходная_величина  
Это почти функции FC105 "Scale" и FC106 "Unscale", но если нужно масштабировать величину отличную от 15 битной со знаком, например НЕХ=4000 (DEC=16384) то достаточно подменить в соответствующих строках.
3) Обрати внимание на замечание CoMod
Преимущество использования этих функций в случае Если входное значение ... иначе тебе придётся все эти проверки самому писать
ВЕРНО НА 100%!!!!!!!!
willis
Posts: 36
Joined: Thu Dec 18, 2008 11:08 am
Location: Ukraine

Re: [?]: Как и что выводится на аналоговый выход и FC105 ?

Post by willis »

Согласен полностью на счёт проверки, но для меня это не критично, я разрабатываю интерфейс управления клапаном в ручном режиме и значение в db попадает из инпута winCC flexible, который по сути не может быть больше 100 (в моём случае процентов), и максимальное значение которое может придти на выход это 27000 (100*270), это почти 10В, чего мне вполне хватает. А так конечно при разработке автоматических режимов такие проверки всегда обязательны. Я вообще только недавно перешел в автоматизацию, до это был программером на языках верхнего уровня и что бывает без проверок знаю не по наслышке ))
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: [?]: Как и что выводится на аналоговый выход и FC105 ?

Post by CHANt »

А зачем перемножать 100*270 в Step7 - перемножь прямо в скрипте flexible и пришли готовую величину в контроллер. В программе контроллера тока функцией MOVE воспользуешься, ну или LOAD и TRANSFER. А так, нет ничего проще варианта с FC105/106 просто входа и выхода задать...
Last edited by CHANt on Fri Dec 18, 2009 9:03 am, edited 1 time in total.
CoMod
Site Admin
Posts: 3992
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Re: [?]: Как и что выводится на аналоговый выход и FC105 ?

Post by CoMod »

CHANt wrote:А зачем перемножать 100*270 в Step7 - перемножь прямо в скрипте flexible и пришли готовую величину в контроллер. В программе контроллера тока функцией MOVE воспользуешься, ну или LOAD и TRANSFER.
В WinCC flexible не надо для этого писать "скрипт" - в WinCC flexible можно использовать параметр "Масштабирование" в свойствах тэга и прямо там всё автоматом преобразовывается.
Image
willis
Posts: 36
Joined: Thu Dec 18, 2008 11:08 am
Location: Ukraine

Re: [?]: Как и что выводится на аналоговый выход и FC105 ?

Post by willis »

Тоже вариант, но мне было легче сделать в степе, так как там всё равно функцию писал по управлению регуляторами. Столкнулся со следующей бедой: На нужный PQW уходит значение int 27000 (в hex 6978), на модуле выдаётся напряжение около 10Вольт, НО оно непрерывно скачет на десятую долю вольта, бывает простреливает на 0.2 десятых, короче от 9.7 до 9.9 вольта. Что это может быть??? Мультиметр у меня хороший и врать мне не станет, да и по клапану слышно что он постоянно дёргает моторчик туда сюда, что не есть очень хорошо, так и спалить его можно. Почему могут быть такие скачки напряжения??? Может ли такое случиться из-за того что данный pqw в течении одного цикла переустанавливается 2 раза??? Я полагал что цикл у ПЛК такой: чтение входов -> исполнение кода -> установка выходов. Но теперь уже и не знаю что думать....
CoMod
Site Admin
Posts: 3992
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Re: [?]: Как и что выводится на аналоговый выход и FC105 ?

Post by CoMod »

willis wrote:Может ли такое случиться из-за того что данный pqw в течении одного цикла переустанавливается 2 раза???
Как это 2 раза ?
PQW выводится напрямую во время вызова в программе, а не в конце цикла.
Выводи в PQW порт только в одном месте программы (желательно в конце цикла) -
Все манипуляции со значениями производи в меркере памяти MW или DB.
Всё таки проверь работу с клапаном через FC106 - меньше проблем с аппаратурой будет.
Если провода длинные, то аналоговый сигнал по напряжению U бывает очень чувствителен к наводкам от рядом идущих силовых кабелей - отсюда скакания от 9.7 до 9.9 вольта.
У тебя кабель экранированный и заземлённый с 2-х концов ?
Dfcz
Posts: 878
Joined: Tue Dec 26, 2006 5:21 am
Location: Russia

Re: [?]: как отобразить PQW в VARIABLE TABLE ,

Post by Dfcz »

willis wrote:А вот вопрос ещё такой, по сути FC105 Это просто функция с формулой, преобразующей real в int по верхней и нижней границе и полярности/биполярности. А если у меня есть DB с int значениями от 0 до 100(якобы проценты) и зная, что максимальное значение которое можно поставить на модуле это 27768, я просто перемножу значение из DB на 277, получая таким образом соотношение моих процентов и диапозона значений модуля и далее через move переправлю значение на выход модуля без FC105, такая схема может работать?
Ты абсолютно прав, все будет работать, не боись.
willis wrote:Мультиметр у меня хороший и врать мне не станет, да и по клапану слышно что он постоянно дёргает моторчик туда сюда, что не есть очень хорошо, так и спалить его можно. Почему могут быть такие скачки напряжения??? ..
Это наводки - смотри провода, экраны, землю.
Oll Bell
Posts: 118
Joined: Sun Apr 17, 2011 9:49 pm

Re: [?]: Как и что выводится на аналоговый выход и FC105 ?

Post by Oll Bell »

не подскажите, от чего у меня FC105 не как у всех нормальных людей выглядит?
называется он "считывание аналогового сигнала 464-2"
возможно я бы и его применял, но на вход нужно еще одно загадочное слово подать "KNKD"
номер и представление канала.
у людей "Scale" у меня кака какая то.
Однако от конфигурации железа зависит?
Yury
Posts: 65
Joined: Thu Nov 01, 2007 9:41 pm
Location: Belarus

Re: [?]: Как и что выводится на аналоговый выход и FC105 ?

Post by Yury »

Этот FC у вас в библиотеке в libraries\standart library\ti-s7 Converting Blocks\... или в проекте? Если в проекте - то это просто чей-то самописный блок для обработки (чудовищное совпадение) аналоговых значений.
Oll Bell
Posts: 118
Joined: Sun Apr 17, 2011 9:49 pm

Re: [?]: Как и что выводится на аналоговый выход и FC105 ?

Post by Oll Bell »

библиотечный, хелп по нему присутствует.
ps

screenshot
http://radikall.com/images/2015/06/19/fkgq6.png

что то совсем не понятно, по указанному вами пути TI-S7
потянул 105, запрос, мол существует, заменить? Да,и о чудо, появился нужный камень но под старым именем 464.2.

Сам 105 й брал я в S5-S7 converting, как на видео на трубе.
получал,что на скринах.
когда понятул из Ti-S7 и согласился на перенятия свойств, получил искомое и в s5-S7, Ti-S7 и даже в проекте блок Fc105 в папке FC блоки превратился в нормальный. KNKD вход исчез.
Закрыл проект не сохраняя. Открыл и понятул вновь изS5-S7 105й, согласился... и теперь у меня везде и в S5-S7, Ti-S7 и в папке FC проекта вновь уродец.
И теперь описанный фокус выше не проходит.

если, например,в проекте было 10 уродцев, то при добавлении в первые разы еще одного FC 105 го из Ti-S7 в новую сеть, все блоки в проекте переделывались.

вообщем с чего начал на том и сел.
по хелпу, 105 со скрина, как бы только при применении S7-400 ..

psps

однако, это от какого то проекта последствия, так как на двух компах наблюдается
на "PG" версия step-а 5.3, лицензия на ноутбуке "самая свежая" 5.5.
одно компы объеденяет, я мог один и тот же проект обрабатывать.
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: [?]: Как и что выводится на аналоговый выход и FC105 ?

Post by CHANt »

Oll Bell wrote: вообщем с чего начал на том и сел.
по хелпу, 105 со скрина, как бы только при применении S7-400 ..
Из проекта, из папки Bloсks, надо удалить не нужный FC105 "Read Analog Value 464-2" Проверить в таблице "Symbols" что удалился этот FC105. Если все равно осталась строка, то удалить и там, чтобы не переименовывался. Затем уже вставить нужный FC105 "Scale"