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

Ergebnis 1 bis 2 von 2

Thema: Portierung b&r 2003 auf X20 (RS232 problem)!

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    ich muss die SW, welche für SG3 (Motorolla) mit AS2.4 geschrieben war und ich schon auf AS2.7 portiert habe, auf SG4 (Intel) portieren.

    Die Protierung habe ich mittlerweile gemacht. Leider bei der RS232 habe ich einen Problem.

    An RS232 habe ich ein PocketTerminal angeschlossen. Mit dem kann ich die aktuelle Daten lesen und auch Daten auf die Steuerung schreiben.

    Ich verwende hierfür den DVFrame Bibliothek.

    #include <dvframe.h>

    _LOCAL FRM_xopen_typ fFRM_xopen;
    _LOCAL XOPENCONFIG sXOpenConfig;
    _LOCAL FRM_read_typ fFRM_read;
    _LOCAL FRM_rbuf_typ fFRM_rbuf;
    _LOCAL FRM_gbuf_typ fFRM_gbuf;
    _LOCAL FRM_write_typ fFRM_write;
    _LOCAL FRM_robuf_typ fFRM_robuf;

    Ich habe die Datenstruktur in ein anderes Datenfile (vardef.d) gespeichert, welche ungefähr so aussieht:

    typedef struct {
    UINT uiPage;
    UINT uiX;
    UINT uiY;
    UINT uiLng;
    UINT uiNK;
    UINT uiDisplayOpt;
    UINT uiEditType;
    UINT uiVisibility;
    void *ptrVar;
    UINT uiType;
    INT iExp;
    UDINT udOldVal;
    } tVARDEF;

    tVARDEF sVardef[] =
    {
    { 101, 3, 2, 4, 0, 0x0000, EDT_STD, 0x0000, &gPtVWinder , U16 },
    { 102, 4, 2, 3, 0, 0x0000, EDT_STD, 0x0000, &gPtBoostSp , U16 },
    ....
    };

    Das Programm ist in C geschrieben. Ich habe einen Funktion, der mir die Daten auf das PT schreibt:

    /****************************************************************************/

    void
    writeStringXY( USINT usSpalte, USINT usZeile, USINT* pStr, UINT uiStrLength )
    {
    USINT Str[100];
    if ( (gCmdTrm.uiCommand == CMD_TRM_DO_SNAPSHOT) || (gCmdTrm.uiCommand == CMD_TRM_SEND_SNAPSHOT) ) {
    memcpy( &(snapShot[sSnap.usOffsZeile + usZeile][sSnap.usOffsSpalte + usSpalte]), pStr, uiStrLength);
    }
    else {
    Str[0] = 0x10;
    Str[1] = 0x1F + usSpalte;
    Str[2] = 0x1F + usZeile;
    memcpy( &(Str[3]), pStr, uiStrLength);
    writeString( &Str[0], uiStrLength + 3);

    }
    }

    void
    writeString( USINT* pStr, UINT uiStrLength )
    {
    fFRM_gbuf.enable = 1;
    fFRM_gbuf.ident = fFRM_xopen.ident;
    FRM_gbuf(&fFRM_gbuf);
    if ( !fFRM_gbuf.status ) {
    memcpy( (UDINT*)fFRM_gbuf.buffer, pStr, uiStrLength);
    fFRM_write.ident = fFRM_xopen.ident;
    fFRM_write.buffer = fFRM_gbuf.buffer;
    fFRM_write.buflng = uiStrLength;
    fFRM_write.enable = 1;
    FRM_write(&fFRM_write);
    if ( fFRM_write.status ) {
    fFRM_robuf.enable = 1;
    fFRM_robuf.ident = fFRM_xopen.ident;
    fFRM_robuf.buffer = fFRM_gbuf.buffer;
    fFRM_robuf.buflng = fFRM_gbuf.buflng;
    FRM_robuf(&fFRM_robuf);
    } else {
    }
    }
    else {
    }
    }
    ...



    Nun mein Problem ist, dass der Wert, welche ich auf das PT schreibe ist immer um eines Verschoben! Sprich, das Wert von Menü 102 wird in Menü 101 geschriebn, und von Menü 103 in Menü 102 usw. Die Werte werde ja via einen Zeiger übergeben. Meine Vermutung ist, dass die Adresse in
    fFRM_write.buffer = fFRM_gbuf.buffer;

    immer um eins verschoben ist.

    Ich bin hier wirklich am ende und weis nicht was ich noch ausprobieren sollte.

    Für jede Hilfe bin ich sehr Dankbar.

    Mfg.
    NaWas
    Zitieren Zitieren Portierung b&r 2003 auf X20 (RS232 problem)!  

  2. #2
    Registriert seit
    04.02.2013
    Beiträge
    5
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo NaWas,

    in der Automation Studio Hilfe unter Programmierung\Bibliotheken\Kommunikation\DVFrame\Funktionsblöcke\FRM_xopen() findest du den genauen Unterschied zwischen SG3 und SG4. Der Mode Parameter des FRM_xopen() Funktionsblocks ist in den Versionen unterschiedlich aufgebaut und muss daher manuell angepasst werden.

    Lg

Ähnliche Themen

  1. B&R - 2005er System auf X20 mit Panel portieren
    Von Alpquell im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 01.12.2010, 12:11
  2. B&R X20 Compact downoad
    Von Aussie im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 23.03.2010, 10:16
  3. B&R X20 Serielles Modul X20CS1020
    Von Anaconda55 im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 22.07.2009, 13:30
  4. Biete B&R 2003 & 2005 Hardware
    Von cooper500 im Forum Suche - Biete
    Antworten: 0
    Letzter Beitrag: 20.04.2009, 12:25
  5. B&R-X20 X2X IO-Aktualisierung
    Von Franschitz im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 07.10.2008, 23:56

Stichworte

Lesezeichen

Berechtigungen

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