Autor Thema: FTP_CLIENT on Eaton stops after 4 kB transfer  (Gelesen 10012 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline karst

  • Newbie
  • *
  • Beiträge: 9
  • wie schön ist elektrizität
    • Profil anzeigen
    • Perfect Industrial Controls and Automation
    • E-Mail
FTP_CLIENT on Eaton stops after 4 kB transfer
« am: 11. November 2014, 12:08:06 »
I try to send a file from an Eaton HMI/PLC to a FileZilla Server.
This works for files smaller than 4 kB. With larger files the FB times out with ERROR_T = 16#05 and ERROR_C = 16#03DE0096. (step 990, last response 150 opening data channel).
I know this works OK with the WAGO plc's so I made a compare.
Attached the Wireshark en LOG_CL debug info for the EATON and the WAGO.
But I can't find the reason why the connection on the data channel in the EATON is "gracefully timeout", PLC_PRG.FTP_CLIENT.IPC2.c_status = 253. Please help.
For EATON test plc contact on pm.

[gelöscht durch Administrator]

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: FTP_CLIENT on Eaton stops after 4 kB transfer
« Antwort #1 am: 11. November 2014, 19:41:10 »
module ftp_client:

210:IF S_BUF2.SIZE = UINT#0 THEN (* warten bis alle daten gesendet sind *)
      IF FSD.FILE_SIZE - FSD.OFFSET > UDINT#0 THEN    <---- set a breakpoint here and check the fsd.filesize
         FSD.MODE := BYTE#1; (* vorhandene Datei zum lesen öffnen *)
         S_BUF2.SIZE := UINT#65535; (* maximale länge einlesen *)
         IP_C2.MAILBOX[2] := BYTE#1; (* IP Senden blockieren *)
         step := 200;
      ELSE
         IP_C2.C_ENABLE := FALSE; (* FTP Datenkanal schliessen *)
         step := 300;
      END_IF;
   END_IF;

Offline karst

  • Newbie
  • *
  • Beiträge: 9
  • wie schön ist elektrizität
    • Profil anzeigen
    • Perfect Industrial Controls and Automation
    • E-Mail
Re: FTP_CLIENT on Eaton stops after 4 kB transfer
« Antwort #2 am: 11. November 2014, 21:41:09 »
First time: FSD.FILE_SIZE = 21958
Second -- seventh time: FSD.FILE_SIZE = 21958
There after other program path with the time-out.
Attached the screen dump of the LOG_CL, the WireShark capture, my program and the test file.


[gelöscht durch Administrator]

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: FTP_CLIENT on Eaton stops after 4 kB transfer
« Antwort #3 am: 12. November 2014, 00:18:56 »
one more test

VAR_GLOBAL CONSTANT
   NETWORK_BUFFER_LONG_SIZE : UINT := 4095;   <--- change to 2047 or less ...
   NETWORK_BUFFER_SHORT_SIZE : UINT := 1407;
   LOG_MAX : INT := 40;
   LOG_SIZE : INT := 80;
   ELEMENT_LENGTH : INT := 250;
END_VAR

Offline karst

  • Newbie
  • *
  • Beiträge: 9
  • wie schön ist elektrizität
    • Profil anzeigen
    • Perfect Industrial Controls and Automation
    • E-Mail
Re: FTP_CLIENT on Eaton stops after 4 kB transfer
« Antwort #4 am: 12. November 2014, 07:05:29 »
NETWORK_BUFFER_LONG_SIZE = 1500 same results as before. Timed out after 30 seconds. But I noticed after about 10 seconds the IP error in LOG-CL.MSG[74]. IP_ID 2 is for the data channel.

P.S. my next forum visit is likely coming Friday.

[gelöscht durch Administrator]

Offline karst

  • Newbie
  • *
  • Beiträge: 9
  • wie schön ist elektrizität
    • Profil anzeigen
    • Perfect Industrial Controls and Automation
    • E-Mail
Re: FTP_CLIENT on Eaton stops after 4 kB transfer
« Antwort #5 am: 14. November 2014, 13:05:58 »
Peewit,

I redid the test with NETWORK_BUFFER_LONG_SIZE = 1407 and break point in step 210, program halt on this break point 23 times. Only 1,37 KB of the test file (22 KB) is actually transporter to the ftp destination.
Somehow the FTP_CLIENT stops transmitting after the first data pack. What does the IP_ERROR mean in MSG[75], see attachment?

What can I do to get this solved?

[gelöscht durch Administrator]

Mullacott

  • Gast
Re: FTP_CLIENT on Eaton stops after 4 kB transfer
« Antwort #6 am: 16. November 2014, 16:24:49 »
Sorry to hijack your thread, but you are not the only one.

I have been having the same problem working on it for two weeks, it will only send a file up to what ever is set in NETWORK_BUFFER_LONG_SIZE : UINT := 4095;
Hope someone can help.


Offline karst

  • Newbie
  • *
  • Beiträge: 9
  • wie schön ist elektrizität
    • Profil anzeigen
    • Perfect Industrial Controls and Automation
    • E-Mail
Re: FTP_CLIENT on Eaton stops after 4 kB transfer
« Antwort #7 am: 09. Dezember 2014, 14:45:18 »
OK now with a little smile: I patched the error!! (see the (* XXXX *) in the screenshot)

But the source of the error lays deeper in the library.
The interlocking between FTP_CLIENT, IP_CONTROL and FILE_SERVER is not completely correct. IP_CONTROL is instructed to send packets of zero size. This is very successful so the number of "bytes_sent" is indeed zero. This causes the c_status := 253 and a termination of the connection.

In my opinion the S_BUF.SIZE is being abused for handshaking. A possible way to solve this could be to expand the NETWORK_BUFFER type with a field for it's maximum size. This would require recoding of at least the three FB named above. Should I just carry on and send in what I think could be a solutions or are there other developing guidelines I should take in consideration?

[gelöscht durch Administrator]