Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Page 1 of 2 12 LastLast
Results 1 to 10 of 12

Thread: Profibusadressierung

  1. #1
    Join Date
    02.12.2008
    Posts
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    bin gerade dabei eine Maschine in TwinCat zu programmieren. Stehe jetzt vor dem Problem, dass ich nicht weiß wie ich ein Pnozmulti über Profibus DP in mein Programm einbinden kann. Brauche ja irgendwie Adressen von dem Pnoz. Weiß aber nicht woher ich die bekommen kann. Hoffe das mir jemand helfen kann

    Gruß
    Reply With Quote Reply With Quote Profibusadressierung  

  2. #2
    Join Date
    14.08.2004
    Posts
    934
    Danke
    48
    Erhielt 73 Danke für 66 Beiträge

    Default

    Du kannst im System Manager alle Profibus-Geräte erscannen, so ganz automatisch.

  3. Folgender Benutzer sagt Danke zu drfunfrock für den nützlichen Beitrag:

    Schreininski (02.12.2008)

  4. #3
    Join Date
    02.12.2008
    Posts
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    Danke habe das jetzt auch gefunden stellt sich mir das nächste Problem! Gibt es bei Twincat einen Baustein der mir ein Byte in acht Bits umwandelt oder muss ich mir sowas selber machen? Wenn ja wie?

    gruß

  5. #4
    Join Date
    28.03.2008
    Posts
    144
    Danke
    19
    Erhielt 25 Danke für 25 Beiträge

    Default

    Wie wäre es mit dem Bitoperator?

    myByte.0 := TRUE; (* Setzt das erste Bit auf 1 *)


    IF myByte.4 THEN
    ; (* Machwas wenn das fünfte Bit true ist *)
    END_IF

    PS: Meineswissensnach kannst Du aber in TwinCAT auch ein Byte und die einzelnen Bits für ein und den selben Bereich anlegen.
    myByte AT %IB7 : BYTE;
    myBit0 AT %IX7.0 : BOOL;
    myBit1 AT %IX7.1 : BOOL;
    usw....
    Last edited by BoxHead; 02.12.2008 at 15:29.

  6. Folgender Benutzer sagt Danke zu BoxHead für den nützlichen Beitrag:

    Schreininski (02.12.2008)

  7. #5
    Join Date
    02.12.2008
    Posts
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    Ja denke so könnte das was werden. Hat mir sehr weiter geholfen. Ist manchmal doch einfacher wie man denkt..

  8. #6
    Join Date
    02.12.2008
    Posts
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    Ich war wohl ein bisschen zu voreilig. Habe ein ARRAY [0..7] of BOOL setze das erste ARRAY[0] auf ein BYTE. Jetzt will ich das BYTE umwandeln in acht Bits. Problem ich kann ja dem Array kein Byte, was schon mit z.B. AT%IB 7 zugewiesen ist, zuweisen. Wie mach ich das jetzt?

    gruß

  9. #7
    Join Date
    28.03.2008
    Posts
    144
    Danke
    19
    Erhielt 25 Danke für 25 Beiträge

    Default

    Ich dachte das hätte was mit dem Profibus zu tun und Du bekämst nur ein Byte rüber willst aber die einzelnen Bits abfragen.

    Aber das mit dem Array ist was ganz anderes. Wenn Du eine normale Bool Variable (die nicht einer physikalischen Adresse zugeordnet ist) definierst nimmt diese min. 1 Byte in Anspruch.

    Also ist Dein ARRAY [0..7] of BOOL acht Byte groß.

    Was willst Du denn überhaupt machen? Erklär mal bitte auf was Du wie zugreifen möchtest.

  10. #8
    Join Date
    02.12.2008
    Posts
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    Habe auf einem PNOZmulti verschiedene Eingänge die sollen auf ein Control Panel per Profibus gehen und dort in das TwinCat Programm eingebunden werden! Die Verbindung habe ich jetzt mal simuliert, weil ich das Programm noch nicht testen kann, da die Maschine noch im Umbau ist, die funktioniert auch soweit. Habe mir jetzt zum test das Eingangswort COM_PNOZMULTI_IN AT %IW100: ARRAY [0..19] OF USINT; angelegt und möchte jetzt dieses in Bits zerlegen, damit ich weiter programmieren kann.

  11. #9
    Join Date
    28.03.2008
    Posts
    144
    Danke
    19
    Erhielt 25 Danke für 25 Beiträge

    Default

    Quote Originally Posted by Schreininski View Post
    ...
    Habe mir jetzt zum test das Eingangswort COM_PNOZMULTI_IN AT %IW100: ARRAY [0..19] OF USINT; angelegt und möchte jetzt dieses in Bits zerlegen...
    Ein Array mit 20 USINT ist doch 20 Byte groß, was hat das mit dem Wort zu tun?

    Also Du kannst auf die Bits zugreifen in dem Du im Programm den Bit Operator verwendest.

    COM_PNOZMULTI_IN.0
    ...
    bis
    ...
    COM_PNOZMULTI_IN.15

    ----
    oder in dem Du das Eingangswort als Wort deklarierst und die Bit noch mal extra.

    COM_PNOZMULTI_IN AT %IW100 : WORD;
    COM_PNOZMULTI_Fritz AT %IX100.0 : BOOL;
    COM_PNOZMULTI_Hans AT %IX100.1 : BOOL;
    COM_PNOZMULTI_Paul AT %IX100.2 : BOOL;
    ....
    usw.

  12. #10
    Join Date
    02.12.2008
    Posts
    13
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also das klappt auch nicht! Bekomme von meinem PNOZ 20 Byte für den Ausgang und 20 Byte für Eingang!

    Die kann ich dann nur als Array[0..19] weiterverarbeiten und die wiederrum nur als ein merker z.B. Byte_1:BYTE;

    Kann ich denn jetzt nicht irgendwie dieses Byte mit Hilfe eines Bausteines zerlegen, sodass ich mit den einzelnen Bits weiter arbeiten kann?

    Steh glaub ich auf dem Schlauch habe auch schon das ganze Net abgesucht und nichts gefunden!

    Gruß

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •