Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[S7 1200] Transfer danych z CM RS232 do bloku danych

puniek 08 Dec 2010 21:55 2925 3
  • #1
    puniek
    Level 10  
    Witam,
    Mam problem w zapisaniu danych z bufora modułu komunikacyjnego do bloku DB. Z tego co wyszukałem w sieci to należy to zrobić poprzez "pointer" w wejściu BUFFER w bloku RCV_PTP. W Siemens-owskim przykładzie pointer ten wygląda tak:

    P#DB2.DBX12.0 BYTE 80

    Ponieważ DB ma też nr. 2 a długość paczki danych wynosi 6 bajtów na pewno będzie miał taką formę:

    P#DB2.DBX__.0 BYTE 6

    Moje pytanie to: co powinno być w miejscu czerwonych podkreślników? Pole w bloku danych to String[6].

    Dodam, że dane pochodzą z czytnika kodów Unique który podłączony jest do modułu komunikacyjnego przez port RS232.
  • #2
    jakubch86
    Level 15  
    P#DB2.DBX12.0 BYTE 6 czyli numer bajtu od którego mają zostać zapisane wartość Natomisat BYTE 6 określa wielkość tej paczki. Nie miałem okazji tego sprawdzić ale powinno być ok Korzystałeś z tego przykładu?
    http://support.automation.siemens.com/WW/llisapi.dll?query=40603943&func=cslib.cssearch&content=adsearch%2Fadsearch.aspx&lang=en&siteid=csius&objaction=cssearch&searchinprim=0&nodeid0=4000024
  • #3
    puniek
    Level 10  
    Czyli np. jeżeli dwa pierwsze bajty zawierają długości paczki a informacja właściwa która mnie interesuje zaczyna się od trzeciego bajtu to czy wskaźnik powinien wyglądać tak: P#DB2.DBX03.0 BYTE 6 ?

    Baza danych do której bufor ma zapisywać odczytywane dane ma tylko jedno pole typu String[6].
    Skąd sterownik wie że właśnie do tego pola w bazie danych ma zapisać bufor z CM?

    P.s.: Tak dokładnie, wzoruję się na tym przykładzie.
  • #4
    jakubch86
    Level 15  
    no tak dokladnie P#DB2.DBX3.0 BYTE 6 czyli od bajtu trzeciego Natomiast miejsce dal buforu określasz w bloczku RCV_PTP [S7 1200] Transfer danych z CM RS232 do bloku danych