Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

STEP7 - s7-300 kopiowanie całego bloku DB

Krzysiek_k1984 02 Apr 2009 19:03 7293 12
SterControl
  • #1
    Krzysiek_k1984
    Level 13  
    Witam.

    Dopiero od niedawna zajmuję się programowaniem sterowników siemensa stąd mój problem. Chciałbym skopiować całą zawartość bloku DB20 (obrazek poniżej) do bloku np. DB1. W jaki sposób najłatwiej i/lub "najładniej" zrobić to w języku drabinkowym?

    STEP7 - s7-300 kopiowanie całego bloku DB

    Z góry dzięki z wszelką pomoc :D
  • SterControl
  • SterControl
  • #3
    Krzysiek_k1984
    Level 13  
    Tylko jest mały problem. Stworzyłem sobie Function Block (FB) w którym wykonuje różne operacje (m. in. tworzę ramkę potrzebną do komunikacji z falownikiem po profibusie, wysyłam i odbieram dane itp.). To właśnie w tym bloku FB zapisuje dane do DB20. W nim też muszę skopiować dane z bloku DB20 do DB1, a w Function Block niestety nie mogę wstawić SFC20 :|
  • #4
    marte
    Level 13  
    Krzysiek_k1984 wrote:
    Witam.

    Dopiero od niedawna zajmuję się programowaniem sterowników siemensa stąd mój problem. Chciałbym skopiować całą zawartość bloku DB20 (obrazek poniżej) do bloku np. DB1. W jaki sposób najłatwiej i/lub "najładniej" zrobić to w języku drabinkowym?

    STEP7 - s7-300 kopiowanie całego bloku DB

    Z góry dzięki z wszelką pomoc :D


    L P#0.0
    LAR1

    L 100 // ilość czytanych bytow
    next: T #petla

    OPN DB20
    L DBB [AR1, P#0.0]
    T #tmp

    OPN DB1
    L #tmp
    T DBB[AR1, P#0.0]

    +AR1 p#1.0

    L #petla
    LOOP next
  • #5
    Krzysiek_k1984
    Level 13  
    Dzięki za pomoc :) A czy mógłbym prosić o napisanie tego w języku drabinkowym? Tego języka jeszcze nie potrafię :/
  • #6
    adner
    Level 12  
    przy takich operacjach musisz to zrobić w STL.
    Poczytaj helpa :-) nie taki diabeł straszny.
  • #7
    Krzysiek_k1984
    Level 13  
    OK DZIĘKI :) Nic tylko nauczyć się STL'a
  • #8
    Wawrzo.
    Automation specialist
    Dziwne bo właśnie sprawdziłem i blok SFC20 bez żadnych problemów wstawiam w bloku FB. Należy to tylko zrobić w oddzielnym necie.
    Co do pisania w STL to moje zdanie jest takie że szkoda czasu na coś co jest tylko w step7 (chociaż język ten nie jest mi obcy) język ten niejest zawarty w normie IEC 61131-3 i nie występuje w innych systemach do projektowania. Poza tym pisanie w nim dużych systemów mija się z jakąkolwiek celowością. Asembler już dawno przestał być językiem efektywnym do pisania dużych aplikacji.

    CALL "BLKMOV"
    SRCBLK :=P#DB10.DBX 0.0 BYTE 22
    RET_VAL:=MW100
    DSTBLK :=P#DB1.DBX 0.0 BYTE 22
    NOP 0


    Wawrzo.
  • #9
    Krzysiek_k1984
    Level 13  
    Już mogę wstawić SFC20. Nie wiem co było, ale restartowałem kompa i śmiga :) Dzięki wszystkim za pomoc ;)
  • #10
    gandalftaurus
    Level 12  
    Dwa pytania do omawianego problemu:
    1. Czy blok docelowy, do którego zamierzam wkleić dane powinien być wcześniej utworzony? Czy może funkcja sama go sobie stworzy?
    2. Jeśli nowy DB należy stworzyć samemu, to czy ma być pusty, czy trzeba wpisać do niego odpowiednie zmienne w odpowiedniej ilości, tak aby przeniesione zostały wyłącznie wartości poszczególnych zmiennych?
  • #12
    adrf87
    Level 9  
    Witam;

    Mam problem zwiazany ze skopiowaniem danych z jednego DB do drugiego. Konkretnie potrzebuje skopiować konkretny bit. Jak to zrobić.??
    Czy:
    A db1.dbx0.0
    = db2.dbx0.0
    jest poprawny?

    Pozdrawiam
  • #13
    bogdan_16
    Level 14  
    Przetestuj to.

    Dodano po 2 [minuty]:

    Nioe udalo sie wkleic programu. przepraszam jutro sprawdze dlaczego.

    Dodano po 3 [minuty]:

    Teraz jest.

    Dodano po 46 [sekundy]:

    Teraz jest.

    Dodano po 2 [minuty]:

    Teraz jest.

    Dodano po 56 [sekundy]:

    Niestety wyskakuje blad i nie moge wyslac pliku.