top - download
⟦d6c248063⟧ Wang Wps File
Length: 65095 (0xfe47)
Types: Wang Wps File
Notes: CPS/SDS/029
Names: »1745A «
Derivation
└─⟦080c9775e⟧ Bits:30006085 8" Wang WCS floppy, CR 0131A
└─ ⟦this⟧ »1745A «
WangText
…15……08……15……09……15……0e……15… …14……09……14……0e……14……01……14……02……14……07……13……0d……13……0f……13……00……13……01……13……02……13…
…13……07……12……08……12……0c……12……0d……12……0e……12……0f……12……00……12……01……12… …12……07……11……0a……11……0e……11……02……11……05……11……06……10……09……10……0b……10……0d……10……00……10……02……10……05……10……07……0f……0a……0f……0d……0f……0f……0f……02……0f… …0f……06……0e……09……0e……0c……0e……0e……86…1
…02…
…02…
…02…
…02…CPS/SDS/029
…02…820514…02……02…
SYSTEM
STATUS
AND CONTROL
DETAILED
DESIGN
SPECIFICATION CAMPS
4.2.3 W̲a̲t̲c̲h̲d̲o̲g̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲(̲W̲D̲S̲P̲)̲
4.2.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
The WDSP contains the functions defined in fig. 4.2.3.1-1.
The WDP receives via the V24 lines information from
the PUs and the operator VDU. Via the CCB the CCB
driver scans the status in the different crates via
digital input ports, and if a discrepancy between the
expected status and the scanned status exists, a report
is issued. Furthermore, the WDP checks that the PU
periodically sends "keep alive", if a PU stops sending
"keep alive" the WDP will take the following action
if:
- An active PU with a standby PU exists: switchover
- A standby PU with an active PU exists: notify
active + close standby
- An active PU with an offline PU exists: close
down
The V24 lines and the monitoring via the CCB is supported
by the WDSP standard firmware, which gives the incoming
messages to the application processes which are described
in the next sections.
Fig. 4.2.2.1-1…01…Functional Breakdown of WDP
4.2.3.1.1 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲
Upon power up of the WDP, a selftest procedure is started
and if the WDP is ok, initialization is started.
The initialization consists of:
- set up VDU splits
- set up control tables
- start the WDP processes
- start the Timer
Hereafter, the control is given over to the Kernel
ref. CSS-MIC/007/PSP/1005, the Kernel is a part of
the standard firmware.
4.2.3.1.2 P̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲
The following kind of messages is taken care of by
the PU handler.
- reception of "Keep alive" refer sec. 4.1.1.6.1.2
- control or monitoring requests from PU
If a "keep alive" message is missing from a PU, the
PU handler sets up a control command to be sent to
the SYSCON, which controls the execution of the command.
Depending of the PU status, the following control
is sent:
- switchover
- close down
Control requests from the PU (COPSY) is sent to the
SYSCON.
The PU handler receives every minute the time of day
(TOD) from the PUs. The TOD is included in the "keep
alive" message.
To check the "keep alive" reception, a timeout is sent
to the PU handler every second.
4.2.3.1.3 V̲D̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲
The VDU handler is the link between the operator VDU,
the WDP and the PUs. The functional breakdown of the
VDU handler is shown in fig. 4.2.3.1.3-1.
The following messages are passed through the VDU handler:
- function key from the operator VDU
- commands from the command line
- unprotected fields from the format split
- output of formats to the format split
- control message to the VDU (cursor position)
- offline communication
The following subsections describe the actions to be
taken for input from the VDU, output to the VDU and
offline communication.
4.2.3.1.3.1 I̲n̲p̲u̲t̲ ̲f̲r̲o̲m̲ ̲t̲h̲e̲ ̲V̲D̲U̲
When the operator wants to enter a command, or format,
he depresses the function key ENTER or CANCEL. ENTER
specifies that the content of the current split is
to be sent.
CANCEL is used to specify that the operator wants to
return to the command line. The format split and the
command line are cleared.
The VDU handler looks up the cursor position and if
the position is the command line, the function key
is checked, else it is sent to the CMI.
If the key received was an ENTER key the following
actions are taken by the VDU handler.
- return ack to the VDU
- initiate the transmission
- ready to received the command
when the command is received, the actions taken are:
- return ack to the VDU
- interpretation of the command
For on-line PU commands the ENTER key is sent to the
CMI. The CMI now reads the command to be handled from
the VDU.
The following commands to be recognized by the VDU
handler are foreseen:
- WDSW, emergency switchover from Active to Standby
Pu
- DISA, disable PU
- RSET, reset PU
- MACL, master clear PU
- MAIN, set PU in maintenance mode
- GCUA, enable access from the PU to the CU
- PU#1, communication link to PU#1
- PU#2, communication link to PU#2
- OFL1, offline communication is to be used
The first seven commands are handed over to the SYSCON
for execution.
The last three are used to define the mode of communication
and the PU link. Entering ONLINE mode is described
in section 4.2.3.1.3.3.
When the commands have been served, the VDU is given
back to the operator, i.e. the cursor is positioned
in the start of the command line.
In the following cases, the input from the VDU is sent
direct to the CMI:
- cursor positioned in the format area
- second transmission of a command.
4.2.3.1.3.2 O̲u̲t̲p̲u̲t̲ ̲t̲o̲ ̲t̲h̲e̲ ̲V̲D̲U̲
The data to be sent to the VDU through the VDU handler
are:
- FORMATS to be displayed
- DATA to the format fields
- Error message
- Control messages to the VDU e.g. cursor position
- Ack.
When the VDU handler receives a message to be sent
to the VDU, it checks if it is a control message. If
so, the cursor position is identified (ref. 4.2.8.1.3.1).
4.2.3.1.3.3 O̲f̲f̲l̲i̲n̲e̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲
The dialogue between the PU and VDU is during offline
communication (refer section 2.2.1.5) controlled by
the VDU handler.
The offline communication is for the offline PU, the
WDP, WDP ̲VDU and WDP ̲ROP referred to as the "offline
mode" of operation. The PU-WDP communication uses the
transparent WDP protocol (refer IOC). The offline dialogue
takes place in the WDP ̲VDU format split and is line
oriented.
The following actions are taken:
- check if operator wants to enter "online mode"
- send on messages
- log messages
The operator depresses the cancel function key, when
he wants to enter online mode. Hereafter, the VDU
handler specifies to the drivers that messages to/from
the PUs are controlled by a protocol.
The VDU handler logs the offline dialogue between the
VDU and PU on the WDP-ROP.
4.2.3.1.3.4 E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲
If an error is detected in the transmission of data
to the VDU/ROP, this is reported to the PU via the
protocol. When the VDU/ROP is reinserted, a report
is sent to the Active PU. The V24 lines are monitored
by the VDU/LP drivers.
Fig. 4.2.3.1.3-1
4.2.3.1.4 L̲P̲ ̲H̲a̲n̲d̲l̲e̲r̲
The LP Handler receives:
- serial number to be used on error reports
- error reports to be printed
- output produced during execution of operator commands
in COPSY.
- log of offline communication
The serial number is sent to the LP handler upon start
up or if the WDP ̲ROP has been "out of service". When
the LP Handler has served an error message (i.e. put
on serial number and time of day), the serial number
is sent to COPSY.
Before a message buffer is sent to the LP driver, the
LP Handler looks up the type of message and takes an
appropriate action (as defined below) before the message
is printed.
4.2.3.1.4.1 S̲Y̲N̲C̲
When the sender of a message differs from the last
sender or an error report is to be printed, the LP
output is synchronized, i.e.:
- page shift
- a header on the new page
- time of day (PU commands)
- serial number
4.2.3.1.4.2 P̲r̲i̲n̲t̲
When the type of message is defined and the action
taken, Print sends the message to the LP driver.
4.2.3.1.4.3 E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲
If the WDP ̲ROP is down or out of paper, a report is
sent to the active PU or the operator VDU. The same
is done when the WDP ̲ROP is set back in operation.
The V24 line is monitored by the LP driver.
Ref. sec. 4.2.3.5.7.1
4.2.3.1.5 S̲Y̲S̲C̲O̲N̲ (System monitoring and control)
Fig. 4.2.8.1.5-1 shows the functional breakdown of
the SYSCON
The SYSCON supports:
- Handling of exceptions
- Control commands from the operator
- Control commands from the PU (COPSY)
4.2.3.1.5.1 H̲a̲n̲d̲l̲i̲n̲g̲ ̲o̲f̲ ̲E̲x̲c̲e̲p̲t̲i̲o̲n̲s̲
The exceptions reported to the SYSCON from the PU Handler
(No "keep alive") or the CCB driver (see fig. 4.2.3.1.5.1-1)
are handled as described below. The control is executed
via the CCB driver and the reports are sent to the
PU (COPSY). If total system failure exists, the SYSCON
sends a error report to the WDP ̲ROP.
S̲w̲i̲t̲c̲h̲o̲v̲e̲r̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲:
1) No "keep alive" from Active PU
2) status error in the Active PU
3) status error in the active part of the CU
4) status error in the active TDX controller
(if no standby exists close down)
C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲:
1) No "keep alive" from standby PU
2) status error in the standby Pu
3) status error in the standby part of the CU
4) error in the Active PU
W̲a̲r̲n̲i̲n̲g̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲
1) Temperature in a CRATE exceeds the max limit
2) A manual switch has been set out of auto (except
PU disable)
N̲o̲r̲m̲a̲l̲ ̲A̲g̲a̲i̲n̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲
1) Temperature in a CRATE goes below the max limit
2) Manual switch returned to auto
3) The digital monitoring of the Non Active TDX bus
returns to the normal values.
Figure 4.2.3.1.5.1-1.
Fig. 4.2.3.1.5.1-2…01…MONITOR ̲REPORTS FROM CCB ̲DRIVE…01…MONITORING IN CU-CRATE
Fig. 4.2.3.1.5.1-3…01…MONITOR REPORT FROM CCB ̲DRIVE…01…MONITORING IN BSMX
Fig. 4.2.3.1.5.1-4…01…BSMX UNIT WITHOUT TDX CONTROLLER
4.2.3.1.5.2 C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲ ̲f̲r̲o̲m̲ ̲t̲h̲e̲ ̲O̲p̲e̲r̲a̲t̲o̲r̲
For those commands from the operator directly to the
WDP, which are used to control the HW configuration
(used before start up), the SYSCON executes the control
via the CCB driver. When a command is completed, a
log is sent to the ROP.
4.2.3.1.5.3 C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲ ̲f̲r̲o̲m̲ ̲C̲O̲P̲S̲Y̲
The last type of control commands are those sent from
COPSY in the ACTIVE PU. These control commands are
a result of a command issued via a format from the
operator VDU or a detection of an error by the active
PU.
The commands are:
- SWITCH, switchover from AC to SB PU
- SINGLE CONTROL, controls only in one crate
- SWITCH BSMX
The control parameter is set up and sent to the CCB
driver
For these kinds of control commands, the log is sent
from either the CMI (operator command) or COPSY (error
reports).
Fig. 4.2.3.1.5-1
4.2.3.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
The WDP contains a set of processes, which is divided
into standard processes:
- PU drivers
- VDU driver
- LP driver
- CCB driver
- KERNEL
and application processes:
- INITIALIZE (start program)
- PU Handler
- SYSCON
- VDU Handler
- LP Handler
- SERVE ̲TIME
The interactive communication between the processes
is done via semaphore queues. The processes, which
are not waiting in a semaphore queue, are given CPU
time by the KERNEL, CF CSS-MIC/0007/PSP/1005.
Fig. 4.2.3.1-1 gives the allocation of the functions
onto the processes.
4.2.3.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
The data flow and control logic are shown in fig. 4.2.3.3-(1-4).
Fig. 4.2.3.3-1…01…WATCHDOG DATA FLOW
Fig. 4.2.3.3-2…01…DATA FLOW AND CONTROL LOGIC OF THE PU HANDLER
Fig. 4.2.3.3-3…01…DATA FLOW AND CONTROL LOGIC OF THE LP-HANDLER
Fig. 4.2.3.3-4a (1 of 2)…01…DATA FLOW AND CONTROL LOGIC OF THE SYSCON
Fig. 4.2.3.3-4b (2 of 2)…01…DATA FLOW AND CONTROL LOGIC OF THE SYSCON
4.2.3.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.3.4.1 W̲D̲P̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲
4.2.3.4.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The software initialization includes the following
actions:
- Clear User RAM (Data area)
- Create processes
- Initialize semaphore queues
- Initialize buffers and
link them to their semaphores
- initialize driver tables.
4.2.3.4.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
NA
4.2.3.4.1.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
PROCESS ̲DESCRIPTOR 4.2.3.5.5
MESSAGE (buffers) 4.2.3.5.1
SEMAPHORE 4.2.3.5.5
PROCESSES 4.2.3.5.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
PROCESS ̲DESCRIPTOR (m)
MESSAGE ̲BUFHED (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
CONST STACK ̲PU ̲HANDLER
STACK ̲VDU ̲HANDLER
STACK ̲LP ̲HANDLER
STACK ̲SYSCON
STACK ̲SERVE ̲TIM
START ̲AD ̲PU ̲HANDLER
START ̲AD ̲VDU ̲HANDLER
START ̲AD ̲LP ̲HANDLER
START ̲AD ̲SYSCON
START ̲AD ̲SYSCON
PRIORITY 0
START ̲DATA
END ̲DATA
4.2.3.4.1.4 C̲O̲M̲P̲O̲N̲E̲N̲T̲S̲
NA
4.2.3.4.1.5 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲ ̲W̲D̲P̲ ̲D̲e̲s̲i̲g̲n̲
Narrative
- Clear the data RAM area
- Create application processes
- Initialize buffers
- Set no SCAN
- Start PU ̲HANDLER
- Retire
Flowgram
ref. fig. 4.2.3.4.1.5
PROCEDURE INITIALIZE ̲WDP
CLEAR ̲RAM (START ̲DATA, END ̲DATA)
SET ̲INTERRUPT ̲VEKTOR (INPU 1, INPU 2, INVOV, INLP,
INTIM)
CREATE ̲(PU ̲HANDLER, STACK ̲PU ̲HANDLER, START ̲AD ̲PU
̲HANDLER,
PRIORITY
̲O)
CREATE (VDU ̲HANDLER, STACK ̲VDU ̲HANDLER,START ̲AD
̲PU ̲HANDLER,
PRIORITY
0)
CREATE (LP ̲HANDLER, STACK ̲LP ̲HANDLER, START ̲AD ̲LP
̲HANDLER,
PRIORITY
0)
CREATE (SYSCON, STACK ̲SYSCON, START ̲AD ̲SYSCON,PRIORITY
̲0)
INITIALIZE ̲APPLICATION ̲BUFFER
RESET ̲SCAN ̲TABLES
SIGNAL (PUHSEM), SIGNAL (SYSSEM)
PASSIVATE
END INITIALIZE ̲WDP
4.2.3.4.2 V̲D̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲
4.2.3.4.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The functions performed by the VDU ̲HANDLER
ARE:
- receive data buffers from the VDU
drivers
- receive status reports from the VDU
drivers
- send data buffers to the VDU driver
- convert VDU input/output
- enter offline communication mode
- interpret direct watchdog commands
4.2.3.4.2.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
NA
4.2.3.4.2.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MESSAGE 4.2.3.5.1
WDP ̲VDU ̲DATA 4.2.3.5.1d
CONTROL ̲COMMAND 4.2.3.5.2
PRINT ̲REPORT 4.2.3.5.3
CONFIG ̲TABLE 4.2.3.5.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
ROP ̲DOWN (m) 4.2.3.5
MESSAGE DATBUF (m)
MESSAGE.ADDRESS ̲OF ̲REF ̲QUEUE
MESSAGE.ADDRESS.ANSWER ̲SEM (m)
COUNT, MAX ̲COUNT,
COUNT ̲ROW (m) 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR VDHSEM: SEMAPH
VAR VDHANS: SEMAPH
VAR VDH EMT: SEMAPH
The semaphore address known to the
VDU Handler
VAR VDUH ̲MESS = ARRAY(1..3)
OF BUFFER ̲HEADS
VAR PRINTOUT: PRINT
̲REPORT
VAR CONTROL ̲DATA: CONTROL
̲COMMAND
VAR FOUND; 1 FUNCTION
KEY, CONVERTED:
BOOLEAN
VAR SPLIT = (COMMAND
̲SPLIT, CONFIG ̲SPLIT,
FORMAT
̲SPLIT)
VAR ACTUAL = (PU1,
PU2)
VAR FUNCTION ̲KEYS =
(ENTER, CANCEL,
COMMAND,OTHER)
The function keys used on the WDP
̲VDU
VAR COMMAND ̲LIST =
ARRAY(0..35) OF
CHARS
INIT COMMAND ̲LIST = WDSW,
RSET,
MACL,
DISA,
MAIN,
GCUA,
PUN1,
PUN2,
OFL1,
NORM
CONST COMMAND ̲LIST ̲SIZE
The legal commands to be entered via
the command line direct to the WDP
for execution.
4.2.3.4.2.4 V̲D̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The VDU ̲HANDLER contains the following
components each implemented as a procedure
- VDU ̲HANDLER
- RECEIVE ̲VDU
- CONVERT ̲VDU ̲IN
- OFFLINE ̲IN
- SEND ̲DISPLAY
- SEND ̲ON ̲VDU ̲IN
- READ ̲KEY
- READ ̲COMMAND
- INTERPRET ̲COMMAND
- SETUP ̲CONTROL ̲SEND
- SEND ̲VDU
- CONVERT ̲VDU ̲OUT
- OFFLINE ̲OUT
The components are shown on fig. 4.2.3.4.2.5-1.
4.2.3.4.2.5 D̲e̲s̲i̲g̲n̲ ̲V̲D̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲
The VDU ̲HANDLER module is implemented
as a process.
The process consists of the mainprocedure
VDU ̲HANDLER and a number of subprocedures.
The procedures are shown on fig. 4.2.3.4.2.5-1
overleaf.
Fig. 4.2.3.4.2.5-1…01…VDU ̲HANDLER PROCEDURES
4.2.3.4.2.5.a P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲V̲D̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲
Narrative.
The VDU ̲HANDLER awaits the VDHSEM to which
the data to be transmitted to/from the
VDU is sent. If the data is to the VDU
the SEND ̲VDU is called, otherwise the
RECEIVE ̲VDU is called for further handling
of the data.
When the data has been served the buffer
is returned to the answer queue or an
empty semaphore specified in the header.
Flowgram
ref. fig. 4.2.3.4.2.5.a-1
PROCEDURE VDU ̲HANDLER
LOOP
RECEIV (VDHSEM)(MESSAGE)
MESSAGE.ADDRESS ̲OF ̲RET ̲QUEUE EQ VDUEMT?
R̲E̲C̲E̲I̲V̲E̲
̲V̲D̲U̲
(MESSAGE)
S̲E̲N̲D̲ ̲V̲D̲U̲ (MESSAGE)(ANSWER)
MESSAGE.ADDRESS ̲OF ̲ANSWER ̲SEM EQ DUMMY?
SEND(MESSAGE, MESSAGE.ADDRESS ̲OF ̲RET
̲QUEUE)
SEND(MESSAGE, MESSAGE.ADDRESS ̲OF ̲ANSWER ̲SEM)
END LOOP
END VDU ̲HANDLER
Fig. 4.2.3.4.2.5.a-1
4.2.3.4.2.5.b P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲V̲D̲U̲
Narrative
The following actions are taken:
- Convert the data buffer
- Depending of the input type:
o save offline communication
o interpret commands
o interpret function keys
o send on the converted data buffer
to the PU
Flowgram
Ref. fig. 4.2.3.4.2.5.b - 1
PROCEDURE RECEIVE ̲VDU (MESSAGE: MESSAGE ̲BUFFER)
MESSAGE.DATBUF(1) EQ ACK OR NACK?
C̲O̲N̲V̲E̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲ (MESSAGE.DATBUF(5))(CONVERTED)
CONVERTED EQ FALSE?
MODE EQ OFFLIN? - O̲F̲F̲L̲I̲N̲E̲ ̲I̲N̲ (MESSAGE)
SPLIT EQ FORMAT
or ? S̲E̲N̲D̲
̲O̲N̲ ̲V̲D̲U̲
̲I̲N̲ (MESSAGE)
1-FUNCTION ̲KEY EQ FALSE
DATBUF(5) EQ FUNCTION ̲KEY? - R̲E̲A̲D̲ ̲K̲E̲Y̲(MESSAGE)(1
̲FUNCTION.KEY)
R̲E̲A̲D̲ ̲C̲O̲M̲M̲A̲N̲D̲ (MESSAGE)(1 ̲FUNCTION ̲KEY)
END RECEIVE ̲VDU
Fig. 4.2.3.4.2.5.b-1
4.2.3.4.2.5.c P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲
Ref IOC LTUX Design
4.2.3.4.2.5.d P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲O̲F̲F̲L̲I̲N̲E̲ ̲I̲N̲
Narrative.
The Command entered from the offline split
is sent to the actual PU and when transmitted
it is sent to the WDP ̲ROP if present and
when it has been printed the buffer is
released.
Flowgram.
Ref. fig. 4.2.3.4.2.5.d-1
PROCEDURE OFFLINE ̲IN (MESSAGE)
MESSAGE.ADDRESS ̲OF ̲ANSWER ̲QUEUE = VDUANS
SEND(MESSAGE, SEMA)
RECEIV(VDUANS)(MESSAGE)
MESSAGE.MESCOD EQ NACK? - S̲E̲N̲D̲ ̲D̲I̲S̲P̲L̲A̲Y̲(RESP ̲F, PU
FAILED)
LP ̲DOWN EQ TRUE?
MESSAGE. LINE ̲NO = DUMMY
SEND (MESSAGE, LPUSEM)
RECEIV(VDUANS)(MESSAGE)
MESSAGE.MESCOD EQ NACK? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (EXTERN,VDU
̲H,STATUS)
MESSAGE.ADDRESS ̲OF ̲ANSWER ̲QUEUE = DUMMY
END OFFLINE ̲IN
Fig. 4.2.3.4.2.5.d-1
4.2.3.4.2.5.e P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲D̲I̲S̲P̲L̲A̲Y̲
Narrative
Display the specified text on the
command split in the specified field,
and set the VDU ready for input of
new data.
Flowgram
NA
4.2.3.4.2.5.f P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲O̲N̲ ̲V̲D̲U̲ ̲I̲N̲
Narrative
If the Active PU is ready (init.read/bytes)
for a buffer the received buffer is
sent on to the PU.
The answer from the PU driver is awaited.
Flowgram
NA
4.2.3.4.2.5.g P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲A̲D̲ ̲K̲E̲Y̲
Narrative
The function key delivered in the
databuffer of the message and if key
equal to:
- ENTER, initiate transmission from
Command line
- CANCEL, reenter ONLINE MODE
- OTHERS, no action
Flowgram.
N/A
4.2.3.4.2.5.h P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲A̲D̲ ̲C̲O̲M̲M̲A̲N̲D̲
Narrative
The command is sent to the interpret
command procedure. The output from
this procedure is FOUND (BOOLEAN)
and the SCALAR value of the command
if found.
If:
- FOUND = FALSE; CALL SEND ̲PU
- FOUND = TRUE; handle the command
Flowgram
Ref. fig. 4.2.3.4.2.5.k-1
PROCEDURE READ ̲COMMAND (MESSAGE: MESSAGE.BUFFER)
(1.FUNCTION ̲KEY:
BOOLEAN)
1.FUNCTION ̲KEY = TRUE
I̲N̲T̲E̲R̲P̲R̲E̲T̲ ̲C̲O̲M̲M̲A̲N̲D̲ (MESSAGE)(FOUND, COMMAND)
FOUND EQ FALSE? - SEND ̲PU(MESSAGE)(1.FUNCTION ̲KEY)
CASE COMMAND OF:
PUN1, PUN2 ? - ACTUAL = COMMAND
S̲E̲N̲D̲ ̲D̲I̲S̲P̲L̲A̲Y̲ (COMM ̲TO ̲F, ACTUAL)
OFL1? - MODE = OFFLIN
S̲E̲N̲D̲ ̲D̲I̲S̲P̲L̲A̲Y̲(COMM ̲TO ̲F, ACTUAL)
OTHERS? - S̲E̲T̲U̲P̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲S̲E̲N̲D̲ (COMMAND)
END CASE
END READ ̲COMMAND
Fig. 4.2.3.4.2.5.h-1
4.2.3.4.2.5.i P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲T̲E̲R̲P̲R̲E̲T̲ ̲C̲O̲M̲M̲A̲N̲D̲
Narrative:
It is investigated, whether the command
is known to the watchdog (COMMAND
̲LIST). The SCALAR type of the command
is returned if FOUND = TRUE.
Flowgram
ref. fig. 4.2.3.4.2.5.i - 1
PROCEDURE INTERPRET ̲COMMAND (DATBUF: DATABUFFER)
(FOUND
: BOOLEAN
COMMAND
: COMMANDS)
COUNT = -4
MAXCOUNT = COMMANDLIST ̲SIZE
LOOP ̲1
COUNT = COUNT + 4
COUNT ̲ROW = -1
LOOP 2
COUNT ̲ROW = COUNT ̲ROW + 1
DATBUF ̲COMMAND(COUNT ̲ROW) NE
COMMAND ̲LIST(COUNT + COUNT ̲ROW)?-FOUND
= FALSE, EXIT
COUNT EQ CMD ̲SIZE? FOUND = TRUE, EXIT
END LOOP ̲2
FOUND EQ TRUE? EXIT
COUNT EQ MAX COUNT? EXIT
END LOOP ̲1
COMMAND = COUNT DIV 4
END INTERPRET ̲COMMAND
2Fig. 4.2.3.4.2.5.i - 1
4.2.3.4.2.5.j P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲T̲U̲P̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲S̲E̲N̲D̲
Narrative
Send log command "initiated" to the
LP ̲HANDLER.
Send control command to SYSCON (which
executes the control via the CCB)
Await the completion of the commands
send log command "completed"/"terminated"
to the LP ̲HANDLER.
If the LP ̲driver returns a nack LP
̲DOWN = TRUE and an error-report is
sent.
Flowgram.
NA
4.2.3.4.2.5.k P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲V̲D̲U̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The data received via the VDHSEM are checked
and converted before it is sent to the
VDU driver.
If split select is COMMAND ̲SPLIT and control
is "receive-control", 1 FUNCTION is updated
(TRUE). (Only in online mode). The data
in the received buffer is converted and
sent to the VDUSEM. (VDU driver out).
Flowgram.
Ref. fig. 4.2.3.4.2.5.k-1.
PROCEDURE SEND ̲VDU(MESSAGE:MESSAGE ̲BUFFER)
(1.FUNCTION ̲KEY,
SPLIT, ANSWER)
MESSAGE.DATBUF.LINE ̲NO EQ DUMMY? - OFFLINE = TRUE
EQUIVALENCE(MESSAGE.DATBUF, HELREG : FORMAT ̲VDU
̲BUFFER)
HELREG.SPLIT ̲SELECT EQ COMMAND SPLIT?
CONTROL EQ RECEIVE ̲CONTROL? -
1 ̲FUNCTION KEY
=
TRUE
CONVERT VDU ̲OUT (MESSAGE)(MESCON)
SEND (MESCON, VDU ̲SEM)(ANSWER)
OFFLINE EQ TRUE? - OFFLINE ̲OUT (MESSAGE)
END SEND ̲VDU
Fig. 4.2.3.4.2.5.k-1
4.2.3.4.2.5.l P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲
Narrative
Ref. IOC LTUX firmware
4.2.3.4.2.5.m P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲O̲F̲F̲L̲I̲N̲E̲ ̲O̲U̲T̲
Narrative.
The data received is sent to the LP
̲HANDLER to be printed. If LP ̲DOWN
= FALSE and when it has been printed
the buffer is released. If a nack
is returned from the LP an error message
is sent to the active PU if present,
otherwise an error message is displayed
on the VDU.
Flowgram.
NA
4.2.3.4.3 P̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲
4.2.3.4.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The functions of PU ̲HANDLER module are:
- receive control commands
- receive startup parameters
- receive keep alive reports
- receive time of day
- send id to PU
- receive PU driver status reports
The functions performed for each of the
messages are described in the module design.
4.2.3.4.3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
NA
4.2.3.4.3.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MESSAGE 4.2.3.5.1
CONFIG ̲TABLE 4.2.3.5.4
CONTROL ̲COMMAND 4.2.3.5.2
PU1SEM, PU2SEM 4.2.3.5.5
SYSSEM 4.2.3.4.5.3.c
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MESSAGE ̲DATBUF (m)
CONFIG ̲TABLE (m)
MESSAGE.ADDRESS ̲OF ̲RET ̲QUEUE
MESSAGE.ANSWER ̲SEM
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE PU ̲HAND ̲COMMAND =
RECORD
CMD ̲TYPE : COPSY ̲COMMAND,TIM
̲COMMAND
CMD: COMMAND ̲TYPE
INF: ARRAY(1..DATA ̲SIZE)
OF BYTE
END
VAR TIM = ARRAY(1..2) OF BYTE
CONST MAXTIM = 05H
NO ̲TIM = 0FFH
The TIME(N) is set equal to MAXTIM
when a keep alive message has been
received. If a PU is set offline TIME(N)
= NO ̲TIM
VAR SEND: BYTE
VAR PUHFL = ARRAY (1..2) OF FLAG
TYPE FLAG = BYTE
The PUHFL is incremented when a READ
̲BYTES is received and decremented
when a LDU is transmitted to PU
VAR PUHANS, PUHEMT, PUHSEM :
SEMAPH
The semaphores known to the PU Handler.
4.2.3.4.3.4 C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The following components are included:
- PU ̲HANDLER
- HANDLE ̲PROTOCOL
- WATCH ̲PU
- DISPATCH ̲CONTROL
- SET ̲CONTROL
- RETURN ̲YOU ̲ARE
- INITIALIZE ̲KEEP ̲ALIVE
- PU ̲SOFT ̲ERROR
- SEND ̲REPORT
- UPDATE TABLE
Each of the components is implemented
as a procedure and described in sec.
4.2.3.4.3.5.
4.2.3.4.3.5 P̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲ ̲D̲E̲S̲I̲G̲N̲
The PU ̲HANDLER is the main procedure in
the PU ̲HANDLER process. The main and subprocedures
are shown on fig. 4.2.3.3-2.
4.2.3.4.3.5.a P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲P̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲
Narrative:
The PU ̲HANDLER receives messages from
the PUHSEM.
The message is dispatched to a sub-procedure
for execution (message code). If the
message was received from one of the
PUs an answer is returned.
message code = ASCII ̲MES ̲ACK, ASCII
̲MES ̲NACK.
Other messages are returned to the
return semaphore specified in the
buffer header.
Flowgram.
Refer figure 4.2.3.4.3.5.a-1
PROCEDURE PU ̲HANDLER
WAIT (PUHSEM)
LOOP FOREVER
RECEIV(PUHSEM)(BUFFER:MESSAGE)
CASE BUFFER.DATBUF.MESCOD OF:
MESSAGE ̲ASCII? - BUFFER.DATBUF.LDUHED EQ
CONTROL? - H̲A̲N̲D̲L̲E̲
̲P̲R̲O̲T̲O̲C̲O̲L̲(̲B̲U̲F̲F̲E̲R̲)̲(̲A̲N̲S̲W̲E̲R̲)̲
D̲I̲S̲P̲A̲T̲C̲H̲ ̲C̲O̲N̲T̲R̲O̲L̲(BUFFER)
(ANSWER)
INT ̲COMMAND? - W̲A̲T̲C̲H̲ ̲P̲U̲ (BUFFER)
STATUS ̲PU? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (EXTERN, PUH,
BUFFER.STATUS)
OTHERS? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERNAL, PUH,
MESIO)
END CASE
BUFFER.DATBUF.MESCOD NE MESSAGE.ASC II? - RETURN
̲BUFFER
BUFFER.DATBUF.MESCOD = ANSWER (BUFFER)
BUFFER.ADDRESS ̲OF ̲RET ̲QUEUE EQ PU1 EMT? - SEM =
PU1 SEM
SEM = PU2 SEM
SEND (BUFFER, SEM)
END LOOP
END PU ̲HANDLER
Fig. 4.2.3.4.3.5.a-1
4.2.3.4.3.5.b H̲A̲N̲D̲L̲E̲ ̲P̲R̲O̲T̲O̲C̲O̲L̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲
Narrative
The protocol information are handled
- if input request the PUHFLAG
is incremented
- if cancel input the PUHFLAG
is decremented.
PUHFL(1) = 0 default
PUHFL(2) = 0 " "
Flowgram
NA
4.2.3.4.3.5.c P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲P̲A̲T̲C̲H̲ ̲C̲O̲N̲T̲R̲O̲L̲
Narrative
The control field in the data buffer
is used as the key for dispatching
the data-buffer to procedure which
is responsible for handling the specified
control.
If the data buffer contains a configure
CCB control command one empty buffer
is reserved from the PUHANDLERS pool
of buffers linked to the PUHEMT queue.
Flowgram.
Ref. fig, 4.2.3.4.3.5.c-1
PROCEDURE DISPATCH ̲CONTROL (BUFFER: MESSAGE)
(ANSWER: ANSWERS)
EQUIVALENCE (BUFFER.DATBUF(4), DATABUF: CONTROL
̲COMMAND)
DATBUF.CMD ̲TYPE EQ
COPSY ̲CMD ̲L? CASE DATABUF.CMD OF:
CONTROL? - RECPOL (PUHEMT)(CC,
EMTBUF)
CC EQ NO ̲CY?
- A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(PUH,NO
̲BUF)
S̲E̲T̲ ̲C̲O̲N̲T̲R̲O̲L̲(DATBUF.INF,
EMTBUF)
(ANSWER)
SEND(EMTBUF,
PUHEMT)
WHO ̲AM ̲I? - R̲E̲T̲U̲R̲N̲ ̲Y̲O̲U̲ ̲A̲R̲E̲ (BUFFER)(ANSWER)
GO.CAMPS ̲WDP? - I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲ ̲K̲E̲E̲P̲
̲A̲L̲I̲V̲E̲(BUFFER)
(ANSWER)
KEEP ̲ALIVE? - W̲A̲T̲C̲H̲ ̲P̲U̲ (BUFFER)(ANSWER)
CONFIGURATION? - U̲P̲D̲A̲T̲E̲ ̲T̲A̲B̲L̲E̲
(BUFFER)(ANSWER)
OTHERS?- A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(PUH, COPSY
̲IF)
END CASE
A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (EXTERN, PUH, COPSY ̲IF)
END DISPATCH ̲CONTROL
Fig.4.2.3.4.3.5.c-1
4.2.3.4.3.5.d Procedure SET-CONTROL
Narrative:
Completes the message buffer delivered
(pointer to data buffer start).
Send the buffer to the SYSCON semaphore
SYSSEM and await the completion of
the control.
Flowgram
Ref. fig. 4.2.3.4.3.5.d-1
PROCEDURE SET ̲CONTROL(DATABUF: PU ̲HAND ̲COMMAND,
EMTBUF: MESSAGE)
(ANSWER: ANSWERS)
EMTBUF.ADDRESS ̲ANSWER ̲SEM = PUHANS
EQUIVALENCE (EMTBUF.DATBUF, HELREG: CONTROL ̲COMMAND)
HELREG. MESCOD = CONTROL
HELREG. COMMAND = DATBUF. INF (1)
HELREG. PARAMS (1..4) = DATBUF. INF (2..5)
SEND (EMTBUF, SYSSEM)
RECEIV(PUHANS)(EMTBUF)
ANSWER = EMTBUF. MESCOD
END SET ̲CONTROL
Fig. 4.2.3.4.3.5.d-1
4.2.3.4.3.5.e P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲W̲A̲T̲C̲H̲ ̲P̲U̲
Narrative
Receive Timer Commands and "Keep alive"
message.
If Timer command decrement TIM(1),
TIM(2) if different from NOTIM.
If TIM(1) or TIM(2) equal zero a keep
alive message is missing and the PU
̲SOFT ̲ERROR is called.
If "keep alive" messages reset the
TIM(PU NO).
If the PU from which the keep-alive
message is received is active and
the time of day is included the WDP
system time is updated.
Flowgram
Ref. fig. 4.2.3.4.3.5.c-1
PROCEDURE WATCH ̲PU (BUFFER : MESSAGE)(ANSWER
BUFFER. MESCOD EQ INT ̲COMMAND?
COUNT = 0
LOOP
COUNT = COUNT + 1
TIM (COUNT) EQ NO ̲TIM? - ACTION = NO
TIM (COUNT) = TIM(COUNT) - 1
TIM (COUNT) NE 0? - ACTION = NO
ACTION = ERRO
ACTION EQ ERRO? - PU SOFT ̲ERROR (COUNT)
COUNT EQ 2? EXIT
END LOOP
ANSWER = OK
BUFFER. ADDRESS ̲OF ̲RET ̲QUEUE EQ PU1 EMT? - COUNT
= 1
COUNT = 2
TIM (COUNT) EQ NO ̲TIM?
TIM (COUNT) = 0, MAXTIM
PU(COUNT) NE ACTIVE?
TIME OF DAY included? - update WDP ̲TIME
END WATCH ̲PU
Fig. 4.2.3.4.3.5.e-1
4.2.3.4.3.5.f P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲P̲U̲ ̲S̲O̲F̲T̲ ̲E̲R̲R̲O̲R̲
Narrative
Depending of the PU state the following
action is taken:
- if Active + (Standby)
o Switchover
o GO ̲SB ̲AC + report to Standby
PU
o update configuration table
- if Standby + (Active)
o RESET PU
o Report to active PU
o Update configuration table
- if Standby or Active + (offline)
o RESET PU
o Report to WDP ̲ROP
o update configuration table
Flowgram
ref. fig. 4.2.3.4.3.5.f-1
PROCEDURE PU ̲SOFT ̲ERROR(COUNT: 1..2)
COUNT EQ 1? - NEXT = 2
NEXT = 1
RECPOL(PUEMT)(CC, CONBUF)
CC EQ NO ̲CY? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERN, PUH, NO ̲BUF)
CONBUF.ADDRESS ̲ANSWER ̲SEM = PUHANS
EQUIVALENCE(CONBUF, HELREG : CONTROL ̲COMMAND)
HELREG.MESCOD = CONTROL
EQUIVALENCE(CONFIG ̲TABLE.PU ̲N, MYREG: ARRAY(1..2)
OF PU ̲STATE)
MYREG(COUNT)EQ PU ̲ACTIVE? - REPORT = NO
MYREG(NEXT) EQ STANDBY? - HELREG.CMD =
SWITCHOVER, REPORT = 2
HELREG. CMD = RESET, HELREG. INF(1) =
COUNT, REPORT = 1
REPORT = 1
HELREG. CMD = RESET, HELREG. INF(1) = COUNT
SEND(CONBUF, SYSSEM)
RECEIV(PUHANS)(CONBUF)
CONBUF.MESCOD EQ CONTROL ̲NACK? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERN,
PUH,
SEND (CONBUF, PUEMT) CCB)
REPORT EQ NO?
S̲E̲N̲D̲ ̲R̲E̲P̲O̲R̲T̲ (REPORT)
END PU ̲SOFT ̲ERROR
Figure 4.2.3.4.3.5.f-1.
4.2.3.4.3.5.g P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲R̲E̲P̲O̲R̲T̲
Narrative
Send a Message buffer to
- Active PU if any and if
PU ready for receiving the message
- If no Active PU send to WDP ̲ROP
via the LP ̲HANDLER
Flowgram
ref. fig. 4.2.3.4.3.5.g-1
PROCEDURE SEND ̲REPORT(REPORT:1..NO ̲OF ̲REPORTS)
CONFIG ̲TABLE.PU ̲N(1) EQ ACTIVE? SEM = PU1 SEM, COUNT
= 1
CONFIG ̲TABLE.PU ̲N(2) EQ ACTIVE? SEM = PU2 SEM, COUNT
= 2
SEM = LPHSEM
RECPOL (HEASEM)(CC, LPMES)
CC EQ NO ̲CY? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (INTERNAL, SERP, NO
̲BUF)
LPMES. ADDDRESS ̲OF ̲DATA ̲BUF = TEXT(REPORT)
SEND(LPHSEM, SEM)
SEM EQ LPHSEM?
G̲E̲T̲ ̲P̲U̲ ̲B̲U̲F̲(CCB ̲REPORT)(PU ̲BUF)
EQUIVALENCE(PU ̲BUF, DREG: PU ̲HAND ̲COMMAND)
REPORT EQ 2? DREG.INF(1) = GO ̲SB ̲AC, DREG.INF(15..28)
= WDP.INF
DREG.INF(1) = SB ̲PU ̲DOWN
DREG.INF(2) = PU
DREG.INF(3) = NO ̲KEEP ̲ALIVE
PU ̲FL(COUNT) EQ 0? A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL, BERP,
NO ̲INT)
PU ̲FL(COUNT) = PU ̲FL (COUNT)-1
SEND(PU ̲BUF, SEM)
END SEND ̲REPORT
Fig. 4.2.3.4.3.5.g-1
4.2.3.4.3.5.h P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲ ̲K̲E̲E̲P̲ ̲A̲L̲I̲V̲E̲
Narrative
The TIM(PU) data element is activated
(TIM(PU) = MAXTIM). If the command
is from the Standby PU,
A report is sent to the active PU
(if present)
(WDP ̲CMD, CCB ̲REPORT, SB ̲UP) and the
config ̲table is updated.
Flowgram
ref. fig. 4.2.3.4.3.5.h-1
PROCEDURE INITIALIZE ̲KEEP ̲ALIVE (BUFFER: MESSAGE)
(ANSWER:
ANSWERS)
ANSWER = OK
BUFFER.ADDRESS ̲OF ̲RET ̲QUEUE EQ PU1 EMT? - COUNT
= 1
COUNT = 2
EQUIVALENCE(BUFFER.DATBUF(4), REG: PU ̲HAND ̲COMMAND)
CONFIG ̲TABLE.PU ̲N(COUNT) = REG.INF(1)
REG.INF(1) EQ ACTIVE ̲PU? WDP ̲TIME = REG.INF(2..15)
COUNT EQ 1? - INDEX = 2, SEM = PU2SEM
INDEX = 1, SEM = PU1SEM
CONFIG ̲TABLE.PU ̲N(INDEX) NE PU ̲ACTIVE?
GET ̲PU ̲BUF(CCB ̲REPORT)(PU ̲BUF)
EQUIVALENCE (PU ̲BUF, DREG : PU ̲HAND ̲COMMAND)
DREG.INF(1) = SB ̲PU ̲UP
PU ̲FL(INDEX) EQ O? A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL, PUH,
NO ̲INIT)
PU ̲FL(INDEX) = PU-FL(INDEX) - 1
SEND(PU ̲BUF, SEM)
TIM(COUNT) = MAXTIM
END INITIALIZE ̲KEEP ̲ALIVE
fig. 4.2.3.4.3.5.h-1
4.2.3.4.3.5.i P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲T̲U̲R̲N̲ ̲Y̲O̲U̲ ̲A̲R̲E̲
Narrative
The answer to who am I is returned
with the PU ̲NO
Flowgram
PROCEDURE RETURN ̲YOU ̲ARE(BUFFER: MESSAGE)
(ANSWER
: ANSWERS)
ANSWER = OK
GET ̲PU ̲BUF (YOU ̲ARE)(PU ̲BUF)
BUFFER.ADDRESS ̲OF ̲RET ̲QUEUE EQ PU1 EMT?
- PU ̲NO = 1,
PU ̲NO = 2, SEM = PU2 SEM SEM
=
PU1
SEM
PU ̲FL(PU ̲NO) EQ O? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (EXTERNAL,
PUH,NO
̲INIT
PU ̲BUF.INF(1) = PU ̲NO
SEND (PU ̲BUF, SEM)
END RETURN ̲YOU ̲ARE
4.2.3.4.3.5.j P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲U̲P̲D̲A̲T̲E̲ ̲T̲A̲B̲L̲E̲
Narrative
The configuration is received from
the PU subsequent to:
- Active PU start
- Reinsertion of the WDP
The configuration is used for setting
up the configuration table and the
scan ̲tables.
Flowgram
ref. fig. 4.2.3.4.3.5.j-1
PROCEDURE UPDATE ̲TABLE (BUFFER: MESSAGE)
(ANSWER
: ANSWERS)
ANSWER = OK
EQUIVALENCE(BUFFER.DATBUF(4), REG: PU ̲HAND ̲COMMAND)
CONFIG ̲TABLE = REG. INF(1..17)
BUFFER.ADDRESS ̲OF ̲RET.QUEUE EQ PU1 EMT? COUNT =
2, NEXT=1 SEM=PU1SEM
COUNT = 1, SEM = PU 2 SEM, NEXT = 2
TIM(COUNT) EQ NO ̲TIM?
CONFIG ̲TABLE.PU ̲N(COUNT) EQ PU ̲STANDBY?
CONFIG ̲TABLE.PU ̲N(COUNT) = PU ̲STANDBY
GET ̲PU ̲BUF(CCB ̲REPORT)(PU ̲BUF)
EQUIVALENCE(PU ̲BUF, DEREG: PU ̲HAND ̲COMMAND)
DREG. INF(1) = SB ̲PU ̲UP
PU ̲FL(NEXT) EQ O? A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL, PUH, NO
̲INIT)
SEND ̲(PU ̲BUF, SEM)
UPDATE ̲SCAN ̲TABLES
END UPDATE ̲TABLES
Fig. 4.2.3.4.3.5.j-1
4.2.3.4.4 L̲P̲ ̲H̲A̲N̲D̲L̲E̲R̲
4.2.3.4.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The functions of the LP ̲HANDLER module
are
- Receive reports, error-reports and
command logs to be printed
- Receive status from the printer driver
o Paper low
o transmission failed
o transmission ok
If the printer has been out ̲of ̲service
a report is sent to the PU when it is
back again.
4.2.3.4.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
NA
4.2.3.4.4.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MESSAGE
PRINT ̲REPORT
a2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
LPHSEM
ROPANS
LPSEM
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
LPBUF
CONFIGTABLE.PU ̲N
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
SEM: INTEGER
HEAD: 1..3
COUNTER: 2..4
COUNT: UP, DOWN
NEXT: BOOLEAN
HEAD ̲START: 1..2
HEAD ̲END: 1..2
LAST PRINT: REPORTS
START ̲PRINT %: POINTER
SIZE : BYTE
4.2.3.4.4.4 C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The following components are used by the
LP ̲HANDLER
- LP ̲HANDLER
- SYNCHRONIZE
- OFFLINE PRINT
- POL ̲LP
- ONLINE ̲PRINT
- SEND ̲COUNTER
- SERVE ̲COUNTER
- SEND ̲HEADER
- RETURN ̲ASYN
- SEND ̲BREAK
- ANALYSE ̲ERROR (COMMON)
4.2.3.4.4.5 L̲P̲ ̲H̲A̲N̲D̲L̲E̲R̲ ̲D̲E̲S̲I̲G̲N̲
The procedures contained in the LP ̲HANDLER
process are shown on fig. 4.2.3.3-3.
4.2.3.4.4.5.a P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲L̲P̲ ̲H̲A̲N̲D̲L̲E̲R̲
Narrative
Depending of the message code a subprocedure
is chosen for handling of the printout.
The answer to the printout is returned
to the sender.
Subsequent to a WDP ̲ROP failure the
LP drive is periodically requested
for status.
Flowgram.
Ref. fig. 4.2.3.4.4.5.a-1
PROCEDURE LP ̲HANDLER
LOOP
RECEIV(LPHSEM)(LPBUF)
EQUIVALENCE(LPBUF.DATBUF, REG: PRINT ̲REPORT)
CASE REG.MESCOD OF:
OFFPRI? - O̲F̲F̲L̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲(LPBUF), SEM = RETURN
̲SEM
STATUS ̲LP ̲ACK? - R̲E̲T̲U̲R̲N̲ ̲A̲S̲Y̲N̲ (1), SEM = RETURN
̲SEM
STATUS ̲LP ̲NACK? - P̲O̲L̲ ̲L̲P̲, SEM = RETURN ̲SEM
NEXT = TRUE
END CASE
CONTINUE
NEXT EQ FALSE?
S̲Y̲N̲C̲H̲R̲O̲N̲I̲Z̲E̲ (LPBUF)(SYNC)
SYNC EQ FALSE?
REQ.MESCOD EQ MESSAGE ASCII?
LPBUF.ADDRESS ̲OF ̲RET QUEUE EQ LPEMT? S̲E̲N̲D̲
̲A̲S̲Y̲N̲ (3, LPBUF)
LPBUF ADDRESS ̲OF RET ̲QUEUE EQ PU1EMT? SEM
= PU1SEM, HEAD = 1
HEAD = 2, SEM = PU2SEM
REQ.MESCOD EQ WDP ̲MES? - HEAD = 3
SEM = RETURN ̲SEM
A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERN, ROPH, INF)
O̲N̲L̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲ (HEAD)
SYNC EQ FALSE?
NEXT EQ FALSE? - NEXT = TRUE
S̲E̲N̲D̲ ̲C̲O̲U̲N̲T̲E̲R̲S̲
LPBUF.ADDRESS ̲OF ̲ANSWER ̲SEM = DUMMY
SEM EQ RETURN ̲SEM? - R̲E̲T̲U̲R̲N̲ ̲M̲E̲S̲S̲A̲G̲E̲(LPBUF)
SEND(LPBUF, SEM)
END ROP ̲HANDLER
Figure 4.2.3.4.4.5.a-1.
4.2.3.4.4.5.b P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲Y̲N̲C̲H̲R̲O̲N̲I̲Z̲E̲
Narrative:
If a message which has no connection
with the LDUs which are sent for print
(a number of LDUs), the message is
taken out of the queue a returned
to last position in the queue.
Flowgram
ref. fig. 4.2.3.4.4.5.b-1
PROCEDURE SYNCHRONIZE (LPBUF: PRINT ̲REPORT)(STOP
: BOOLEAN)
SYNC
BUSYFL EQ FALSE? - HELREG. BUFTYP NE START ̲LDU?
BUSYFL = TRUE
CASE HELREG. BUFTYP OF:
START ̲LDU, ENTIRE ̲LDU? - SEND(LPBUF, LPHSEM),
SYNC = FALSE
PART ̲LDU?
LAST ̲LDU? - BUSYFL = FALSE
END CASE
END SYNCHRONIZE
Fig. 4.2.3.4.4.5.b-1
4.2.3.4.4.5.c P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲O̲F̲F̲L̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲
Narrative
If the messsage is the first to be
printed a header is printed before
the message is printed and a flag
(OFF FLAG = TRUE) is set.
Before the next messages received
are given over direct to the LPdriver,
a "tab"(4 spaces) are sent.
No offline messages are printed if
an online print not terminate instead
a break is sent to the offline PU.
Flowgram.
ref. fig. 4.2.3.4.4.5.c-1
PROCEDURE OFFLINE ̲PRINT (LPBUF: MESSAGE)
BUSYFL EQ TRUE? - SEND ̲BREAK, SEM = RETURN ̲SEM,
NEXT = FALSE
OFFLAG EQ TRUE?
CONFIGTABLE.PU ̲N(1) EQ OFFLINE? HEAD = 1
HEAD = 2
COUNTER = 3
S̲E̲R̲V̲E̲ ̲C̲O̲U̲N̲T̲E̲R̲ (COUNTER, UP)
HEAD ̲START = 1
HEAD ̲END = 2
S̲E̲N̲D̲ ̲H̲E̲A̲D̲E̲R̲ (HEAD, HEAD ̲START, HEAD ̲END)
LAST ̲PRINT = OFPRIN
ROP ̲DOWN EQ TRUE?
REC POL(SYNSEM)(SYNCBUF, CC)
CC EQ NO ̲CY? ANALYSE ̲ERROR(INTERN, OFFL, NO ̲BUF)
SEND (SYNCBUF, LPSEM)
RECEIV(ROPANS)(SYNCBUF)
SYNCBUF.MESCOD EQ MESSAGE ̲NACK? - RETURN ̲ASYN(2)
SYNCBUF.MESCOD = MESSAGE ̲ACII
LPBUF.ADDRESS ̲OF ̲ANSWER ̲SEM = ROPANS
SEND(LPBUF, LPSEM)
RECEIV(ROPANS)(LPBUF)
LPBUF.MESCOD EQ MESSAGE ̲NACK? RETURN ̲ASYN(2)
LPBUF.ADDRESS ̲OF ̲ANSWER ̲SEM = DUMMY
END OFFLINE ̲PRINT
Fig. 4.2.3.4.4.5.c - 1
4.2.3.4.4.5.d P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲T̲U̲R̲N̲ ̲A̲S̲Y̲N̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Any change in the status of the ROP
results in an asynchron report to
SSC ̲HANDLER which sends it on to WAMCO
in SSC (SEM = RETURN ̲SEM)
The asynchron reports are:
- ROP ̲UP
- ROP ̲DOWN
- PAPER ̲OUT
- PAPER ̲IN
Flowgram
NA
4.2.3.4.4.5.e P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲P̲O̲L̲ ̲L̲P̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
After a specified period the WDP ̲ROP
is requested to send its new status.
Flowgram.
NA
4.2.3.4.4.5.f P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲O̲N̲L̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
For each messge (i.e. reports, error
reports, and log) a header is included
before the message is printed.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer Figure 4.2.3.4.4.5.f-1
PROCEDURE ONLINE ̲PRINT(HEAD: 1..3, LPBUF : PRINTREPORT)
EQUIVALENCE (LPBUF.DATBUF(4), REG : PRINT ̲REPORT)
BUSY.FL EQ TRUE?
REG.CMO ̲TYPE NE COPSY ̲REPORT OR CMI ̲LOG OR
WDP ̲REPORT? - ANALYSE ̲ERROR (INTERN,ONLPR,
INF,)
CASE REG CMD OF
REPORT? - COUNTER = 3, HEAD ̲START = 2, HEAD ̲END
= 2
ERROR ̲REP? - COUNTER = 2, HEAD ̲START = 1, HEAD
̲END = 2
LOG ̲INI? - COUNTER = 4, HEAD ̲START = 2, HEAD ̲END
= 1
LOG ̲COMP? - COUNTER = DUMMY, HEAD ̲START = 2, HEAD
̲END = 1
OTHERS? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERN, ONLPR, INF2)
END CASE
S̲E̲R̲V̲E̲ ̲C̲O̲U̲N̲T̲E̲R̲(COUNTER, UP)
S̲E̲N̲D̲ ̲H̲E̲A̲D̲E̲R̲ (HEAD, HEAD ̲START, HEAD ̲END)
ROP ̲DOWN EQ TRUE?
REG. CMD ̲TYPE = SPACE , SPACE
REG. CMD = SPACE , SPACE
LPBUF ̲ADDRESS ̲OF ̲ANSWER ̲SEM = ROPANS
SEND(LPBUF, LPSEM)
RECEIVE(ROPAN)(LPBUF)
LPBUF.MESCOD EQ MESSAGE ̲NACK? R̲E̲T̲U̲R̲N̲ ̲A̲S̲Y̲N̲ (2)
COUNTER EQ 2? LAST ̲PRINT = ERROR ̲REP
END ONLINE ̲PRINT
Fig. 4.2.3.4.4.5.f-1
4.2.3.4.4.5.g P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲R̲V̲E̲ ̲C̲O̲U̲N̲T̲E̲R̲ ̲
Narrative
The print-counter and the counter
specified (ERROR, TRANS, REPORT) are
incremented or decremented.
Flowgram
N/A
4.2.3.4.4.5.h P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲H̲E̲A̲D̲E̲R̲
Narrative
If offline flag true send a "Break"
to the offline PU. Print the header
for the next message to be printed.
Flowgram
Refer figure 4.2.3.4.4.5.h-1
PROCEDURE SEND ̲HEADER(HEAD, HEAD ̲START, HEAD ̲END)
EQUIVALENCE(HEADBUF, REG: HEAD ̲BUFFER)
LAST ̲PRINT EQ OFFPRIN OR ERROR ̲REP? - HEAD ̲START
= 1
RECPOL(HEASEM)(CC, PRIBUF)
CC EQ NO ̲CY? - ANALYSE ̲ERROR(INTERN, SEHEAD, NO
̲BUF)
CASE HEAD ̲START OF
1? - START ̲PRINT % = HEAD ̲BUF.CTRL 1, SIZE = LONG
̲HEAD ̲SIZE
2? - START ̲PRINT % = HEAD ̲BUF.CTRL 2, SIZE = SHORT
̲HEAD ̲SIZE
END CASE
START ̲PRINT % - 4 = MESCOD = ASCII
PRIBUF.ADDRESS ̲OF ̲DATA ̲BUFFER = START ̲PRINT % -
4
HEAD ̲END EQ 1? - SIZE = SIZE - 3
HEADBUF.HEAD(1..4) = HEADER(HEAD)
PRIBUF.BYTE ̲SIZE = SIZE
SEND (PRIBUF, LPSEM)
RECEIV(LPSEM)(PRIBUF)
SEND(PRIBUF, HEASEM)
START ̲PRINT % - 4 EQ MESSAGE ̲NACK? RETURN ASYN(2)
HEADBUF.CNTRLI = PAGESHIFT, LF, CR, SP, SP, SP
END SEND ̲HEADER
Fig. 4.2.3.4.4.5.h-1
4.2.3.4.4.5.i P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲B̲R̲E̲A̲K̲
Narrative
A "BREAK" is sent to the offline PU
if
- a log or
- a printout (e.g. system status)
or
- an errorreport
are received during printout of offline
communication.]
Flowgram
NA
4.2.3.4.4.5.j P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲C̲O̲U̲N̲T̲E̲R̲
Narrative
Send the counter values taken from
the read buffer to the active PU if
present.
Flowgram
NA
4.2.3.4.5 S̲y̲s̲t̲e̲m̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲S̲Y̲S̲C̲O̲N̲)̲
4.2.3.4.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The functions performed by SYSCON are:
- receive and handle reports from the
CCB driver
o change of the digital status
o voltage too low in a crate
o CCB driver bus errors detected
- receive direct operator commands
- receive command from the PU
o control commands
o monitoring requests
The control/monitoring command are interpreted
a command is sent to the CCB driver
4.2.3.4.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
NA
"monitor call"
4.2.3.4.5.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MESSAGE 4.2.3.5.1
CONTROL ̲COMMAND 4.2.3.5.2
CONFIG ̲TABLE 4.2.3.5.3
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MESSAGE.STATUS (m)
MESSAGE.ADDRESS ̲OF ̲RET ̲QUEUE
MESSAGE.ADDRESS ̲DATA ̲BUF
MESSAGE.ADDRESS ̲ANSWER ̲SEM
MESSAGE.DAT ̲BUF (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE ANALOG ̲DATA ̲BUFFER =
RECORD
BUFHED : BUFFER ̲HEADER
ANADAT : ANALOG ̲DATA
END
TYPE DIGITAL ̲DATA ̲BUFFER =
RECORD
BUFHED: BUFFER ̲HEADER
DIGDAT: DIGITAL ̲DATA
END
TYPE CCB ̲CODE =
RECORD
CCB ̲AD: CCB ̲ADDRESS
CONTROL : CONTROL ̲CODE
END
The buffers are used for communication with the
CCB driver.
TYPE ANALOG ̲DATA =
RECORD
MESCOD: MESSAGE ̲CODE;
CCBCOD: CCB ̲CODE;
SIGN,
TENS,
UNITS,
DECIPO,
TENTHS,
SPARE: BYTE
END
The analog data gives the voltage of the power supply
monitored by the WDP via the CCB (Configuration
Control Bus)
TYPE DIGITAL ̲DATA =
RECORD
MESCOD: MESSAGE ̲CODE;
CCBCOD: CCB ̲CODE;
DIGLSB,
DIGMSB: BYTE;
END
The digital data gives the present status of the
status signal (high/low) on a specified module (BSH
̲X or CCA).
The status is monitored via the CCB
TYPE CCB ̲ERROR ̲MESSAGE =
RECORD
BUFHED: BUFFER ̲HEADER;
MESCOD: MESSAGE ̲CODE;
END
A̲n̲a̲l̲o̲g̲ ̲B̲u̲f̲f̲e̲r̲ ̲F̲o̲r̲m̲a̲t̲
Buffers containing data of analog values have the
following format:
0 MESSAGE ̲CODE
1
2 CCB-CODE
3
4 SIGN
5 TENS
6 UNITS
7 DECIMAL POINT
8 TENTHS
9 SPARE
CCB-CODE: Identifies the measured value.
(See CCB-CODE format)
SIGN
TENS
UNITS Measured value in ASCII
DECIMAL POINT
TENTHS (See ASCII-formats)
D̲i̲g̲i̲t̲a̲l̲ ̲B̲u̲f̲f̲e̲r̲ ̲F̲o̲r̲m̲a̲t̲
Buffers containing digital values have the following
format:
0 MESSAGE-CODE
1
2 CCB-CODE
3
4 Digital value LSB
5 MSB
CCB-CODE: Identifies the digital value to be controlled
or monitored.
(See CCB-CODE format)
When a message is returned from the CCB-driver,
the ACK/NACK information in the messagecode
refer to the bit(s) specified in the CCB-Code.
Digital
value: The meaning of the digital value depends
on the matching message code.
I̲f̲ ̲R̲E̲A̲D̲:̲ The digital value is
the input-value from
the CCB-units.
I̲f̲ ̲W̲R̲I̲T̲E̲:̲ The digital value is
the output-value to the
CCB-units
C̲C̲B̲-̲C̲O̲D̲E̲ ̲F̲o̲r̲m̲a̲t̲
The CCB-CODE specifies the value to be controlled or
monitored. This value can either be an analog or a
digital depending on the message code.
CCB-CODE CCB-ADDRESS
CONTROL CODE LSB
MSB
CCB-ADDRESS:
Specifies the address of the CCB-UNIT.
CCB-ADD = 0, 1, 2..........31
To identify the type of CCB-unit connected
to a concerned address, a table has to
be defined. The format of the table is
described in connection with the CCB-driver.
CONTROL-CODE: The format of the CONTROL-CODE depends
on the matching message code.
I̲f̲ ̲m̲e̲s̲s̲a̲g̲e̲ ̲c̲o̲d̲e̲ ̲=̲ ̲A̲N̲A̲L̲O̲G̲:̲
CONTROL-CODE: MSB = DUMMY
LSB = 0: Channel
0
1: Channel
1
15: Channel
15
16-FFH: NOT VALID
I̲f̲ ̲m̲e̲s̲s̲a̲g̲e̲ ̲c̲o̲d̲e̲ ̲=̲ ̲D̲i̲g̲i̲t̲a̲l̲
The position of "1" in the CONTROL-CODE
specifies the bit(s) to be considered
in the digital value. The CONTROL-CODE
format is equal to the format of
the digital value.
4.2.3.4.5.4 S̲Y̲N̲C̲O̲N̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The following components are contained in SYSCON process,
the components are implemented as procedures.
- SYSCON
- CONF ̲HANDLING
- CONFIG ̲PU
- CONFIG ̲CU
- CONFIG ̲BSMX
- SWITCHOVER
- SEND ̲OPERATOR.REPORT
- SEND ̲ERROR ̲REPORT
- CONTROL ̲SEND
- SWITCH.BSMX
- SWITCH CU
- DISABLE ̲PU
- MASTERCLEAR
- RESET ̲PU
- SET ̲MAINTENANCE
- PU ̲CU ̲LINK
4.2.3.4.5.5 S̲Y̲S̲C̲O̲N̲ ̲D̲e̲s̲i̲g̲n̲ ̲
The SYSCON consists of the main procedure SYSCON and
a number of subprocedures. The procedures are shown
on fig. 4.2.3.3-4c(b).
4.2.3.4.5.5.a P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲Y̲S̲C̲O̲N̲
Narrative
Wait until a message arrives in the SYSSEM.
Get the message and interpret the "message code"
for dispatching the handling of the message to
the given procedure.
Return the message ̲buffer to either the answer
semaphore or the return semaphore.
Flowgram
ref. fig. 4.2.3.4.5.5.a-1
PROCEDURE SYSCON
WAIT (SYSSTART)
CLEAR(SYSSEM) "The buffer linked to the SYSSEM is
released
LOOP
RECEIV(SYSSEM)(MESSAGE)
CASE MESCOD OF
ERROR ̲CCB ̲DRIVER? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL,
SYSCON, STATUS)
DIGITAL ̲CHANGE,
ANALOG ̲CHANGE? - C̲O̲N̲F̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲ (DATBUF)
CONTROL? - S̲E̲N̲D̲ ̲C̲O̲N̲T̲R̲O̲L̲(DATBUF)
OTHERS? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERNAL,
SYSCON, MESCOD)
END CASE
ANSWER ̲REQUIRED? - SEND(MESSAGE, ANSWER ̲SEM)
SEND(MESSAGE, RETURN ̲QUEUE)
END LOOP
END SYSCON
Fig. 4.2.3.4.5.5.a-1
4.2.3.4.5.5.b P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲
Narrative:
The CCB address is read and depending
of the error-type the action can be:
- switch over
- close down
- warning report (manual switch
change)
- BSMX down
Flowgram
ref. fig. 4.2.3.4.5.5.b.1
PROCEDURE CONFIG ̲HANDLING(DATBUF: ANALOG ̲DATA/DIGITAL
̲DATA)
RECPOL (SYSEMT)(EMPT ̲BUFF, CC)
CC EQ NO ̲CY? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERNAL, SYSCON,
NO ̲BUF)
CASE CCBADD OF:
PU? - C̲O̲N̲F̲I̲G̲ ̲P̲U̲ (DATBUF)(INF1 )
CU? - C̲O̲N̲F̲I̲G̲ ̲C̲U̲ (DATBUF)(INF1 )
BSMX? - C̲O̲N̲F̲I̲G̲ ̲B̲S̲M̲X̲ (DATBUF)(INF1...INF)
REPORT = FALSE
END CASE
REPORT EQ FALSE? - REPORT = TRUE
ACTIVE ̲PU EXISTING? - SEND ̲PU ̲REPORT(CCBBUF, EMTBUF)
S̲E̲N̲D̲ ̲O̲P̲E̲R̲A̲T̲O̲R̲ ̲R̲E̲P̲O̲R̲T̲(CCBBUF, EMTBUF)
END CONFIG ̲HANDLING
Fig. 4.2.3.4.5.5.b-1
4.2.3.4.5.5.c P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲I̲G̲ ̲P̲U̲
Narrative:
If the report from the CCB drivers
is disastrous (i.e. analog report,
PU disable manual) the action to be
taken is:
- if A̲C̲T̲I̲V̲E̲ ̲P̲U̲ and STANDBY ̲PU; switchover
- if A̲C̲T̲I̲V̲E̲ ̲P̲U̲ and OFFLINE ̲PU; closedown
PU
- if S̲T̲A̲N̲D̲B̲Y̲ ̲P̲U̲; closedown PU
(the underlined PU reported in error).
For all other CCB driver report a
warning is sent to the active PU.
Flowgram:
ref. fig. 4.2.3.4.5.5.c-1
PROCEDURE CONFIG ̲PU(CCB ̲BUF: ANADAT/DIGDAT)(REPORT:
BOOLEAN)
PU ̲NO = DATBUF.CCB ̲ADDRESS
DATBUF.MESCOD EQ ANALOG ̲CHANGE?
CONFIG ̲TABLE.PU ̲N(PU ̲NO) EQ ERROR? - REPORT
= FALSE
INF1 = DISAST, INF3 = ANALOG
MASKBIT = CCB.BUF.INF(2)
MASKBIT AND PU ̲DISMASK EQ TRUE? - INF1 = DISAST
INF3.DIGITAL
MASKBIT AND PU ̲TEMP EQ TRUE? - INF1 = WARNING, INF3
= TEMP
INF2 = PU,
INF4 = PU ̲NO
INF(1) EQ WARNING?
PU ̲NO EQ 1? PU ̲NEXT = 2, SEM = PU2SEM
PU ̲NEXT = 1
SEM = PU1SEM
CONFIG ̲TABLE ̲PU ̲N(PU ̲NO) EQ PU ̲ACTIVE?
CONFIG ̲TABLE.PU ̲N(PU ̲NEXT) EQ STANDBY?
S̲E̲T̲R̲E̲S̲E̲T̲(PU ̲NO) INF2 =
PU
INF1 =
GO ̲SB ̲AC
INF1 = SB ̲PU ̲DOWN S̲E̲T̲S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲
END CONFIG ̲PU
Fig. 4.2.3.4.4.5.c-1
4.2.3.4.5.5.d P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲I̲G̲ ̲C̲U̲
Narrative:
If the active part of the channel
unit is reported erroneous a switchover
takes place.
Otherwise a SB ̲CU ̲DOWN report is sent.
Flowgram.
ref. fig. 4.2.3.4.5.5.d-1
PROCEDURE CONFIG ̲CU (CCB ̲BUF: ANADAT/DIGDAT)
CCBBUF.MEXCOD EQ DIGITAL ̲CHANGE?
CASE(DIGITAL ̲CHANGE OF
TEMP ̲C ̲DIG? - INF2 = TEMP,
INF3 = CU
TEMP ̲DOWN? -
INF1 = WARNING
INF1 = NORMAL
̲AGAIN
MANUAL ̲SWITCH? - INF3 = CU, INF2 =
MANUAL ̲SWITCH
SWITCH ̲AUTO?
- INF1 = NORMAL
̲AGAIN
INF1 = WARNING
END CASE
CCBBUF.CONTROL GT 3? CU ̲N = 2
CU ̲N = 1
SET ̲CU ̲POWER ̲FLAG (CU ̲N)
CONFIGTABLE.PU(CU.N) EQ PU ̲ACTIVE? - INF1 = GO ̲SB
̲AC
INF2 =
CU,INF3
= ANALOG
S̲E̲T̲S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲
CONFIGTABLE.PU(CU.N) EQ PU ̲STANDBY?
CU ̲POWER ̲FLAG(CU ̲N) OK? - INF1 = SB ̲CU ̲UP
INF1 = SB ̲CU ̲DOWN
INF2 = ANALOG
REPORT = FALSE
END CONFIG ̲CU
Fig. 4.2.3.4.5.5.d-1
4.2.3.4.5.5.e P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲I̲G̲ ̲B̲S̲M̲X̲
Narrative
If the BSMX unit SCANS a TDX ̲CONTROLLER
and the error monitored is in the
TDX controller:
- if TDX CONTROLLER ACTIVE switchover
(TDX Bus and PU)
- otherwise report TDX down
If no TDX error is reported or the
unit only contains a BSMX:
- if analog or false report, BSMX
down
- otherwise WARNING REPORT
Flowgram
ref. fig. 4.2.3.4.5.5.e-1
PROCEDURE CONFIG ̲BSMX (CCB ̲BUF: ANADAT/DIGDAT)
REPORT = TRUE
ENTRY = CCBBUF.CCBADDRESS
CONFIG ̲TABLE.BSMX(ENTRY) EQ TDX1 MASK? - TDX ̲N =
1
CONFIG ̲TABLE.BSMX(ENTRY) EQ TDX2 MASK? - TDX ̲N =
2
TDX ̲N = O
INF1 = BSMX ̲DOWN
INF2 = ENTRY
CCBBUF.MESCODE EQ ANALOG? - CONFIGTABLE.BSMX(ENTRY)
EQ NONE ̲BUS?
REPORT = FALSE
INF3 = ANALOG
CONFIG ̲TABLE ̲BSMX(ENTRY)
= NONE ̲BUS
CONFIGTABLE.BSMX(ENTRY) EQ NONE ̲BUS? REPORT = FALSE
CCBBUF.CONTROL AND BSMX ̲ERR.MASK EQ FALSE? - INF3
= DIGITAL
CONFIG
̲TABLE
̲BSMX(ENTRY)
NONE
̲BUS
CCBBUF.CONTROL AND BSMX ̲SWITCHMASK EQ FALSE? - INF1
= WARNING
INF2
=
MANUAL
̲SWITCH
INF3
=
BSMX
INF4
=
ENTRY
REPORT = FALSE
TDX ̲N NE O? - C̲O̲N̲F̲I̲G̲ ̲T̲D̲X̲ (TDX ̲N)
END
Fig. 4.2.3.4.5.5.e-1
4.2.3.4.5.5.f P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲I̲G̲ ̲T̲D̲X̲
Narrative
For powerdown and digital errors action
to be taken are:
- if active TDX bus: switchover
- if non-active TDX bus: non active
TDX down report to the active
PU.
For power up and digital resets
- report non active TDX up
Others report:
- Temp up/down
- switch auto/non auto
Flowgram
ref. fig. 4.2.3.4.5.5.f-1
PROCEDURE CONFIG ̲TDX
CASE CONFIGTABLE TDX (TDX ̲N) OF
ACTIVE ̲TDX2? CASE CCBBUF.CONTROL
OF:
POWER ̲DOWN? - INF1 =
GO ̲SB ̲AC, INF2 = TDX
INF3 = ANALOG,
S̲E̲T̲S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲
DISAST ̲DIGITAL? INF1 =
GO ̲SB ̲AC, INF2 = TDX
INF3 = DIGITAL,
INF4 =
S̲E̲T̲S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲
ACTION = FALSE
END CASE
NON ̲ACTIVE ̲TDX?- CASE CCBBUF ̲CONTROL OF:
POWER DOWN? - INF1
= NON ̲ACTIVE ̲TDX ̲DOWN
INF2 =
ANALOG,
CONFIG
̲TABLE ̲TDX(TDX ̲N)=
ERROR
DISAST ̲DIGITAL? INF1
= NON ̲ACTIVE ̲TDX ̲DOWN
INF2 = DIGITAL
CONFIG ̲TABLE.TDX(TDX
̲N) =
ERROR
ACTION = FALSE
END CASE
ERROR? - CASE CCBBUF.CONTROL OF:
POWER ̲UP?-DIGITAL SWITCH ̲OK?- INF1
=
NON
̲ACTIVE
̲TDX
̲UP
INF2
=
ANALOG,
CONFIG.TABLE.TDX(TDX
̲N)
=
NO
̲ACTIVE
̲TDX
DISAST ̲DIGITAL ̲OK? POWER ̲MASK ̲OK?
-INF1 = NON ̲ACTIVE ̲
TDX
̲UP
INF2 = DIGITAL,
CONFIG.TABLE.TDX
(TDX N) =
NON ̲ACTIVE ̲TDX
ACTION = FALSE
END CASE
END CASE
ACTION = FALSE? ̲ CCBBUF.CONTROL AND BSMX ̲SWITCHMASK
EQ FALSE?
INF1 =
WARNING
INF2
=
MANUAL
̲SWITCH
INF3
=
BSMX
INF4
=
ENTRY
REPORT
=
TRUE
REPORT = FALSE
END CONFIG ̲TDX
Fig. 4.2.3.4.5.5.f-1
4.2.3.4.5.5.g P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲O̲P̲E̲R̲A̲T̲O̲R̲ ̲R̲E̲P̲O̲R̲T̲
Narrative
A report defining the error occurred
is sent to the WDP ̲ROP if no Active
PU exists.
Flowgram
NA
4.2.3.4.5.5.h P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲P̲U̲ ̲R̲E̲P̲O̲R̲T̲
Narrative:
Send an error report to the active
PU.
The error report contains the following
info:
- name of unit in error (PU, TDX,
BSMX)
- the monitored status (digital
or analog)
The information is loaded into an
ASCII buffer taken from the SYSCON
EMPTY queue.
Flowgram
ref. fig. 4.2.3.4.5.5.h-1
PROCEDURE SEND ̲PU ̲REPORT (CCBBUF: ANA ̲DIG ̲CHANGE)
RECPOL (SYSEMT)(REPORT ̲M, CC)
CC EQ NO ̲CY? ANALYSE ̲ERROR(INTERN, SEPU, NO ̲BUF)
EQUIVALENCE (REPORT.M, REG: PU ̲REPORT)
REG. MESCOD = MESSAGE ̲ASCII
REG. LINE ̲NO = COPSY ̲LINE
REG. HEADER = DATA
REG. CMD ̲TYPE = WDP ̲CMD
REG. CMD = CCB ̲REPORT
REG. INF (1) = INF1
REG. INF (2) = INF2
REG. INF (3) = INF3
REG. INF (4) = INF4
REG. INF (5..14) = CCBBUF.INF (1..9)
CCBBUF.MESCOD EQ STATUS ̲ANALOG? SIZE = ANALOG ̲REPORT
̲SIZE
SIZE = DIGITAL ̲REPORT ̲SIZE
REG.BUFHED.BYTE ̲LENGTH = SIZE
PU ̲FL(PU ̲NEXT) EQ O? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL,SYSCON,NO
̲INIT)
PU ̲FL(PU ̲NEXT) = PU ̲FL(PU ̲NEXT) . 1
SEND(REPORT ̲M, SEM)
RECEIV(SYSANS)(REPORT ̲M)
REPORT M.MESCOD EQ MESSAGE ̲NACK?- A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL,SYSCON,
NO ̲PV ̲ACCEPT)
SEND (REPORT ̲M, SYSEMT)
END SEND ̲PU ̲REPORT
Fig. 4.2.3.4.5.5.h-1
4.2.3.4.5.5.i P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲C̲O̲N̲T̲R̲O̲L̲
Narrative:
The control commands are executed
via the CCB driver and an answer is
returned.
Flowgram
ref. fig. 4.2.3.4.5.5.i-1
PROCEDURE SEND ̲CONTROL(DATBUF: CONTROL ̲COMMAND)(ANSWER)
RECPOL(SYSEMT)(EMTMES, CC)
CC EQ NO ̲CY? - ANALYSE ̲ERROR (INTERNAL, SYSCON,
NO ̲BUF)
EQUIVALENCE(EMTMES, HELREG: DIGITAL ̲DATA ̲BUFFER)
HELREG.ADDRESS ̲ANSWER ̲SEMAPHORE = SYSANS
HELREG.DIGDAT.MESCOD = CONTROL ̲DIGITAL ̲WRITE
CASE DATBUF.COMMAND OF
SWITCHOVER? - S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲ ̲P̲U̲ (HELREG)
RESET? R̲E̲S̲E̲T̲ ̲P̲U̲ (HELREG)
MASTER ̲CLEAR? - M̲A̲S̲T̲E̲R̲ ̲C̲L̲E̲A̲R̲ ̲P̲U̲ (HELREG)
PU ̲DISABLE? - D̲I̲S̲A̲B̲L̲E̲ ̲P̲U̲ (HELREG)
SET ̲PU ̲MAINTEN? - P̲U̲ ̲M̲A̲I̲N̲T̲E̲N̲A̲N̲C̲E̲ (HELREG)
LINK ̲PU ̲CU? - PU L̲I̲N̲K̲ ̲C̲U̲ (HELREG)
BSM ̲X-SWITCH? -S̲W̲I̲T̲C̲H̲ ̲B̲S̲M̲X̲ (HELREG)
IO ̲SWITCH? - S̲W̲I̲T̲C̲H̲ ̲C̲U̲ (HELREG)
END CASE
RECEIV(SYSANS)(HELREG)
DATBUF.MESCOD = HELREG.MESCOD
DATBUF.STATUS = HELREG.STATUS
SEND (EMTBUF, SYSEMT)
END SEND CONTROL
Fig. 4.2.3.4.5.5.i-1
4.2.3.4.5.5.j P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲w̲i̲t̲c̲h̲o̲v̲e̲r̲
Narrative
The following commands are sent to
the CCB driver:
- disable and masterclear PU
- reset masterclear
- switch bus in CU
- switch TDX ̲BUS (BSMX modules)
The CCB commands are subject to timeout.
A timeout or CCB NACK result in a
call of the error handling procedure.
A switch report is included in the
go active command.
After each CCB command the configuration
table is updated.
Flowgram
ref. fig. 4.2.3.4.5.5.j-1
PROCEDURE SWITCHOVER ̲PU (HELREG: DIGITAL ̲DATA ̲BUFFER)
"answer returned in
message code.
CONFIG ̲TABLE.PU(1) EQ ACTIVE? - ADDRESS ̲1 =
PU1CCB
ADDRESS ̲1 = PU2CCB ADDRESS
̲2 = PU2CCB
ADDRESS ̲2 = PU1CCB
HELREG. CCBCODE = ADDRESS 1, MASTERCLEAR ̲AND ̲DISABLE
̲PU
SEND (HELREG, CCBSEM)
RECEIV(SYSANS)(HELREG)
HELREG.MESCOD EQ NACK?
RESET ̲ACK
HELREG.CCBCODE = ADDRESS 1, RESET ̲MASTER ̲CLEAR
SEND (HELREG, CCBSEM)
RECEIV (SYSANS)(HELREG)
HELREG.MESCOD EQ NACK?
RESET ̲ACK
HELREG.CCBCODE = ADDRESS 2, ENABLE ̲PU
SEND (HELREG, CCBSEM)
RECEIV(SYSANS)(HELREG)
HELREG.MESCOD EQ NACK?
RESET ̲ACK
ADDRESS 1 EQ PU1CCB? - SET = IO ̲NOT ̲A ̲IO ̲B
SET = IO ̲A ̲IO ̲NOT ̲B
HELREG.CCBCOD = CU ̲ADD, SET
SEND (HELREG, CCBSEM)
END SWITCHOVER ̲PU
Fig. 4.2.3.4.5.5.j-1
4.2.3.4.5.5.k P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲W̲I̲T̲C̲H̲ ̲B̲S̲M̲X̲
Narrative
PARAM1 gives the busassignment.
PARAM2 specifies which of the first
BSMX modules to be controlled PARAM3
specifies which of the next five BSMX
modules to be controlled.
PARAM4 specifies the last BSHX module
to be controlled.
Flowgram
ref. fig. 4.2.3.4.5.5.k-1
PROCEDURE SWITCH ̲BSMX(NELREG: DIGITAL ̲DATA ̲BUFFER)
SET SWITCH CODE(HELREG.PARAMS(1))
COUNT1 = O
LOOP1
COUNT1 = COUNT 1+1
COUNT2 = O
COUNT1 EQ 1? - BITTEST = HELREG.PARAMS(2)
BITTEST = HELREG.PARAMS(3)
LOOP 2
COUNT 2 = COUNT2 + 1
BITTEST(COUNT2) EQ FALSE?
BSMX ̲ADDRESS = (COUNT1) * 7 + COUNT2 +
BSM ̲X ̲ADD ̲OFF
"inserted
in ENTBUF
SEND(EMTBUF, CCBSEM)
RECEIV(SYSANS)(EMTME)
EMTMES.MES.CODE CCB ̲NACK? - ANSWER = NACK
RESET BITTEST(COUNT2)
COUNT2 EQ 7? EXIT
END LOOP 2
COUNT1 EQ 3? EXIT
END LOOP1
END SWITCH ̲BSMX
Fig. 4.2.3.4.5.5.k-1
4.2.3.4.5.5.1 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲W̲I̲T̲C̲H̲ ̲C̲U̲
Narrative:
The CCB command to be sent to via
the CCB driver to the channel unit
is given in param 1.
Flowgram:
NA
4.2.3.4.5.5.m P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲A̲B̲L̲E̲ ̲P̲U̲
Narrative
The PU to be disabled is specified
in DATBUF.PARAM1 (TYPE CONTROL ̲COMMAND).
The CCB address is calculated and
a disable command is sent to the CCB
driver.
Flowgram.
ref. fig. 4.2.3.4.5.5m-1