Emerson PLC Communication Program Design in Frequency Converter Network Control

Introduction With the continuous development of PLC technology, more and more show its powerful core control functions, the connection between PLC and other devices has been more and more popular simple and advanced communication methods from the more cumbersome traditional I/O methods. The transition not only saves the designer a lot of hardware costs, but also provides the possibility of remote control and networking, making the control system more seamless.

This article mainly uses Emerson PLC and several inverter network communication (using MODBUS protocol) as an example to illustrate the design method of network control communication program for PLC and multiple inverters.

A brief introduction of MODBUS protocol

The Modbus protocol is proposed by the famous MODICON company in the United States. Through this protocol, controllers can communicate with each other and between controllers via a network (such as Ethernet) and other devices. Control devices produced by different manufacturers can be connected into an industrial network. Centralized monitoring, it has become a common industry standard. Controller communication uses master-slave technology, ie only one device (master) can initiate transmission (query). Other devices (slave devices) respond accordingly to the data provided by the master device query. Typical master devices: IPC, HMI, PLC, etc.; typical slave devices: various instruments, PLCs, frequency converters, etc. The master device can communicate with the slave devices individually, and it can also communicate with all slave devices by broadcasting. If communicating alone, a message is returned from the device as a response, and if it is broadcasted, no response is made. The Modbus protocol establishes the format of the master device query and slave device response: device (or broadcast) address, function code, all data to be sent, and error detection domain. Modbus protocol supports both RTU mode and ASCII mode. The corresponding frame format of RTU mode is as follows: (The ASCII mode is omitted.)

For a more detailed explanation, please refer to the relevant information of the MODBUS protocol (or visit the website).

Second, Emerson PLC integrated MODBUS protocol function

Emerson EC20 series PLC communication port COM 1 integrates the MODBUS master protocol. When programming, it is first set in the system block of the programming software as follows: System block -> "Communication port" menu -> "Communication port 1 parameter setting" Menu -> Select "MODBUS Protocol" -> "MODBUS Setup" -> to set the communication parameters and (main mode) station number.

Then use the MODBUS instruction to program -----------MODBUS (S1) (S2) (S3) The meaning of each parameter is as follows:

S1 designated communication channel;

S2 send data start address;

S3 receive data start address;

During the sending of the MODBUS instruction, the required start character, the end character and the checksum are automatically added. The data to be sent does not need to set the length of the sent data. The system will automatically send the length set in the system according to the function code. .

2 important communication flags: SM135-- MODBUS communication success flag, set upon successful communication, will not be automatically reset, so a reset is required when sending data; SM136-MODBUS communication error flag, communication error (Including no response from the device) is set, it will not be automatically reset, so a reset should be performed when receiving data;


Third, Emerson inverter communication protocol


Emerson's EV series inverters are integrated with the MODBUS protocol, and provide RS232C and RS485 communication ports for users to choose, so the PLC and inverter communication method is relatively simple and economical to complete the control, and it appears that the system is relatively high-grade, the following briefly describes its protocol:

1. Support MODBUS RTU and ASCII format;

2. Parameter MODBUS protocol address mapping rules: The function code parameters, control parameters and status parameters of the inverter are mapped to Modbus read and write registers. The group number of the inverter function code is mapped to the high byte of the register address, and the group index is mapped to the low byte of the register address. The inverter's control parameters and status parameters are virtual inverter function code groups. The corresponding relationship between the function code group number and its mapped register address high byte is as follows: F0 group: 0x00, F1 group: 0x01, F2 group: 0x02, F3 group: 0x03, F4 group: 0x04, F5 group: 0x05, F6 group: 0x06; F7 group: 0x07; F8 group: 0x08; F9 group: 0x09; FA group: 0x0A; Fb group: 0x0B; FC group: 0x0C; Fd group: 0x0D; FE group: 0x0E; FF group: 0x0F; FH group: 0x10; FL group: 0x11; Fn group: 0x12; FP group: 0x13; FU group: 0x14; inverter control parameter group: 0x32; inverter status parameter group: 0x33. For example, the register address of the inverter function code parameter F3.02 is 0x302, and the register address of the inverter function code parameter FF.01 is 0xF01.

3. The supported function codes are as follows:

function code

Function code meaning

0x03

Read the function code parameter and running status parameter of the inverter

0x06

Rewrite single inverter function code or control parameter, do not save after power off

0x08

Line diagnosis

0x10

Rewrite multiple inverter function codes or control parameters, do not save after power off

0x41

Rewrite single inverter function codes or control parameters, save after power off

0x42

Functional code management

4. Please refer to the Emerson inverter user manual for the specific protocol description.



Fourth, program flow chart

The message inquiry commands from the master device to the slave devices are mainly divided into two major categories, continuous command sequences and random command sequences.


Continuous command sequence: The command sequence that the master device needs to send to the slave device regularly or continuously. It is characterized by periodicity and continuity. For example, the PLC reads the running frequency command and the running status command from the inverter.

Random command sequence: The command sequence that the master device sends to the slave device from time to time or randomly. It is characterized by irregularity, randomness, such as PLC start-stop control of the inverter, rewriting of frequency or other parameters.


<./p>

V. List of procedures: (subroutines and main programs)

This procedure mainly introduces a simple example of communication control of three sets of inverters (slave numbers 2, 3, and 4) by an EC20 PLC (as a master station) according to the MODBUS protocol network. In this example:

The continuous command sequence includes the reading of the operating frequencies of frequency converters 2, 3, and 4;

The random command sequence includes command operations for starting, stopping, and changing frequencies for frequency converters 2, 3, and 4;


1) The list of “converter forward rotation” subroutines is as follows:

/ / Main program uses M1993 as each send auxiliary, mainly used for the rising edge of the MODBUS command to trigger no other use

LD LM0 //Bit Input Parameter - Send Assist Enable

RST SM135 // Reset Success Flag

RST SM136 // Reset Failed Flag

LD SM0 //Run flag

MOV Z0 V9 //Save Z0 to V9

LD SM0 //Run flag

MOV V0 V10 //Slave address

MOV 16#6 V11 //Function code

MOV 16#32 V12 // Register address high byte

MOV 16#0 V13 //Register Address Low Byte

MOV 1 V14 //write data high byte

MOV 16#C7 V15 //Write data low byte

//The following transfers the send data to D7940-D7945

LD SM0

MOV 0 Z0

LD SM0

FOR 6

LD SM0

MOV V10Z0 D7940Z0

LD SM0

INC Z0

NEXT

//Send and receive data, data is placed in the D7970 start area

LD LM0

MODBUS 1 D7940 D7970

RST LM0 //Reset Send Assist Enable Immediately

//Restore the Z0 value regardless of success failure

//Of course, the processing of the error report is omitted here

LD SM135

OR SM136

EU // rising edge

MOV V9 Z0

2) "Shutdown" subroutine (omitted)

3) "Set frequency" subroutine (omitted)

4) "Read run frequency" subroutine (omitted)

5) Main program list:

//****** The following is the communication logic processing section ******

LD SM1 //run first cycle pulse

//*** This step omitted to check if the slave is ready ***

/ / *** program designed three consecutive command sequences ***

RST M6 // Reset Continuous Command Sequence 1 Enable Flag

RST M7 // reset continuous command sequence 2 enable flag

RST M8 // Reset Continuous Command Sequence 3 Enable Flag

ED // falling edge

// Set continuous command sequence 1 enable flag to start the first consecutive command execution

SET M6

/ / *** program designed a total of 9 random command sequence ***

//As long as there is at least 1 random command, // M1000=ON, it means that there is a random command waiting, so that when the continuous command is switched, the random command series is executed first.

LD M0 // random command sequence 1 enable flag

OR M1 // random command sequence 2 enable flag

OR M2 // random command sequence 3 enable flag

OR M3 // random command sequence 4 enable flag

OR M4 // random command sequence 5 enable flag

OR M5 // random command sequence 6 enable flag

OR M9 // random command sequence 7 enable flag

OR M10 // random command sequence 8 enable flag

OR M11 // random command sequence 9 enable flag

SET M1000

// After all random commands are processed, M1000=OFF, indicating that the random command is completed, then the continuous command can be switched normally.

LDI M0

ANI M1

ANI M2

ANI M3

ANI M4

ANI M5

ANI M9

ANI M10

ANI M11

RST M1000

// When any one of the consecutive commands is not completed, M1001 = ON, which marks the continuous command being executed. If there is a random command, it must wait.

LD M6

OR M7

OR M8

SET M1001

// When the continuous command is in the switching state, M1001 = OFF, indicating that the continuous command is completed, if there is a random command that can be performed.

LDI M6

ANI M7

ANI M8

RST M1001

// When every 1 consecutive command is completed and no random command is waiting, start the delay T0 100MS to switch the next consecutive command execution

LD M100 //Continuous command 1 completion flag

OR M101 //Continuous command 2 completion flag

OR M102 //Continuous command 3 finish flag

ANI M1000

TON T0 1 // start delay T0 100MS

//******************************************

//********** The following are three consecutive command sequences**********

/ / Call the "read run frequency" subroutine - 2 # station, the frequency exists in D1000;

// Success or failure of communication resets the continuous command sequence 1 enable flag M6, and simultaneously sets the completion flag M100 for switching. Of course, the failed processing routines are omitted here;

// After delaying T0 time, execute continuous command 2 sequence, set continuous command 2 sequence enable flag M7;

LD M6 //Continuous command sequence 1 enable

MPS

EU

SET M1993 //Send the pre-position sending auxiliary flag

MRD

CALL read operating frequency 2 M1993 D1000

//Parameter comment: station address, send auxiliary bit, frequency storage address

MPP

LD SM135

OR SM136

ANB

RST M6

SET M100

LD T0

AND M100

EU

RST M100 //Reset Continuous Command 1 Complete Flag

SET M7

/ / Call the "read run frequency" subroutine - 3 # station, the frequency exists D1001;

// Success or failure of communication resets the continuous command sequence 2 enable flag M7, and sets the completion flag M101 at the same time for switching. Of course, the failed processing routines are omitted here;

// After delaying T0 time, execute continuous command 3 sequence, set continuous command 3 sequence enable flag M8;

LD M7 // serial command 2 sequence enable

MPS

EU

SET M1993 //Send the pre-position sending auxiliary flag

MRD

CALL read operating frequency 3 M1993 D1001

//Parameter comment: station address, send auxiliary bit, frequency storage address

MPP

LD SM135

OR SM136

ANB

RST M7 // reset enable flag

SET M101 // Set completion flag

LD T0

AND M101

EU

RST M101 // Reset Continuous Command 2 Finish Flag

SET M8 // Set Continuous Command 3 Enable Flag

/ / Call "read run frequency" subroutine -4 # station, the frequency exists in D1002

// The success or failure of the communication resets the continuous command sequence 3 enable flag M8 and simultaneously sets the completion flag M102 for switching. Of course, the failed processing routines are omitted here;

// After delaying T0 time, re-execute the continuous command 1 sequence, set the continuous command 1 sequence enable flag M6;

LD M8 //Continuous command 3 sequence enable

MPS

EU

SET M1993

MRD

CALL read operating frequency 4 M1993 D1002

//Parameter comment: station address, send auxiliary bit, frequency storage address

MPP

LD SM135

OR SM136

ANB

RST M8

SET M102

LD T0

AND M102

EU

RST M102

SET M6

//******************************************

//********** Here are 9 random command sequences***********

//9 random command ideas are the same;

// After the random command enable flag is set, if the continuous command is in the switching state, it can enter the sending state; otherwise, it only waits;

// Send first to send the auxiliary bit M1993, call the subroutine to send and receive;

// Resets their random command enable flags regardless of communication success or failure. Of course, the communication error handler is still omitted here;

//If all random commands are completed, the random command wait flag M1000=OFF;

//Call "frequency setting" subroutine-2# station

LD M9 // random command sequence 7 enable flag

ANI M1001 //When judging that the continuous command is in the switching state

MPS

EU

SET M1993 // Set Send Assist Bit

MRD

CALL traffic setting 2 D1100 M1993

//Parameter comment: station address, set frequency, send auxiliary bits

MPP

LD SM135

OR SM136

ANB

RST M9 // reset random command sequence 7 enable flag

//Call "frequency setting" subroutine-3# station

LD M10 // random command sequence 8 enable flag

ANI M1001 //When judging that the continuous command is in the switching state;

MPS

EU

SET M1993 // Set Send Assist Bit

MRD

CALL traffic setting 3 D1101 M1993

//Parameter comment: station address, set frequency, send auxiliary bits

MPP

LD SM135

OR SM136

ANB

RST M10

// Call "frequency setting" subroutine - 4# station

LD M11 / Random Command Sequence 9 Enable Flag

ANI M1001

MPS

EU

SET M1993

MRD

CALL traffic setting 4 D1102 M1993

//Parameter comment: station address, set frequency, send auxiliary bits

MPP

LD SM135

OR SM136

ANB

RST M10

/ / Call "Forward turn" subroutine -2 # station

LD X11 //Boot button

EU

SET M0 // random command sequence 1 enable flag

LD M0

ANI M1001

MPS

EU

SET M1993

MRD

CALL is turning on 2 M1993

//Parameter comment: station address, send auxiliary bit

MPP

LD SM135

OR SM136

ANB

RST M0

//Call the "Positive boot" subroutine - 3# station

LD X12 //Boot button

EU

SET M1 // random command sequence 2 enable flag

LD M1

ANI M1001

MPS

EU

SET M1993

MRD

CALL is turning on 3 M1993

//Parameter comment: station address, send auxiliary bit

MPP

LD SM135

OR SM136

ANB

RST M1

/ / Call "Forward turn" subroutine -4 # station

LD X13 //Boot button

EU

SET M2 // random command sequence 3 enable flag

LD M2

ANI M1001

MPS

EU

SET M1993

MRD

CALL is turning on 4 M1993

//Parameter comment: station address, send auxiliary bit

MPP

LD SM135

OR SM136

ANB

RST M2

//Call the "downtime" subroutine - 2# station

LD X14 //Off button

EU

SET M3 // random command sequence 4 enable flag

LD M3

ANI M1001

MPS

EU

SET M1993

MRD

CALL shutdown 2 M1993

//Parameter comment: station address, send auxiliary bit

MPP

LD SM135

OR SM136

ANB

RST M3

//Call the "downtime" subroutine - 3# station

LD X15 // Shutdown button

EU

SET M4 // random command sequence 5 enable flag

LD M4

ANI M1001

MPS

EU

SET M1993

MRD

CALL shutdown 3 M1993

// Parameter comment: station address, send auxiliary bit

MPP

LD SM135

OR SM136

ANB

RST M4

//Call the "downtime" subroutine -4# station

LD X16 // Shutdown button

EU

SET M5 // random command sequence 6 enable flag

LD M5

ANI M1001

MPS

EU

SET M1993

MRD

CALL shutdown 4 M1993

//Parameter comment: station address, send auxiliary bit

MPP

LD SM135

OR SM136

ANB

RST M5

Six, program description:

When the routine is designed, it actually stays in the gap of continuous command sequence switching for 100 MS. This means that the continuous sequence in the program is intermittent; if you want to use a non-intermittent continuous sequence, remove the intermediate delay part. Now.

VII. Conclusion

The method of logical processing of the communication sequence described in this routine has been practically applied in some of the author's projects, and the results have also achieved the expected assumptions. The operation is relatively stable. This method of PLC communication through multiple inverters is used in practical applications. There is a great reference value, not only can make full use of the hardware resources of EMERSON PLC and inverter to achieve the purpose of cost savings, but also easier to integrate the entire system.

Eight, reference bibliography:

l Emerson EC20PLC Programming Reference Manual

l Emerson EC20PLC Programming Software Tool Manual

l Emerson EV1000 Inverter User Manual (MODBUS Protocol)

Shuttlecock

Badminton Shuttlecocks,Carbon Badminton Rackets,Shuttle Badminton,Badminton Cork

HANGZHOU LEMON IMPORT AND EXPORT CO.,LTD. , https://www.lemonsports-factory.com