File deposit on remote file system

Hello,

I will have a PC with XP embedded connected to a S7 board with Ethernet.

I there a way for the S7 board to deposit a file on a disk shared by the PC ?

A kind of Net Share on PC side, that would be accessible with FileX ?

Thanks,


Pascal

  • Hello Pascal,

    As far as I'm aware, NetX does not support network drive features in Windows OS's (this is on the application layer, so you can use existing NetX Services to develop an application that does that). The simplest way for you to "send" files to the computer running Win XP would be to run an FTP Server (I know CoreFTP works well: http://www.coreftp.com/) and then use NetX FTP Client module to connect to the server and access the file system (there's no FileX API for it, however).

    Regards

  • In reply to Karol:

    Thank you Karol.

    Is there some API to use FTP client and FileX on a SDcard to deposit the file on the server ?

    I imagine the other way would be to use a FTP server on the S7 side ?

    Would it be more complicated and need more resources ?

    Pascal

  • In reply to Pascal DEPLANQUES:

    Hello Pascal,

    If I understand a question correctly, you'd like the Synergy board to read the SD card and deposit the file onto remote server. This is very much possible by using FTP client and FileX on SD Block Media. You will need to read your file into a buffer in RAM, before opening a file for write on an FTP server using nx_ftp_client_file_open() and nx_ftp_client_file_write().

    Regards

  • In reply to Karol:

    Yes, this is my question.

    However, the file to deposit is large, over 10MBytes, so does the FTP write accept Offset feature to send it packet by packets ?

  • In reply to Pascal DEPLANQUES:

    Hello Pascal,

    I believe the write pointer is always placed at the end of the file, so you can stream the data out to the server using consecutive write commands.

    Regards

  • In reply to Karol:

    Very good thank you Karol.

  • In reply to Karol:

    Hello Karol,

    I am doing the exact same thing...
    DK-S7G2

    following is our code:


    UStatus = nx_ftp_client_file_write (psDataLogDirRFT->psg_ftp_client,
    psFTP_NX_packet,
    FTP_TIMEOUT * NX_IP_PERIODIC_RATE);

    UStatus = nx_packet_release(psFTP_NX_packet);

    The problem is after "nx_ftp_client_file_write " the call to nx_packet_release fails and returns
    NX_PTR_ERROR (0x07)

    when we do not use "nx_packet_release" then we find that the
    NX_PACKET_POOL g_ftp_packet_pool0;

    gets exhausted... No available pool...

    Can you Please help me on this...

    Thank You in advance...
    Regards,
  • In reply to Surojit:

    When you transmit a packet with NetX, you don't call nx_packet_release() (unless there is an error in transmission). The packet is released by NetX after the packet has been transmitted (and in the case of TCP it has been acknowledged). However the function nx_ftp_client_file_write() will release the packet internally if there is an error :-

    What is the return value from the API nx_ftp_client_file_write()? How many packets do you have in the packet pool used for transmission? Do you have separate packet pools for transmitting and receiving, or only one packet pool?

  • In reply to Jeremy:

    Hi Jeremy,
    We had a lot of other IP Related issues (hence the delay) and now have circled to the same point
    I understand that nx_release is not needed even if nx_ftp_client_file_write is not successful. I will try this.
    Now during nx_ftp_client_file_write
    we are sometimes getting NX_WINDOW_OVERFLOW (0x39)
    We are using a pool with 1568 bytes per packet and number of packets are 10.
    We are using the same packet pool for send and recv.
    Thank you in advance,
    Regards,
    Surojit