Documentation Home Page ◇ RT-LAB Home Page
Pour la documentation en FRANÇAIS, utilisez l'outil de traduction de votre navigateur Chrome, Edge ou Safari. Voir un exemple.
Fault Insertion Unit Driver
This driver aims at using the 'OpOutput' and 'OpInput' blocks with PickeringFIU driver to control Fault Insertion Unit (FIU) cards from Pickering.
This driver takes advantage of the Dynamic Interchange Layer system. A connection file must be used to bind Simulink variables (represented as OpInput and OpOutput blocks) to driver signals. This file is described in a text file named 'connections.opal' (graphical editor will be available in a later release of RT-LAB). Another configuration file must be used to configure the driver itself. Both configuration files are described below.
Supported Features
Tested Pickering cards | 40-194-002, 40-195-001, 40-190B-002 |
---|---|
|
Hardware and Software Requirements
Category | Feature |
---|---|
Hardware | Target running Redhat |
PXI Pickering chassis | |
Pickering FIU cards and cables | |
Software | RT-LAB 10.7.4 or later |
Pilpxi driver from Pickering (libpilpxi32.so) located in "[RT-LAB installation folder]\common\bin. |
Supported Cards
Most Pickering FIU cards behave in a similar manner and therefore should be compatible with this driver without any modification and re-compilation. We must, however, maintain a list of properties of each supported card to interact correctly with them. To this end, we use a ".opal" file which describes the properties of each supported card.
Currently, the below three cards have been tested with the driver, if one intends to use another Pickering card, its specifications must be added to this file. The file is located in: [installation directory]\OPAL-RT\RT-LAB\[RT-LAB version]\common\bin\x32\Data\Drivers\Pickering\supported_cards.opal
OPAL-1.0 Object Pickering::Configuration { fiuCardList { item { serialNumber=ANY type=fiu typeNumber=40-194-002 numberOfFaultChannels=7 numberOfFaultBus=2 numberOfFaultMux=0 numberOfMonitors=0 pair=0 } item { serialNumber=ANY type=fiu typeNumber=40-195-001 numberOfFaultChannels=22 numberOfFaultBus=0 numberOfFaultMux=0 numberOfMonitors=0 pair=1 } item { serialNumber=ANY type=fiu typeNumber=40-190B-001 numberOfFaultChannels=74 numberOfFaultBus=1 numberOfFaultMux=4 numberOfMonitors=1 pair=0 } item { serialNumber=ANY type=fiu typeNumber=40-190B-002 numberOfFaultChannels=74 numberOfFaultBus=2 numberOfFaultMux=8 numberOfMonitors=2 pair=0 } item { serialNumber=ANY type=fiu typeNumber=40-199-002 numberOfFaultChannels=10 numberOfFaultBus=2 numberOfFaultMux=0 numberOfMonitors=0 pair=0 } } }
Configuration File
In the configuration .opal file, the channels, faults, and monitors the initial state of each card can be determined. This file is mandatory and the model must be accompanied by this file in RT-LAB when loading the model. Therefore, the correct file has to be added in the model's "File" list window in RT-LAB as shown below in order to load the model successfully:
We recommend using the configuration from the example model as a working basis.
A simple example of .opal file is given below:
OPAL-1.0 Object Pickering::Configuration { useRTCoreForFIU=0 useRTCoreForResistance=0 fiuCardList { item { serialNumber=321293 type=fiu typeNumber=40-190B-002 minUpdateRateUs=500 fiuItemsList { item { type=channel index=2 defaultValue=4 } item { type=channel index=63 defaultValue=2 } item { type=fault index=2 defaultValue=1 } } } item { serialNumber=340480 type=fiu typeNumber=40-195-001 minUpdateRateUs=500 fiuItemsList { item { type=channel index=8 defaultValue=1 } item { type=channel index=22 defaultValue=1 } } } item { serialNumber=340481 type=fiu typeNumber=40-194-002 minUpdateRateUs=500 fiuItemsList { item { type=channel index=3 defaultValue=1 } item { type=channel index=6 defaultValue=1 } } } } }
Warning: Please note that the parser is currently quite sensitive and does not accept blank lines or comments.
General Parameters
The driver has the following general parameters:
useRTCoreForFIU | If the system has an unused CPU core, this parameter can be set to '1' to move the FIU threads to a reserved core for deterministic computation. |
---|---|
useRTCoreForResistance | If the system has an unused CPU core, this parameter can be set to '1' to move the resistive threads to a reserved core for deterministic computation. |
Identification of a Fault Insertion Unit Module
The cards are identified the following parameters:
serialNumber | This parameter is the serial number of the module. This unique number given by Pickering is used to identify the card. The user could retrieve this number on the front panel of the module. |
---|---|
type | This parameter is a string that specifies the type of Pickering module. It must be 'fiu' for Fault Insertion Unit cards. |
typeNumber | This parameter is a number that specifies the type of Pickering module. |
minUpdateRateUs | An asynchronous thread is responsible for applying the resistance value on each card. If there is no change in the resistive values of a configured card, its associated thread has nothing to do. In this case, protection has been added to avoid the threads from taking over the core 0. This value is the minimum delay, in a microsecond, applied to the thread loop in the case there is no resistance value to update on the card in the current thread loop. |
All the parameters presented are used to identify the type of Pickering module. With these parameters, it is possible to define most of Pickering cards.
It is important to mention that if the model is also using Pickering Programmable Resistive cards, they must be defined in the same file into a 'resistiveCardList', just above the 'fiuCardList'. Please refer for the Programmable Resistor and Precision Resistor driver documentation in that case.
Channel and Fault Description
A list of items (channels and/or faults) is provided for each card.
In this list, each channel and/or fault is described with the following parameters :
type | This parameter is the type of FIU item, it can be either a channel or a fault. |
---|---|
index | This parameter is the index of the channel or the fault. |
defaultValue | This parameter is a default state applied to the specific channel during the first pause and when the simulation resets. It should be in the range supported by the programmable resistive module. |
Warning: depending on how channels and faults are wired, enabling two-faults that are on two separate fault buses will result in creating a short-circuit on these fault buses. This will cause a "Short Fault Bus" action on every enabled fault for each channel.
Connections File
The 'connections.opal' file is required when a driver using the Dynamic Interchange Layer is used to bind Simulink variables (represented as OpInput and OpOutput blocks) to driver signals. Therefore, we must define the connections in a text file named connections.opal and transfer this file with the model when loading (graphical editor will be available in a later release of RT-LAB). Connections can only be made on channels, faults, and monitors that have been declared in the configuration .opal file. Here is what the typical connection file taken from the example model looks like:
OPAL-1.0 Object List { item { configFile=pickeringFIU.opal id { Pickering } outputs { item { dataInExchanger=340481_enable[0] dataInProcess=OpOutput:Enable_1[0] } item { dataInExchanger=340481_reset[0] dataInProcess=OpOutput:Reset_1[0] } item { dataInExchanger=340481_channel_3[0] dataInProcess=OpOutput:Channel_3_1[0] } item { dataInExchanger=340481_channel_6[0] dataInProcess=OpOutput:Channel_6_1[0] } item { dataInExchanger=340480_enable[0] dataInProcess=OpOutput:Enable_2[0] } item { dataInExchanger=340480_reset[0] dataInProcess=OpOutput:Reset_2[0] } item { dataInExchanger=340480_channel_8[0] dataInProcess=OpOutput:Channel_8_2[0] } item { dataInExchanger=340480_channel_22[0] dataInProcess=OpOutput:Channel_22_2[0] } item { dataInExchanger=321293_enable[0] dataInProcess=OpOutput:Enable_3[0] } item { dataInExchanger=321293_reset[0] dataInProcess=OpOutput:Reset_3[0] } item { dataInExchanger=321293_channel_1[0] dataInProcess=OpOutput:Channel_1_3[0] } item { dataInExchanger=321293_channel_2[0] dataInProcess=OpOutput:Channel_2_3[0] } item { dataInExchanger=321293_channel_3[0] dataInProcess=OpOutput:Channel_3_3[0] } item { dataInExchanger=321293_channel_4[0] dataInProcess=OpOutput:Channel_4_3[0] } item { dataInExchanger=321293_channel_57[0] dataInProcess=OpOutput:Channel_57_3[0] } item { dataInExchanger=321293_channel_64[0] dataInProcess=OpOutput:Channel_64_3[0] } item { dataInExchanger=321293_channel_71[0] dataInProcess=OpOutput:Channel_71_3[0] } item { dataInExchanger=321293_fault_1[0] dataInProcess=OpOutput:Fault_1_3[0] } item { dataInExchanger=321293_fault_7[0] dataInProcess=OpOutput:Fault_7_3[0] } item { dataInExchanger=321293_monitor_1[0] dataInProcess=OpOutput:Monitor_1_3[0] } } inputs { item { dataInExchanger=340481_status[0] dataInProcess=OpInput:Status_1[0] } item { dataInExchanger=340480_status[0] dataInProcess=OpInput:Status_2[0] } item { dataInExchanger=321293_status[0] dataInProcess=OpInput:Status_3[0] } } } }
It is important that the field of the 'id' item contains the name of the driver configuration file described above. The above-mentioned .opal file is a corresponding connections.opal file of previously shown pickerigFIU.opal. It is used to list all the possible connection points of PickeringFIU driver. All connections in "dataInExchanger" side must have a card number followed by a “/” to represent connection’s corresponding card ID. The description of each connection is as follows:
Connection | Description |
---|---|
serialNumber_channel_n | It must be followed by a “_” and then a number that denotes the Channel number. It contains an action code to control the switches on “Measurement and UUT connection” side. |
serialNumber_fault_n | It must be followed by a “_” and then a number that denotes the Fault Mux number. It contains a Boolean to control the fault switches on “Fault connection” side. |
serialNumber_monitor_n | It must be followed by a “_” and then a number that denotes the Monitor switch number. It contains a Boolean to control the monitor switches on “Fault connection” side. |
serialNumber_enable | It is a parameter that toggles the actions list in Fault and Channel connection on/off. |
serialNumber_reset | It is a Boolean that if set and Enable=1, it will set all switches to their default state. |
serialNumber_status | It displays an error regarding the card status. |
Warning: Please note that the parser is currently sensitive and does not accept blank lines or comments.
For the above example of pickeringFIU_driver.config and connections.opal, the Simulink model master subsystem would look like the following:
In the above file, the number of channels (channel_count), faults buses (channel_count), fault switches (faultMux_count), monitor switches (monitor_count) as well as an indication of the pair channel system (pair) are described.
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