Documentation Home Page ◇ HYPERSIM Home Page
Pour la documentation en FRANÇAIS, utilisez l'outil de traduction de votre navigateur Chrome, Edge ou Safari. Voir un exemple.
ABB PS935 | Configuration
The ABB PS935 driver is configurable either through HYPERSIM's graphical user interface or through the legacy workflow using the .io file. The two methods are equivalent and will produce the same results. Choosing one method or the other is a matter of the user's preference.
Configuring Using The Graphical User Interface
Accessing The I/O Interface Configuration
The ABB PS935 interface can be configured in the I/O Interface Configuration tool that can be opened from the HYPERSIM ribbon.
For more information on the general use of the I/O Interface Configuration, read here.
General Configuration
The ABB PS935 driver is configured within a single page.
MAC address | The identifier of the physical ABB PS935 device being configured |
Count digital in | Number of binary values sent from HYPERSIM to the device |
Count digital out | Number of binary values received by HYPERSIM from the device |
Count float in | Number of floating point values sent from HYPERSIM to the device |
Count float out | Number of floating point values received by HYPERSIM from the device |
Board execution mode | Select whether the driver works in hardware loop-back mode, software loop-back mode or no loop-back at all. The no loop-back option is the one that needs to be used in order to interface with the equipment connected to the ABB PS935 device. The way the data exchanged with HYPERSIM is consumed depends on the firmware programmed in the device. In other words, the driver uses the memory space specified by ABB (considered as default mode). The hardware loop-back option exchanges data with the ABB PS935 device, and is therefore meant to ensure the correct setup and function of the device, if necessary. The driver uses the same memory space for writing and reading (considered as test mode for internal loopback). The software loop-back option does not make use of the ABB PS935 device, instead it emulates the board. This mode allows to test the HYPERSIM model setup without any boards. Possible options are:
|
Configuring Using The .io File Workflow
The ABB PS935 I/O interface also offers the possibility of using the legacy file system for configuration.
It needs two configuration files to be able to work properly in HYPERSIM:
the .io file
the driver configuration file
For sake of simplicity, this document will use the following names: PS935.io for the .io file and PS935_cfg.opal for the driver configuration file.
Note that these files exist only on the simulator. Therefore, editing them requires access to the simulator's file system and console. In order to achieve that, please follow this knowledge base article: https://www.opal-rt.com/support-knowledge-base/?article=AA-01044.
PS935.IO
This file lists a series of important details needed by the HYPERSIM simulation. The name of the .io file must be specified in the hyServMain.cfg file (found at /export/local/ssr/hyconfig) with the line:
IOFILE PS935.io
The file has three main sections, named as follows: [HARDWARE_DIL], [MAPPING] and [SENSORS_DIL]. Below is an explanation of how these sections must be completed in order to use the ABB PS935 driver in your simulation.
First of all, the [HARDWARE_DIL] section lists the drivers that will be used in the simulation. For the PS935 driver to be included, the section should look as follows:
[HARDWARE_DIL]
!Tag Type Identification IOMode Config
!--- ---- -------------- ------ ------
opal_1 PS935 0xeace4474 1 export/local/ssr/hyconfig/PS935_cfg.opal
Each entry (line) is composed of 5 items :
Tag: Label used to refer to the current hardware. You can choose the tag name as you wish; this tag is used to identify the driver further down in the next sections of the .io file.
Type: Main hardware’s type. “PS935” = ABB PS935.
Identification: ID to differentiate identical hardware. For ABB PS935, this ID represents the device's MAC address. Therefore, the identification column must contain the MAC address of the PS935 device being configured; here as an example it is set to 0xeace4474.
IOMode: 1 = Send IOs with a step delay; 3 = send IOs after computation. Should be the same for all IOs on the same core of a given system.
Config: The config column must contain the full path to the configuration file of the driver.
The [MAPPING] section binds the tags defined in the section described above to cores of the simulator. Example:
[MAPPING]
!Tag Node
!--- ----
opal_1 1
Each entry (line) is composed of 2 items :
Tag: Label referring to specific hardware (defined in [HARDWARE_DIL]).
Node: The core number bound to this hardware.
Note that it is possible to assign multiple cores to hardware defined in [HARDWARE_DIL].
Finally, the [SENSORS_DIL] section is used to bind sensors in the simulation to drivers identified with their tags.
You can make connections on different data points in this section. These data points are between the card and the driver and represent the values of the floating point and binary data.
Here is an example of the file:
Each entry (line) is composed of 5 items :
Type: Type of sensor: DA (F32), AD (F32), DO (bit), DI (bit)
Sensors: Range of sensor numbers linking to the connection points
Tag: Label referring to specific hardware (defined in [HARDWARE_DIL])
ConnectionPoint: Name of the connection point defined in the driver configuration file. PS935 publishes four types of connection points:
F32Out and F32In: for voltage and current values
BitIn and BitOut: for discrete values (switches’ position)
The file also contains a relative path to the PS935_cfg.opal file. This file is very important, as it is used to configure the driver, and is detailed below.
PS935_CFG.OPAL
This file is used to configure the driver. It describes the configuration of the connected PS935 device. Below is an example of this configuration file when the card is configured to work with a hardware loop-back.
Configuration parameters
countDigitalIn | Number of binary values sent from HYPERSIM to the device |
countDigitalOut | Number of binary values received by HYPERSIM from the device |
countFloatIn | Number of floating point values sent from HYPERSIM to the device |
countFloatOut | Number of floating point values received by HYPERSIM from the device |
loopbackMode | Select whether the driver works in hardware loop-back mode, software loop-back mode or no loop-back at all. Possible options are:
|
Programming The PS935 Device
Configuring the device in HYPERSIM is not enough to have a working setup. The ABB PS935 device must be programmed with the right firmware before attempting to run a simulation that interfaces with it.
There are certain constraints that apply to programming the device:
It cannot be done from the Windows host computer; it can only be executed on the OPAL Linux simulator
It is very important that the firmware (in the form of <file_name>.hex) corresponds to the version of the FPGA found in the PS935 device
The device's memory is volatile, therefore flashing after every PS935 power-up is necessary
Flashing is also necessary after a power-up of the OPAL simulator the PS935 device is connected to
If flashing has failed for any reason, the ABB PS935 device needs to be powered off then powered back on and the target it is connected to needs to be restarted (since during the power loss of PS935, the PCIe link between it and the target is lost). Once the power cycle sequence finished, programming the firmware can be re-attempted
Flashing only works once, after powering on the device. If for some reason the .hex file requires changing, you must power off the PS935, power it back on, reboot the simulator it is connected to and then re-attempt programming the firmware
Note that as the programming of the PS935 device is done strictly on the simulator, the operation requires access to the simulator's file system and console. In order to achieve that, please follow this knowledge base article: https://www.opal-rt.com/support-knowledge-base/?article=AA-01044.
The tool used to program the firmware on the PS935 device is called PS935Flasher. It is a small application that can be found here: /export/local/ssr/<hypersim_version>/<OS_version>/HyServer/bin/PS935Flasher. The exact location of the flasher tool can be determined by replacing the <hypersim_version> and <OS_version> placeholders.
In order to check the outcome of the flash command, one can read the content of the /var/log/message file or check the “OK” LED on the PS935.
How to Use the Flasher
There are multiple options for how to use the tool, depending on how many ABB PS935 devices need to programmed or when the programming occurs. These are detailed below.
Manually Load Firmware Using PS935Flasher
The commands described in this section must be executed as root. Before executing them, users must make sure to change directory (cd) to the Linux directory where the application is found.
To load a firmware manually to a single card:
The parameter following -macAddress is used to identify the PS935 device to be flashed by means of referring to its MAC address; the parameter following -file represents the absolute path to the firmware (.hex) file. In the example above, the firmware is in the same directory as the flasher executable
To load firmware manually to a list of cards:
The parameter yourCustomConfig.opal is a file giving the flasher tool the information necessary about the PS935 devices to program and the firmware to use for each.
Here is an example of such a file:
Explanation:
there is one item per controller
the fileName element represents the firmware to program
the macAddress element represents the MAC address of the controller to be programmed with the fileName firmware
Note that there is nothing preventing having just one item in the list. In this case, the two flashing methods described above will be equivalent.
Users must pay careful attention to have the correct MAC addresses and firmware file names when executing the flasher tool.
The options used during the last manual load are saved in a file named defaultConfig.opal. This file can be found here: /export/local/ssr/<hypersim_version>/<OS_version>/HyServer/rt/lib/Data/Drivers/PS935/defaultConfig.opal.
Configure Firmware Loading at Startup
Seeing that the PS935 device needs to be programmed each time the simulator it is connected to has booted, users might find it useful to automate the process. This is especially relevant if the firmware rarely changes.
To automate the flashing process:
Edit /etc/rc.d/rc.local and add at the end of the file:
/export/local/ssr/<hypersim_version>/<OS_version>/HyServer/bin/PS935Flasher &
Users must pay attention to correctly replace the <hypersim_version> and <OS_version> place-holders with the relevant information. When used in this manner, the default flasher configuration file will be used (defaultConfig.opal).
Before starting to use this mode it is necessary to run the flasher application with a custom .opal file. This is so that the custom configuration can be recorded in the defaultConfig.opal file therefore ensuring that the default configuration contains pertinent information.For using a custom .opal configuration file instead of the default one:
/export/local/ssr/<hypersim_version>/<OS_version>/HyServer/bin/PS935Flasher /path/to/file/custom.opal &
Here too, users must pay attention to correctly replace the <hypersim_version> and <OS_version> place-holders with the relevant information.
OPAL-RT TECHNOLOGIES, Inc. | 1751, rue Richardson, bureau 1060 | Montréal, Québec Canada H3K 1G6 | opal-rt.com | +1 514-935-2323
Follow OPAL-RT: LinkedIn | Facebook | YouTube | X/Twitter