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

Ergebnis 1 bis 7 von 7

Thema: Beckhoff:SendString

  1. #1
    Registriert seit
    01.03.2008
    Beiträge
    487
    Danke
    3
    Erhielt 43 Danke für 39 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Kann mir bitte jemand mal ein Beispielcode geben.

    Ich möchte einen String (5 Zeichen) mittels einer KL6001 senden.

    Irgendwie sieht es aus als ob es funktionert, aber eigentlich dich nicht.

    Manchmal werden Zeichen abgeschnitten und den Puffer krieg ich auch nicht leer.

    Einfach nur wenn eine VAR True hat 'ABCDE' senden und fertig.

    Wie wirds gemacht ?

    MfG CAS
    www.cas-solution.de

    Alles geregelt...


    Weltraumflug in den USA zu gewinnen!
    Kratze hier ▒▒▒▒▒▒▒▒▒▒▒▒ mit einer Münze,
    und finde heraus, ob Du der Gewinner bist!
    Zitieren Zitieren Beckhoff:SendString  

  2. #2
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Es gibt nen Beispiel von Beckhoff:
    http://infosys.beckhoff.com/index.ph...n.htm&id=12539

  3. #3
    Registriert seit
    01.03.2008
    Beiträge
    487
    Danke
    3
    Erhielt 43 Danke für 39 Beiträge

    Standard

    das Beispiel hab ich genommen.
    1.)Falsche Klemme im Programm
    2.) Falsche Parameter
    3.) Und wenn ich das alles eingerichtet habe, dann schaufelt das Programm ständig des Buffer voll und die Übertraggung wird nicht mehr zeitnah ausgeführt.

    Einfach nur bei einem Ereignis 5 Bytes senden möcht ich.

    Mfg CAS
    www.cas-solution.de

    Alles geregelt...


    Weltraumflug in den USA zu gewinnen!
    Kratze hier ▒▒▒▒▒▒▒▒▒▒▒▒ mit einer Münze,
    und finde heraus, ob Du der Gewinner bist!

  4. #4
    Registriert seit
    19.11.2010
    Ort
    Dresden
    Beiträge
    45
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo CAS,

    ich habe die beiden Tasks umgesetzt und sende Strings in der langsamen Task mit folgendem Code:
    Code:
    DECLARATION:
    pTxBuffer : POINTER TO ComBuffer;
    pRxBuffer : POINTER TO ComBuffer;
    Send_String : SendString;
    xSend_Busy : BOOL;
    FP_Send : R_TRIG;
    
    CODE:
    
    pTxBuffer := ADR(SchnelleTask.Baustein.TxBuffer);
    pRxBuffer := ADR(SchnelleTask.Baustein.RxBuffer);
    IF FP_Send.Q OR xSend_Busy THEN
    Send_String(
     SendString := 'ABCDE',
     TXbuffer := pTxBuffer^,
     Busy => xSend_Busy,
     Error => ESend_Error);
    END_IF
    Und in der schnellen Task läuft bei mir noch:
    Code:
    DECLARATION:
    ComControl : SerialLineControl;
    xCommunicationError := BOOL
    CommunicationErrorID : ComError_t;
    PE_5By    AT %I*: KL6inData5B;
    PA_5By    AT %Q*: KL6outData5B;
    RxBuffer : ComBuffer;
    TxBuffer : ComBuffer;
    
    CODE:
    
    ComControl(
     Mode := SERIALLINEMODE_KL6_5B_STANDARD,
     pComIn := ADR(PE_5By),
     pComOut := ADR(PA_5By),
     SizeComIn := SIZEOF(PE_5By),
     TxBuffer := TxBuffer,
     RxBuffer := RxBuffer,
     Error => xCommunicationError,
     ErrorID => CommunicationErrorID);

  5. #5
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Zitat Zitat von cas Beitrag anzeigen
    das Beispiel hab ich genommen.
    1.)Falsche Klemme im Programm
    2.) Falsche Parameter
    3.) Und wenn ich das alles eingerichtet habe, dann schaufelt das Programm ständig des Buffer voll und die Übertraggung wird nicht mehr zeitnah ausgeführt.

    Einfach nur bei einem Ereignis 5 Bytes senden möcht ich.

    Mfg CAS
    Ich versteh jetzt auch das Problem nicht.
    Wenn du das original Beispiel nimmst, davon im Teil "Sample_KL6001" nur den Send() als "SendByte" verwendest. (und natürlich FAST(PRG) und MAIN(PRG)), dann hast du doch, was du möchtest.

    Die Konfig muss natürlich zu deiner Hardware passen.

  6. #6
    Registriert seit
    18.08.2010
    Beiträge
    35
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hello Mario,

    My Deutsche is not good ,so i will explain in English. Hope you can manage with it.

    In send string programme, try without xSend_Busy.And to get the data
    also create receive string programme in same manner.

    Still it didn't work Then:
    1.Check hardware and module KL6001 connections
    2.Check configuration (Baudrate,time and Data format) should be same as serial communication device
    3.Data might be too long then use EL6001 module with 22 bytes

    Check this out and still i don't understand your prorblem.

    Can you explain with snapshot or with programme ?

  7. #7
    Registriert seit
    19.11.2010
    Ort
    Dresden
    Beiträge
    45
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi tech007,

    I think you misunderstood me. My software works. I wanted to help with my example, only CAS.

    Greetings

Ähnliche Themen

  1. Beckhoff und LUX
    Von merlin im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 28.05.2009, 20:09
  2. Beckhoff K-Bus
    Von cas im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 04.02.2009, 10:26
  3. beckhoff
    Von lister67 im Forum Sonstige Steuerungen
    Antworten: 16
    Letzter Beitrag: 17.03.2007, 15:37
  4. Beckhoff
    Von Wilhelm im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 06.09.2005, 00:17
  5. beckhoff sps
    Von Markus im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 17.05.2005, 19:42

Lesezeichen

Berechtigungen

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