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

Results 1 to 5 of 5

Thread: TwinCAT 3 Database Server PLCDBCmd.Execute

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

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo @all,
    ich habe das im Handbuch Tc3 Database Server befindliche Beispiel zum Thema PLCDBCmd.Execute-Befehl kopiert, angepasst und gestartet.
    Das Ergebnis meines TcResultEvents lautet:

    ipTcResult 16#FFFFFA80136D63F8
    sSourcePath '...fb_Example.fbPLCDBCmd'
    sEventClass "TC3 Database Server Database Error"
    sSeverity Error
    nEventID 67
    sEventText "SQLState_HY000 General error"

    Schön dass Beckhoff eine Error-Liste mitbringt, jedoch nichts weiter dazu sagt als "General error".

    Manuelle SQL-Befehle über den SQL-Query-Editor funktioniert einwandfrei, das programmtechnische leider nicht :/

    Hat jemand vielleicht eine Vermutung oder eine Idee?

    Viele Grüße,
    Sidame00
    Reply With Quote Reply With Quote TwinCAT 3 Database Server PLCDBCmd.Execute  

  2. #2
    Join Date
    10.08.2012
    Posts
    498
    Danke
    0
    Erhielt 136 Danke für 129 Beiträge

    Default

    Scherzbold.
    Auf Basis eines allgemeinen Fehlers sollen wir dir jetzt Tipps/Ideen geben ohne zu wissen was du machst.
    Poste mal den entsprechenden Code des Aufrufs mit rein... (incl. Definition).
    Ansonsten: Es gibt ja auch ein Code-Beispiel (Projekt)... Hast du da schon mal reingeschaut bzw. es verglichen?
    https://infosys.beckhoff.com/content...76834269254491

    Guga

  3. #3
    sidame00 is offline Neuer Benutzer
    Themenstarter
    Join Date
    29.03.2018
    Posts
    15
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    Danke Guga,
    das manuelle Logging in die PostgreSQL Datenbank funktioniert aus dem SQL-Query-Editor raus einwandfrei, an der Anbindung (und n sCmd) kann es somit nicht liegen.
    Anzumerken ist zudem, dass Visual Studio immer häufiger einfach abstürzt...
    Resultierender Fehler, siehe erster Post.

    bOnes habe ich nach einem "ERROR_TOO_MANY_SEM_REQUESTS"-Error eingefügt, damit der Upload erstmal nur einmal erfolgt

    Code:
    TYPE ST_DataAll2 :
    STRUCT
        colInteger1: DINT;
        colInteger2: DINT;
        colInteger3: DINT;
    END_STRUCT
    END_TYPE
    Code:
    FUNCTION_BLOCK FB_Example
    VAR
        fbPLCDBCmd    : FB_PLCDBCmd(sNetID := '', tTimeout := T#5S);
        sCmd        : STRING (1000); 
        myStruct     : ST_DataAll2;
        aPara        : ARRAY[0..2] OF ST_ExpParameter;
        
        bOnces: BOOL := FALSE;
        
        ipTcResult: I_TcResultEvent;
        sSourcePath: STRING(255);
        sEventClass: WSTRING(255);
        sSeverity: E_Severity;
        nEventID: UDINT;
        sEventText: WSTRING(255);
    END_VAR
    Code:
    // set Parameter configuration
    aPara[0].sParaName := 'colInteger1';   aPara[0].eParaType := E_ExpParameterType.Int32;      aPara[0].nParaSize := 4;
    aPara[1].sParaName := 'colInteger2';   aPara[1].eParaType := E_ExpParameterType.Int32;      aPara[1].nParaSize := 4;
    aPara[2].sParaName := 'colInteger3';   aPara[2].eParaType := E_ExpParameterType.Int32;      aPara[2].nParaSize := 4;
    
    // set command
    sCmd := 'INSERT INTO "MyTableName2" ( "colInteger1", "colInteger2", "colInteger3") VALUES ( 0, 0, 0)';
    
    // call functionblock
    IF NOT bOnces THEN
         fbPLCDBCmd.Execute(
            hDBID:= 1, 
            pExpression:= ADR(sCmd), 
            cbExpression:= SIZEOF(sCmd), 
            pData:= ADR(myStruct), 
            cbData:= SIZEOF(myStruct), 
            pParameter:= ADR(aPara), 
            cbParameter:= SIZEOF(aPara)) ;
            bOnces := TRUE;
        IF NOT fbPLCDBCmd.bBusy THEN
                ipTcResult := fbPLCDBCmd.ipTcResultEvent;
                sSourcePath:= ipTcResult.SourcePath;
                sEventClass := ipTcResult.EventClassDisplayName;
                sSeverity := ipTcResult.Severity;
                nEventID := ipTcResult.EventId;
                sEventText := ipTcResult.Text;
        END_IF
    END_IF

  4. #4
    sidame00 is offline Neuer Benutzer
    Themenstarter
    Join Date
    29.03.2018
    Posts
    15
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    @ Guga
    Das von dir verlinkte Beispiel ist gut, leider jedoch noch weiter von meinem Vorhaben entfernt als das Beispiel aus dem Handbuch, das meinem Code zu Grunde liegt.

    Grüße Sidame00

  5. #5
    sidame00 is offline Neuer Benutzer
    Themenstarter
    Join Date
    29.03.2018
    Posts
    15
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich kann das Thema schließen.

    es ist das gewohnte "halber Tag auf die Seite legen und nochmal ungeändert öffnen"...jetzt gehts...keiner weis warum

    Hauptsache alle sind glücklich

Similar Threads

  1. Replies: 2
    Last Post: 09.03.2017, 14:56
  2. TwinCAT Database Server verbindung
    By Stanku in forum CODESYS und IEC61131
    Replies: 5
    Last Post: 26.06.2014, 06:07
  3. TwinCAT Database server
    By PeterT in forum CODESYS und IEC61131
    Replies: 2
    Last Post: 05.07.2013, 19:00
  4. Replies: 0
    Last Post: 21.01.2013, 19:11
  5. TwinCat Database Server CE - Fehler beim Starten des Servers
    By Majestic_1987 in forum CODESYS und IEC61131
    Replies: 1
    Last Post: 06.09.2012, 14:18

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
  •