logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak kod STL w Step7 dla CPU314 oblicza czas 15s z MW94 i MW96?

jacekzat1 06 Paź 2011 11:14 2054 2
  • #1 9998130
    jacekzat1
    Poziom 14  
    Posty: 148
    Pomógł: 5
    Ocena: 25
    Szanowni koledzy.
    Nie mogę rozszyfrować fragmentu kodu stl dla sterownika siemensa CPU314.

    A(
    L "czas_nap5"
    ITB
    T MW 94
    AN OV
    SAVE
    CLR
    A BR
    )
    JNB _00d
    L MW 94
    L 8192
    +I
    T MW 96
    _00d: NOP 0

    Zmienne "czas_nap5", MW94 są użyte tylko w tym fragmencie. MW96 jest czasem dla timera SD, dając w efekcie 15s (widoczne dopiero po podpięciu do sterownika). Korzystając z helpa w step7 jestem w stanie rozszyfrować operacje na poszczególnych słowach oraz w słowie statusu, ale nie wiem nadal skąd się bierze to 15s.
    Dla mnie zawartość słowa MW94 jest zwiększana o 8192 i zapisywana do MW96 do momentu pojawieniaym się 1 w bicie OV. Z helpa wynika, że OV przyjmie wartość 1 po tym, jak wynik działania instrukcji +I da wynik większy od 32767.
  • Pomocny post
    #2 10000088
    smichal1
    Poziom 12  
    Posty: 18
    Pomógł: 5
    Ocena: 1
    Szanowny kolego,
    Ten fragment kodu jest konwersją wartości typu INT zawierającej liczbę sekund dla timera do formatu S5time. Składa się on z kodu BCD (instrukcja ITB) oraz podstawy czasu, w tym przypadku to sekunda (8192). Reszta wygląda na zabezpieczenie przed ewentualnym przekroczeniem zakresu INT.
    Pozdrawiam
    Michał
  • #3 10000941
    jacekzat1
    Poziom 14  
    Posty: 148
    Pomógł: 5
    Ocena: 25
    Dziękuję. Umniejszyłem faktycznie roli funkcji ITB. 8192 po konwersji da 1000 (w domyśle ms). Nie rozumiem jeszcze po co autor tego programu tak komplikował kod.
    Mam taśmociąg, który pracuje cyklicznie w obie strony. W jedną stronę do czasówki ładowany jest czas bezpośrednio (s5...), w drugą stronę czas jest rozwiązany w ten właśnie sposób. Nie mam ProToola (licencji), ponieważ podejrzewam, że zainstalowany panel OP7 ustawia zmienną "czas_nap5". Jeszcze raz dziękuję za wskazówki.
REKLAMA