Documentation search search close
CONTENTS
https://www.speedgoat.com/help/slrt/page/icon_documentation.jpg
v10.0.1.x for R2026a
View other versions

IO682 Usage Notes

IO682 Usage Notes — Usage information about the I/O module

General

Configuration files containing the timing information and data of each ARINC 429 message are required to use scheduled messages and for configuring the parser blocks. The supported file type for scheduled messages is .csv, and for the parser blocks it is .mat.

Scheduled Messages Configuration File

To correctly configure the scheduled messages, a configuration file with the following data is required:

ChannelRateOffsetTxCntData
11005050
11000-166
2500-10

Use one of the enabled output channel numbers for Channel. Rate and Offset must be a multiple of 1 ms, and must not exceed 9999999 ms. TxCnt can be a value between -1 and 9999999, where -1 is infinite transmission. The data of the ARINC 429 word must not exceed 32 bits (0xFFFF FFFF).

ARINC 429 Parser Configuration File

To easily configure an ARINC 429 network, the parser blocks work with a database file containing the network information. The Parser Read and Write blocks consist of subsystems dynamically populated with input/output ports, ARINC 429 unpack/pack blocks, standard Read/Write blocks and the interconnecting lines using the configuration file. All messages defined in the selected *.mat file are displayed in the Hierarchy tab. Detailed information about the various signals is displayed when a specific message is selected. The configuration file must follow the structure defined below:

- Bus
   ├ Channels
   ├ Equipments
   └ Messages
      └ Signals

The elements of Message and Signal are defined as follows:

- Message
    ├ Name
    ├ Label
    ├ SDI
    ├ SSM
    ├ CycleTime
    ├ Scheduled
    ├ TxEquipment
    ├ RxEquipment
    ├ TxChannel
    ├ RxChannel
    └ Signals
- Signal
    ├ Name
    ├ StartBit
    ├ NumberBits
    ├ Type
    ├ Resolution
    ├ Offset
    ├ Default
    ├ Signed
    ├ Units
    ├ Min
    └ Max

The elements Channel and Equipment optional, but they can help visualize the bus topology more clearly and therefore make is easier to select messages for reading or writing. If these elements are not present or are empty, all messages can be found under the node Unassigned Messages.

[Note]Note

Do not use special characters for names (except underscores)

As an example, the following script generates a configuration file for the parser blocks:

%% Create example ARINC 429 database with two buses and multiple messages/signals, and export to .mat file
% Create empty database object
db = sgarinc429.db.Database();
 
%% Create nav/guidance bus
navBus = sgarinc429.db.Bus('NAV_GUIDANCE_BUS');
 
% add equipment to bus
navBus.addEquipment(sgarinc429.db.Equipment('002', 'Name', 'Flight Management Computer (702)'));
navBus.addEquipment(sgarinc429.db.Equipment('00B', 'Name', 'Global Positioning System (743)'));
navBus.addEquipment(sgarinc429.db.Equipment('025', 'Name', 'Electronic Flt Instruments (725)'));
navBus.addEquipment(sgarinc429.db.Equipment('038', 'Name', 'ADIRS (738)'));
 
% add channels to bus
navBus.addChannel('IO682 Ch1');
navBus.addChannel('IO682 Ch2');
navBus.addChannel('IO682 Ch3');
 
% Label 110: GNSS Latitude (BNR)
msg = sgarinc429.db.Message('GNSS Latitude', 'Label', '110', 'SDI', -1);
msg.SSM = 3;
msg.CycleTime = 0.2;
msg.TxEquipment = '00B';
msg.RxEquipment = '025';
msg.TxChannel = 'IO682 Ch2';
msg.RxChannel = 'IO682 Ch3';
 
sig = sgarinc429.db.Signal('GNSS Latitude', 9, 21, 'BNR');
sig.Resolution = 0.000172;
sig.Signed = true;
sig.Units = 'Deg';
sig.Min = -180;
sig.Max = 180;
 
msg.addSignal(sig);
navBus.addMessage(msg);
 
% Label 103: Selected Airspeed (BNR)
msg = sgarinc429.db.Message('Selected Airspeed', 'Label', '103', 'SDI', 0);
msg.CycleTime = 0.1;
msg.TxEquipment = '002';
msg.RxEquipment =  '038';
msg.TxChannel = 'IO682 Ch1';
msg.RxChannel = 'IO682 Ch3';
 
sig = sgarinc429.db.Signal('Selected Airspeed', 19, 11, 'BNR');
sig.Resolution = 0.25;
sig.Signed = false;
sig.Units = 'Knots';
sig.Min = 0;
sig.Max = 512;
msg.addSignal(sig);
 
% If the SSM signal must be controlled by a Simulink signal, it must be included in the database
ssm = sgarinc429.db.Signal('SSM', 30, 2, 'SSM');
ssm.Resolution = 1;
ssm.Signed = false;
ssm.Units = '';
ssm.Min = -Inf;
ssm.Max = Inf;
msg.addSignal(ssm);
 
% Add message to bus
navBus.addMessage(msg);
 
% Add nav/guidance bus to database
db.addBus(navBus);
 
%% Radio Bus
% Channel names used by radio bus messages
radioChannelNames = [ ...
    sgarinc429.db.Channel('IO682 Ch4'), ...
    sgarinc429.db.Channel('IO682 Ch5') ...
    ];
 
% RADIO/NAV bus equipment IDs and names.
radioEquipments = [ ...
    sgarinc429.db.Equipment('010', 'Name', 'Airborne ILS Receiver (710)'), ...
    sgarinc429.db.Equipment('012', 'Name', 'Airborne ADF System (712)'), ...
    sgarinc429.db.Equipment('112', 'Name', 'TACAN Adapter Unit (TAU)'), ...
    sgarinc429.db.Equipment('025', 'Name', 'Electronic Flt Instruments (725)'), ...
    ];
 
% Create empty messages array
radioMessages = sgarinc429.db.Message.empty();
 
% Label 162: ADF Bearing (BNR) from Eqpt 012
sig = sgarinc429.db.Signal('ADF Bearing', 16, 14, 'BNR', ...
    'Resolution', 0.05, 'Offset', 0, 'Default', 0, 'Signed', true, ...
    'Units', 'Deg/180', 'Min', -180, 'Max', 180);
ssm = sgarinc429.db.Signal('SSM', 30, 2, 'SSM', ...
    'Resolution', 1, 'Offset', 0, 'Default', 3, 'Signed', false, ...
    'Units', '', 'Min', -Inf, 'Max', Inf);
radioMessages(end+1) = sgarinc429.db.Message('ADF Bearing', ...
    'Label', '162', 'SDI', 0, 'SSM', 3, 'CycleTime', 0.05, 'Scheduled', true, ...
    'TxEquipment', '012', 'RxEquipment', '025', ...
    'TxChannel', 'IO682 Ch4', 'RxChannel', 'IO682 Ch5', 'Signals', [sig, ssm]);
 
% Label 174: Glideslope Deviation (BNR) from Eqpt 010
sig = sgarinc429.db.Signal('Glideslope Deviation', 17, 13, 'BNR', ...
    'Resolution', 0.0002, 'Offset', 0, 'Default', 0, 'Signed', true, ...
    'Units', 'DDM', 'Min', -0.8, 'Max', 0.8);
ssm = sgarinc429.db.Signal('SSM', 30, 2, 'SSM', ...
    'Resolution', 1, 'Offset', 0, 'Default', 3, 'Signed', false, ...
    'Units', '', 'Min', -Inf, 'Max', Inf);
radioMessages(end+1) = sgarinc429.db.Message('Glideslope Deviation', ...
    'Label', '174', 'SDI', 0, 'SSM', 3, 'CycleTime', 0.01, 'Scheduled', true, ...
    'TxEquipment', '010', 'RxEquipment', '025', ...
    'TxChannel', 'IO682 Ch4', 'RxChannel', 'IO682 Ch5', 'Signals', [sig, ssm]);
 
% Create radio bus with channels, equipment, and messages
radioBus = sgarinc429.db.Bus('RADIO_NAV_BUS', ...
    'Channels', radioChannelNames, ...
    'Equipments', radioEquipments, ...
    'Messages', radioMessages);
 
% Add radio bus to database
db.addBus(radioBus);
 
%% Export database to .mat file
db.exportToMat('ARINC429Database_Example.mat');

This configuration file can be directly used in the parser app. Execute the above code in your MATLAB console, then select the generated "ARINC429Database_Example.mat" file as the database in the Parser.