Skip to main content
Version: 8.1



The following function uses system.dnp3 and the Legacy DNP3 driver. See for DNP3 functions using the DNP3 driver.

This function is used in Python Scripting.


Issues a Direct-Operate command for digital control operations at binary output points (CROB).

Client Permission Restrictions

Permission Type: DNP3 Management

Client access to this scripting function is blocked to users that do not meet the role/zone requirements for the above permission type. This function is unaffected when run in the Gateway scope.


system.dnp3.directOperateBinary(deviceName, indexes, opType, tcCode, count, onTime, offTime)


StringdeviceNameThe name of the DNP3 device driver.
ListindexesA list of indexes of the objects to be modified in the outstation.
IntegeropTypeThe type of the operation. 0=NUL, 1=PULSE_ON, 2=PULSE_OFF, 3=LATCH_ON, 4=LATCH_OFF
IntegertcCodeThe Trip-Close code, used in conjunction with the opType. 0=NUL, 1=CLOSE, 2=TRIP
IntegercountThe number of times the outstation shall execute the operation.
LongonTimeThe duration that the output drive remains active, in millis. [optional]
LongoffTimeThe duration that the output drive remains non-active, in millis. [optional]


The DNP3 status code of the response, as an integer.


Gateway, Vision Client, Perspective Session

Code Examples

Example #1
# This example shows latching off 3 binary output points with the Direct-Operate command. 

off = system.dnp3.LATCH_OFF
system.dnp3.directOperateBinary("Dnp3", [0, 1, 2], off)
Example #2
# This example shows setting a binary output point at index 3 to pulse at 5 second intervals
# with the Direct-Operate command.

pulse = system.dnp3.PULSE_OFF
trip = system.dnp3.TRIP
system.dnp3.directOperateBinary("Dnp3", [3], pulse, trip, onTime=5000, offTime=5000)


system dnp3 directOperateAnalog, dnp3.directOperateAnalog