this article I'll test the new Wago PLC controller series PFC200, model number 750-8202 /025-002. PFC200


osadl logoPinguiec60870 IconIEC61850 Icon

The PFC200 Controller is a compact PLC for the modular WAGO-I/O-SYSTEM. Besides network and fieldbus interfaces, the controller supports all digital,analog and specially modules found within the 750/753 Series.Two ETHERNET interfaces and integrated switch enable line topology wiring. An integrated Web server provides the user with configuration options and status information from the PFC200.Besides the processing industry and building automation, typical markets for the PFC200 include the standard machine and plant industries. Moreover, this particular model is equipped by the telecontrol protocols: IEC60870-5-104/101 and IEC61850IEC61850.

Here after a detailed product data-sheet:


This controller, from the Telecontrol protocols point of view, can run (at the same time) with following configurations:

  1. Server IEC60870-5-101
  2. Server IEC60870-5-104
  3. Client IEC60870-5-101
  4. Client IEC60870-5-105
  5. Server IEC61850

As server IEC60870-5-104 these are the main featured I tested:

  1. I defined n° 2 server instance IEC104 (C_Asdu=1, C_Asdu=2)
  2. Each server instance contains follow data types:
    • M_SP_NA (type 1) single point, no time stamp
    • M_DP_NA (type 2) double point, no time stamp
    • M_ME_NA (type 9) measured value, normalized, no time stamp
    • M_SP_TB (type 30) single point CP56Time2a
    • M_DP_TB (type31) double point CP56Time2a
    • M_ME_TD (type 34) measured value CP56Time2a
    • C_SC_NA (type 45)  single command
    • C_DC_NA (type 46)  double command
    • C_SE_NA (type 48)  set point command, normalized
  3. Time synchronization made by NTP

 These are my conclusion:

  • the PFC controller running as server IEC 104 can hold multiple server instances (multiple C_Asdu) each one working on a single and univocal TCP port.
  • No limitation for instances are defined (probably memory occupation).
  • Each server instance is able to exchange data with a maximum of 4 client at the same time.
  • An IP filter capability can be applied to incoming connection.
  • All IEC104 data type are available,  (ex running CP56Time2a and no time stamp data at the same time).
  • Time syncing can be provide by NTP, SNTP, or IEC104 (TI103)

Now I'll describe how to configure it to run as a IEC60870-5-104 Server.

IDE: Codesys v2.3.44 (Wago edition) : this version, based on free-download website, include some specific tool/wizard customized for Wago products.

This is the step by step server project sample:

  • Create a new Codesys Project using the Wago 750-8202/025-002 target



Trough the WAGO IO-Check tool, it's possible to simply on-line connect to a PLC and read its configuration. Then save and import into the Codesys configuration. That's what I've done

  • Move to "PLC configuration" in order to define new hardware settings


  • Now I'll add the I/O boards (My configuration is the CPU, 16DI, 16DO) :  Select the "K-Bus[FIX] -> right click -> edit


  • Open the Wago "I/O Check" tool


  • Identify the hardware


  • save and import the configuration, then close the "I/O Check".


  •  I'll come back to Codesys "PLC configuration". Then "Save" and exit


  • Now I'll proceed to configure the IEC60870-5-104 server side. To do that, I'll use the Wago wizard into the foreseen section of "PLC configuration"

This is the video

This is the step-by-step

 ConfigIEC 1

It'll open the wizard:

ConfigIEC 2

  • Configures the time sync source (NTP in my sample)

ConfigIEC 3

  • Then add the Server 104 instance

ConfigIEC 4

  • It's possible to select the C_Asdu, Timing, TCP communication port (default 2404), max number of client admitted (4),..

ConfigIEC 7

  • By selecting a edit area, at the bottom of pop-up a tool-tip will appear  (yellow area)

ConfigIEC 5   ConfigIEC 6

Note: The PFC controller permit to define max 4 client active (parallel mode) on the same TCP port (default 2404). At the same time it's possible to define more server instance, each one with univocal C_Asdu and TCP port. This mean, for example, if you need to define nr.3 C_Asdu (ex. address 1, 2, 3), into the PFC configuration you need to define 3 instances (server):

server 1: C_Asdu=1 , TCP Port=2404

server 2: C_Asdu=2 , TCP Port=2405

server 3: C_Asdu=3 , TCP Port=2406

it's possibile to introcude a filtering into the Client incominig connections by using "IP filtering" capability

ConfigIEC 8

  • Then add the IEC60870 data type by drag&drop from the source list

ConfigIEC 9

  • Define the IObj properties such as Address, Repeat Time (cyclic send),....

ConfigIEC 10

  • Complete the IObj definition, the close the wizard by pressing "OK"

ConfigIEC 11

  • Rebuild the project (F11). this will add to library, task, POU,...all necessary stuff in order to manager new defined IEC60870 data


These are the new POU added by the building:


  1. IEC60870_ServerPRG_1_104: it contains the IObj (IOA) instance necessary to the data exchange
  2. IEC870_ComHandshake: it manages the communication (common POU for all defined 104 server defined)

IEC60870 prg

If more than a IEC104 server has been defined, additional POUs should be added here.

For example: X server instance defined, then:

  • IEC60870_ServerPRG_1_104: POU instance for server 1
  • IEC60870_ServerPRG_2_104: POU instance for server 2
  • ..................................
  • IEC60870_ServerPRG_x_104: POU instance for server x
  •  Then go on line, download the project, run it and using an IEC104 Client (I usually works with Siemens IEC TEST) this is the result: