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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Phoenix Modbusserver

  1. #1
    Registriert seit
    19.01.2011
    Beiträge
    12
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo nochmal,

    ich habe mal wieder ne klitzekleine frage zu nem Phoenix problem:
    ich würde gerne die Prozessdaten aus meinem Programm per modbus server bereitstellen. Das wären einige Temperaturwerte, ein paar analoge Ein und Ausgangswerte und einige Boolesche Variabeln.

    wie um alles in der Welt befülle ich das COM_ARR_W_0_7167 datenword mit diesen Daten ? soweit ich alles verstanden habe gibt es dieses eine word was übergeben wird (am anschluss MODBUS Data), das ist 16 bit lang irgendwie scheint mir das zu kurz für alle meine daten oder habe ich da einen denkfehler?

    Vielen Dank schon mal
    Justuz
    Zitieren Zitieren Phoenix Modbusserver  

  2. #2
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.293
    Danke
    51
    Erhielt 130 Danke für 124 Beiträge

    Standard

    Sprichst du evtl. vom MBTCPS_ARR_W_0_2004 beim FB "MODBUS_TCP_Server_V1_2x"?
    Ansonsten ist COM_ARR_W_0_7167 ein Array aus 7168 Words.
    Welche Lib hast du denn eingebunden?
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  3. #3
    Justuz ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.01.2011
    Beiträge
    12
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich hab die Comunications library eingebunden.
    wie kann ich denn dieses Array befüllen ? mal angenommen ich gebe jeder Variable ein wort zur verfügung (das ist bei binären ein/ausgängen evt. ein bischen überdimensioniert - aber egal).
    Ich programmiere mit funktionsbausteinen.

    vielen Dank schon mal

  4. #4
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.293
    Danke
    51
    Erhielt 130 Danke für 124 Beiträge

    Standard

    Schau mal hier, vielleicht hilft das.
    Angehängte Dateien Angehängte Dateien
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  5. Folgender Benutzer sagt Danke zu Mobi für den nützlichen Beitrag:

    Justuz (08.03.2011)

  6. #5
    Justuz ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.01.2011
    Beiträge
    12
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank, das ist so ziemlich genau das was ich gesucht habe, warum findet man solche dokumentationen auf euere Website eigentlich nicht ?

    Ich werde das mal austesten und mich bestimmt noch mal zu der Thematik melden

  7. #6
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.293
    Danke
    51
    Erhielt 130 Danke für 124 Beiträge

    Standard

    Man findet sie. Ich suche z.B. immer erst nach dem ILC 350 ETH. Dann auf Downloads und ganz unten stehen Anwendungsbeispiele oder wenn die Kategorie neu ist "use_case", dann wurde es noch nicht geändert, ist ne Art Platzhalter. Dann lädst du dir das Setup runter, installierst es. Und dann gehst du in den Ordner, das was du willst und dort sind dann die PDF's in englisch und deutsch.
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  8. #7
    Registriert seit
    16.11.2013
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Gelöscht (doppelt)
    Geändert von Upuaut (24.03.2014 um 01:03 Uhr) Grund: Doppelt

  9. #8
    Registriert seit
    16.11.2013
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Gelöscht (doppelt)
    Geändert von Upuaut (24.03.2014 um 01:04 Uhr) Grund: Doppelt

  10. #9
    Registriert seit
    16.11.2013
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,

    bin gerade auf diesen Beitrag gestoßen. Habe auf einer ILC130 den Modbus TCP Server (1_07) am Laufen, der auch erfolgreich eine Verbindung zum Client (IP-Symcon) aufgebaut hat.
    Damit kann ich bereits Boolsche Variablen, Zahlen bis 65535 und Wörter (16bit) vom ILC130 mit der Ip-Symcon empfangen. Soweit, so gut...

    Nun habe ich aber 32bit Gleitkommazahlen und DWORD's weiterzuleiten. Dazu müßte ich nach IEEE 754 umwandeln und zwei Wörter zusammenfügen.
    Wie kann ich das in PCWORX realisieren. Hätte dazu jemand ggfs. ein Programmierbeispiel?

    Gibt es da etwas fertiges? Oder muss man da ganz viele Bit schieben?

    Danke und LG
    Upuaut
    Zitieren Zitieren 32bit über Modbus  

  11. #10
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.293
    Danke
    51
    Erhielt 130 Danke für 124 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    also von Phoenix gibt es da leider nix. Deshalb habe ich mir mal zwei Bausteine geschrieben.

    REAL_TO_IEEE754 sieht dann so aus:
    Code:
    REAL_TO_BUF_1(REQ:=xReq,BUF_FORMAT:=FALSE,BUF_OFFS:=DINT#0,BUF_CNT:=DINT#4,SRC:=IN,BUFFER:=aTmp);
    IN := REAL_TO_BUF_1.SRC;
    aTmp := REAL_TO_BUF_1.BUFFER;
    
    IF IN <> rINLast THEN
        xReq := TRUE;
    END_IF;
    
    IF REAL_TO_BUF_1.DONE THEN
        xReq := FALSE;
    END_IF;
    
    dwTmp.B0 := aTmp[0];
    dwTmp.B1 := aTmp[1];
    dwTmp.B2 := aTmp[2];
    dwTmp.B3 := aTmp[3];
    
    OUT := dwTmp;
    
    rINLast := IN;
    Und IEEE754_TO_REAL sieht so aus:
    Code:
    BUF_TO_REAL_1(REQ:=xReq,BUF_FORMAT:=FALSE,BUF_OFFS:=DINT#0,BUF_CNT:=DINT#4,BUFFER:=aTmp,DST:=OUT);
    aTmp := BUF_TO_REAL_1.BUFFER;
    OUT:=BUF_TO_REAL_1.DST;
    
    IF IN <> dwINLast THEN
        xReq := TRUE;
    END_IF;
    
    IF BUF_TO_REAL_1.DONE THEN
        xReq := FALSE;
    END_IF;
    
    aTmp[0] := IN.B0;
    aTmp[1] := IN.B1;
    aTmp[2] := IN.B2;
    aTmp[3] := IN.B3;
    
    dwINLast := IN;
    Als Datentyp musst du dannoch diesen hier anlegen:
    Code:
    TYPE
        ARRAY_OF_BYTE_0_3 : ARRAY [0..3] OF BYTE;
    END_TYPE
    Den Rest siehe Anhang.
    Angehängte Grafiken Angehängte Grafiken
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  12. Folgende 2 Benutzer sagen Danke zu Mobi für den nützlichen Beitrag:

    big_L (14.10.2014),Upuaut (28.03.2014)

Ähnliche Themen

  1. Phoenix ILC 170 ETH + IL ETH BK + IB IL AI 4/U
    Von valik.vak im Forum PHOENIX CONTACT
    Antworten: 24
    Letzter Beitrag: 17.06.2011, 11:22
  2. Profibusslave an Phoenix-SPS
    Von Ritschi im Forum PHOENIX CONTACT
    Antworten: 6
    Letzter Beitrag: 05.04.2011, 10:50
  3. Phoenix Bluetooth PC <-> CPU
    Von fr4nk im Forum PHOENIX CONTACT
    Antworten: 9
    Letzter Beitrag: 28.07.2008, 10:57
  4. Phoenix IBS RT 24 DI 32-T
    Von ralfm im Forum PHOENIX CONTACT
    Antworten: 0
    Letzter Beitrag: 26.02.2005, 11:38
  5. PC-Worx von Phoenix
    Von schlumpf_schlaubi im Forum PHOENIX CONTACT
    Antworten: 2
    Letzter Beitrag: 13.10.2004, 15:18

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •