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

Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 35 von 35

Thema: Beckhoff cx8090 und Modbus: Slave lesen.

  1. #31
    knuppel ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    10.01.2014
    Beiträge
    163
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ok....ich muss das bExecute immer auf true und false setzen.

  2. #32
    knuppel ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    10.01.2014
    Beiträge
    163
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    ok....ich muss das bExecute immer auf true und false setzen.

  3. #33
    Registriert seit
    01.04.2009
    Beiträge
    143
    Danke
    0
    Erhielt 30 Danke für 29 Beiträge

    Standard

    oder so...
    CASE i OF
    0: FB_MBCloseAll(
    bExecute:=TRUE ,
    tTimeout:= ,
    bBusy=> ,
    bError=> ,
    nErrId=> );
    IF NOT FB_MBCloseAll.bBusy THEN
    i:=10;
    END_IF
    5: FB_MBReadRegs(
    sIPAddr:=IP_Addr ,
    nTCPPort:=503 ,
    nUnitID:=1 ,
    nQuantity:=4 ,
    nMBAddr:=16#3032 ,
    cbLength:=8 ,
    pDestAddr:=ADR(Data) ,
    bExecute:=TRUE ,
    tTimeout:=t#3s ,
    bBusy=> ,
    bError=> ,
    nErrId=> ,
    cbRead=> );
    IF NOT FB_MBReadRegs.bBusy THEN
    IF NOT FB_MBReadRegs.bError THEN
    i:=5;
    ELSE
    i:=10;
    END_IF
    FB_MBReadRegs(bExecute:=FALSE);
    END_IF
    10: ;(*ERROR*)
    END_CASE

    So ist es besser, wenn es zu schnell für den Slave ist dann noch mal 10 oder 100ms warten....

  4. #34
    knuppel ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    10.01.2014
    Beiträge
    163
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich hab es so gelöst:

    xtimer();
    xtimer(CU:=TRUE);


    xtimer(CU:=FALSE);

    IF xtimer.CV=100 THEN readreg(bExecute:=TRUE);
    xtimer(RESET:=TRUE);
    ELSE xtimer(RESET:=FALSE);
    END_IF;
    readreg(bExecute:=FALSE);


    Vielleicht gehts besser, keine Ahnung. Bin in Sachen SPS am Anfang.

    Der Zähler Zählt bis 100, holt sich bei 100 die Daten und geht wieder auf 0.

  5. #35
    Registriert seit
    21.04.2012
    Beiträge
    62
    Danke
    14
    Erhielt 11 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Feldbus,

    ich finde zu FB_MBCloseAll keine Doku (Online oder im Informationssystem). Weisst du was dieser Befehl genau macht?

    Zu deinem Beispiel: Deinse case Anweisung kommt ja nie in den case 5, da nur innerhalb von case 5 auf case 5 verwiesen wird. Oder übersehe ich da was?

    Gruß,

    S.

Ähnliche Themen

  1. Beckhoff cx8090 und Modbus
    Von knuppel im Forum Feldbusse
    Antworten: 21
    Letzter Beitrag: 13.01.2014, 18:57
  2. Step 7 CP341 Modbus Slave-> Modbus Adressregister
    Von Magni im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 19.12.2013, 20:37
  3. Beckhoff Modbus TCP Slave
    Von MartinausM im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 18.07.2011, 08:44
  4. Slave-ID vom Modbus Slave einstellen
    Von senmeis im Forum Feldbusse
    Antworten: 3
    Letzter Beitrag: 14.07.2010, 17:24
  5. Unity Pro als Master und Modbus Slave
    Von eYe im Forum Feldbusse
    Antworten: 12
    Letzter Beitrag: 16.01.2009, 15:08

Stichworte

Lesezeichen

Berechtigungen

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