Welcome to the Industrial Automation website!

NameDescriptionContent
XING-Automation
E-mail  
Password  
  
Forgot password?
  Register
当前位置:

Based on the S7-300/400 Ethernet module CP343-1 &CP443-1 Modbus TCP used in STEP7 Door (V6.0)

F: | Au:佚名 | DA:2023-11-21 | 952 Br: | 🔊 点击朗读正文 ❚❚ | Share:

1 Overview of Modbus TCP communication

MODBUS TCP is a simple, vendor-neutral derivative of the MODBUS family of communication protocols for managing and controlling automation devices, and it obviously covers the purpose of MODBUS messages in the "Intranet" and "Internet" environments that use TCP/IP. The most common use of the protocol is for services such as PLCS and gateways connecting to other simple domain buses or I/O modules.

MODBUS TCP enables MODBUS_RTU to run on Ethernet. MODBUS TCP uses TCP/IP and Ethernet to transmit MODBUS packets between sites. MODBUS TCP combines Ethernet physical networking with the networking standard TCP/IP and data representation with MODBUS as the application protocol standard. MODBUS TCP communication packets are encapsulated in Ethernet TCP/IP packets. Unlike the traditional serial port mode, MODBUS TCP inserts a standard MODBUS message into the TCP message without the data checksum address.

1.1 Ethernet reference model for communication

The Modbus TCP transmission process uses Layer 5 of the TCP/IP Ethernet reference model:

Layer 1: The physical layer provides the physical interface of the device and is compatible with the commercially available media/network adapter.

The second layer: the data link layer, formats the signal to the source/destination hardware address data frame.

Layer 3: The network layer implements packets with 32-bit IP addresses.

The fourth layer: the transport layer, to achieve reliable connection, transmission, error checking, retransmission, port service, transmission scheduling.

Layer 5: Application layer, Modbus protocol packets.

1.2 Modbus TCP Data frame

Modbus data is transmitted over TCP/IP Ethernet and supports Ethernet II and 802.3 frame formats. The Modbus TCP data frame consists of three parts: packet header, function code and data. The Modbus Application Protocol (MBAP) packet header is divided into four domains. Total 7 bytes.

1.3 Port Number for Modbus TCP

(1) When PLC is used as Modbus server, Port 502 communication port is used according to default protocol, and any communication port is set in the Modus client program.

(2) When PLC is used as Modbus client, it is not necessary to set the local port number; If you want to specify a client port number, you are advised to start with 2000 to avoid conflicts with other communication protocols.

2 Overview of Modbus TCP communication on the S7-300/400 Ethernet module

This document applies to SIMATIC S7-300, S7-400 CPU with Ethernet module CP343-1 or CP443-1 software products. The instructions allow communication between S7-300, S7-400 systems with Ethernet modules CP343-1 or CP443-1 and devices that support the Modbus TCP protocol.

Data transmission is carried out according to the client-server principle. SIMATIC S7 can be used as a client or server during transfer.

2.1 Software and Hardware

When Modbus TCP commands are used in STEP7 software, the Modbus TCP CP instruction library needs to be installed before SIMATIC S7-300, S7-400 CPU with Ethernet module CP343-1 or CP443-1 can communicate with the communication partners that support Modbus TCP. As shown in Figure 2-1:

2.2 Modbus TCP CP V6.0 Software Option Package

When the software package is installed and integrated into Step7, you can find the block library, routines, and English manual in the corresponding directory of the Step7 installation file, as shown in the following figure. In the actual debugging process of the project, since the functions of the example program are relatively perfect, you can directly use the example program and modify the corresponding parameters according to the actual situation of the project. Can save a lot of parameter setting time.

3 Configure the Ethernet module as the Modbus TCP Server to communicate with the communication partner

The following uses the S7-300 single-site system and Modscan32 software as an example to describe how to configure the S7-300 single-site system as the Modbus TCP Server through the Ethernet module CP343-1 to communicate with Modscan32 as a Client.

3.1 Configuring Hardware

Create a new project (project name: MB_TCP_CP_V60) in STEP7.

3.2 Adding a TCP Connection

On the Hardware Configuration page, click "Configure Network" under Options to enter the network configuration page.

Next, select CPU, and in the table below, right-click and select "Insert New Connection" to add the TCP connection.

The communication partner is Unspecified and the connection type is TCP connection.

Select the local connection resource number (default ID=1) and PLC as the server. Note that "Active connection establishment" is not checked.

Click the "Addresses" page and set the local port number to 502.

3.3 Routine Description

Open the routine and copy all program Blocks (do not copy System data) from site SIMATIC 300 (Server) to the blocks of site SIMATIC 300 (1) of new project MB_TCP_CP_V60.

(1) Open OB1 and view the command "MODBUSCP"

The Modbus TCP command is invoked in the OB1 organizational block of the project,

The following are some pin descriptions (for other pin information, please see the instruction library manual) :

id: indicates the ID of the configured connection in Configure Network. The connection ID is the unique identification of the connection between the CPU and the connection partner through the CP. Enter the number for the connection configuration here. This parameter ranges from 1 to 64.

db_param: parameter data block that contains modbus data parameters for the modbus block instance. The CPU determines the value range of this parameter. DB number 0 is reserved for the system and cannot be used. Enter the DB number "DBxy" in plain text format. If multiple connections are to be implemented, the parameter data block can contain the parameters required for all connections in order.

REG_KEY_DB: Registration key used for authorization.

MONITOR: Monitoring time MONITOR is used to monitor incoming data from connection partners. The time format T# is used to specify the monitoring time. It is recommended that the monitoring time be about 1.5s.

In "S7 as server" mode, the input of the second part of the frame is monitored by MONITOR time. If the monitoring time is exceeded, an error is reported. This time is calculated from the receipt of the MODBUS/TCP specific packet header and ends when the request is fully received.

Init: initializes the Modbus block when there is a rising edge in the parameter. Initialization can only be performed if no jobs are currently running. This condition must be ensured in the program by ENQ_ENR = FALSE and BUSY = FALSE.

(2) Parameter data block DB2

Parameter data block DB2 (name MODBUS_PARAM_CP). This parameter DB block is used to set the modbus data area.

Notice To modify Data in the DB block, switch the DB block to Data view and modify the DB block in the Actual value column.

In this example, you need to change DB2 ID2_ID to 16#1 according to the connection Settings in Figure 3-7. To facilitate the mapping of subsequent communication test addresses, change the start and end addresses of the modbus register to 16#0 and 16#1F3 respectively.

3.4 Communication Test

Download the project to the CPU, open the Modsan32 application, the following to the hold register as an example to introduce the communication test process.

First, select connect under the Connection menu for ModScan32 and set the IP address and port number for ModScan32 to access the PLC as the server side.

Finally, set the start address and length of Modbus to be accessed in Modscan32 software (in this test, Modscan32 uses data type 3 and the start address of the access hold register is 10 words of 40001), establish a communication connection with PLC, and carry out data reading.

You can view the communication status in the network configuration window.

Some considerations for using the function block "MODBUSCP" :

1) The S7-300CPU supports communication with multiple Modbus clients through the function block "MODBUSCP" of the Ethernet module CP343-1. The number supported depends on the number of TCP connections supported by the CP343-1. The function block "MODBUSCP" must be invoked once for each client connection. Parameters such as background data block, ID, and port number must be unique.

2) The S7-300CPU can be used as the Server and Client of Modbus TCP through the Ethernet module CP343-1.

3) The S7-300CPU supports multiple protocols through the Ethernet module CP343-1, which can run PROFINET, TCP/IP, S7 and other protocols in addition to Modbus TCP.

4 Configure the Ethernet module as the Modbus TCP Client to establish communication with the communication partner

The following uses the S7-300 single-site system and ModSim32 software as an example to describe how to configure the S7-300 single-site system as the Modbus TCP Client through the Ethernet module CP343-1 to communicate with Modsim32 as the Server.


  • B&R X20CP1486 Controller Manual
  • Siemens 6ES7134-4GB51-0AB0 Module Manual
  • Schneider LMC201CAA10000 Controller Manual
  • Fuji Electric NP1L-RS4 Module Guide
  • Mitsubishi FX2N-16LNK-M Master Guide
  • Yaskawa SGDM-08ADA SGMAH-08AAA41 Manual
  • Fanuc A20B-0008-0470 Board Manual
  • Calpeda T 70/B Module Specifications
  • Eurotherm TC3000 Power Drive Specifications
  • Mitsubishi QJ71GP21S-SX Module Manual
  • B&R X20AI4622 Analog Input Module 4 Channels
  • Siemens Simatic S5 PLC I/O and CPU Modules
  • Tel 38950 PCB Board 5044-000171-11 AP9Z-2033A
  • Sanyo PLC-XTC50L Multimedia Projector
  • Siemens 6GK7243-5DX30-0XE0 CP 243-5 AS-Interface
  • Omron V680-CA5D02-V2 RFID Controller
  • Pilz 570640 PSEN SL-1.0P Safety Switch
  • Schneider LXM62DD27D21000 Servo Drive
  • Pilz 401112 PITswitch en1.1a-5m-s Emergency Stop Switch
  • Pilz 774350 P2HZ X3 Safety Relay
  • Siemens S30810-Q1113-X4-6/02 EWSD Module Board
  • Honeywell 30751044-008 ROM PLC Control Board
  • Allen-Bradley 440R-W23219 MSR310P Safety Relay
  • Siemens 6GK5204-2BB10-2AA3 Industrial Ethernet Switch
  • Siemens YSU C32353ADDAGS C98043 PC Board
  • Schneider TM241CEC24T PLC Controller Modicon M241
  • VARIAN E15000591 PLC PCB Assembly 132102
  • Schneider Electric HMIG3U PLC Controller Module
  • Siemens 6ES7148-4FC00-0AB0 ET200 IO Module
  • Siemens A5E30484420 Simatic IPC Redundant PSU
  • Allen Bradley 1771-A3B Chassis Manual
  • Schneider BMEH586040 Processor Manual
  • Mitsubishi GT2508 Graphic Panel Manual
  • Mitsubishi FX2N-16LNK-M Link Module Manual
  • Beckhoff EL3011 Analog Terminal Manual
  • Siemens 6SN1145-1AA01-0AA1 Infeed Manual
  • Proface SP5000 Series Display Specifications
  • NUM 0204203001 Axes Board Manual
  • Square D LV434001 Ethernet Interface Manual
  • Omron NA5 Series HMI Module Specifications
  • ABB 57619104E Inverter PCB Control Board
  • Allen-Bradley 100-E205ED11 MCS-E Contactor 205A
  • Omron NS12-TS01-ECV2 Series Operation Panel
  • Allen-Bradley 440R-EM4R2 Guardmaster Safety Relay
  • Omron CS1D-DPL01 Duplex System PLC Module
  • Beckhoff CX2030-0115 Embedded PC Controller
  • ABB Pluto S20 v2 Cfs Safety PLC 2TLA020070R4700
  • B&R X20AT4222 Analog Input Module RTD
  • Inovance H3U-3624MT PLC Controller
  • GE Fanuc IC698CPE010 PLC CPU Module
  • Texas Instruments Siemens 505-6208-A Analog Input Module
  • VDISP 0035416 Card Module Industrial Display Controller
  • HITACHI TX09D80VM3CCA 3.5 Inch LCD Screen 240x320
  • Siemens 545 555 1105 1106 PLC Controller
  • H2-ECOM100 PLC Communication Module Ethernet
  • B&R X20CS1012 PLC Module X20 CS 1012
  • Siemens 6ES7212-1HF40-0XB0 PLC Module 24VDC
  • Omron C120-0C222 IO Module 3G2A6-0C222
  • Electromatic Denmark PLC TYPE 200816 Industrial Controller
  • SANYO PLC-XTC50L Projector 50-60Hz LCD Installation
  • LTi SO84.450 Servo Drive Controller - 450A Three-Phase BG7
  • LTi SO84.375 Servo Drive Controller - 375A Three-Phase BG7
  • LTi SO84.325 Servo Drive Controller - 325A Three-Phase BG7
  • LTi SO84.250 Servo Drive Controller - 250A Three-Phase BG7
  • LTi SO84.170 Servo Drive Controller - 170A Three-Phase BG6a
  • LTi SO84.143 Servo Drive Controller - 143A Three-Phase BG6a
  • LTi SO84.110 Servo Drive Controller - 110A Three-Phase BG6
  • LTi SO84.090 Servo Drive Controller - 90A Three-Phase BG6
  • LTi SO84.072 Servo Drive Controller - 72A Three-Phase BG5
  • LTi SO84.060 Servo Drive Controller - 60A Three-Phase BG5
  • LTi SO84.045 Servo Drive Controller - 45A Three-Phase BG5
  • LTi SO84.032 Servo Drive Controller - 32A Three-Phase BG4
  • LTi SO84.024 Servo Drive Controller - 24A Three-Phase BG4
  • LTi SO84.020 Servo Drive Controller - 20A Three-Phase BG3
  • LTi SO84.016 Servo Drive Controller - 16A Three-Phase BG3
  • LTi SO84.012 Servo Drive Controller - 12A Three-Phase BG2
  • LTi SO84.008 Servo Drive Controller - 8A Three-Phase BG2
  • LTi SO84.006 Servo Drive Controller - Three-Phase 230-480V 6A
  • LTi SO84.004 Servo Drive Controller - Three-Phase 230-480V 4A
  • LTi SO82.004 Servo Drive Controller - Single-Phase 230V 4A
  • HMS Anybus AB7646-F Gateway Manual
  • Schneider ATV930D75N4 Inverter Manual
  • Mitsubishi Q2ASHCPU-S1 System Manual
  • Fanuc A20B-3300-0319 Board Specification
  • Mitsubishi QD60P8-G Counter Module Guide
  • Nidec Unidrive M701 Inverter Manual
  • ABB AO895 Analog Output Module Guide
  • Mitsubishi Q2ASHCPU Controller System Manual
  • ABB Pluto S20 v2 Safety PLC Manual
  • Omron CJ1W-NC413 Position Module Manual
  • B&R X20AI4632 Analog Input Module 4 Channel
  • OMRON CS1G-CPU44H Ver. 4.1 CPU Unit PLC
  • Beckhoff EL2911-2200 TwinSAFE Logic Terminal for EtherCAT
  • Mitsubishi 2D-TZ368 Parallel I/O Interface Card
  • Mitsubishi A3ACPU PLC CPU Module for MELSEC A Series
  • Mitsubishi NF630-SEW 4P Adjustable Circuit Breaker 300-630A
  • Keyence XG-8700L Multi-camera Vision System for Inspection
  • Beckhoff C6017-0010 Ultra Compact Industrial PC
  • B&R 3AT660.6 PLC Module from Automation Panel Series
  • GE F31X300CCHALG2 PC Board with 531X133PRUAPG1 Card
  • STMicroelectronics STM32L100R8T6ATR MCU Arm Cortex-M3
  • Omron CS1W-CLK13 Controller Link Unit
  • Schneider BMENOC0301 Ethernet Communication Module
  • HELUKABEL Braids PLC-30 40 E2UK Braided Cable Sleeve
  • Pe323 h0102de323a0 PLC I/O Module
  • Mitsubishi GT2512-STBA GT2512-STBD HMI 12.1 Inch Touch Screen
  • Samsung LTM213UP01 21.3 Inch LCD Monitor Panel
  • Allen-Bradley 440R-W23219 Guardmaster Safety Relay
  • Beckhoff EL2535 EtherCAT Terminal PWM Output
  • HELUKABEL Braids PLC-40 55 E2UK Braided Cable Sleeve
  • Allen Bradley 1769-OB16 16-Point Sourcing Output Module
  • Balluff BES 516-604-DZ-3 Delay Safety Relay for Industrial Timing
  • Siemens 6GK7542-1AX10-0XE0 PROFIBUS Communication Module for S7-1500
  • GE IC693BEM340 FIP Controller for Series 90-30 PLC
  • OMRON C200HG-CPU63-E Programmable Logic Controller CPU Unit
  • Schneider EOCR-PMZ Relay Manual
  • Honeywell C36TC0UA21D0 Controller Specifications
  • Emerson Ovation VE4001S2T2B4 Input Module
  • Omron CJ1M-CPU22 CPU Specifications
  • Grundig NEA02 AES 0 Card Specifications
  • Omron CJ1W-AD081-V1 Analog Input Specifications
  • IDEC FS1A-C21S Safety Controller Manual
  • IFM O3D303 Smart 3D Sensor Specifications
  • Siemens 6SN1123-1AB00-0BA2 Power Module Guide
  • B&R 4PP035.0300-01 Power Panel Manual
  • Siemens 6ES7 153-2BA10-0XB0 IM Module
  • Beckhoff EL3356-0010 Analog Input Module
  • Siemens 3RW4037-1BB04 Soft Starter