Modbus Rtac

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

Application Guide Volume VII AG2016-11

Setting the Modbus® User Map on the SEL-734


and SEL-735 Meters Using the RTAC and
FileIO Library
Andy Gould, Ryan Syslo, and Chris Bontje

REQUIREMENTS
This application guide requires the following to complete:
• An SEL real-time automation controller (RTAC) with Firmware Version R133 or later
and the FileIO license added.
• A computer with ACSELERATOR RTAC® SEL-5033 Software (compatible with
Firmware Version R133 or later), ACSELERATOR RTAC library extensions,
ACSELERATOR QuickSet® SEL-5030 Software, and a spreadsheet application.

• An SEL-734 Advanced Metering System or SEL-735 Power Quality and Revenue Meter.

INTRODUCTION
SEL develops market-leading metering products (the SEL-734 and the SEL-735) that support the
following protocols:
• SEL ASCII.
• SEL Compressed ASCII.
• SEL Distributed Port (LMD).
• SEL Fast Meter.
• MODM Translation.
• Modbus® RTU.
• Modbus TCP.
• MIRRORED BITS® communications.
• Distributed Network Protocol (DNP3).
• IEC 61850 Generic Object-Oriented Substation Event (GOOSE) and Manufacturing
Message Specification (MMS) (optional).
• Telnet.
Among these, Modbus is popular in industrial applications because of its historical basis in
process control and programmable logic controller (PLC) systems. For details on Modbus, see
Modicon Modbus Protocol Reference Guide, PI–MBUS–300 Rev. J (available at
http://modbus.org). This application guide assumes that you have some background knowledge
regarding Modbus. New users would be well-served reading the Modicon reference guide.

Date Code 20160308 SEL Application Guide 2016-11


2

Modbus Registers and User Map


Modbus devices store information in registers (16-bit binary numbers). A register can represent
binary statuses, represent an analog value, or be paired up two at a time to represent analog values
of double the capacity or resolution. In order to collect the data contained in these registers from a
Modbus server, such as an SEL meter, a Modbus client issues periodic polls, which are capable of
requesting data from up to 125 contiguous data registers per poll. It is important that the data
registers are contiguous; for example, if you want data from Register Addresses 5, 14, and 24,
you can typically create a single poll to collect data from these addresses in a sequential set of up
to 125 registers.
The following are three possible polling methods:
• Polling Type 1: Using this method, each register is polled individually (represented by
Polls A, B, and C for Registers 5, 14, and 24). This can be considered both efficient
(because no unused data registers are returned) and inefficient (because each poll
exchange takes a certain amount of time to complete). This type of polling is generally
not recommended because the system load required for a poll and response pair is
generally much greater than the load required for just bringing back unused registers.
• Polling Type 2: Using this method, you can customize a specific (and efficient) range of
registers to poll. For example, the poll request would specify a base of Register 5, and it
would request 20 registers. This method is generally quite efficient, but it is somewhat
difficult to program due to the calculations needed to determine if the desired register is
contained somewhere in the requested data set.
• Polling Type 3: This method shares similar characteristics to Polling Type 2, but it is
considered more of a “brute force” poll and simply requests a start and stop offset well
outside of the required range of registers. While not a very efficient way to poll because
of the extraneous data registers that are returned, it is very easy to program because few
calculations are needed and approximations can be made.
Figure 1 shows the three example methods for polling noncontiguous registers from a default user
map.
Poll ing Type 3

Poll ing Type 2

Poll ing Type 1

A B C

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Figure 1 Default Modbus Register Map


Keep in mind these three different polling methods. If the desired data registers are contained in
various default register address spaces in a significantly larger range (e.g., from 1 to 9000), the
number of polls required to collect each piece of relevant data can grow significantly. This
increases loading on the communications system, affecting data update performance and
increasing programming complexity.
The SEL metering devices each set aside a section of the Modbus address space for user-
configurable registers, which allow you to select the data that are relevant to your application and
assign those data addresses to a custom user map. The main benefit of creating a contiguous
125-register user map is that it allows you to drastically reduce the number of polls required to

SEL Application Guide 2016-11 Date Code 20160308


3

collect data from the meter, thus lessening network congestion, increasing performance, and
potentially lowering network bandwidth fees in a cellular-based remote communications scheme.
Figure 2 shows an example of how a user map can significantly increase the simplicity of the
polling methods shown in Figure 1. In this example, Default Registers 5, 14, and 24 have been
relocated to User Map Registers 0, 1, and 2. Now, a single poll can be created to request the
complete required data set.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

0 1 2

Use r Map Pol l

Figure 2 User Map Register Polling

Writing Settings Via Modbus


Writing settings (such as the user map or time of day) to an SEL meter from a Modbus master
requires a password exchange via Modbus. Figure 3 shows an excerpt from the SEL-735 manual
describing this process.

Figure 3 Excerpt From SEL-735 Manual

Date Code 20160308 SEL Application Guide 2016-11


4

This application guide contains the following sections to illustrate the Access Level E (EAC)
password process as well as explore interesting and innovative ways to make use of the SEL
RTAC and the RTAC FileIO library to streamline the process of accessing, writing, and saving
settings via Modbus:
• Part 1: converting plain-text passwords to ASCII, formatting the ASCII values of the
password into the password registers, issuing a Function Code 10h (preset multiple
registers) command, and saving the settings.
• Part 2: adding a Modbus device to ACSELERATOR RTAC, setting up the tags, and
creating Modbus polls.
• Part 3: formatting a text file containing the custom Modbus map to send to the RTAC
using the RTAC FileIO Library.
• Part 4: creating RTAC logic programs to read the contents of the text file created in
Part 3, and then using the text file to simplify password and user map write functions.
• Part 5: setting up the RTAC to send the custom user map to the Modbus device.

PART 1: SENDING THE EAC PASSWORD VIA MODBUS


Sending settings to an SEL-734 or SEL-735 Meter via Modbus requires writing the EAC
password to the device. By default, The EAC password is BLONDEL.
In the SEL meters, there are five registers designated as the writeable password registers
(Registers 42 to 46 in the SEL-734 and Registers 70 to 74 in the SEL-735) that are of the data
type “STRING.” In order to send the password to these registers, the password must be packed
into the registers two ASCII characters at a time.

SEL Application Guide 2016-11 Date Code 20160308


5

ASCII characters are 8-bit encodings of letters, numbers, and symbols created according to the
ASCII table (see Figure 4).

Figure 4 ASCII Table


In order to pack a 16-bit register with two 8-bit encoded ASCII characters, one 8-bit binary value
must be sent to the high byte, and one 8-bit binary value must be sent to the low byte, as shown in
Figure 5.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

High Byte Low Byte

Figure 5 16-Bit Register in High and Low Bytes


By referring to the ASCII table, you can determine the numerical value for each character of the
password.

Date Code 20160308 SEL Application Guide 2016-11


6

In order to spell BLONDEL two registers at a time, you need to take BL and put it into the first
password register. The ASCII value for B is 66, and the ASCII value for L is 76. You must
convert those numbers into 8-bit binary to understand how the password register works. Refer to
Figure 6 and Figure 7 for the conversion.

Figure 6 Binary Conversion of 66

Figure 7 Binary Conversion of 76


When you place these bytes side-by-side in the high byte and low byte, you get a single 16-bit
number, as shown in Figure 8.
B = 66 L = 76
0100 0010 0100 1100

0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

High Byte Low Byte

Figure 8 Combined 16-Bit Register for BL


The decimal equivalent to the 16-bit value 0100001001001100 is shown in Figure 9.

Figure 9 Binary-to-Decimal Conversion

SEL Application Guide 2016-11 Date Code 20160308


7

Thus, you must write the decimal number 16972 to the first password register to represent BL
via Modbus. Repeat the same process for ON, DE, and L(null) to complete the password,
BLONDEL. For third-party Modbus clients, this conversion process allows you to put together
decimal values to send to the password registers to enable EAC access. The SEL RTAC platform
simplifies this process with its IEC 61131-3 logic engine. With the logic engine, you can define a
password string (or a variable containing a password string) and have the RTAC convert the
ASCII character pairs to decimals, as shown in the code snippet in Figure 10 (refer to
Appendix A for the code).

Figure 10 RTAC Logic Program Converting Password String to Password Registers


In the top portion of Figure 10 (Line 5), the program defines a “Password” variable as a string of
a predefined length (here, the length is 10 because there are 5 password registers available).
Creating a STRING variable of predefined length also allows the program to specify which
character to use by enumerating the characters individually from left to right by using brackets
(Lines 9 to 13). Thus, Password[0] on Line 9 lets the program know that you want to use the
ASCII value for the character in Position 0 (in this case, B), which returns the value 66 according
to the ASCII table in Figure 4. By multiplying the first letter of the two letters of each pair by
256, you effectively shift the 8-bit binary value to the high byte of each register. Then, by adding
in the 8-bit binary value of the low byte, you build the combined 16-bit value needed to send to
the meter via Modbus.
This process is repeated in the password string from left to right, two letters at a time, with binary
zeros populating unused ASCII characters.

Date Code 20160308 SEL Application Guide 2016-11


8

Lines 15 through 19 contain .oper.trigger values set to TRUE, which will set up all five registers
to be populated simultaneously with the decimal values in a Modbus Function Code 10h
command. See Figure 11 for a Wireshark® capture of a successful password exchange.

Figure 11 Password Exchange in Wireshark


It is important to note that the falling edge trigger (F_TRIG) of a pulse (WriteMap1_Timer : TP)
triggers the password write process to ensure that the if-then loop occurs only once when the
control to update the user map is asserted.
Upon the successful completion of writing the password, you can write to the meter ID (MID),
terminal ID (TID), password, date/time, and user map registers, followed by writing a 0x0001 to
the save settings register. If the save settings register is not set, the values written revert to their
original value after a 15-minute time-out.

PART 2: SET UP SEL-734 AND SEL-735 MODBUS DEVICES IN THE RTAC


This section describes a step-by-step process for adding an SEL-735 Modbus client connection to
an SEL RTAC and describes how to set up Modbus polls and add tags for the polled Modbus
data. In this example, the SEL-735 is the server (or slave) and the SEL RTAC is the client (or
master) requesting data from the server. The process for the SEL-734 is nearly identical except
for the register addresses used.

SEL Application Guide 2016-11 Date Code 20160308


9

Step 1
Create a new project in ACSELERATOR RTAC. Insert an SEL-735, and then select Modbus
Protocol, as shown in Figure 12.

Figure 12 SEL-735 Modbus Protocol

Date Code 20160308 SEL Application Guide 2016-11


10

Step 2
Complete the process of adding a new device by assigning a unique name to the device
(SEL_735 in this example) and selecting the proper Connection Type for the application, as
shown in Figure 13.

Figure 13 SEL-735 Client - Ethernet

SEL Application Guide 2016-11 Date Code 20160308


11

Step 3
On the Settings tab, enter the proper communications parameters to communicate with the
SEL-735 Ethernet port, and enable the Modbus setting for Write Multiple Holding Registers
Supported, as shown in Figure 14.

IP Address

Figure 14 Settings Tab

Step 4
Next, you need to add a set of holding registers to the project based on the address spaces for the
password, save settings, user map address, and user map value registers. These can be found in
the Modbus Register Map section of the SEL-735 Instruction Manual. Selections from the
Modbus Register Map section are shown in Figure 15.

Figure 15 Selections From Modbus Register Map

Date Code 20160308 SEL Application Guide 2016-11


12

The User-Mapped Registers have two sections: Mapped Register and Mapped Register
Value. Mapped Register is read-write (RW), and Mapped Register Value is read-only (R). The
registers from 9100 through 9224 contain the default addresses of the data that can be polled via
the user map, while registers 9225 through 9349 contain the metering or status data values
corresponding to the data points written in addresses 9100 through 9224. By writing a custom set
of addresses to registers 9100 through 9224, you can use a single poll to retrieve a custom data set
from registers 9225 to 9349.

Step 5
In ACSELERATOR RTAC, go to the Holding Registers tab and add 300 holding registers, as
shown in Figure 16.

Figure 16 Add Holding Registers

SEL Application Guide 2016-11 Date Code 20160308


13

Step 6
In the first five light-colored INC entries shown after adding the new holding registers, enter the
values shown in Figure 17 to set up Registers 70 to 74 as 16-bit unsigned most significant byte
(MSB) registers. Also set up the save settings register at Address 76.

Figure 17 Configure Password Registers

Date Code 20160308 SEL Application Guide 2016-11


14

Step 7
For the remaining 294 tags, change the tag type to APC by using <Ctrl+C> to copy the value for
APC and <Ctrl+V> to paste it. See Figure 18.

Figure 18 Change Tag Types

SEL Application Guide 2016-11 Date Code 20160308


15

Step 8
Save your project. Next, you need to build tag names for the Modbus device. You can easily do
this in spreadsheet software, such as Microsoft® Excel®, as shown in Figure 19, or you can refer
to Appendix B for a completed set of tag names that can be copied and pasted into the project.

Figure 19 Build Tag Names With CONCATENATE Function


By using the concatenate function in Excel (see Figure 19), you can dynamically build custom tag
names, as shown in Column E of Figure 20.

Figure 20 Example Tag Name Spreadsheet

Date Code 20160308 SEL Application Guide 2016-11


16

Step 9
Copy the contents of the tag names in Column E of the spreadsheet, from Rows 2 through 126, by
completing the following steps:
1. Drag the Tag Type header to the top of the screen, as shown in Figure 21, to sort by tag
type; expand the APC type.
2. Use paste (<Ctrl+V>) to add the TAG NAME column (Column E) from the spreadsheet.
3. Paste the REGISTER INDEX column (Column C) from the spreadsheet into the
Register Address Start column.
4. Change the Variation to 16 bit unsigned MSB for all entries.
1. Drag to sort by tag
type; expand the
3. Paste REGISTER
APC type.
INDEX column.

2. Paste TAG NAME


column from 4. Change Variation to
spreadsheet. 16 bit unsigned
MSB for all.

Figure 21 Sort and Name the Index Registers

SEL Application Guide 2016-11 Date Code 20160308


17

Step 10
For the other 125 values, you need to edit the spreadsheet to provide new tag names
(“INDEX_XX_VALUE”) for registers 9225 through 9349, which contain the actual data
requested. Add the values 9225 through 9349 into the adjacent column, and edit the formula as
shown in Figure 22.

Figure 22 Create Index Value Register Tags

Date Code 20160308 SEL Application Guide 2016-11


18

Step 11
The finished spreadsheet will look similar to Figure 23 and will allow you to repeat the process
for the remaining holding registers and the register values 9225 through 9349. Paste the tag
names highlighted in Figure 23 into the remaining holding registers.

Figure 23 Index Value Tags and Registers

SEL Application Guide 2016-11 Date Code 20160308


19

Step 12
Review the results of the copy-paste process in ACSELERATOR RTAC, as shown in Figure 24.
Then, save your project.

Figure 24 Completed Copy-Paste of Tag Names and Register Addresses

Date Code 20160308 SEL Application Guide 2016-11


20

Step 13
Next, click on the Read Holding Register Polls tab, and enter 3 in the Quantity field, as shown
in Figure 25.

Figure 25 Add Holding Register Polls


The Starting Address and Quantity for each poll should allow you to read the values for the
six password and save registers, the 125 user map address registers, and the 125 user map value
registers. Figure 26 shows a completed configuration, with poll periods shown in milliseconds.

Figure 26 Holding Register Polls

SEL Application Guide 2016-11 Date Code 20160308


21

PART 3: SET UP THE CUSTOMIZED MODBUS USER MAP


This section describes a step-by-step process for creating the user map text file and using the
RTAC File Manager through the web interface of ACSELERATOR RTAC. The File Manager on
the web interface allows you to easily upload or download files from the RTAC. For the purposes
of this application guide, it is assumed that your RTAC has already been configured for the
FileIO library upgrade.

Step 1
Open the provided UserMap.txt file, which correlates via Modbus addresses to the data values
found in the default DNP3 map for the SEL-735 Meter.

Step 2
Change the register numbers in the text file to match the data points for your application. It is
extremely important to maintain the same format as the provided text file. Figure 27 shows the
correct formatting for each row of exactly four numbers after MOD_XXX:=.

Figure 27 Example UserMap.txt

Step 3
Save your completed UserMap.txt file.

Date Code 20160308 SEL Application Guide 2016-11


22

Step 4
Log in to the web interface of the RTAC, and select the File Manager link, as shown in
Figure 28.

Figure 28 File Manager

Step 5
Locate your UserMap.txt file by clicking Choose File, as shown in Figure 29. Navigate to the
UserMap.txt file, and then click Open.

Figure 29 Uploading the UserMap.txt file in the File Manager

SEL Application Guide 2016-11 Date Code 20160308


23

Step 6
Click Upload to save the file to the RTAC File Manager, as shown in Figure 30.

Figure 30 Uploaded UserMap.txt file

PART 4: SET UP THE RTAC TO READ THE CUSTOMIZED MODBUS USER MAP
This section describes a step-by-step process for creating the necessary code to read the
UserMap.txt file and add the register numbers into an array. The FileIO library provides function
blocks that simplify asynchronous file management for basic file read and write operations.

Step 1
In your ACSELERATOR RTAC project, add a Virtual Tag List by clicking Insert > Tag Lists >
Virtual Tag List, as shown in Figure 31.

Figure 31 Insert a Virtual Tag List

Date Code 20160308 SEL Application Guide 2016-11


24

Step 2
Name the virtual tag list Virtual_Tags, as shown in Figure 32, and click Insert.

Figure 32 Rename the Virtual Tag List

Step 3
Select the Inputs tab, and click the + symbol to add tags. Enter 2, and click Add.

Step 4
Rename the tag names as follows:
• SCADA_Write_Initiate
• Read_New_Map

Step 5
Save the project to accept the new names.

Step 6
Add a global variable list by clicking Insert > IEC 61131-3 > GVL, as shown in Figure 33.

Figure 33 Insert a Global Variable List

SEL Application Guide 2016-11 Date Code 20160308


25

Step 7
Complete the process by providing a unique name for your global variable list and clicking
Insert. In this example, the default of GVL1 is used for the name.

Step 8
Add a register array of 0 to 124 of type REAL named RegisterArray to GVL1, as shown in
Figure 34.

Figure 34 Create Global Register Array

Step 9
Add the FileIO library to the project by clicking Insert > IEC 61131-3 > Library.

Step 10
Select the most recent version (highest numerical version number) of the FileIO library, and click
Insert, as shown in Figure 35.

Figure 35 Insert FileIO Library

Date Code 20160308 SEL Application Guide 2016-11


26

Step 11
Add a program by clicking Insert > IEC 61131-3 > Program.

Step 12
Name the program ReadTxt, and select ST (structured text) as the language, as shown in
Figure 36. Click Insert.

Figure 36 Insert ReadTxt Program

Step 13
Configure the variables as shown in Figure 37. The ByteArray, FileName, FileReader,
FirstScan, Copied, SecondTask, Edge1, and StepNumber variables are used in the process of
reading the text file into the byte array. The ValueA, ValueB, ValueC, ValueD, and A variables
are used in the process of manipulating the read data in the byte array into the global variable
register array. The code for the ReadTxt program is available for copying and pasting in
Appendix A.

Figure 37 ReadTxt Program Variables

SEL Application Guide 2016-11 Date Code 20160308


27

Step 14
Use the variables created in Step 13 to read the contents of the text file from the FileIO library
into the byte array. Due to the structure of the UserMap.txt file, the exact location of the register
values are known. With this knowledge, a simple FOR loop can be created to parse the data and
convert the data from a BYTE to a REAL data type. Once the data have been converted to a
REAL data type, they are then subtracted by 48 (the decimal representation of ASCII character
0), multiplied by the placeholder (10, 100, or 1000), and placed into the register array. Use the
example in Figure 38 to write the structured text for this program.

Figure 38 ReadTxt Program

Step 15
Save the project to accept the changes made in the ReadTxt program.

Date Code 20160308 SEL Application Guide 2016-11


28

PART 5: SET UP THE RTAC TO SEND THE CUSTOMIZED MODBUS USER MAP
This section describes a step-by-step process for creating the necessary code to trigger the order
of operations that sends the password to the meter, sends the values from the register array to the
corresponding Modbus user registers, and saves the settings. Because of the limitations of the
Function Code 10h in Modbus, you are limited to only performing 100 writes at a time. The
structured text code in the program Write_Modbus_User_Map (available in Appendix C) allows
you to send the password and the first 65 registers, wait 2 seconds, and then send the remaining
60 registers. An additional delay of 2 seconds is introduced between the writing of the last
60 registers and the sending of the save settings. A completed version of this program can be
found in Appendix C for copying and pasting purposes.

Step 1
In your ACSELERATOR RTAC project, add a program by clicking Insert > IEC 61131-3 >
Program.

Step 2
Name the program Write_Modbus_User_Map, and select ST as the language. Click Insert.

Step 3
Create the password variable, and enter the EAC password for your SEL meter (BLONDEL).
Create the rising-edge and falling-edge triggers as shown in Lines 4 and 5 of Figure 39. Create
timed-pulse function blocks as shown in Line 6, and create the Boolean variables as shown in
Line 7 by configuring the new program VAR section.

Figure 39 Write_Modbus_User_Map Variables

SEL Application Guide 2016-11 Date Code 20160308


29

Step 4
Use the previously created variables to generate code to send the desired register values to the
Modbus user registers on the SEL Meter. Figure 40 shows what this program looks like once it
has been completed.

Figure 40 Write_Modbus_User_Map Program

Step 5
Save the project to accept the changes made to the Write_Modbus_User_Map program.

Date Code 20160308 SEL Application Guide 2016-11


30

Step 6
Send the project to your RTAC. After determining that your SEL-735 Meter is
communicating with the RTAC, you can test the write operation by manually forcing the
SCADA_Write_Initiate bit to TRUE, as shown in Figure 41. Click in the Prepared value
column until TRUE is displayed, and then press <F6> to force and <Shift+F6> to unforce the
tag.

Figure 41 Force Tags to Test Application


If successful, the values found in the individual register array points under GVL1 will match the
oper.setMag as well as the status.instMag values found in your SEL-735 USERMAP_INDEX
tags, as shown in Figure 42.

Figure 42 Compare RegisterArray With Modbus Device

SEL Application Guide 2016-11 Date Code 20160308


31

One final test remains: You must check that the values stored in the INDEX_XX_VALUE tags
represent the expected metering values compared with the relay’s internal values. Figure 43
shows the result of Index 63, which contains the frequency in hertz (scaled up by 100) gathered
from Register 900.

Figure 43 Check Metering Values

CONCLUSION
This application guide describes different Modbus register maps (default and user) and presents a
unique application for dynamically programming an SEL-735 to use a custom user map. It also
demonstrates how to set an RTAC to control various SEL-735 holding registers, allowing secure,
password-protected updates to internal settings that are not exposed to the normal settings
interface. The use of the FileIO extension library is demonstrated as well to provide easy user
map settings adjustments via a user-uploaded text file.
By using the Modbus user map on the SEL-735, you have access to powerful features, such as
programmatically updated user map registers and extremely efficient polling capabilities.

Date Code 20160308 SEL Application Guide 2016-11


32

APPENDIX A: READTXT PROGRAM


PROGRAM ReadTxt
VAR CONSTANT
C_ByteArraySize :UDINT :=5000;
END_VAR
VAR
ByteArray : ARRAY[1..C_ByteArraySize] OF BYTE;
FileName : STRING(256) := '/UserMap.txt';
FileReader : class_FileReader;
FirstScan :BOOL :=TRUE;
Copied :BOOL :=FALSE;
SecondTask: BOOL :=TRUE;
ValueA :REAL;
ValueB :REAL;
ValueC :REAL;
ValueD :REAL;
A:INT;
Edge1:R_TRIG;
StepNumber : UDINT;
END_VAR
/// This program reads the contents of a text file from the FileIO library into a register array
StepNumber:=1;
IF FirstScan THEN
FileReader.ReadFile(FileName);
FirstScan :=FALSE;
ELSIF 0 < FileReader.BytesInBuffer AND NOT Copied THEN
FileReader.CopyTo(startByte :=0,
pt_byte:=ADR(ByteArray),
numbytes:=C_bytearraysize);
Copied:=TRUE;
END_IF
FileReader.Run();

IF Copied AND SecondTask THEN

FOR A:=0 TO 124 DO


ValueA:=BYTE_TO_REAL(ByteArray[a*15+10]) ;
ValueB:=BYTE_TO_REAL(ByteArray[a*15+11]) ;
ValueC:=BYTE_TO_REAL(ByteArray[a*15+12]) ;
ValueD:=BYTE_TO_REAL(ByteArray[a*15+13]) ;
IF (ValueA > 57) OR (ValueA < 48) THEN
RegisterArray[a]:=0;
ELSE
RegisterArray[a]:=((ValueA-48)*1000)+((ValueB-
48)*100)+((ValueC-48)*10)+(ValueD-48);
END_IF;
END_FOR
SecondTask:=FALSE;
END_IF
Edge1(CLK:=Virtual_Tags.Read_New_Map.stVal);
IF(Edge1.Q)THEN
CASE StepNumber OF
1:
FirstScan:=TRUE;
Copied:=FALSE;
SecondTask:=TRUE;
StepNumber:=2;
2:
FirstScan :=FALSE;
END_CASE
END_IF

SEL Application Guide 2016-11 Date Code 20160308


33

APPENDIX B: TAG NAMES FOR HOLDING REGISTERS (SEL-735)


Table 1 Tag Names
Index User Map Address Value Address IndexTag Name Value Tag Name
1 9100 9225 USERMAP_INDEX_1 INDEX_1_VALUE
2 9101 9226 USERMAP_INDEX_2 INDEX_2_VALUE
3 9102 9227 USERMAP_INDEX_3 INDEX_3_VALUE
4 9103 9228 USERMAP_INDEX_4 INDEX_4_VALUE
5 9104 9229 USERMAP_INDEX_5 INDEX_5_VALUE
6 9105 9230 USERMAP_INDEX_6 INDEX_6_VALUE
7 9106 9231 USERMAP_INDEX_7 INDEX_7_VALUE
8 9107 9232 USERMAP_INDEX_8 INDEX_8_VALUE
9 9108 9233 USERMAP_INDEX_9 INDEX_9_VALUE
10 9109 9234 USERMAP_INDEX_10 INDEX_10_VALUE
11 9110 9235 USERMAP_INDEX_11 INDEX_11_VALUE
12 9111 9236 USERMAP_INDEX_12 INDEX_12_VALUE
13 9112 9237 USERMAP_INDEX_13 INDEX_13_VALUE
14 9113 9238 USERMAP_INDEX_14 INDEX_14_VALUE
15 9114 9239 USERMAP_INDEX_15 INDEX_15_VALUE
16 9115 9240 USERMAP_INDEX_16 INDEX_16_VALUE
17 9116 9241 USERMAP_INDEX_17 INDEX_17_VALUE
18 9117 9242 USERMAP_INDEX_18 INDEX_18_VALUE
19 9118 9243 USERMAP_INDEX_19 INDEX_19_VALUE
20 9119 9244 USERMAP_INDEX_20 INDEX_20_VALUE
21 9120 9245 USERMAP_INDEX_21 INDEX_21_VALUE
22 9121 9246 USERMAP_INDEX_22 INDEX_22_VALUE
23 9122 9247 USERMAP_INDEX_23 INDEX_23_VALUE
24 9123 9248 USERMAP_INDEX_24 INDEX_24_VALUE
25 9124 9249 USERMAP_INDEX_25 INDEX_25_VALUE
26 9125 9250 USERMAP_INDEX_26 INDEX_26_VALUE
27 9126 9251 USERMAP_INDEX_27 INDEX_27_VALUE
28 9127 9252 USERMAP_INDEX_28 INDEX_28_VALUE
29 9128 9253 USERMAP_INDEX_29 INDEX_29_VALUE
30 9129 9254 USERMAP_INDEX_30 INDEX_30_VALUE
31 9130 9255 USERMAP_INDEX_31 INDEX_31_VALUE
32 9131 9256 USERMAP_INDEX_32 INDEX_32_VALUE

Date Code 20160308 SEL Application Guide 2016-11


34

Index User Map Address Value Address IndexTag Name Value Tag Name
33 9132 9257 USERMAP_INDEX_33 INDEX_33_VALUE
34 9133 9258 USERMAP_INDEX_34 INDEX_34_VALUE
35 9134 9259 USERMAP_INDEX_35 INDEX_35_VALUE
36 9135 9260 USERMAP_INDEX_36 INDEX_36_VALUE
37 9136 9261 USERMAP_INDEX_37 INDEX_37_VALUE
38 9137 9262 USERMAP_INDEX_38 INDEX_38_VALUE
39 9138 9263 USERMAP_INDEX_39 INDEX_39_VALUE
40 9139 9264 USERMAP_INDEX_40 INDEX_40_VALUE
41 9140 9265 USERMAP_INDEX_41 INDEX_41_VALUE
42 9141 9266 USERMAP_INDEX_42 INDEX_42_VALUE
43 9142 9267 USERMAP_INDEX_43 INDEX_43_VALUE
44 9143 9268 USERMAP_INDEX_44 INDEX_44_VALUE
45 9144 9269 USERMAP_INDEX_45 INDEX_45_VALUE
46 9145 9270 USERMAP_INDEX_46 INDEX_46_VALUE
47 9146 9271 USERMAP_INDEX_47 INDEX_47_VALUE
48 9147 9272 USERMAP_INDEX_48 INDEX_48_VALUE
49 9148 9273 USERMAP_INDEX_49 INDEX_49_VALUE
50 9149 9274 USERMAP_INDEX_50 INDEX_50_VALUE
51 9150 9275 USERMAP_INDEX_51 INDEX_51_VALUE
52 9151 9276 USERMAP_INDEX_52 INDEX_52_VALUE
53 9152 9277 USERMAP_INDEX_53 INDEX_53_VALUE
54 9153 9278 USERMAP_INDEX_54 INDEX_54_VALUE
55 9154 9279 USERMAP_INDEX_55 INDEX_55_VALUE
56 9155 9280 USERMAP_INDEX_56 INDEX_56_VALUE
57 9156 9281 USERMAP_INDEX_57 INDEX_57_VALUE
58 9157 9282 USERMAP_INDEX_58 INDEX_58_VALUE
59 9158 9283 USERMAP_INDEX_59 INDEX_59_VALUE
60 9159 9284 USERMAP_INDEX_60 INDEX_60_VALUE
61 9160 9285 USERMAP_INDEX_61 INDEX_61_VALUE
62 9161 9286 USERMAP_INDEX_62 INDEX_62_VALUE
63 9162 9287 USERMAP_INDEX_63 INDEX_63_VALUE
64 9163 9288 USERMAP_INDEX_64 INDEX_64_VALUE
65 9164 9289 USERMAP_INDEX_65 INDEX_65_VALUE
66 9165 9290 USERMAP_INDEX_66 INDEX_66_VALUE
67 9166 9291 USERMAP_INDEX_67 INDEX_67_VALUE

SEL Application Guide 2016-11 Date Code 20160308


35

Index User Map Address Value Address IndexTag Name Value Tag Name
68 9167 9292 USERMAP_INDEX_68 INDEX_68_VALUE
69 9168 9293 USERMAP_INDEX_69 INDEX_69_VALUE
70 9169 9294 USERMAP_INDEX_70 INDEX_70_VALUE
71 9170 9295 USERMAP_INDEX_71 INDEX_71_VALUE
72 9171 9296 USERMAP_INDEX_72 INDEX_72_VALUE
73 9172 9297 USERMAP_INDEX_73 INDEX_73_VALUE
74 9173 9298 USERMAP_INDEX_74 INDEX_74_VALUE
75 9174 9299 USERMAP_INDEX_75 INDEX_75_VALUE
76 9175 9300 USERMAP_INDEX_76 INDEX_76_VALUE
77 9176 9301 USERMAP_INDEX_77 INDEX_77_VALUE
78 9177 9302 USERMAP_INDEX_78 INDEX_78_VALUE
79 9178 9303 USERMAP_INDEX_79 INDEX_79_VALUE
80 9179 9304 USERMAP_INDEX_80 INDEX_80_VALUE
81 9180 9305 USERMAP_INDEX_81 INDEX_81_VALUE
82 9181 9306 USERMAP_INDEX_82 INDEX_82_VALUE
83 9182 9307 USERMAP_INDEX_83 INDEX_83_VALUE
84 9183 9308 USERMAP_INDEX_84 INDEX_84_VALUE
85 9184 9309 USERMAP_INDEX_85 INDEX_85_VALUE
86 9185 9310 USERMAP_INDEX_86 INDEX_86_VALUE
87 9186 9311 USERMAP_INDEX_87 INDEX_87_VALUE
88 9187 9312 USERMAP_INDEX_88 INDEX_88_VALUE
89 9188 9313 USERMAP_INDEX_89 INDEX_89_VALUE
90 9189 9314 USERMAP_INDEX_90 INDEX_90_VALUE
91 9190 9315 USERMAP_INDEX_91 INDEX_91_VALUE
92 9191 9316 USERMAP_INDEX_92 INDEX_92_VALUE
93 9192 9317 USERMAP_INDEX_93 INDEX_93_VALUE
94 9193 9318 USERMAP_INDEX_94 INDEX_94_VALUE
95 9194 9319 USERMAP_INDEX_95 INDEX_95_VALUE
96 9195 9320 USERMAP_INDEX_96 INDEX_96_VALUE
97 9196 9321 USERMAP_INDEX_97 INDEX_97_VALUE
98 9197 9322 USERMAP_INDEX_98 INDEX_98_VALUE
99 9198 9323 USERMAP_INDEX_99 INDEX_99_VALUE
100 9199 9324 USERMAP_INDEX_100 INDEX_100_VALUE
101 9200 9325 USERMAP_INDEX_101 INDEX_101_VALUE
102 9201 9326 USERMAP_INDEX_102 INDEX_102_VALUE

Date Code 20160308 SEL Application Guide 2016-11


36

Index User Map Address Value Address IndexTag Name Value Tag Name
103 9202 9327 USERMAP_INDEX_103 INDEX_103_VALUE
104 9203 9328 USERMAP_INDEX_104 INDEX_104_VALUE
105 9204 9329 USERMAP_INDEX_105 INDEX_105_VALUE
106 9205 9330 USERMAP_INDEX_106 INDEX_106_VALUE
107 9206 9331 USERMAP_INDEX_107 INDEX_107_VALUE
108 9207 9332 USERMAP_INDEX_108 INDEX_108_VALUE
109 9208 9333 USERMAP_INDEX_109 INDEX_109_VALUE
110 9209 9334 USERMAP_INDEX_110 INDEX_110_VALUE
111 9210 9335 USERMAP_INDEX_111 INDEX_111_VALUE
112 9211 9336 USERMAP_INDEX_112 INDEX_112_VALUE
113 9212 9337 USERMAP_INDEX_113 INDEX_113_VALUE
114 9213 9338 USERMAP_INDEX_114 INDEX_114_VALUE
115 9214 9339 USERMAP_INDEX_115 INDEX_115_VALUE
116 9215 9340 USERMAP_INDEX_116 INDEX_116_VALUE
117 9216 9341 USERMAP_INDEX_117 INDEX_117_VALUE
118 9217 9342 USERMAP_INDEX_118 INDEX_118_VALUE
119 9218 9343 USERMAP_INDEX_119 INDEX_119_VALUE
120 9219 9344 USERMAP_INDEX_120 INDEX_120_VALUE
121 9220 9345 USERMAP_INDEX_121 INDEX_121_VALUE
122 9221 9346 USERMAP_INDEX_122 INDEX_122_VALUE
123 9222 9347 USERMAP_INDEX_123 INDEX_123_VALUE
124 9223 9348 USERMAP_INDEX_124 INDEX_124_VALUE
125 9224 9349 USERMAP_INDEX_125 INDEX_125_VALUE

SEL Application Guide 2016-11 Date Code 20160308


37

APPENDIX C: WRITE_MODBUS_USER_MAP PROGRAM


PROGRAM Write_Modbus_User_Map
VAR
Password: STRING(10):='BLONDEL';
Edge1, Edge2 :R_TRIG;
Edge3, Edge4 :F_TRIG;
Delay1,Delay2 :TP;
Step1_Done,Step2_Done:BOOL;
END_VAR
Edge1(CLK:=VIRTUAL_TAGS.SCADA_WRITE_INITIATE.stVal);
IF (Edge1.Q)THEN
SEL_735_MODBUS.PASSWORD70.oper.ctlVal := (Password[0] * 256) + Password[1]; // 'BL'
SEL_735_MODBUS.PASSWORD71.oper.ctlVal := (Password[2] * 256) + Password[3]; // 'ON'
SEL_735_MODBUS.PASSWORD72.oper.ctlVal := (Password[4] * 256) + Password[5]; // 'DE'
SEL_735_MODBUS.PASSWORD73.oper.ctlVal := (Password[6] * 256) + Password[7]; // 'L '
SEL_735_MODBUS.PASSWORD74.oper.ctlVal := (Password[8] * 256) + Password[9]; // ' '

/// Send the OPER.TRIGGER to the targeted password registers to update


SEL_735_MODBUS.PASSWORD70.oper.trigger := TRUE;
SEL_735_MODBUS.PASSWORD71.oper.trigger := TRUE;
SEL_735_MODBUS.PASSWORD72.oper.trigger := TRUE;
SEL_735_MODBUS.PASSWORD73.oper.trigger := TRUE;
SEL_735_MODBUS.PASSWORD74.oper.trigger := TRUE;

///// Based on the addresses imported from the FileIO library text file into the
///// register array, write the addresses to the appropriate indices
SEL_735_MODBUS.USERMAP_INDEX_1.oper.SetMag:=RegisterArray[0];
SEL_735_MODBUS.USERMAP_INDEX_2.oper.SetMag:=RegisterArray[1];
SEL_735_MODBUS.USERMAP_INDEX_3.oper.SetMag:=RegisterArray[2];
SEL_735_MODBUS.USERMAP_INDEX_4.oper.SetMag:=RegisterArray[3];
SEL_735_MODBUS.USERMAP_INDEX_5.oper.SetMag:=RegisterArray[4];
SEL_735_MODBUS.USERMAP_INDEX_6.oper.SetMag:=RegisterArray[5];
SEL_735_MODBUS.USERMAP_INDEX_7.oper.SetMag:=RegisterArray[6];
SEL_735_MODBUS.USERMAP_INDEX_8.oper.SetMag:=RegisterArray[7];
SEL_735_MODBUS.USERMAP_INDEX_9.oper.SetMag:=RegisterArray[8];
SEL_735_MODBUS.USERMAP_INDEX_10.oper.SetMag:=RegisterArray[9];
SEL_735_MODBUS.USERMAP_INDEX_11.oper.SetMag:=RegisterArray[10];
SEL_735_MODBUS.USERMAP_INDEX_12.oper.SetMag:=RegisterArray[11];
SEL_735_MODBUS.USERMAP_INDEX_13.oper.SetMag:=RegisterArray[12];
SEL_735_MODBUS.USERMAP_INDEX_14.oper.SetMag:=RegisterArray[13];
SEL_735_MODBUS.USERMAP_INDEX_15.oper.SetMag:=RegisterArray[14];
SEL_735_MODBUS.USERMAP_INDEX_16.oper.SetMag:=RegisterArray[15];
SEL_735_MODBUS.USERMAP_INDEX_17.oper.SetMag:=RegisterArray[16];
SEL_735_MODBUS.USERMAP_INDEX_18.oper.SetMag:=RegisterArray[17];
SEL_735_MODBUS.USERMAP_INDEX_19.oper.SetMag:=RegisterArray[18];
SEL_735_MODBUS.USERMAP_INDEX_20.oper.SetMag:=RegisterArray[19];
SEL_735_MODBUS.USERMAP_INDEX_21.oper.SetMag:=RegisterArray[20];
SEL_735_MODBUS.USERMAP_INDEX_22.oper.SetMag:=RegisterArray[21];
SEL_735_MODBUS.USERMAP_INDEX_23.oper.SetMag:=RegisterArray[22];
SEL_735_MODBUS.USERMAP_INDEX_24.oper.SetMag:=RegisterArray[23];
SEL_735_MODBUS.USERMAP_INDEX_25.oper.SetMag:=RegisterArray[24];
SEL_735_MODBUS.USERMAP_INDEX_26.oper.SetMag:=RegisterArray[25];
SEL_735_MODBUS.USERMAP_INDEX_27.oper.SetMag:=RegisterArray[26];
SEL_735_MODBUS.USERMAP_INDEX_28.oper.SetMag:=RegisterArray[27];
SEL_735_MODBUS.USERMAP_INDEX_29.oper.SetMag:=RegisterArray[28];
SEL_735_MODBUS.USERMAP_INDEX_30.oper.SetMag:=RegisterArray[29];
SEL_735_MODBUS.USERMAP_INDEX_31.oper.SetMag:=RegisterArray[30];
SEL_735_MODBUS.USERMAP_INDEX_32.oper.SetMag:=RegisterArray[31];
SEL_735_MODBUS.USERMAP_INDEX_33.oper.SetMag:=RegisterArray[32];
SEL_735_MODBUS.USERMAP_INDEX_34.oper.SetMag:=RegisterArray[33];
SEL_735_MODBUS.USERMAP_INDEX_35.oper.SetMag:=RegisterArray[34];
SEL_735_MODBUS.USERMAP_INDEX_36.oper.SetMag:=RegisterArray[35];
SEL_735_MODBUS.USERMAP_INDEX_37.oper.SetMag:=RegisterArray[36];
SEL_735_MODBUS.USERMAP_INDEX_38.oper.SetMag:=RegisterArray[37];
SEL_735_MODBUS.USERMAP_INDEX_39.oper.SetMag:=RegisterArray[38];
SEL_735_MODBUS.USERMAP_INDEX_40.oper.SetMag:=RegisterArray[39];
SEL_735_MODBUS.USERMAP_INDEX_41.oper.SetMag:=RegisterArray[40];

Continued on Next Page

Date Code 20160308 SEL Application Guide 2016-11


38

Continued From Previous Page

SEL_735_MODBUS.USERMAP_INDEX_42.oper.SetMag:=RegisterArray[41];
SEL_735_MODBUS.USERMAP_INDEX_43.oper.SetMag:=RegisterArray[42];
SEL_735_MODBUS.USERMAP_INDEX_44.oper.SetMag:=RegisterArray[43];
SEL_735_MODBUS.USERMAP_INDEX_45.oper.SetMag:=RegisterArray[44];
SEL_735_MODBUS.USERMAP_INDEX_46.oper.SetMag:=RegisterArray[45];
SEL_735_MODBUS.USERMAP_INDEX_47.oper.SetMag:=RegisterArray[46];
SEL_735_MODBUS.USERMAP_INDEX_48.oper.SetMag:=RegisterArray[47];
SEL_735_MODBUS.USERMAP_INDEX_49.oper.SetMag:=RegisterArray[48];
SEL_735_MODBUS.USERMAP_INDEX_50.oper.SetMag:=RegisterArray[49];
SEL_735_MODBUS.USERMAP_INDEX_51.oper.SetMag:=RegisterArray[50];
SEL_735_MODBUS.USERMAP_INDEX_52.oper.SetMag:=RegisterArray[51];
SEL_735_MODBUS.USERMAP_INDEX_53.oper.SetMag:=RegisterArray[52];
SEL_735_MODBUS.USERMAP_INDEX_54.oper.SetMag:=RegisterArray[53];
SEL_735_MODBUS.USERMAP_INDEX_55.oper.SetMag:=RegisterArray[54];
SEL_735_MODBUS.USERMAP_INDEX_56.oper.SetMag:=RegisterArray[55];
SEL_735_MODBUS.USERMAP_INDEX_57.oper.SetMag:=RegisterArray[56];
SEL_735_MODBUS.USERMAP_INDEX_58.oper.SetMag:=RegisterArray[57];
SEL_735_MODBUS.USERMAP_INDEX_59.oper.SetMag:=RegisterArray[58];
SEL_735_MODBUS.USERMAP_INDEX_60.oper.SetMag:=RegisterArray[59];
SEL_735_MODBUS.USERMAP_INDEX_61.oper.SetMag:=RegisterArray[60];
SEL_735_MODBUS.USERMAP_INDEX_62.oper.SetMag:=RegisterArray[61];
SEL_735_MODBUS.USERMAP_INDEX_63.oper.SetMag:=RegisterArray[62];
SEL_735_MODBUS.USERMAP_INDEX_64.oper.SetMag:=RegisterArray[63];
SEL_735_MODBUS.USERMAP_INDEX_65.oper.SetMag:=RegisterArray[64];

/// Send the trigger for multiple writes

SEL_735_MODBUS.USERMAP_INDEX_1.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_2.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_3.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_4.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_5.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_6.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_7.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_8.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_9.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_10.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_11.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_12.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_13.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_14.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_15.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_16.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_17.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_18.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_19.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_20.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_21.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_22.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_23.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_24.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_25.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_26.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_27.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_28.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_29.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_30.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_31.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_32.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_33.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_34.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_35.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_36.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_37.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_38.oper.trigger := TRUE;

Continued on Next Page

SEL Application Guide 2016-11 Date Code 20160308


39

Continued From Previous Page

SEL_735_MODBUS.USERMAP_INDEX_39.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_40.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_41.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_42.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_43.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_44.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_45.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_46.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_47.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_48.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_49.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_50.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_51.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_52.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_53.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_54.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_55.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_56.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_57.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_58.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_59.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_60.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_61.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_62.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_63.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_64.oper.trigger := TRUE;
Step1_Done:=TRUE;
ELSE

SEL_735_MODBUS.PASSWORD70.oper.trigger := FALSE;
SEL_735_MODBUS.PASSWORD71.oper.trigger := FALSE;
SEL_735_MODBUS.PASSWORD72.oper.trigger := FALSE;
SEL_735_MODBUS.PASSWORD73.oper.trigger := FALSE;
SEL_735_MODBUS.PASSWORD74.oper.trigger := FALSE;

SEL_735_MODBUS.USERMAP_INDEX_1.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_2.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_3.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_4.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_5.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_6.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_7.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_8.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_9.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_10.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_11.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_12.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_13.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_14.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_15.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_16.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_17.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_18.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_19.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_20.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_21.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_22.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_23.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_24.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_25.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_26.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_27.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_28.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_29.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_30.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_31.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_32.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_33.oper.trigger := FALSE;

Continued on Next Page

Date Code 20160308 SEL Application Guide 2016-11


40

Continued From Previous Page

SEL_735_MODBUS.USERMAP_INDEX_34.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_35.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_36.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_37.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_38.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_39.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_40.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_41.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_42.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_43.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_44.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_45.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_46.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_47.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_48.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_49.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_50.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_51.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_52.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_53.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_54.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_55.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_56.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_57.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_58.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_59.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_60.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_61.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_62.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_63.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_64.oper.trigger := FALSE;
END_IF
Delay1(IN:=Step1_Done,PT:=T#2S);
Edge3(CLK:=Delay1.q);
IF (Edge3.Q) THEN
SEL_735_MODBUS.USERMAP_INDEX_66.oper.SetMag:=RegisterArray[65];
SEL_735_MODBUS.USERMAP_INDEX_67.oper.SetMag:=RegisterArray[66];
SEL_735_MODBUS.USERMAP_INDEX_68.oper.SetMag:=RegisterArray[67];
SEL_735_MODBUS.USERMAP_INDEX_69.oper.SetMag:=RegisterArray[68];
SEL_735_MODBUS.USERMAP_INDEX_70.oper.SetMag:=RegisterArray[69];
SEL_735_MODBUS.USERMAP_INDEX_71.oper.SetMag:=RegisterArray[70];
SEL_735_MODBUS.USERMAP_INDEX_72.oper.SetMag:=RegisterArray[71];
SEL_735_MODBUS.USERMAP_INDEX_73.oper.SetMag:=RegisterArray[72];
SEL_735_MODBUS.USERMAP_INDEX_74.oper.SetMag:=RegisterArray[73];
SEL_735_MODBUS.USERMAP_INDEX_75.oper.SetMag:=RegisterArray[74];
SEL_735_MODBUS.USERMAP_INDEX_76.oper.SetMag:=RegisterArray[75];
SEL_735_MODBUS.USERMAP_INDEX_77.oper.SetMag:=RegisterArray[76];
SEL_735_MODBUS.USERMAP_INDEX_78.oper.SetMag:=RegisterArray[77];
SEL_735_MODBUS.USERMAP_INDEX_79.oper.SetMag:=RegisterArray[78];
SEL_735_MODBUS.USERMAP_INDEX_80.oper.SetMag:=RegisterArray[79];
SEL_735_MODBUS.USERMAP_INDEX_81.oper.SetMag:=RegisterArray[80];
SEL_735_MODBUS.USERMAP_INDEX_82.oper.SetMag:=RegisterArray[81];
SEL_735_MODBUS.USERMAP_INDEX_83.oper.SetMag:=RegisterArray[82];
SEL_735_MODBUS.USERMAP_INDEX_84.oper.SetMag:=RegisterArray[83];
SEL_735_MODBUS.USERMAP_INDEX_85.oper.SetMag:=RegisterArray[84];
SEL_735_MODBUS.USERMAP_INDEX_86.oper.SetMag:=RegisterArray[85];
SEL_735_MODBUS.USERMAP_INDEX_87.oper.SetMag:=RegisterArray[86];
SEL_735_MODBUS.USERMAP_INDEX_88.oper.SetMag:=RegisterArray[87];
SEL_735_MODBUS.USERMAP_INDEX_89.oper.SetMag:=RegisterArray[88];
SEL_735_MODBUS.USERMAP_INDEX_90.oper.SetMag:=RegisterArray[89];
SEL_735_MODBUS.USERMAP_INDEX_91.oper.SetMag:=RegisterArray[90];
SEL_735_MODBUS.USERMAP_INDEX_92.oper.SetMag:=RegisterArray[91];
SEL_735_MODBUS.USERMAP_INDEX_93.oper.SetMag:=RegisterArray[92];
SEL_735_MODBUS.USERMAP_INDEX_94.oper.SetMag:=RegisterArray[93];
SEL_735_MODBUS.USERMAP_INDEX_95.oper.SetMag:=RegisterArray[94];
SEL_735_MODBUS.USERMAP_INDEX_96.oper.SetMag:=RegisterArray[95];
SEL_735_MODBUS.USERMAP_INDEX_97.oper.SetMag:=RegisterArray[96];
SEL_735_MODBUS.USERMAP_INDEX_98.oper.SetMag:=RegisterArray[97];

Continued on Next Page

SEL Application Guide 2016-11 Date Code 20160308


41

Continued From Previous Page

SEL_735_MODBUS.USERMAP_INDEX_99.oper.SetMag:=RegisterArray[98];
SEL_735_MODBUS.USERMAP_INDEX_100.oper.SetMag:=RegisterArray[99];
SEL_735_MODBUS.USERMAP_INDEX_101.oper.SetMag:=RegisterArray[100];
SEL_735_MODBUS.USERMAP_INDEX_102.oper.SetMag:=RegisterArray[101];
SEL_735_MODBUS.USERMAP_INDEX_103.oper.SetMag:=RegisterArray[102];
SEL_735_MODBUS.USERMAP_INDEX_104.oper.SetMag:=RegisterArray[103];
SEL_735_MODBUS.USERMAP_INDEX_105.oper.SetMag:=RegisterArray[104];
SEL_735_MODBUS.USERMAP_INDEX_106.oper.SetMag:=RegisterArray[105];
SEL_735_MODBUS.USERMAP_INDEX_107.oper.SetMag:=RegisterArray[106];
SEL_735_MODBUS.USERMAP_INDEX_108.oper.SetMag:=RegisterArray[107];
SEL_735_MODBUS.USERMAP_INDEX_109.oper.SetMag:=RegisterArray[108];
SEL_735_MODBUS.USERMAP_INDEX_110.oper.SetMag:=RegisterArray[109];
SEL_735_MODBUS.USERMAP_INDEX_111.oper.SetMag:=RegisterArray[110];
SEL_735_MODBUS.USERMAP_INDEX_112.oper.SetMag:=RegisterArray[111];
SEL_735_MODBUS.USERMAP_INDEX_113.oper.SetMag:=RegisterArray[112];
SEL_735_MODBUS.USERMAP_INDEX_114.oper.SetMag:=RegisterArray[113];
SEL_735_MODBUS.USERMAP_INDEX_115.oper.SetMag:=RegisterArray[114];
SEL_735_MODBUS.USERMAP_INDEX_116.oper.SetMag:=RegisterArray[115];
SEL_735_MODBUS.USERMAP_INDEX_117.oper.SetMag:=RegisterArray[116];
SEL_735_MODBUS.USERMAP_INDEX_118.oper.SetMag:=RegisterArray[117];
SEL_735_MODBUS.USERMAP_INDEX_119.oper.SetMag:=RegisterArray[118];
SEL_735_MODBUS.USERMAP_INDEX_120.oper.SetMag:=RegisterArray[119];
SEL_735_MODBUS.USERMAP_INDEX_121.oper.SetMag:=RegisterArray[120];
SEL_735_MODBUS.USERMAP_INDEX_122.oper.SetMag:=RegisterArray[121];
SEL_735_MODBUS.USERMAP_INDEX_123.oper.SetMag:=RegisterArray[122];
SEL_735_MODBUS.USERMAP_INDEX_124.oper.SetMag:=RegisterArray[123];
SEL_735_MODBUS.USERMAP_INDEX_125.oper.SetMag:=RegisterArray[124];

/// Send the trigger for multiple writes

SEL_735_MODBUS.USERMAP_INDEX_65.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_66.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_67.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_68.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_69.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_70.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_71.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_72.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_73.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_74.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_75.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_76.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_77.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_78.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_79.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_80.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_81.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_82.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_83.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_84.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_85.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_86.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_87.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_88.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_89.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_90.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_91.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_92.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_93.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_94.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_95.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_96.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_97.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_98.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_99.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_100.oper.trigger := TRUE;

Continued on Next Page

Date Code 20160308 SEL Application Guide 2016-11


42

Continued From Previous Page

SEL_735_MODBUS.USERMAP_INDEX_101.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_102.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_103.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_104.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_105.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_106.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_107.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_108.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_109.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_110.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_111.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_112.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_113.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_114.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_115.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_116.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_117.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_118.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_119.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_120.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_121.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_122.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_123.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_124.oper.trigger := TRUE;
SEL_735_MODBUS.USERMAP_INDEX_125.oper.trigger := TRUE;

//// After completing the write,


//// Save the settings change by sending a 1 to the save settings register
SEL_735_MODBUS.SAVE_SETTINGS_SEND.oper.ctlVal := 1;
Step2_Done:=TRUE;
ELSE

SEL_735_MODBUS.USERMAP_INDEX_65.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_66.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_67.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_68.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_69.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_70.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_71.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_72.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_73.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_74.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_75.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_76.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_77.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_78.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_79.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_80.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_81.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_82.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_83.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_84.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_85.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_86.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_87.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_88.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_89.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_90.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_91.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_92.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_93.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_94.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_95.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_96.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_97.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_98.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_99.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_100.oper.trigger := FALSE;

Continued on Next Page

SEL Application Guide 2016-11 Date Code 20160308


43

Continued From Previous Page

SEL_735_MODBUS.USERMAP_INDEX_101.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_102.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_103.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_104.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_105.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_106.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_107.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_108.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_109.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_110.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_111.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_112.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_113.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_114.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_115.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_116.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_117.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_118.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_119.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_120.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_121.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_122.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_123.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_124.oper.trigger := FALSE;
SEL_735_MODBUS.USERMAP_INDEX_125.oper.trigger := FALSE;

END_IF
Delay2(IN:=Step2_Done,PT:=T#2S);
Edge4(CLK:=Delay2.q);
IF(Edge4.Q)THEN
SEL_735_MODBUS.SAVE_SETTINGS_SEND.oper.trigger:=TRUE;
ELSE
SEL_735_MODBUS.SAVE_SETTINGS_SEND.oper.trigger:=FALSE;
END_IF

FACTORY ASSISTANCE
We appreciate your interest in SEL products and services. If you have questions or comments,
please contact us at:
Schweitzer Engineering Laboratories, Inc.
2350 NE Hopkins Court
Pullman, WA 99163-5603 USA
Telephone: +1.509.332.1890
Fax: +1.509.332.7990
www.selinc.com • [email protected]

Date Code 20160308 SEL Application Guide 2016-11


44

© 2016 by Schweitzer Engineering Laboratories, Inc.


All rights reserved.

All brand or product names appearing in this document are the


trademark or registered trademark of their respective holders. No
SEL trademarks may be used without written permission.

SEL products appearing in this document may be covered by


U.S. and Foreign patents.
*AG2016-11*
SEL Application Guide 2016-11 Date Code 20160308

You might also like