Welcome to the Industrial Automation website!

NameDescriptionContent
HONG  KANG
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)

来源: | 作者:佚名 | 发布时间 :2023-11-21 | 789 次浏览: | 🔊 Click to read aloud ❚❚ | 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.


  • Vibro-meter CMC16 16-Slot Machinery Protection Rack
  • Vibro-meter MPC4 4-Channel Protection Card
  • Vibro-meter VM600 IOC4T 4-Channel I/O Module
  • Vibro-meter VM600 204-040-100-012 System Controller
  • Vibro-meter VM600 PNR200-570-000-111 Relay Module
  • Vibro-Meter VM600 IOCN 200-566-000-112 Network Interface
  • Vibro-Meter VM600 IOC16T 200-565-000-013 I/O Card
  • Vibro-Meter VM600 RPS6U 200-582-500-013 Power Supply
  • Vibro-Meter VM600 CMC16 200-530-022-014 Monitoring Card
  • Vibro-Meter VM600 MPC4 200-510-070-113 Protection Card
  • Vibro-meter VM600 204-040-100-012 System Controller
  • Vibro-meter VMF IOCN Network I/O Module
  • Vibro-meter VMF RLC16 Relay Output Module
  • Vibro-meter VMF IOC4T 4-Channel I/O Module
  • Vibro-meter VMF IOC16T 16-Channel I/O Module
  • Vibro-Meter CMC16 200-530-111-013 Condition Monitoring Card
  • Vibro-Meter CPUM 200-595-046-114 Advanced Rack Controller
  • Vibro-Meter MPC4 200-510-111-034 Machinery Protection Card
  • Vibro-Meter CPUM 200-595-045-114 Rack Controller
  • Vibro-Meter SIM-275A 200-582-500-013 Signal Interface
  • Vibro-Meter VM600-CSA 204-040-100-211 Redundancy Module
  • Vibro-meter VM600 204-040-100-012 System Controller
  • Vibro-meter VM600 RLC16 Relay Module
  • Vibro-meter VM600 RPS6U Redundant Power Supply
  • Vibro-meter VM600 CMC16 Machinery Protection Rack
  • Vibro-meter VM600 ABE042 System Controller Card
  • Vibro-Meter VM600 RPS6U 200-582-200-011 Power Supply
  • Vibro-Meter VM600 RLC16 Relay Card
  • Vibro-Meter VM600 IOC4T 200-560-000-018 Input Output Card
  • Vibro-Meter VM600 XIO16T 620-003-111-112 Input Output Module
  • Vibro-meter VM600 XMV16 Vibration Measurement Card
  • Vibro-meter VM600 ABE040 System Controller Card
  • Vibro-Meter 444-680-000-511 Signal Conditioning Module
  • Vibro-meter VM600 CMC16 Machinery Protection System
  • VIPA 62K-NHC0-DH Touch Panel HMI
  • VIPA 972-0DP10 PROFIBUS DP Interface Module
  • VMIC Assy 11993R2 Circuit Board Assembly
  • VMIC 11-1001245-01 Industrial Module
  • VMIC ZT5524A1A CompactPCI Intelligent Controller
  • VMIC VMIVME-2533 32-Channel Digital I/O Module
  • Vortran LST200 Laser Diode Control System
  • Vortran Stradus 405nm Laser Module
  • Vishay 120NQ045R Schottky Rectifier Diode
  • VMIC VMIVME-7740-840 Pentium III VME SBC
  • VMIC VMIVME-7740-855 PowerPC VME Single Board Computer
  • VMIC VMIVME-1128 128-Bit High Voltage Digital Input Board
  • VMIC ASSY 12149 VMEbus Single Board Computer
  • VMIC ASSY 11994R13 VMEbus Industrial I/O Module
  • Wavecrest DTS-2079 High-Performance Controller Module
  • Wurth Elektronik 74271132 WE-STAR-TEC Snap Ferrite
  • Woodward 9907-165 Digital Turbine Control Module
  • DS1230Y-150+ 256Kb Non-Volatile SRAM Maxim Integrated
  • ZIPPE MWS10/A Industrial Weighing Transmitter Module
  • ZNYX ZX370 Series Fast Ethernet PCI Adapter
  • Vortran KDL-1230 Precision Medical Control
  • VWR Scientific Model 3000 Lab Equipment
  • Wagner+Grimm CH-6102 ETUI1500 Transformer Technical Specs
  • Wago MCS 231-302/037-000 Male Connector
  • Wago VDE0611 Series Rail-Mounted Terminal Blocks
  • Warner Electric ERS-198 1005-05-001 Electrically Released Brake
  • Yaskawa SGDH-01AE Sigma II Servo Driver
  • Omron 3G3HV-A4022-CE Inverter
  • Omron NT625C-ST152 Color Touch HMI
  • Parker Parvex NX310EAKR7001 NX Series Servo Motor
  • UniOp TCP10G-04-0245 Industrial HMI
  • Yaskawa SGDH-04AE Servo Driver 200V 400W
  • Presstech 7612-099Z-01 PLC Control Board
  • Yaskawa SGDH-10DE Servo Driver 400V 1kW
  • Landis Gyr PCA1 M35M4 CPU Controller
  • MICREX-F FLT-ASFKA PLC Loader with RS232 Cable
  • ABB Bailey INNIS21 Network Interface Module
  • Omron Sysmac CV500-SNT31 SYSMAC LINK Unit
  • Parker Hannifin HID2CS/S4 HiDrive Servo Driver
  • Pogliano Busmar PPeF 224541Z0HAC 250A Switch
  • GE Fanuc A16B-3300-003 Series 16-i Main Board
  • BLQ63M30 Brushless Servo Motor High Precision Motion Control
  • YASKAWA SGDH-08AE-S-OY Servopack Servo Drive Motion Control
  • OMRON C200H-RT201 Remote I/O Unit PLC Communication Module
  • PARKER HPD2S2N Servo Driver Industrial Motion Controller
  • SIEMENS 6AV3617-1JC00-0AX1 HMI Operator Panel Interface
  • KEB E3.SM.001.4400 Servomotor
  • Omron SCY-M1-PRO-51C SYSMAC Programming Console
  • ABB SACE TMAX T4 S 160 4 Pole Circuit Breaker
  • Omron CS1G-CPU44-EV1 PLC CPU Unit
  • ABB SACE PR212/P Electronic Trip Unit
  • Mitsubishi HC-SFS524K AC Servo Motor
  • Parker S.B.C. HPD2S1N Electronics Servo Driver
  • Yaskawa SGMPH-08A1A41 Sigma II Servo Motor
  • Omron FQ2-S25050F Smart Camera Vision System
  • Omron C120-LK202-EV1 Host Link Unit RS-422C Interface
  • 23.SM.000.3400 PLC KEB Servo Motor Industrial Control System
  • Biesse Rover CNI PLC 2153 030 7146.30 Industrial Control Unit
  • OMRON ME5614C Industrial Modem 56000bps V.90 Communication
  • SCHNEIDER BCH16HF07332A5C2 Servo Motor High Precision Control
  • ANFX-P130F-1GL3-33 Precision Gearbox Industrial Transmission
  • Beckhoff CX5020-0110 Embedded PC PLC
  • Schneider PowerLogic P5U20 Protection Relay Easergy
  • Siemens 6ES5 466-3LA11 Simatic Analog Input Module
  • Tex Computer TEB0055 77037 Industrial Terminal
  • Audiotel Engineering 0802P1I8000E Industrial Interface Module
  • ELAU DB-5 Distribution HW 5104 Servo System
  • Touchstar 10K TS10KCC0CEMP Industrial Touch Panel
  • Beckhoff CX2030-0125 Embedded PC PLC
  • Parker Hannifin HID5CS/S4 HIDRIVE 5A Servo Drive
  • Yaskawa ACE-P300-TH5 Servo Drive with Profibus
  • Omron Sysmac SCY-P0 13E Sequencer Controller
  • Saia Burgess PCD4.M120 PCD4.M12 Central Controller
  • Schneider Electric TSX3722101 Modicon Micro PLC
  • Siemens Micromaster 440 6SE6440-2AD25-5CA1 Inverter
  • SICK DL50-P1123 Distance Sensor
  • Yaskawa SGDH-04AE-OY Servo Driver 200V 400W
  • Cincinnati Milacron 3-542-1203A Circuit Board Module
  • Allen-Bradley 1756-EN2T EtherNet/IP Communication Module
  • OMRON CS1H-CPU66-V1 Programmable Logic Controller
  • ABB SACE TMAX S6N 630 Molded Case Circuit Breaker
  • Weidmuller IE-SW-VL16-16TX 16-Port Ethernet Switch
  • Schneider PowerLogic CM4250 Circuit Monitor
  • Sacmi IDPM IDMP1.A SMC 085.16.982 Control
  • Omron C120-LK202-EV1 Host Link Unit
  • Omron FQ2-S15050F Smart Camera Vision System
  • OMRON CJ1G-CPU44H Programmable Logic Controller
  • SIEMENS KTP600 HMI 6AV6 647-0AD11-3AX0 Touch Panel
  • OMRON CS1G-CPU45H EV1 Programmable Logic Controller
  • Omron C200HG PLC System C200H-ID212 C200H-OC226
  • ROBOSYSTEM IOG4AX-HD-100 IOG-HD Motion Controller
  • Datalogic SG4-S3-080-PP-W Safety Light Curtain
  • Omron NS12-TS01B-V2 Interactive Display
  • Esto Electronic E.CGT-405-42TE PLC Rack