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

Results 1 to 6 of 6

Thread: RS485 Schnittstellenkarte 750-652 liest Daten nicht ein

  1. #1
    Join Date
    27.09.2019
    Posts
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe folgendes Problem:
    Ich benutze eine 750-8206 PFC200-Steuerung zum Auslesen von Messgerätdaten via RS485.
    Zur Kommunikation wird ein herstellereigenes Protokoll verwendet.
    Benutze ich die OnBoard-Schnittstelle der Steuerung werden alle Daten richtig übertragen und die Verbindung funktioniert super.
    Wechsle ich jedoch zu einer Schnittstellenkarte (750-652) (COM wechseln) klappt die Verbindung nicht mehr.
    Die Indikatorleuchte "B" des Schnittstellenmoduls blinkt beim ausführen des Codes.

    Bitte um hilfreiche Tipps wie ich mit dem Schnittstellenmodul ebenfalls die Daten einlesen kann

    Wie gesagt ich benutze:
    Controller: PFC200 750-8206
    Modul: 750-652
    Programmierumgebung: Codesys 2.3
    Library: Serial_Interface_1-lib


    Hier der Code:
    Code:
    (*Sendedaten*)
    SendBuffer[0]:=16#1A; 
    SendBuffer[1]:=16#01; 
    SendBuffer[2]:=16#00; 
    SendBuffer[3]:=16#30; 
    SendBuffer[4]:=16#31; 
    SendBuffer[5]:=16#01; 
    SendBuffer[6]:=16#30; 
    SendBuffer[7]:=16#36; 
    SendBuffer[8]:=16#10;
    SendBuffer[9]:=16#30;
    SendBuffer[10]:=16#32; 
    SendBuffer[11]:=16#01; 
    SendBuffer[12]:=16#30; 
    SendBuffer[13]:=16#34; 
    SendBuffer[14]:=16#01; 
    SendBuffer[15]:=16#30;
    SendBuffer[16]:=16#36; 
    SendBuffer[17]:=16#01; 
    SendBuffer[18]:=16#30; 
    SendBuffer[19]:=16#32; 
    SendBuffer[20]:=16#10;
    SendBuffer[21]:=16#30; 
    SendBuffer[22]:=16#34; 
    SendBuffer[23]:=16#10; 
    SendBuffer[24]:=16#B3; 
    SendBuffer[25]:=16#E3; 
    SECFL(IN:= (NOT xSendActive) , PT:= T#500ms );
    
    
    HFLAG[1]:= SECFL.Q AND NOT HFLAG_M[1];
    HFLAG_M[1]:=SECFL.Q;
    
    
    IF HFLAG[1] THEN ReceiveBuffer.Index:=0; END_IF;
    
    
    COM(
        xOPEN_COM_PORT:= xOpenPort,
        bCOM_PORT_NR:=2  ,(*COM0 = Controllerinterface und funktioniert*)
        cbBAUDRATE:=5760 ,  (*57600Baud/s*)
        cpPARITY:= 2,  (*even = gerade*)
        csSTOPBITS:=1 ,
        cbsBYTESIZE:= 8,
        cfFLOW_CONTROL:= 24,  (* RS 485 / halfduplex / without handshake /without continous send =24*)
        iBYTES_TO_SEND:=26 ,
        ptSEND_BUFFER:= ADR(SendBuffer),
        xSTART_SEND:=xSendActive,
        utRECEIVE_BUFFER:=ReceiveBuffer,
        xINIT:=xInitPort ,
        bERROR=> berror,
        xCOM_PORT_IS_OPEN=>comopen
     );
    
    
    IF ReceiveBuffer.Index = 54 THEN (*M Recieve Buffer auslesen*)
    
    
    
    
    
    
    pInnentemp:=ADR(Innentemp);
    pInnentemp^:= ReceiveBuffer.Data[6];
    pInnentemp:=pInnenTemp+1;
    pInnentemp^:= ReceiveBuffer.Data[7];
    pInnentemp:=pInnenTemp+1;
    pInnentemp^:= ReceiveBuffer.Data[8];
    pInnentemp:=pInnenTemp+1;
    pInnentemp^:= ReceiveBuffer.Data[9];
    
    
    
    
    pTVal2:=ADR(TVal2);
    pTVal2^:= ReceiveBuffer.Data[27];
    pTVal2:=pTVal2+1;
    pTVal2^:= ReceiveBuffer.Data[28];
    pTVal2:=pTVal2+1;
    pTval2^:= ReceiveBuffer.Data[29];
    pTVal2:=pTVal2+1;
    pTVal2^:= ReceiveBuffer.Data[30];
    
    
    
    
    END_IF;
    
    
    
    
    IF HFLAG[1] AND NOT xSendActive THEN  xSendActive:=TRUE; END_IF;
    
    
    (*Fehlerhandling*)
    perror:=ADR(error);
    perror^:= 0;
    perror:=perror+1;
    perror^:= berror;
    
    
    
    
    IF (ReceiveBuffer.Index<>54) OR (berror <> 0) THEN xERR:=TRUE; ELSE xERR:=FALSE; END_IF; (*M RecieveBuffer größer 40 = Fault *)
    
    
    VERZ_ERR (IN:= xERR , PT:= T#10s );
    
    
    IF (VERZ_ERR.Q AND berror =0)  THEN
    %QW2010:= 16#0100;
    ELSIF (VERZ_ERR.Q AND berror >0) THEN
    %QW2010:= error;
    ELSIF (NOT VERZ_ERR.Q AND berror =0) THEN
    %QW2010:= 16#0000;
    END_IF;
    Reply With Quote Reply With Quote RS485 Schnittstellenkarte 750-652 liest Daten nicht ein  

  2. #2
    Join Date
    15.04.2015
    Posts
    45
    Danke
    0
    Erhielt 8 Danke für 8 Beiträge

    Default

    Hallo,

    probier einmal die Einstellung cfFLOW_CONTROL:= 4, anstatt mit 24.

    VG

  3. #3
    Join Date
    27.09.2019
    Posts
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo,
    das Ändern des Parameters hat leider nichts bewirkt.

    lg

  4. #4
    Join Date
    09.05.2016
    Posts
    100
    Danke
    2
    Erhielt 30 Danke für 27 Beiträge

    Default

    Hallo,

    die LED B ist die Sende-LED. Wenn die Empfangs-LED C nicht blinkt, hat das serielle Modul nichts empfangen.
    Überprüfe nochmal die Verdrahtung.

    Übrigens: Wenn du die Enumerationen verwendest wird der Code wesentlich lesbarer:

    cpPARITY:= PARITY_EVEN,
    csSTOPBITS:= STOPBITS_1,
    cbsBYTESIZE:= BS_8,
    cfFLOW_CONTROL:= HALFDUPLEX,

    Grüße

  5. #5
    Join Date
    15.04.2015
    Posts
    45
    Danke
    0
    Erhielt 8 Danke für 8 Beiträge

    Default

    Ja, die Verdrahtung könnte die Ursache sein.
    Sind die Klemmstellen 1<-->2 und 5<-->6 gebrückt?

    VG

  6. #6
    Join Date
    27.09.2019
    Posts
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    danke erstmal für die schnellen Antworten und Tipps.
    Hab jetzt nochmal die Verdrahtung gecheckt und eine schlechte Klemmstelle festgestellt
    Derzeitiger Stand ist also:
    -Karte wird angesprochen (Send-LED blinkt grün (B))
    -Nach Sicherstellen der korrekten Verdrahtung wird jetzt auch etwas empfangen (Recieve-LED blinkt grün (C))

    Jetzt hab ich das Problem das die Daten nicht richtig eingelesen werden.
    Konkret: der RecieveBuffer der bis 54 laufen sollte, bleibt bei 2 stehen.

    Zur Sicherheit habe ich den Code nochmal mit COM0 und der Onboard-Schnittstelle ausgeführt - über diese Schnittstelle funktioniert die Kommunikation tadellos.

    Bitte um weitere Tipps.
    lg

Similar Threads

  1. 750-8202 und 2x 750-652 Probleme
    By NeuerSIMATICNutzer in forum WAGO
    Replies: 8
    Last Post: 31.10.2018, 14:42
  2. Replies: 9
    Last Post: 20.01.2017, 18:27
  3. Replies: 13
    Last Post: 11.07.2014, 10:58
  4. Replies: 0
    Last Post: 23.04.2014, 17:45
  5. Replies: 0
    Last Post: 05.03.2014, 17:01

Tags for this Thread

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
  •