DIgSILENT Programming Language (DPL)
The DPL-Programming Language, offers a flexible interface for automating tasks in the DIgSILENT PowerFactory program. The DPL scripting language adds a new dimension to the PowerFactory software by allowing the creation of new calculation functions. Typical examples of such functions are
- Transfer capability analysis
- Automatic protection coordination
- Specific voltage stability analysis
- Contingency - network impedance analysis
- Parametric sweep calculations
- Penalty factor analysis
The DPL Object Oriented script language is intuitive and easy to learn. The basic set of commands includes:
- flow commands like "if-then-else", "do-while"
- Input, output and reporting routines
- Mathematical expressions
- Execution of PowerFactory commands
- PowerFactory object procedure calls
- DPL subroutine calls
The strength of the DPL scripting language can be characterized by the following keywords
Easy Development
The small basic syntax allows for the quick creation of simple commands to automate tasks. Tasks like renaming objects, executing specific search and replace commands, post-processing calculation results and creating specific reports are just some examples.
Transparency
All parameters of all objects in the network models are accessible. DPL can be used to query the whole database and to process all user-input and result parameters without restrictions.
Standardizing Commands
The DPL language can be used to create new 'standardized' DPL commands that can be used over and over again. DPL commands allow for the definitions of input parameters and can be started for specific selections of objects. Proven DPL commands can be safely stored in DPL command libraries and be used from there without the risk of damaging the scripts.
Control
DPL commands can configure and execute all PowerFactory commands. This includes the load flow and short-circuits calculation commands, but also the commands for transient simulation, harmonic analysis, reliability assessment, etc. New objects can be created in the database, and existing objects can be copied, deleted and edited. New reports can be defined and written to the output window, new graphs can be created and existing graphs can be adjusted to a user-defined selection or the current calculation results.
Modularity
A DPL command may contain other DPL commands which will then act as subroutines. This allows for the testing of subroutines as independent commands. Existing commands can be combined to quickly create more complex commands.