Elektroda.pl
Elektroda.pl
X
Elektroda.pl
MetalworkMetalwork
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Odczyt ujemnej temperatury SIEMENS SM 331

14 Sty 2013 14:25 3195 11
  • Poziom 11  
    Witam, mam problem dotyczący pomiaru ujemnej temperatury na sterowniku SIEMENS S7 300. Używany moduł termoparowy to SM 331, termopara typu K.

    Chcąc odczytać wartość bezpośrednio w stopniach Celsjusza dla na pewno ujemnej temperatury używając instrukcji PIW, odczytuje mi bzdurne wartości. Domyślam się, że problem jest właśnie w tym, że używana jest instrukcja PIW czyli zwracana wartość jest WORD. Teoretycznie zmiana typu wartości na INT powinna rozwiązać sprawę, ale tak się nie dzieje...Jedynym wyjściem jest zczytywanie temperatury w Fahrenheitach i następnie skalowanie na stopnie Celsjusza.

    Czy jest jakiekolwiek inne wyjście z tej sytuacji?
  • MetalworkMetalwork
  • Pomocny post
    Poziom 12  
    Witam,

    Oczywiście że jest :)

    Napisz dokładnie czym mierzysz temperaturę oraz zakres pomiaru.
    Lub zerknij do helpa na funkcję "Scale" chyba tak się nazywam, można ją wykorzystać do skalowania wejść analogowych.

    Generalnie chodzi o to aby przeskalować wartość odczytaną z PIW na jakieś jednostki inżynierskie w twoim przypadku stopnie Celsjusza.
  • Pomocny post
    Poziom 19  
    W HW masz dokładne ustawienia rodzaju czujnika, jednostkę, linearyzację i częstotliwość próbkowania oraz skalowanie. Wybranie odpowiedniego czujnika powoduje wyskalowanie wejścia na odpowiedni zakres. Wartość w PIW jest podawana np. 250 st = 25,0 st. Dobrze zapoznaj się z manual-em co do podłączania i konfiguracji termopar podłączanych bezpośrednio do wejścia. Robiłem coś takiego z Typ. J ale dla mnie była za mała dokładność (0,4 szt). W moim przypadku nie można było uzyskać normalnego wskazania wartości ujemnej ponieważ zakres INT jest 0-65565 czy jakoś tak :) i po przejściu przez 0 były głupoty. Więc zamiast bawiś sie w INT to albo PIW wprowadź bezpośrednio do regulatora albo do funkcji SCALE i operuj REAL.
  • MetalworkMetalwork
  • Poziom 11  
    PikaCZ: Stosowany jest moduł wejść analogowych termoparowych AIx8xTC o symbolu 6ES7331-7PF11-0AB0, z kolei termopara jest typu K, pomiar to temperatura zewnętrzna (zakres do ok.-30 stopni do +40 stopni C).

    Nie za bardzo chyba na tym module da się przeprowadzać skalowanie, gdyż moduł SM 331 do obsługi termopar, który używam od razu już daje przeskalowaną wartość w stopniach - mogę wybrać jedynie stopnie Celsjusza lub Fahrenheita, typ termopary i w sumie tyle.

    jazda_gazda: mam pytanie jak można odczytać wartość REAL skoro w Hardware rezerwuje adresy od 256 to 271, a jest 8 kanałów pomiarowych?

    Teraz powstaje dodatkowe pytanie - co robić, gdy wartość w Fahrenheitach również spadnie poniżej 0 i pojawią się ujemne liczby? Wtedy nawet programowe przeliczanie, które mam obecnie zastosowane nie będzie działało...
  • Pomocny post
    Poziom 19  
    Ja opisałem przypadek modułu 8AI ,a nie dedykowane termoparaowe. Sprawdzałem twój moduł i ma on ustawienia linearyzacji oraz zakresów. Jeśli uda Ci się wyskalować parametrami z HW to zmień na REAL (ITD, DTR) i po sprawie,a jeśli nie to wprowadź PIW na SCALE (FC105 w TI-S7 Converting Blocks) . Adresów masz 16 ponieważ każdy kanał zajmuje dwa :).
    1 kanał PIW 256
    2 kanał PIW 258
    ...
    8 kanał PIW 270
  • Poziom 11  
    Nigdzie w ustawieniach modułu nie widzę opcji do zmiany zakresów pomiarowych czy też linearyzacji, można prosić o szerszą podpowiedź?:)

    A co do 8 kanałów i ich adresów to właśnie dlatego pytam jak mogę odczytać wartość REAL dla jednego kanału skoro na PIW 256 jest jedna termopara a na PIW 258 już druga, a wartość REAL zajmuje przecież 4 bajty, a nie 2?

    Może Pan podać przykład jak mogę zastosować blok FC105 w odniesieniu do mojej sytuacji (pomiar ujemnej temperatury w stopniach Celsjusza)? Rozumiem, że na IN podaje sygnał z termopary, a co z HIGH LIMIT oraz LOW LIMIT?
  • Pomocny post
    Specjalista Automatyk
    Dla wymienionego modułu 6ES7331-7PF11-0AB0 masz takie ustawienia w HWConfig:

    Odczyt ujemnej temperatury SIEMENS SM 331

    Wspomniałeś coś o przeliczaniu ze 'F na 'C. Tam masz takie ustawienie i może nie masz poprostu ustawionych 'C.
  • Poziom 11  
    No właśnie to już próbowałem, bo to podstawowe ustawienie ;) i przy ujemnych temperaturach wyświetla bzdury. Dlatego muszę odczytywać temperaturę w Fahrenheitach, a następnie programowo przeliczać sobie na stopnie Celsjusza. Tylko co w sytuacji gdy temperatura spadnie poniżej 0 Fahrenheita? Wypada to przy -17 stopniach Celsjusza, a przecież z takimi temperaturami a nawet większymi spotykamy się w normalnym świecie...
  • Pomocny post
    Poziom 19  
    Ale Ty kombinujesz :) Ustaw wszystko w HW ( st. Celsjusza) i użyj SCALE!! :)

    Odczyt ujemnej temperatury SIEMENS SM 331

    PIW336 (PIW337) to wejście analogowe jednego z czujników zajmujące dwa rejestry.
    Potem dwa wejścia skalujące. (Ja wpisałem dla przykładowej termopary Typ. J)
    MD100 to cztery bajty przechowujące aktualna temperaturę przekonwertowaną na zmienną REAL.
  • Poziom 11  
    Zrobiłem jak kolega napisał, ustawiłem w HW odczyt z modułu w stopniach Celsjusza, ale nadal to chyba nie jest to o co mi chodziło. Poniżej wrzucam screeny z programu:


    Odczyt ujemnej temperatury SIEMENS SM 331 Odczyt ujemnej temperatury SIEMENS SM 331

    Obrazek po lewej pokazuje sytuację, gdy jest dodatnia temperatura (2 stopnie), zaś ten po prawej pokazuje ujemną temperaturę - jak widać są to jakieś bzdurne wartości.

    Na PIW mam już wyskalowaną wartość w stopniach Celsjusza więc w jaki sposób mam ją jeszcze skalować drugi raz? A czy przypadkiem przy minusowej temperaturze i przy powyższym wskazaniu nie powinno się odejmować od wskazywanej wartości wartość 65534 (maksymalna wartość PIW)? Wtedy otrzymałbym ujemną wartość...

    Znalazłem zakres pomiarowy termopary typu K taki jak widnieje na obrazkach. Skąd kolega brał ten HIGH LIMIT oraz LOW LIMIT dla swojej przykładowej termopary J?

    Jeszcze raz proszę o łopatologiczne wyjaśnienie i cierpliwość ;)
  • Pomocny post
    Poziom 17  
    Jak masz 2 st Celsjusza na rys po lewej to musisz zamienić ITD a później DTR
  • Poziom 11  
    Hah jaka prosta sprawa, popełniłem zwykły błąd, który przy dodatnich temperaturach nie dawał o sobie znać - oczywiście konieczna jest konwersja na DI oraz REAL, co wskazywał też jazda_gazda.

    Teraz wszystko działa, dziękuję bardzo za cierpliwość, jeszcze raz przekonałem się o fachowości uzytkowników tego forum :) Pomroczność jasna nie zna granic jak widać ;)

    Jeszcze raz dziękuję ;)