This page describes the device driver and the device window for the SatService-IO-FEP2 device. This device monitors and controls the SatService IO-FEP controller.
The SatService-IO-FEP2 device driver is part of the sat-nms framework for M&C of plain digital I/O functions. Monitoring alarm circuits or controlling waveguide switches are indicatives for applications of this framework.
The application configuration normally does not access the SatService-IO-FEP2 device driver directly (except to access the temperature or LNA monitoring readings). There are a couple of application level logical devices (e.g. Input , Output or WG-Switch ) which may use the SatService-IO-FEP device driver as a low level driver to access the physical I/O ports.
Input ports
The variables 'inputs.0', 'inputs.1' and 'inputs.2' refer to the input ports 1..16, 17..32 and 33..48 respectively. The least significant bit in a variable reports the state of the lowest numbered port in it's group.
The variables report the logical state if the input. A bit set to '1' denotes an 'ON' or 'FLT' state, '0' stands for 'OFF' or 'OK'. The reported input states respect the 'delay' and 'invert' settings configured in the IO-FEP for each individual port.
Unused ports always report a '0', the same applies to input ports which are not licensed for this IO-FEP.
Output ports
The variable 'outputs' reports the actual state of the digital outputs and also sets the output states. The least significant bit in the variable corresponds to output 1, the most significant bit to output 16. The port states respect the 'invert' setting configured for each individual port in the IO-FEP.
Unused ports and ports which are configured in the IO-FEP as HPA muting outputs always report the state '0'. Writing to these ports will be ignored.
Beside the 'outputs' variable the IO-FEP provides 16 variables 'output.01' ... 'output.16', each reporting / commanding the state of one of the IO-FEP's outputs as 0/1. New applications should use these individual output variables instead of the common 'outputs' bitmask.
Waveguide switches
The variable 'wgstat' reports the actual state of the waveguide switches. For each waveguide switch there are 2 bits, indicating the position of the switch. '01' denotes position 'A', '10' denotes position 'B'. The bit combinations '00' and '11' both indicate a fault. This similar to the way, the physical position indicators of a waveguide switch are working. However, the bits reflect a logical state in the IO-FEP rather than the physical state of the position indicators. This is because the IO-FEP hides it's internal queuing mechanism for switch actuation's from the controlling M&C.
| bit | bit mask | WG switch | position |
|---|---|---|---|
| bit 0 | 0x00000001 | switch 1 | position A |
| bit 1 | 0x00000002 | switch 1 | position B |
| bit 2 | 0x00000004 | switch 2 | position A |
| bit 3 | 0x00000008 | switch 2 | position B |
| bit 4 | 0x00000010 | switch 3 | position A |
| bit 5 | 0x00000020 | switch 3 | position B |
| bit 6 | 0x00000040 | switch 4 | position A |
| bit 7 | 0x00000080 | switch 4 | position B |
| bit 8 | 0x00000100 | switch 5 | position A |
| bit 9 | 0x00000200 | switch 5 | position B |
| bit 10 | 0x00000400 | switch 6 | position A |
| bit 11 | 0x00000800 | switch 6 | position B |
| bit 12 | 0x00001000 | switch 7 | position A |
| bit 13 | 0x00002000 | switch 7 | position B |
| bit 14 | 0x00004000 | switch 8 | position A |
| bit 15 | 0x00008000 | switch 8 | position B |
| bit 16 | 0x00010000 | switch 9 | position A |
| bit 17 | 0x00020000 | switch 9 | position B |
| bit 18 | 0x00040000 | switch 10 | position A |
| bit 19 | 0x00080000 | switch 10 | position B |
| bit 20 | 0x00100000 | switch 11 | position A |
| bit 21 | 0x00200000 | switch 11 | position B |
| bit 22 | 0x00400000 | switch 12 | position A |
| bit 23 | 0x00800000 | switch 12 | position B |
| bit 24 | 0x01000000 | switch 13 | position A |
| bit 25 | 0x02000000 | switch 13 | position B |
| bit 26 | 0x04000000 | switch 14 | position A |
| bit 27 | 0x08000000 | switch 14 | position B |
| bit 28 | 0x10000000 | switch 15 | position A |
| bit 29 | 0x20000000 | switch 15 | position B |
| bit 30 | 0x40000000 | switch 16 | position A |
| bit 31 | 0x80000000 | switch 16 | position B |
The variable 'wgcmd' is the complement to 'wgstat' for actuating the switches. In the software the bits of this variable are treated like output ports which perform the switch motor actuation. In fact, the IO-FEP monitors 0 to 1 transitions of each bit and performs the switch actuation accordingly. The actuation pulse duration is controlled by the IO-FEP, not by the sat-nms software. Nevertheless, the IO-FEP waveguide switch interface is fully compatible to the WG-Switch logical device.
Switches configured in the IO-FEP as 'unused' always report the position '00'. The same applies to switches which are not licensed for this IO-FEP.
Configuration settings
If used with the sat-nms framework for M&C of plain digital I/O functions, the SatService IO-FEP acts like an unprogrammed PLC device. It is intended, that the device driver processes switch settings and changes of input circuits as fast as possible. The following settings are necessary to achieve this:
Device window pages
The following table shows which device window pages are available with this individual device type. Tool-bar functions not mentioned here are described at the general description of device windows .
--- Shows / commands I/O port states.
--- Shows the temperature readings
--- Shows the LNA monitoring readings
--- The faults page.
--- The device info page.
--- The maintenance page. The configuration parameters described below are set at this page.Configuration parameters
At the maintenance page of the device window there are a couple of configuration parameters which must be set to make the software talk to the device.
Variables defined by this device driver
| name | type | flags | range |
|---|---|---|---|
| info.driver | TEXT | R/O | StringRange R/O |
| lowLevel.cmd | TEXT | StringRange | |
| lowLevel.reply | TEXT | R/O | StringRange R/O |
| faults.99 | ALARM | R/O | AlarmFlagRange R/O (Communication) |
| faults.commstat | TEXT | R/O | StringRange R/O |
| info.type | TEXT | R/O | StringRange R/O |
| info.port | TEXT | R/O | StringRange R/O |
| info.frame | TEXT | R/O | StringRange R/O |
| info.serialno | TEXT | R/O | StringRange R/O |
| info.version | TEXT | R/O | StringRange R/O |
| info.lnaMonitoring | BOOLEAN | R/O | BooleanRange R/O (true false) |
| config.swCtrlFaultSrc | CHOICE | SAVE SETUP | EnumRange (COMM COMM+PSU1 COMM+PSU1+PSU2) |
| config.temp.loThreshold.0 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.temp.hiThreshold.0 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.temp.loThreshold.1 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.temp.hiThreshold.1 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.temp.loThreshold.2 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.temp.hiThreshold.2 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.temp.loThreshold.3 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.temp.hiThreshold.3 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.temp.loThreshold.4 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.temp.hiThreshold.4 | FLOAT | SETUP | DoubleRange (-100.0 .. 100.0) |
| config.voltage.loThreshold.1 | FLOAT | SETUP | DoubleRange (0.0 .. 30.0) |
| config.voltage.loThreshold.2 | FLOAT | SETUP | DoubleRange (0.0 .. 30.0) |
| config.voltage.loThreshold.3 | FLOAT | SETUP | DoubleRange (0.0 .. 30.0) |
| config.voltage.loThreshold.4 | FLOAT | SETUP | DoubleRange (0.0 .. 30.0) |
| config.voltage.loThreshold.5 | FLOAT | SETUP | DoubleRange (0.0 .. 30.0) |
| config.voltage.loThreshold.6 | FLOAT | SETUP | DoubleRange (0.0 .. 30.0) |
| config.current.loThreshold.1 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.hiThreshold.1 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.loThreshold.2 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.hiThreshold.2 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.loThreshold.3 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.hiThreshold.3 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.loThreshold.4 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.hiThreshold.4 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.loThreshold.5 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.hiThreshold.5 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.loThreshold.6 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| config.current.hiThreshold.6 | FLOAT | SETUP | DoubleRange (0.0 .. 1000.0) |
| i.0 | HEX | R/O | HexRange R/O (0 .. 0) |
| i.1 | HEX | R/O | HexRange R/O (0 .. 0) |
| i.2 | HEX | R/O | HexRange R/O (0 .. 0) |
| w.0 | HEX | R/O | HexRange R/O (0 .. 0) |
| w.1 | HEX | R/O | HexRange R/O (0 .. 0) |
| internal.dummy | TEXT | R/O | StringRange R/O |
| inputs.0 | HEX | R/O | HexRange R/O (0 .. 0) |
| inputs.1 | HEX | R/O | HexRange R/O (0 .. 0) |
| inputs.2 | HEX | R/O | HexRange R/O (0 .. 0) |
| outputs | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.01 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.02 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.03 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.04 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.05 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.06 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.07 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.08 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.09 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.10 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.11 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.12 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.13 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.14 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.15 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| output.16 | HEX | NOCOMPARE | HexRange (0 .. 0) |
| wgstat | HEX | R/O | HexRange R/O (0 .. 0) |
| wgcmd | HEX | NOCOMPARE | HexRange (0 .. 0) |
| temperature.0 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| temperature.1 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| temperature.2 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| temperature.3 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| temperature.4 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| voltage.1 | FLOAT | R/O | DoubleRange R/O (0.00 .. 0.00) |
| voltage.2 | FLOAT | R/O | DoubleRange R/O (0.00 .. 0.00) |
| voltage.3 | FLOAT | R/O | DoubleRange R/O (0.00 .. 0.00) |
| voltage.4 | FLOAT | R/O | DoubleRange R/O (0.00 .. 0.00) |
| voltage.5 | FLOAT | R/O | DoubleRange R/O (0.00 .. 0.00) |
| voltage.6 | FLOAT | R/O | DoubleRange R/O (0.00 .. 0.00) |
| current.1 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| current.2 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| current.3 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| current.4 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| current.5 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| current.6 | FLOAT | R/O | DoubleRange R/O (0.0 .. 0.0) |
| lnastat | HEX | R/O | HexRange R/O (0 .. 0) |
| initialized | TEXT | R/O | StringRange R/O |
| faults.01 | ALARM | R/O | AlarmFlagRange R/O (Board temperature LOW) |
| faults.02 | ALARM | R/O | AlarmFlagRange R/O (Board temperature HIGH) |
| faults.20 | ALARM | R/O | AlarmFlagRange R/O (Board temperature SUM) |
| faults.03 | ALARM | R/O | AlarmFlagRange R/O (Temperature 1 LOW) |
| faults.04 | ALARM | R/O | AlarmFlagRange R/O (Temperature 1 HIGH) |
| faults.21 | ALARM | R/O | AlarmFlagRange R/O (Temperature 1 SUM) |
| faults.05 | ALARM | R/O | AlarmFlagRange R/O (Temperature 2 LOW) |
| faults.06 | ALARM | R/O | AlarmFlagRange R/O (Temperature 2 HIGH) |
| faults.22 | ALARM | R/O | AlarmFlagRange R/O (Temperature 2 SUM) |
| faults.07 | ALARM | R/O | AlarmFlagRange R/O (Temperature 3 LOW) |
| faults.08 | ALARM | R/O | AlarmFlagRange R/O (Temperature 3 HIGH) |
| faults.23 | ALARM | R/O | AlarmFlagRange R/O (Temperature 3 SUM) |
| faults.09 | ALARM | R/O | AlarmFlagRange R/O (Temperature 4 LOW) |
| faults.10 | ALARM | R/O | AlarmFlagRange R/O (Temperature 4 HIGH) |
| faults.24 | ALARM | R/O | AlarmFlagRange R/O (Temperature 4 SUM) |
| faults.11 | ALARM | R/O | AlarmFlagRange R/O (PSU 24V DC) |
| faults.12 | ALARM | R/O | AlarmFlagRange R/O (PSU 24V EXT) |
| faults.13 | ALARM | R/O | AlarmFlagRange R/O (PSU 24V DC RED.) |
| faults.14 | ALARM | R/O | AlarmFlagRange R/O (PSU 24V EXT RED.) |
| faults.15 | ALARM | R/O | AlarmFlagRange R/O (NTP sync) |
| faults.16 | ALARM | R/O | AlarmFlagRange R/O (Primary NTP server) |
| faults.17 | ALARM | R/O | AlarmFlagRange R/O (Switch control) |
| faults.18 | ALARM | R/O | AlarmFlagRange R/O (LNA PS main) |
| faults.19 | ALARM | R/O | AlarmFlagRange R/O (LNA PS backup) |
| faults.41 | ALARM | R/O | AlarmFlagRange R/O (LNA1 voltage low) |
| faults.42 | ALARM | R/O | AlarmFlagRange R/O (LNA2 voltage low) |
| faults.43 | ALARM | R/O | AlarmFlagRange R/O (LNA3 voltage low) |
| faults.44 | ALARM | R/O | AlarmFlagRange R/O (LNA4 voltage low) |
| faults.45 | ALARM | R/O | AlarmFlagRange R/O (LNA5 voltage low) |
| faults.46 | ALARM | R/O | AlarmFlagRange R/O (LNA6 voltage low) |
| faults.51 | ALARM | R/O | AlarmFlagRange R/O (LNA1 current low) |
| faults.52 | ALARM | R/O | AlarmFlagRange R/O (LNA2 current low) |
| faults.53 | ALARM | R/O | AlarmFlagRange R/O (LNA3 current low) |
| faults.54 | ALARM | R/O | AlarmFlagRange R/O (LNA4 current low) |
| faults.55 | ALARM | R/O | AlarmFlagRange R/O (LNA5 current low) |
| faults.56 | ALARM | R/O | AlarmFlagRange R/O (LNA6 current low) |
| faults.61 | ALARM | R/O | AlarmFlagRange R/O (LNA1 current high) |
| faults.62 | ALARM | R/O | AlarmFlagRange R/O (LNA2 current high) |
| faults.63 | ALARM | R/O | AlarmFlagRange R/O (LNA3 current high) |
| faults.64 | ALARM | R/O | AlarmFlagRange R/O (LNA4 current high) |
| faults.65 | ALARM | R/O | AlarmFlagRange R/O (LNA5 current high) |
| faults.66 | ALARM | R/O | AlarmFlagRange R/O (LNA6 current high) |