Vous êtes sur la page 1sur 24

FTP Data Exchange

between FTP Server


and SIMATIC S7-1200
/ S7-1500
Siemens
SIMATIC S7-1200, SIMATIC S7-1500, FTP server Industry
Online
https://support.industry.siemens.com/cs/ww/en/view/81367009 Support
Warranty and Liability

Warranty and Liability

Note The Application Examples are not binding and do not claim to be complete
regarding the circuits shown, equipping and any eventuality. The Application
Examples do not represent customer-specific solutions. They are only intended
to provide support for typical applications. You are responsible for ensuring that
the described products are used correctly. These Application Examples do not
relieve you of the responsibility to use safe practices in application, installation,
operation and maintenance. When using these Application Examples, you
recognize that we cannot be made liable for any damage/claims beyond the
liability clause described. We reserve the right to make changes to these
Application Examples at any time without prior notice.
If there are any deviations between the recommendations provided in these
Application Examples and other Siemens publications e.g. Catalogs the
contents of the other documents have priority.

We do not accept any liability for the information contained in this document.
Any claims against us based on whatever legal reason resulting from the use of
the examples, information, programs, engineering and performance data etc.,
described in this Application Example shall be excluded. Such an exclusion shall
not apply in the case of mandatory liability, e.g. under the German Product Liability
Act (Produkthaftungsgesetz), in case of intent, gross negligence, or injury of life,
body or health, guarantee for the quality of a product, fraudulent concealment of a
Siemens AG 2017 All rights reserved

deficiency or breach of a condition which goes to the root of the contract


(wesentliche Vertragspflichten). The damages for a breach of a substantial
contractual obligation are, however, limited to the foreseeable damage, typical for
the type of contract, except in the event of intent or gross negligence or injury to
life, body or health. The above provisions do not imply a change of the burden of
proof to your detriment.
Any form of duplication or distribution of these Application Examples or excerpts
hereof is prohibited without the expressed consent of the Siemens AG.

Security Siemens provides products and solutions with industrial security functions that
informa- support the secure operation of plants, systems, machines and networks.
tion In order to protect plants, systems, machines and networks against cyber
threats, it is necessary to implement and continuously maintain a holistic,
state-of-the-art industrial security concept. Siemens products and solutions only
form one element of such a concept.
Customer is responsible to prevent unauthorized access to its plants, systems,
machines and networks. Systems, machines and components should only be
connected to the enterprise network or the internet if and to the extent necessary
and with appropriate security measures (e.g. use of firewalls and network
segmentation) in place.
Additionally, Siemens guidance on appropriate security measures should be
taken into account. For more information about industrial security, please visit
http://www.siemens.com/industrialsecurity.
Siemens products and solutions undergo continuous development to make them
more secure. Siemens strongly recommends to apply product updates as soon
as available and to always use the latest product versions. Use of product
versions that are no longer supported, and failure to apply latest updates may
increase customers exposure to cyber threats.
To stay informed about product updates, subscribe to the Siemens Industrial
Security RSS Feed under http://www.siemens.com/industrialsecurity.

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 2
Table of Contents

Table of Contents
Warranty and Liability ................................................................................................. 2
1 Introduction ........................................................................................................ 4
1.1 Overview............................................................................................... 4
1.2 Mode of Operation ................................................................................ 6
1.3 Components used ................................................................................ 8
2 Engineering ........................................................................................................ 9
2.1 Interface description "Ftp1X00Cmd" .................................................... 9
2.2 Configuring the FTP server ................................................................ 10
2.3 Integration into the user project .......................................................... 14
2.4 Operating "Ftp1X00Cmd" ................................................................... 18
2.5 Error handling of "Ftp1X00Cmd" ........................................................ 20
3 Valuable Information ....................................................................................... 21
3.1 Basics ................................................................................................. 21
3.2 Alternative solutions ........................................................................... 22
4 Annex ................................................................................................................ 23
4.1 Service and support ........................................................................... 23
4.2 Links and literature ............................................................................. 24
4.3 Change documentation ...................................................................... 24
Siemens AG 2017 All rights reserved

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 3
1 Introduction

1 Introduction
1.1 Overview
Initial situation
The common File Transfer Protocol (FTP) offers you the opportunity to store data
on server systems. FTP supports almost all server and operator systems.
All controllers of the product families S7-300, S7-400 and S7-1500 support the FTP
communication via special communication processors (CPs).
This application example shows you how a S7-1200 or S7-1500 can also use the
FTP communication without a special CP with certain FTP servers on the basis of
the open user communication (TCON, TSEND, TRCV and TDISCON).

Note The function of this application example can only be guaranteed with the FTP
servers tested.

Overview of the application example


The following figure provides an overview of the automation task.
Figure 1-1
Siemens AG 2017 All rights reserved

Integration of the S7-1200 / S7-1500 FTP server


into the existing FTP environment

FTP
PROFINET IE

+
ET 200SP
S7-1500 S7-1200
S7-300 with S7-400 with S7-1500 with CPU
CP 343-1 CP 443-1 CP 1543-1

Standard solution Solution without CP

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 4
1 Introduction

Description
In many projects and on many systems it is necessary to exchange process data
between controllers and servers/PCs, so that it can also be worked with the
incoming data outside of the control level. This is made possible by standardized
protocols. FTP is a simple protocol which works according to the client-server
principle and fulfills this task.
So far, users who used a S7-300, S7-400 or S7-1500 could only exchange process
data with a CP via FTP using a FTP server. In this application example, S7-1200
and S7-1500 are integrated into the existing FTP environment without
communication processor.

Advantages
The solution presented here offers the following advantages:
Simple and easy to understand FTP communication with an S7-1200 or S7-
1500 via the "Ftp1X00Cmd" block.
The command set of the block corresponds to that of the FTP communication
via S7-300, S7-400 or S7-1500 controllers with CP.

Note The FTP function block delivered with this application example exclusively fulfills
FTP client functions.
Siemens AG 2017 All rights reserved

Comparing the most important FTP features in the SIMATIC S7 environment


The following table lists the different options how you can use the FTP in the
SIMATIC S7 environment.
Table 1-1
FTP feature S7-300 or S7-400 S7-1500 S7-1200 and S7-1500
(CP 343-1 / 443-1) (CP 1543-1) (FB "Ftp1X00Cmd")
FTP server

Number of parallel 10/20 32 4
client connections
FTP active

FTP passive

FTPS

Full S7-FTP command
set

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 5
1 Introduction

1.2 Mode of Operation


Display of mode of operation of the "Ftp1X00Cmd" block
The following figure shows the mode of operation, the structure and states of the
"Ftp1X00Cmd" function block.
Figure 1-2

1
Data
entry
Control connection

2 Connect Disconnect 8

Connection faulty faulty


3 Disconnecting 9
establishment

Error;
7
error status

User Not
4 10
Authentication faulty Connected
Siemens AG 2017 All rights reserved

5 Send types Connected 6 Done 11

12 Execute

Send
13
mode

Send
14
command Data connection

Connection faulty Error; faulty


15 Disconnecting 17
establishment error status

faulty

Data transfer 16

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 6
1 Introduction

Description of the positions


The following table describes the different positions of figure 1-2.
Table 1-2
No. Action Description
1. Storing connection data in The following connection data is specified by the
DB user:
Server IP address; hardware ID of the interface used;
username; password; file name; FTP mode; FTP
command; FTP data; connection ID of controller
connection (the ID and the ID+1 are each required
per "Ftp1X00Cmd).
2. Click connect The user initiates the connection to the controller.
3. Establishing the The controller connection (port 21) to the FTP server
connection to the is established.
controller
4. User authentication The FTP client logs on with the user data specified by
the user (username, password).
5. Send types to server The type of the file to be transferred is send to the
FTP server.
6. Connected set The controller connection is now ready. FTP jobs can
now be carried out (no 12) up until the controller
connection is closed.
7. Error set; output error An error occurred while processing. The error-specific
Siemens AG 2017 All rights reserved

status status is output (see chapter 2.5)


8. Reset connect The user initiates termination from the controller
connection.
9. Terminate controller The controller connection (port 21) to the FTP server
connection is terminated.
10. Reset connected The controller connection is terminated.
11. Done set The connection establishment or the triggered job
has been executed.
12. Click execute The user initiates the execution of a FTP job.
13. Send mode to server The mode selected by the user (active, passive) is
sent to the FTP server.
14. Send FTP command to The FTP command selected by the user is sent to the
server. FTP server.
The following options are available:
STORE (save data)
APPEND (attach data)
RETRIEVE (fetch data)
DELETE (delete file)
15. Establishing the data The data connection (FTP active: Port 20) is
connection established to the FTP server.
16. Data transfer from or to Either storage of data on the FTP server or the
server assigned area on the controller (FTP client)
17. Terminate data connection The data connection (FTP active: Port 20) to the FTP
server is terminated.

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 7
1 Introduction

1.3 Components used


Hardware components for data exchange with S7-1200
The following table shows what components have been used for the application
example for the solution with S7-1200 and S7-1500.
Table 1-3
Component Numbe Article number Note
r
SIMATIC S7-1200 1 6ES7 214-1AG31- Alternatively, any other
CPU 1214C DC/DC/DC 0XB0 SIMATIC S7-1200 as of
firmware V4.0 can also be
used.
SIMATIC S7-1500 1 6ES7 513-1AL01-0AB0 Alternatively, any other
CPU 1513-1 PN SIMATIC S7-1500 or
ET 200SP CPU as of
firmware V1.0 can also be
used.

Software components
The following table shows what software components have been used for the
application example.
Siemens AG 2017 All rights reserved

Table 1-4
Component Qty. Article number Note
STEP 7 1 6ES7 822-1AA02-0YA5 Alternatively, a smaller
PROFESSIONAL V14 package is also possible.
SP1
FileZilla server 1 Freeware (GPL) The download link to
V0.9.46 FileZilla Server is
available in chapter 4.2: \4\

Projects and documentation


This application example consists of the following components:
Table 1-5
Component File name Note
Project 81367009_FTP_S7_ This zip file contains the STEP 7
1X00_PROJ_V2_0.zip project of the example project for
S7-1500 and S7-1200.
Documentation 81367009_FTP_S7_ This document.
1X00_DOKU_V2_0_en.pdf

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 8
2 Engineering

2 Engineering
2.1 Interface description "Ftp1X00Cmd"
Function description
The "Ftp1X00Cmd" FTP function block maps the FTP and hence enables the
actual FTP communication based on the open user communication. It can perform
the following FTP commands:
CONNECT (connect und log in)
DISCONNECT (disconnect and log out)
STORE (save data)
APPEND (attach data)
RETRIEVE (fetch data)
DELETE (delete file)

Block interface
The following figure shows the interfaces of the "Ftp1X00Cmd" function block.
Figure 2-1: Ftp1X00Cmd
Ftp1X00Cmd
Siemens AG 2017 All rights reserved

Bool connect connected Bool

Bool execute done Bool

Word connectionId busy Bool

Bool ftpActiveMode error Bool

Int ftpCmd status Word

String username

String password

String filename
ftpData
Variant Variant
connectionData
TCON_IP_v4 TCON_IP_v4

The following table describes the interfaces of the "Ftp1X00Cmd" function block.
Table 2-1: Parameters of Ftp1X00Cmd
Name P type Data type Comment
connect IN Bool TRUE = controller connection to FTP server
is connected
FALSE = controller connection is separated
execute IN Bool FTP job trigger at positive edge
connectionId IN Word Freely selectable connection ID of the TCP
connections.
NOTICE: ID and ID+1 are reserved. These
are unique throughout the project.
ftpActiveMode IN Bool FALSE = passive FTP mode
TRUE = active FTP mode

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 9
2 Engineering

Name P type Data type Comment


ftpCmd IN Int 2 = STORE, 3 = RETRIEVE, 4 = DELETE,
6 = APPEND
username IN String Username of a user of the FTP server
password IN String User password of the FTP server
filename IN String File name for FTP communication
connected OUT Bool TRUE = controller connection is connected
FALSE = controller connection is separated
done OUT Bool TRUE = job completed
busy OUT Bool TRUE = job in progress
error OUT Bool TRUE = error occurred
status OUT Word Outputs the current job status in form of a
HEX code
ftpData IN_OUT Variant User data for FTP communication
connectionData IN_OUT TCON_IP_v4 Data for the connection to FTP server (IP
address, hardware ID of interface used)

Note The output values "done" and "error" are only pending for one cycle if "connect"
and "execute" are not set.
Siemens AG 2017 All rights reserved

Function chart
The following function chart shows how the output parameters respond in
dependence to the input parameters.
Figure 2-2

connect
(manually)

execute
(manually)

connected

pending for one


done more cycle

busy

error

Data transfer of user-defined structures


The function block "Ftp1X00Cmd" provides at input "data" an Array of Bytes. With
the system function Serialize, you can copy defined user data (PLC data types) to
"Data" of the data block "ftpData". You can find a detailed description of the system
function Serialized in the TIA Portal Online Help.

on cycle
active

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 10
2 Engineering

2.2 Configuring the FTP server

Note For this application example the configuration of the FTP server is shown on the
example of the FileZilla server. For different FTP servers the required
configuration steps may also differ.
Function block "Ftp1X00Cmd" cannot be used with any FTP server. The function
is only guaranteed and tested with the following FTP servers: SIMATIC CP,
Filezilla and JanaServer.

Installation
The following instructions show you how to install the FileZilla server.
Table 2-2
No. Action Remark
1. Download the FileZilla server. The download link to FileZilla Server is
available in chapter 4.2.
This program is recommended for the
application example since it is easy to
operate and structured in a very
functional way.
2. Install the FTP server software on your Follow the instructions of the program.
server.
Siemens AG 2017 All rights reserved

Note Make sure you have the latest FileZilla server version.

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 11
2 Engineering

Configuration
The table below shows you the required steps for the configuration of the FileZilla
server. If another FTP server software is used, their manuals need to be followed
for commissioning. It is important to create a user with password and full
access to the files in its root directory for the application example to work
properly.
Table 2-3
No. Action Screen
1. Start the FileZilla server interface on your FTP
server and click on OK.
You are logged into the interface.
Here, you could track any of the actions
running on the server.

2. Click on Edit in the menu bar and then on


Settings to get to the server settings.

All of your desired settings can be made here,


for example the maximum number of users
and when the ftp server disconnects from the
ftp client ("Connection timeout").
Siemens AG 2017 All rights reserved

For this application example you can use the


default settings.

Confirm with OK.


3. Click on Edit in the menu bar and then on
Users to get to the user management.

Select the General page and click on Add.

Enter an FTP user name in the field, for


example, ftp_user.

Confirm with OK.

4. Enable the Password checkbox and enter the


password in the field next to it, for example,
ftp_user.

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 12
2 Engineering

No. Action Screen


5. Select the Shared folders page, and in the
Shared folders section you click on Add.

In the now opened Explorer, navigate to the


folder you wish to use as FTP root directory for
the created user. Select the folder (for
example, a previously created folder:
"FTP_Server") and confirm using "OK".

Enable the Read, Write, Delete and


Append checkboxes in Files.

If you want to generate new folder structures


and directories, enable the "Create", "Delete",
"List" and "+Subdirs" checkboxes in
"Directories".

Confirm using OK again.


6. Make sure that the server is online:
The online icon must be enabled.

Now you have created an FTP user with


password, root directory, and all of the
required rights. The FTP server is now ready
Siemens AG 2017 All rights reserved

for the application example and for processing


user requests.

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 13
2 Engineering

2.3 Integration into the user project

Note When assigning your devices IP addresses, make sure that the CPU that works
as FTP client and the FTP server are located in the same subnet and each IP
address is only assigned once within the subnet.

Prerequisites
The following prerequisites apply for the use of the application example:
S7-1200 as of firmware V4.0
S7-1500 as of firmware V1.0
Compatible FTP server has been configured

Restrictions
The following restrictions apply for this application example.
The application example works only with the tested FTP servers and as of the
software version tested.
Only four FTP users can be connected at the same time from a controller to a
FTP server.
Siemens AG 2017 All rights reserved

FTPS functionality cannot be integrated.


With a S7-1500 a maximum of 65536 bytes can be sent and with a S7-1200 a
maximum of 8192 bytes can be sent.
For non-optimized access the lower or upper limits of arrays are at -32768 or
32767.
For optimized access the lower or upper limits of arrays are at -2,147,483,648
or 2,147,483,647.
For S7-1200 and S7-1500 the maximum size of data to be received depends
on the maximum size of the reception memory of the CPU.

Note This note applies to S7-1500-CPUs


For a block with the "Optimized block access" property, an element of the Bool
data type requires a storage area of 1 byte. The same is the case for arrays of
Bool:

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 14
2 Engineering

Integrating project components into the user project


Copy the following project components into your TIA Portal project using drag-and-
drop:
"Ftp1X00Cmd" function block
"ftpData" data block
"Watch Table"
The "PLC tags" from "Default tag table [60]"
It is recommended to work with the "Reference projects" view here. The following
table shows you how to proceed.
Table 2-4
No. Action Screen or description
1. Open the view by enabling the "Reference
projects" checkbox in "View".
Siemens AG 2017 All rights reserved

2. Open the example project included in the "81367009_FTP_S7_1X00_PROJ_V2_0.zip"


"Reference projects" view.
3. Now you can copy the following project
components into your TIA Portal project using
drag-and-drop:
"Ftp1X00Cmd" function block
"ftpData" data block
"Watch Table"
The "PLC tags" from "Default tag
table [60]"

4. Call the "Ftp1X00Cmd" block in your cyclic


organization block and interconnect the block
as described in the following subchapter.

Note Working with a second TIA Portal instance requires more system resources than
the "reference projects" view.

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 15
2 Engineering

Interconnecting fixed parameters of the "Ftp1X00Cmd" block


Before you are using the "Ftp1X00Cmd" block for the FTP communication, the
following parameters have to be interconnected:
"connectionID"
"username",
"password",
"filename",
"ftpData"
"connectionData"
Interconnect the parameters as described in the interface description chapter.

In order to control the block you also have to interconnect the inputs "connect",
"execute", "ftpCmd" and "ftpActiveMode". In the application example, these inputs
are interconnected with "PLC tags". The tags used are listed in the tag table
included.
The following figure shows the call of the "Ftp1X00Cmd" block in the application
example.
Figure 2-3
Siemens AG 2017 All rights reserved

Note The interconnection of the parameters described here is the basic requirement
for the operation of the block. Without an interconnection, a controller connection
to the FTP server cannot be established.
The specified user has to be created on the server side in order to be able to
establish the connection.

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 16
2 Engineering

Data transfer of user-defined structures


With the "Ftp1X00Cmd" block, you cannot only send or receive an array of bytes or
characters but also specific data types or independent structures (data type
"STRUCT"). To do this, some adjustments have to be made on the SCL code of
"Ftp1X00Cmd".
The following table explains what you have to change on the SCL code.
Table 2-5
No. Action Description
1. Interconnect the "DATA" INOUT The data received on the data
parameter of the "InstTrcvDataConn" connection is now no longer saved in a
multi instance in code row 737 with the data buffer but is directly transferred to
"ftpData" INOUT parameter of the the "ftpData" INOUT parameter.
"Ftp1X00Cmd" block.
2. Comment out the code rows 405 to Since the data is directly transferred to
420. ftpData, the data buffer no longer has
to be copied.
3. Interconnect the "ftpData" INOUT The structure attached by you is now
parameter of the "Ftp1X00Cmd" block used for sending ("STORE"/"APPEND"
with the structure used by you. command) and receiving ("RETRIEVE"
command).
Siemens AG 2017 All rights reserved

Note If you adjust the code, a maximum of 8192 bytes can be received by
"Ftp1X00Cmd".

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 17
2 Engineering

2.4 Operating "Ftp1X00Cmd"

Note The prerequisite for successful operation is that the FTP server is compatible
with the "Ftp1X00Cmd" block and that it has been configured as described in
chapter 2.2.

Description of the operation of the "Ftp1X00Cmd" block


The "Ftp1X00Cmd" block is mainly controlled via the inputs "connect", "execute",
"ftpCmd" and "ftpActiveMode".
This is where the "connect" input, controls the connection establishment and
termination of the controller connection to the FTP server. As long as data is
exchanged it has to remain "connect" TRUE. If "connect" is set to FALSE the
termination of the controller connection starts and the user connected to the FTP
server is logged out.
The FTP command for data transmission (2=STORE, 3=RETRIEVE, 4=DELETE,
6=APPEND) is specified using the "ftpCmd" input. The transfer mode
(TRUE=active, FALSE=passive) is specified using the "ftpActiveMode" mode.
As soon as the controller has a controller connection to the FTP server (output
"connected"=TRUE), a FTP mode is set, a valid FTP command has been selected
and a valid file name/path specified, you can process FTP commands with a
positive edge on the "execute" input.
Siemens AG 2017 All rights reserved

The following figure is to illustrate the dependencies of the inputs and outputs of
the "Ftp1X00Cmd" block.
Figure 2-4

user- pass- connecti connecti


name word onId onData

No
connect Successful? error

Yes
done

connected

filename ftpMode ftpCmd ftpData

execute error
No
Yes
Successful? done

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 18
2 Engineering

Description of the tag table included


The project of the application example includes a tag table. The tag table is
explained below.
The following figure shows the tag table.
Figure 2-5

1
2
3
4

The following table describes the tag table.


Table 2-6
No. Tag Function
Siemens AG 2017 All rights reserved

1. varConnect If this tag is set, the controller connection is established and the
user specified on the "username" input is logged in to the FTP
server, using the password specified on the "password" input. If
the tag is reset, the controller connection is established and the
user is logged out.
2. varExecute The job for FTP data transmission is started if there is a positive
edge.
3. varFtpMode This is where the FTP mode for the data transmission is
specified.
4. varFtpCmd Here, the FTP command is specified.
5. varDone Status area:
varBusy The tags reflect the status of the "Ftp1X00Cmd" block. This is
varError where you can see whether the controller connection is
varConnected connected and whether the block is error free or with what
specific error it was run.
varStatus

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 19
2 Engineering

2.5 Error handling of "Ftp1X00Cmd"


The "Ftp1X00Cmd" block catches some errors of the OUC blocks and changes
received FTP reply codes in HEX codes. These status messages are output at the
"status" output.

HEX code status messages


The following table describes a part of the possible status messages of the
"Ftp1X00Cmd" block.
Table 2-7
done busy error status Description
X 0 Job completed successfully without error
X 0100 Job completed successfully. Because of the
behavior of TDISCON while disconnection, the
Data connection has been terminated.
X 7001 Control connection is connecting.
X 7002 Control connection is disconnecting
X 7003 FTP command is executed.
X 8D11 Controller connection not connected; data
connection cannot be opened
X 8D26 Data connection cannot be opened
Siemens AG 2017 All rights reserved

X 8D27 Data connection not terminated properly; with


some servers, data still arrives and therefore
there is still a data transfer.
X 8D28 FTP server Timeout
X 8D81 File not found
X 8DF1 Timeout of watchdog timer (5s)
X 8DF2 Unknown reply code
X 8DF3 Unknown command
X 8F60 Invalid user data
X 8F62 Action aborted; data connection will be
terminated
X 8F69 Connection attempt to existing connection

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 20
3 Valuable Information

3 Valuable Information
3.1 Basics
FTP general
FTP was developed to exchange data between a client and a server. Furthermore,
it is designed for managing directories via remote access. In the world of
automation technology, FTP is a useful protocol to easily exchange data.
There are two modes for FTP communication:
active FTP
passive FTP

FTP active
In this mode, the FTP client opens a random port (>1023) and sends it and its own
IP address to the FTP server using a special command (PORT or EPRT). By
default, the command is sent to port 21 of the FTP server. Port 21 of the server has
to be open or forwarded in the firewall of the server; otherwise no communication
will be established. When data transfer is requested, the FTP server initiates a data
connection to the transferred IP address and FTP server port 20.
The active mode is used when the FTP server is located behind a firewall, since
Siemens AG 2017 All rights reserved

the data connection is initiated from the FTP server outwards and is therefore not
blocked by the firewall. Hence, the FTP server reacts actively.
The figure below illustrates the active FTP communication on the example of the
RETRIEVE command.
Figure 3-1

Active FTP communication


(RETRIEVE command)
FTP-Client FTP server

Port Port Controller port Data port


X X 21 20

Expects controller connection

Expects data connection

Opens data connection

Closes data connction


after data transfer

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 21
3 Valuable Information

FTP passive
In this mode, the FTP client sends a PASV or EPASV command to port 21 of the
FTP server. The FTP server then opens a random port and transmits this port
number to the FTP client together with its IP address. For the data transfer, the
FTP client now initiates a TCP connection to the IP address sent by the FTP server
and the port.
If the FTP client is located behind a firewall, the passive mode is used. The stateful
packet inspection normally always allows outgoing data packets in the firewall.
Hence, the FTP server reacts passively.
The figure below illustrates the passive FTP communication on the example of the
RETRIEVE command:
Figure 3-2

Passive FTP communication


(RETRIEVE command)
FTP client FTP server

Port Port Controller port Data port


X X 21 X

Expects controller connection


Siemens AG 2017 All rights reserved

Expects data connection

Opens data connection

Closes data connection


after data transfer

3.2 Alternative solutions


Alternatively to the solution described here, the FTP functionality can also be
integrated with a different hardware into the S7 world.
The following table lists alternative solutions with a link to the respective application
example.
Table 3-1
Solution Link
FTP communication S7- https://support.industry.siemens.com/cs/ww/en/view/103550797
1500 and CP 1543-1
FTP communication https://support.industry.siemens.com/cs/ww/en/view/21605954
with S7-300/400 and
CPx43-1 Advanced

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 22
4 Annex

4 Annex
4.1 Service and support
Industry Online Support
Do you have any questions or need support?
Siemens Industry Online Support offers access to our entire service and support
know-how as well as to our services.
Siemens Industry Online Support is the central address for information on our
products, solutions and services.
Product information, manuals, downloads, FAQs and application examples all
information is accessible with just a few mouse clicks at
https://support.industry.siemens.com

Technical Support
Siemens Industry's Technical Support offers quick and competent support
regarding all technical queries with numerous tailor-made offers
from basic support right up to individual support contracts.
Please address your requests to the Technical Support via the web form:
www.siemens.en/industry/supportrequest

Service offer
Siemens AG 2017 All rights reserved

Our service offer comprises, among other things, the following services:
Product Training
Plant Data Services
Spare Parts Services
Repair Services
On Site and Maintenance Services
Retrofit and Modernization Services
Service Programs and Agreements
Detailed information on our service offer is available in the Service Catalog:
https://support.industry.siemens.com/cs/sc

Industry Online Support app


Thanks to the "Siemens Industry Online Support" app, you will get optimum
support even when you are on the move. The app is available for Apple iOS,
Android and Windows Phone.
https://support.industry.siemens.com/cs/ww/en/sc/2067

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 23
4 Annex

4.2 Links and literature


Table 4-1
No. Topic
\1\ Siemens Industry Online Support
https://support.industry.siemens.com
\2\ Link to the entry page of the application example
https://support.industry.siemens.com/cs/ww/en/view/81367009
\3\ STEP 7 V14 SP1 manual
https://support.industry.siemens.com/cs/ww/en/view/109747136
\4\ FileZilla server
https://filezilla-project.org/download.php?type=server
\5\ Programming Styleguide
https://support.industry.siemens.com/cs/ww/en/view/109478084

4.3 Change documentation


Table 4-2
Siemens AG 2017 All rights reserved

Version Date Modifications


V1.0 10/2013 First version
V2.0 05/2015 Adding the FTP client functionality for S7-1500 and
Migration to TIA Portal V13 SP1, updating the used OUC
library
V3.0 07/2017 Migration to TIA Portal V14 SP1
Complete revision of the "Ftp1X00Cmd" block according to
the Programming Styleguide

FTP Communication S7-1200 S7-1500


Entry ID: 81367009, V3.0, 07/2017 24