M60870_5

Concept Link IconSee also

Communication control for the IEC 60870-5 client driver, IEC 101 and IEC 104.

This instruction replaces the M104 instruction in version 15.1 onwards. The instruction M104 is still supported at run-time for backwards compatibility but must not be used for new projects.

WebVue support - Yes.

Mode

Mnemonic

Syntax

1 START 1
2 STOP 1
3 CFG 2
4 CLOCKSYNCHRO 3
5 TEST 3
6 RESET 4
7 SWITCHOVER 8
8 GENINT 3
9 GRPINT 5
10 GENINT_COUNTER 3
11 GRPINT_COUNTER 5
12 CMD_EXECUTE 6
13 CMD_SBO_SELECT 6
14 CMD_SBO_CANCEL 7
15 CMD_SBO_OPERATE 7
16 READ_IOA 9
17 READ 7
18 SETPARAM 10
19 SETPARAM_MNV 11
20 SETPARAM_MSV 11
21 SETPARAM_MFP 11

Common arguments

Argument

Meaning

CommObjectName

The name of an IEC 60870-5 communication object, under the form Network, Network.Device or Network.Device.Sector. Type STR.

SectorName

The name of an IEC 60870-5 sector under the form Network.Device.Sector. Type STR.

ResultVar

The name of a register variable in which information resulting from the instruction will be placed. Type STR.

Possible values are:

1 - Command in progress
2 - Command completed successfully
3 - Command failed
-1 - The network object could not be found (error returned by the producer)
-2 - The device object could not be found (error returned by the producer)
-3 - The sector object could not be found (error returned by the producer)

Syntax 1

IntVal = M60870_5(Mode, CommObjectName, Destination[, ResultVar]);

Return type: INTEGER.

Argument

Meaning

Destination Destination of the command. Type STR.
LOCAL - The command is run locally. There is no effect on a station that does not produce the communication object.
ACTIVE - The command is routed to the active station of the association that produces the communication object, or run on the local station if no server list is defined.
ALLPRODUCERS - The command is routed to all stations of the association that produces the communication object, or run on the local station if no server list is defined.

Execution

Mode

Mnemonic

Action

1

START

Start an IEC 60870-5 communication object.

2 STOP Stop an IEC 60870-5 communication object.
   

Return:

0: Command sent
-1: Invalid mode
-2: Syntax error in parameter CommObjectName
-3: The object CommObjectName could not be found
-4: Invalid value for the parameter Destination
-8: The variable ResultVar could not be found

Syntax 2

IntVal = M60870_5(Mode, CommObjectName, PropertyName, PropertyValue[, ResultVar])

Return type: INTEGER.

Argument

Meaning

PropertyName

The name of the property to modify. See the list below. Type STR.

PropertyValue The new value to set for the property. See list below. Type STR.

Property name

Property value

Description

"IpAddress"

"x.x.x.x"

String containing an IP V4 address.

Execution

Mode

Mnemonic

Action

3

CFG

Modify the configuration of an IEC 60870-5 communication object.

   

Return:

0: Command sent
-1: Invalid mode
-2: Syntax error in parameter CommObjectName
-3: The object CommObjectName could not be found
-6: Invalid parameter PropertyName
-8: The variable ResultVar could not be found

Syntax 3

IntVal = M60870_5(Mode, SectorName[, ResultVar]);

Return type: INTEGER.

Execution

Mode Mnemonic Action
4 CLOCKSYNCHRO Send a clock synchronization request to the sector.
5 TEST Send a Test request to the sector.
8 GENINT Send a general interrogation request to the sector.
10 GENINT_COUNTER Send a general counter interrogation to the sector.
   

Return:

0: Command sent
-1: Invalid mode
-2: Syntax error in parameter SectorName
-3: The object SectorName could not be found
-8: The variable ResultVar could not be found

Syntax 4

IntVal = M60870_5(Mode, SectorName, Qualifier[, ResultVar])

Return type: INTEGER.

Argument

Meaning

Qualifier

Qualifier of the request. Type INTEGER.

Possible values:

1 - General reset of process
2 - Reset of pending information with time tag of the event buffer

Private values of the Qrp can also be used as described in the IEC 60870-5 standard.

Execution

Mode

Mnemonic

Action

6

RESET

Send a Reset request to the sector.

   

Return:

0: Command sent
-1: Invalid mode
-2: Syntax error in parameter SectorName
-3: The object SectorName could not be found
-6: Invalid parameter Qualifier
-8: The variable ResultVar could not be found

Syntax 5

IntVal = M60870_5(Mode, SectorName, GroupNumber[, ResultVar])

Return type: INTEGER.

Argument

Meaning

GroupNumber

Group number. Type INTEGER.

Execution

Mode

Mnemonic

Action

9

GRPINT

Send a group interrogation to the sector. GroupNumber must be between 1 and 16.
11 GRPINT_COUNTER Send a counter group interrogation to the sector. GroupNumber must be between 1 and 4.
   

Return:

0: Command sent
-1: Invalid mode
-2: Syntax error in parameter SectorName
-3: The object SectorName could not be found
-6: Invalid parameter GroupNumber
-8: The variable ResultVar could not be found
-15: Parameter GroupNumber out of range

Syntax 6

IntVal = M60870_5(Mode, VariableName, Value[, Qualifier [, ResultVar]])

Return type: INTEGER.

Argument

Meaning

VariableName

Name of the variable that is the target of the request. Type STR.
Value

Value to send. Type DOUBLE or STR.

Step position commands uses the following values:

0 or "UP" - Send a step up command
1 or "DOWN" - Send a step down command
Qualifier

Qualifier of the request if one wants to override the one defined at the variable level. The value can be either a predefined string or an analog value. Type STR or INTEGER.

Numeric values greater than 3 can also be used for private values of the Qoc.Qu as described in the IEC 60870-5 standard.

  String qualifier Integer qualifier Notes
  "" Not supported Use the empty string "" to apply the qualifier defined at the variable configuration level.
  "NO" 0  
  "SHORT_PULSE" 1  
  "LONG_PULSE" 2  
  "PERSISTENT" 3  

Execution

Mode

Mnemonic

Action

12 CMD_EXECUTE Send an Execute command to the variable VariableName.
13 CMD_SBO_SELECT Send a Select command for the variable VariableName.
   

Return:

0: Command sent
-1: Invalid mode
-6: Invalid parameter Qualifier
-7: Invalid parameter VariableName
-8: The variable VariableName or ResultVar could not be found
-14: Parameter Qualifier out of range
-15: Invalid parameter Value
-19: A command is already in progress

Syntax 7

IntVal = M60870_5(Mode, VariableName[, ResultVar])

Return type: INTEGER.

Argument

Meaning

VariableName

Name of the variable that is the target of the request. Type STR.

Execution

Mode

Mnemonic

Action

14

CMD_SBO_CANCEL

Send a Cancel command for the variable VariableName.

   

Return:

0: Command sent
-1: Invalid mode
-7: Invalid parameter VariableName
-8: The variable VariableName or ResultVar could not be found
-12: Failed to cancel the SBO command - Command was never selected
15 CMD_SBO_OPERATE Send an Operate command for the variable VariableName.
   

Return:

0: Command sent
-1: Invalid mode
-7: Invalid parameter VariableName
-8: The variable VariableName or ResultVar could not be found
-12: Failed to operate the SBO command - Command was never selected
17 READ Send a Read request for the variable VariableName.
   

Return:

0: Command sent
-1: Invalid mode
-7: Invalid parameter VariableName
-8: The variable VariableName or ResultVar could not be found
-12: Invalid variable type
-16: The variable source is not the IEC 60870-5 driver

Syntax 8

IntVal = M60870_5(Mode, DeviceName[, ResultVar])

Return type: INTEGER.

Argument

Meaning

DeviceName

Name of the IEC 60870-5 device or standby device to force active. Type STR.

The name shall be:

For a main device: Network.Device
For a standby device: Network.Device.StandbyDevice.

Execution

Mode

Mnemonic

Action

7 SWITCHOVER As part of field device redundancy, send a switchover command to force the device DeviceName active.
   

Return:

0: Command sent
-1: Invalid mode
-2: Syntax error in parameter DeviceName
-3: The object DeviceName could not be found
-6: Invalid parameter DeviceName
-8: The variable ResultVar could not be found

Syntax 9

IntVal = M60870_5(Mode, SectorName, IOA[, ResultVar])

Return type: INTEGER.

Argument

Meaning

IOA

Information Object Address to read. The value can be either a string or a raw analog value. Type STR or INTEGER.
The string interpretation depends on the defined address format for the sector.

  String IOA Description
  "x" Structured 1 byte
  "x#y" Structured 2 byte
  "x#y#z" Structured 3 byte

Execution

Mode

Mnemonic

Action

16 READ_IOA Send a Read request for the Information Object Address IOA of the sector SectorName.
   

Return:

0: Command sent
-1: Invalid mode
-2: Syntax error in parameter SectorName
-3: The object SectorName could not be found
-6: Invalid parameter IOA
-8: The variable ResultVar could not be found

Syntax 10

IntVal = M60870_5(Mode, VariableName, Qualifier, Value[, ResultVar])

Return type: INTEGER.

Argument

Meaning

VariableName

The name of the variable that is the target of the request. Type STR.
Value Value of the parameter to be set. Type DOUBLE.
Qualifier

Identifier of the parameter to be set.

Numeric values greater than 4 can also be used for private values of the Qpm.Kpa as described in the IEC 60870-5 standard.

  String qualifier Numeric qualifier
  "THRESHOLD_VALUE" 1
  "SMOOTHING_FACTOR" 2
  "LOW_LIMIT" 3
  "HIGH_LIMIT" 4

Execution

Mode

Mnemonic

Action

18 SETPARAM Send a request to set the parameter Qualifier to Value for the IOA mapped on the variable VariableName.
   

Return:

0: Command sent
-1: Invalid mode
-4: Invalid string value for parameter Qualifier
-6: Invalid parameter Qualifier
-7: Invalid parameter VariableName
-8: The variable VariableName or ResultVar could not be found
-14: Parameter Qualifier out of range
-15: Invalid parameter Value

Syntax 11

IntVal = M60870_5(Mode, SectorName, IOA, Qualifier, Value[, ResultVar])

Return type: INTEGER.

Argument

Meaning

IOA

The Information Object Address that is the target of the request. The value can be either a string or an raw analog value. Type STR or INTEGER.
The string interpretation depends on the defined sector address format. Type STR.

  String IOA Description
  "x" Structured 1 byte
  "x#y" Structured 2 byte
  "x#y#z" Structured 3 byte
Value Value of the parameter to be set. Type INTEGER.
Qualifier

Identifier of the parameter to be set.

Numeric values greater than 4 can also be used for private values of the Qpm.Kpa as described in the IEC 60870-5 standard.

  String qualifier Integer qualifier
  "THRESHOLD_VALUE" 1
  "SMOOTHING_FACTOR" 2
  "LOW_LIMIT" 3
  "HIGH_LIMIT" 4

Execution

Mode

Mnemonic

Action

19 SETPARAM_MNV Send a request to set the parameter Qualifier to Value for the Information Object Address IOA of sector SectorName for a measure normalized value.
20 SETPARAM_MSV Send a request to set the parameter Qualifier to Value for the Information Object Address IOA of sector SectorNamefor a measure scaled value.
21 SETPARAM_MFP Send a request to set the parameter Qualifier to Value for the Information Object Address IOA of sector SectorName for a floating point value.
   

Return:

0: Command sent
-1: Invalid mode
-2: Syntax error in parameter SectorName
-3: The object SectorName could not be found
-4: Invalid string value for parameter Qualifier
-6: Invalid parameter Qualifier or IOA
-8: The variable ResultVar could not be found
-14: Parameter Qualifier out of range
-15: Invalid parameter Value