100% found this document useful (1 vote)
64 views19 pages

TGP ORPVxWorks Commands

The document outlines the tools available on the LightSpeed H5.x gantry, which operate within the VxWorks OS on TGP and ORP controllers, primarily for troubleshooting subsystem statuses. It includes details on common commands, specific tools for TGP and ORP, and connection methods, emphasizing the real-time nature of the system and the importance of monitoring various parameters. Future updates will address tools for the newer H7.x gantries.

Uploaded by

紫泰
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
64 views19 pages

TGP ORPVxWorks Commands

The document outlines the tools available on the LightSpeed H5.x gantry, which operate within the VxWorks OS on TGP and ORP controllers, primarily for troubleshooting subsystem statuses. It includes details on common commands, specific tools for TGP and ORP, and connection methods, emphasizing the real-time nature of the system and the importance of monitoring various parameters. Future updates will address tools for the newer H7.x gantries.

Uploaded by

紫泰
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

VxWorks tools on H5.

x gantries TGP/ORP
Rev.5 – Updated 14-Jun-05

The present document describes the tools available on the LightSpeed H5.x gantry, that
reside within the VxWorks operating system running on the TGP and ORP controlers.
These tools can be used to poll & report subsystems status (table, collimator,
generator…etc) during troubleshooting phases.

NOTE : the new H7.x (LS32, VCT) use also TGP / ORP controlers that have similar tools.
Some specific utilities exist –specially on the TGP side- to interact with new gantry & table
designs ; these informations will be communicated in a future release.

Table of contents
1. Outline .........................................................................................................1
2. Connection ...................................................................................................2
3. Common tools ...............................................................................................2
-> help ..........................................................................................................3
-> menuShow (on TGP)....................................................................................3
-> menuShow (on ORP) ...................................................................................3
-> version ......................................................................................................4
-> print_cpu_board_revision .............................................................................4
-> reboot .......................................................................................................4
-> shPlatformShow..........................................................................................4
-> ifShow.......................................................................................................5
-> srStat........................................................................................................6
-> subsysShow ...............................................................................................7
-> i ............................................................................................................. 10
4. TGP specific tools......................................................................................... 11
-> tcb_trace_dump........................................................................................ 11
-> tbShow.................................................................................................... 12
-> tiltShow ................................................................................................... 12
-> amcShow................................................................................................. 13
-> amcStatsShow.......................................................................................... 13
-> guifShow ................................................................................................. 14
-> tempShow ............................................................................................... 15
-> uifShow ................................................................................................... 16
5. ORP specific tools ........................................................................................ 17
-> gen_reinit ................................................................................................ 17
-> rotorShow................................................................................................ 18
-> automa_trace_dump ................................................................................. 18
-> gen_trace_dump_to_file ............................................................................ 18
6. Force TGP / ORP to boot from OC disk files. ..................................................... 19

1. Outline

Both TGP & ORP controlers are running VxWorks Operating System to drive the sub-
assemblies they are responsible for. This OS is real-time oriented, and has to control /
drive the devices based on feedback received from them, and based on the code residing
in the firwmare. This OS has an internal clock, counting in ‘ticks’ that are sometimes
displayed in front of reported events; this clock is not synchronized with the system clock,
and restarts from 0 at each reboot.
The OS also features some comand line tools to report / test these communications and
status data.
The aim of this document is to list these tools easily useable by a site FE or a Remote
OnLine Engineer, and give some inputs of what the results are.
Note that both boards have no disk or device to keep any history, therefore all data
returned are those cumulated from the time of last reboot of the board.

I distribute this info that was initially given by CT Engineering, and verified many times on
system. However, some data might be incomplete, inaccurate. Please let me know your
findings, I will update and maintain this document that is stored on our CT QuickPlace
Europe.
top
mailto:[email protected]

2. Connection

The TGP is linked to the OC via a RJ45 100 Mbit Ethernet line. The ORP connection works
the same way, except that it uses the TGP as a gateway to the system, hence, no
communication to the ORP will be possible if the TGP is not running. The link between TGP
& OPR is made through the 3 data comm. lines through the Slip-Ring.

From the OC, basic network communication with both controlers can be checked with :
ping tgp typical response time is < 1 ms
ping orp typical response time is ~ 3 ms

The only way to connect to the TGP / ORP is :


rlogin tgp or
rlogin orp You will just receive a prompt :
->
Network protocols such as ‘telnet’ is not supported by the receiving OS VxWorks. You can
use ‘rsh’ to connect as well, but remote execution of tasks [normally working with rsh] are
not possible.

The ‘->’ prompt is a proof that you are connected, and that VxWorks OS is running on the
controler. There may still have issues with the controlled devices (table, Jedi..) even
missing applications on the boards. See further how to check this.

In both cases, to terminate a connection, use :


logout
Other commands like ‘exit’ or ‘quit’ will not work, and may have unwanted side effects.
It is absolutely safe to open rlogin connections to the TGP or ORP while the system is
running, scanning, etc… Of course, some command will interfer with system activity or
force controlers or devices to reboot ; this needs to be understood and used in an
appropriate way. Generally speaking, tools that only poll or read devices status are safe.
top

3. Common tools

There are some commands that are common to TGP & ORP. They are listed below with
typical results when executed.
{ctuser@bay48}[2] rlogin tgp (same for orp)

-> help
Gives standard VxWorks commands set (I/O, network, memory, etc.)
Most are unused ; some are risky : all the ones dealing with memory control, tasks
control, etc… Avoid !

-> menuShow (on TGP)


General functions for TGP
menuShow - Displays this menu
menuShow "string" - Displays category matching string
srStat - Displays lscom slipring stats

System Watchdog
sys_wdogShow - Displays information about the watchdog status
sys_wdog_disable_reset - variable, set to 514 to disable watchdog refresh timt

table
tbShow - Displays table info
tbClear - clear time stamp values
table_debug_level - Variable controlling debug level
tcb_trace_dump - Dumps the trace log from the tcb
tcb_trace_level bit_code - Sets the trace level of the tcb to the bit_code lel
download_table_binary - Forces the download of the TCB binary from /usr/g/ss_n
tb_version_query - TCB version query (with table_debug_level=1)

value = 8 = 0x8

-> menuShow (on ORP)


General functions for ORP
menuShow - Displays this menu
menuShow "string" - Displays category matching string
srStat - Displays lscom slipring stats

generator
gen_debug_level = debug_bit - Sets the debug message level
gen_trace_dump - Dump the trace of CAN between ORP and JEDI to the display
gen_trace_dump(1) - Dump the trace of CAN between ORP and JEDI (including watchdog
message
gen_trace_dump_to_file - Dump the trace of CAN between ORP and JEDI to
/usr/g/service/log/jedi_can_trace.log
rotorShow - Displays rotor and filament control information
automa_trace_dump - Dump the trace of set of mA during auto mA

value = 4 = 0x4

This gives an uncomplete list of tools available. Some tools described here do not appear
in the menu. You may also discover some on your own… Waiting for CTSE to communicate
a comprehensive list.
The tools highlighted in green are described further in this document.
-> version
VxWorks (for global fw) version 5.4.
Kernel: WIND version 2.5.
Made on Apr 22 2004, 13:50:37.
Boot line:
esmc(0,0)oc:/usr/g/fw/vxWorks.gbl_fw e=192.9.220.2:ffffff00 h=192.9.220.1 u=ctuser pw=4$apps tn=tgp
value = 111 = 0x6f = 'o'
->
This is the VxWorks release, and the boot file location : note it is remotely ‘mounted’ on
the OC disk, via port esmc0.
top
-> print_cpu_board_revision
PartNo: 2389885-0251 (Variation:2 Revision:1281)
value = 49 = 0x31 = '1'

-> print_cpu_board_revision
PartNo: 2349697-03C4 (Variation:3 Revision:4868)
value = 49 = 0x31 = '1'

This can be executed on both TGP or ORP and shows the part number of TGP or ORP
Board. This can be useful to identify which boards are installed in system : TGP or TGPU,
ORP or ORP2. The values contained in the ‘variation’ field represents the changes in part
numbers (e.g. 2389885 and 2389885-2), and identifies the board.
2290254 is ORP, but 2290254-4 has the circuit modification for LAN Watchdog timeout.
2389885 is ORP2. All ORP2 are 2389885-2.
2349697-02 or –03 are TGPU’s.

-> reboot
This will of course FORCE the board to reboot. Note that rebooting the TGP will also reboot
the ORP… and vice-versa. This is equivalent to pushing the [Reset] button of the boards.
Your connection with the TGP /ORP will be lost. You will have to re-establish it after the
board has reboted.
top

-> shPlatformShow

This shows the software versions of the Diags – VxWorks boot – VxWorks kernel &
Application code that are running on the TGP [or ORP]. This can be used to check that a
board runs the latest (or appropriate) revision of firmware. It also shows on last line
wether the Application has been loaded in memory (RAM) from the on-board FLASH
memory –OR- from files pushed from OC via tftp protocol (this can be an alternate way to
boot the boards in case the ‘self-boot’ fails ; see Chapter 6 below).

TGP example :
Board Level Diag
Version : 20030401:1001
CRC Value : 6B94D5E8
VxWorks Bootrom
Version : 20030401:1001
CRC Value : 6E3D9B54
VxWorks Kernel
Version : 20040422:1352
CRC Value : 2BE633A0
From : FLASH
Application
Version : 20040422:1346
CRC Value : 9697483B
From : FLASH [would display OC if forced tftp boot]
value = 0 = 0x0
->

ORP example :

-> shPlatformShow
Board Level Diag
Version : 20030401:1001
CRC Value : 6B94D5E8
VxWorks Bootrom
Version : 20030401:1001
CRC Value : 6E3D9B54
VxWorks Kernel
Version : 20040422:1352
CRC Value : 2BE633A0
From : FLASH
Application
Version : 20040422:1349
CRC Value : 868AE5DE
From : FLASH [would display OC if forced tftp boot]
value = 0 = 0x0
->
top

-> ifShow
esmc (unit number 0):
Flags: (0x63) UP BROADCAST ARP RUNNING
Type: ETHERNET_CSMACD
Internet address: 192.9.220.2
Broadcast address: 192.9.220.255
Netmask 0xffffff00 Subnetmask 0xffffff00
Ethernet address is 00:00:00:02:0f:e0
Metric is 0
Maximum Transfer Unit size is 1500
28236 packets received; 30604 packets sent
0 multicast packets received
0 multicast packets sent
0 input errors; 0 output errors
84 collisions; 0 dropped
lo (unit number 0):
Flags: (0x8069) UP LOOPBACK MULTICAST ARP RUNNING
Type: SOFTWARE_LOOPBACK
Internet address: 127.0.0.1
Netmask 0xff000000 Subnetmask 0xff000000
Metric is 0
Maximum Transfer Unit size is 32768
0 packets received; 0 packets sent
0 multicast packets received
0 multicast packets sent
0 input errors; 0 output errors
0 collisions; 0 dropped
sr (unit number 0):
Flags: (0xe3) UP BROADCAST RUNNING
Type: ETHERNET_CSMACD
Internet address: 192.9.224.200
Broadcast address: 192.9.224.255
Netmask 0xffffff00 Subnetmask 0xffffff00
Ethernet address is 00:00:00:00:00:00
Metric is 0
Maximum Transfer Unit size is 1500
64470 packets received; 64779 packets sent
1 multicast packets received
0 multicast packets sent
0 input errors; 0 output errors
0 collisions; 0 dropped
value = 0 = 0x0

This reports network stats from TGP or ORP viewed on the network interfaces they use :
TGP uses 2 ports : esmc0 to talk to the OC, and sr0 to talk to the ORP over Slip-
Ring.
ORP uses only 1 port : sr0 to talk to the TGP over Slip-Ring.
Both have also a loopback port lo0.
Items of interrest can be input / output errors or collisions (bold).
Note : the esmc port (LAN port TGP <-> Host) always shows some collisions, as well as
the Host eth3 port where it’s connected to. Reason for this is being investigated. Do not
suspect networks issues there, unless the number of collisions is really huge + TGP ping
response times are slow/irregular.
top

-> srStat
*****************************
Slipring Communications Statistics
*****************************
Number of Bytes received (LS) = 0x43ed
Number of Bytes received (MS) = 0x0
Receive Packets = 359
Transmit Packets = 2096
Interrupts = 638
TX FIFO Half Full in srPut() = 743
Driver Resets =0
Driver Inits =1
*****************************
Hardware Statistics:
*****************************
Violations =0
Voting Errors =9
Brush Disconnects (Short) =0
Brush Disconnects (Medium) = 0
Brush Disconnects (Long) =0
*****************************
Firmware Statistics:
*****************************
Check Sum Errors =0
Length Mismatch Error =0
Unexpected words received =0
Length too long for buffer = 0
Sequence ID errors =0
Semaphore Timeouts =0
Transmit FIFO Overrun =0
Receive FIFO Overrun =0
Receive Ring Buffer Overrun = 0
Receive State Machine State = 1
Current SR flag settings = 0x0
value = 0 = 0x0
->

srStat reports stats values seen by the controler for the Slip-Ring TGP <-> ORP link. Data
of higher interest is in bold. Note similar info is reported in the System Browser, under
View Stats -> RCOM-SCOM stats (name did not change unfortunately).
• Violations are illegal data set received through Slip-Ring.
• Disconnects are brushes bouncing on the rings (from few nSec. to few µSec.
periods of times). This becomes really seldom with current carbon brushes design,
but some day in the future might indicate brush or rings wearing.

top

-> subsysShow
The following is the TGP or ORP command to retrieve functions & sub-systems status.
Bold green ones are of high interest.
TGP & ORP should report the same status as they are constantly exchanging this info over
the Slip-Ring communications.
This command can be used at any time (during scanning, etc). Results of course will
change according to the present state of a specific sub-system at the time you process the
query. One has then to look for a device or function that report a status [on / off] in an
unexpected manner ;
e.g.1 : if you know the E-stop has not been pressed, it should not report a status “on”.
e.g.2 : a stuck Patient tilt safety switch (sensor) would appear as always ‘on’.
Etc…

-> subsysShow
Exceptions:
shutdown(0): inactive, timeout: 95000
Registered: scGantryInMail (202), axial_mgr (203), uif_table_tilt (206), uif_control (207), uif_display
(208), guif)
No applications not responding
safe state(1): inactive, timeout: 2000
Registered: scGantryInMail (202), axial_mgr (203), uif_table_tilt (206), uif_control (207), uif_display
(208), guif)
No applications not responding
operator abort(2): inactive, timeout: 1000
Registered: scGantryInMail (202), uif_table_tilt (206)
No applications not responding
scan timeout(3): inactive, timeout: 1000
Registered: scGantryInMail (202)
No applications not responding
abort(4): inactive, timeout: 1000
Registered: scGantryInMail (202), uif_table_tilt (206), stats_mgr (223)
No applications not responding
operator pause(5): inactive, timeout: 1000
Registered: scGantryInMail (202)
No applications not responding
pause(6): inactive, timeout: 1000
Registered: scGantryInMail (202)
No applications not responding
soft(7): inactive, timeout: 0
No applications registered
System states:
Host Communication(0): on, owned by tgp_subsys, timeout: 1000
Registered: uif_table_tilt (206)
No applications not responding
Subsystem Communication(1): on, owned by tgp_lan_watchdog, timeout: 5000
Registered: tgp_subsys (200), tgp_lan_watchdog (201), uif_display (208), tgp_exp_reporter (216)
No applications not responding
X-Ray(2): off, owned by scGantryInMail, timeout: 15000
Registered: fw_mgr (1), uif_table_tilt (206)
No applications not responding
X-Ray Light(3): off, owned by uif_table_tilt, timeout: 1000
Registered: cpb_mgr (205), uif_control (207), uif_display (208), guif_can (209)
No applications not responding
Simulated X-Ray(4): off, owned by scGantryInMail, timeout: 15000
Registered: fw_mgr (1), uif_table_tilt (206)
No applications not responding
Active Scanning(5): off, owned by scGantryInMail, timeout: 15000
Registered: fw_mgr (1), uif_table_tilt (206), table_mgr (218)
No applications not responding
Active Exam(6): off, owned by scGantryInMail, timeout: 0
No applications registered
RCIB Communication(7): on, owned by APPID(100), timeout: 0
No applications registered
GUIF Communication(8): on, owned by guif_can, timeout: 1000
Registered: uif_table_tilt (206), uif_control (207), uif_display (208)
No applications not responding
CPB Communication(9): on, owned by cpb_mgr, timeout: 0
No applications registered
Alignment Light(10): off, owned by uif_table_tilt, timeout: 1000
Registered: uif_display (208)
No applications not responding
Interference(11): off, owned by uif_table_tilt, timeout: 1000
Registered: uif_display (208)
No applications not responding
Cradle moving(12): off, owned by table_mgr, timeout: 1000
Registered: uif_table_tilt (206)
No applications not responding
Elevation moving(13): off, owned by table_mgr, timeout: 1000
Registered: uif_table_tilt (206)
No applications not responding
Tilt moving(14): off, owned by uif_table_tilt, timeout: 1000
Registered: uif_table_tilt (206)
No applications not responding
Cradle unlatch(15): off, owned by table_mgr, timeout: 1000
Registered: uif_table_tilt (206), uif_display (208)
No applications not responding
Home unlatch(16): off, owned by table_mgr, timeout: 0
No applications registered
Resume Scan Button(17): off, owned by scGantryInMail, timeout: 15000
Registered: fw_mgr (1)
No applications not responding
Firmware is ready(18): on, owned by tgp_subsys, timeout: 15000
Registered: fw_mgr (1), uif_table_tilt (206)
No applications not responding
Firmware needs Reset (19): off, timeout: 15000
Registered: fw_mgr (1)
No applications not responding
Rotor is Running (20): off, owned by APPID(100), timeout: 500
Registered: scGantryInMail (202)
No applications not responding
Active Rx (21): off, owned by scGantryInMail, timeout: 1000
Registered: axial_mgr (203), uif_table_tilt (206)
No applications not responding
Axial is Rotating (22): off, timeout: 0
No applications registered
HVDC Switch(23): on, owned by uif_table_tilt, timeout: 1000
Registered: scGantryInMail (202)
No applications not responding
Table Communication (24): on, owned by table_mgr, timeout: 15000
Registered: fw_mgr (1), scGantryInMail (202), uif_table_tilt (206), uif_display (208)
No applications not responding
Table firmware is ready(25): on, owned by table_mgr, timeout: 1000
Registered: uif_table_tilt (206)
No applications not responding
top
TGP is ready(26): on, owned by tgp_subsys, timeout: 5000
Registered: tgp_subsys (200), stats_mgr (223)
No applications not responding
ORP is ready(27): on, owned by APPID(100), timeout: 5000
Registered: tgp_subsys (200), scGantryInMail (202)
No applications not responding
ESTOP is Pressed(28): off, owned by uif_table_tilt, timeout: 1000
Registered: scGantryInMail (202), axial_mgr (203), uif_display (208), table_mgr (218)
No applications not responding
Gantry Cooling is Enabled(29): off, owned by gantryCooling, timeout: 0
No applications registered
HEART Light(30): off, owned by scGantryInMail, timeout: 1000
Registered: uif_display (208)
No applications not responding
LUNG Light(31): off, owned by scGantryInMail, timeout: 1000
Registered: uif_display (208)
No applications not responding
Lazer Align Lights(32): off, owned by uif_table_tilt, timeout: 0
No applications registered
Smart ID Communication(33): on, owned by APPID(100), timeout: 0
No applications registered
Sleep State(34): off, owned by scGantryInMail, timeout: 1000
Registered: uif_control (207), uif_display (208)
No applications not responding
GUIF Lock State(35): off, timeout: 0
No applications registered
Das Communication(36): on, owned by APPID(100), timeout: 15000
Registered: fw_mgr (1)
No applications not responding
Collimator Communication(37): on, owned by APPID(100), timeout: 15000
Registered: fw_mgr (1)
No applications not responding
Run Time Stats(38): off, owned by scGantryInMail, timeout: 1000
Registered: stats_mgr (223)
No applications not responding
HVDC(39): off, owned by scGantryInMail, timeout: 0
No applications registered
Mobile Park(40): off, owned by uif_table_tilt, timeout: 1000
Registered: uif_table_tilt (206)
No applications not responding
Touch Sensor(41): off, owned by uif_table_tilt, timeout: 1000
Registered: uif_display (208)
No applications not responding
Service Switch(42): off, owned by uif_table_tilt, timeout: 1000
Registered: scGantryInMail (202)
No applications not responding
JEDI Communication(43): on, owned by APPID(100), timeout: 15000
Registered: fw_mgr (1)
No applications not responding
Shutdown State(44): off, owned by tgp_subsys, timeout: 0
No applications registered
PET has an active Rx enabled(45): off, timeout: 1000
Registered: uif_table_tilt (206)
No applications not responding
PET mode is active(46): off, owned by scGantryInMail, timeout: 0
No applications registered
Tilt Park(48): off, owned by uif_table_tilt, timeout: 1000
Registered: uif_table_tilt (206)
No applications not responding
Enable Mobile Park(49): off, owned by fw_mgr, timeout: 1000
Registered: uif_table_tilt (206)
No applications not responding
Mobile Park Done(50): off, owned by uif_table_tilt, timeout: 15000
Registered: fw_mgr (1)
No applications not responding
Debug flags: 0x00000000
value = 0 = 0x0
->
top

-> i
The ‘i’ command prints the list of running tasks on controller (TGP example)
NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
---------- ------------ -------- --- ---------- -------- -------- ------- -----
tExcTask _excTask cefbf0c 0 PEND c0a4cb0 cefbe74 30065 0
system_watc_sys_watchdo cb49ce8 1 DELAY c087eec cb49c90 d0003 2
tShell _shell ca03bbc 1 READY c088750 ca0380c 0 0
tRlogind _rlogind ceba4f8 2 PEND c00fc16 ceba140 0 0
tRlogOutTas_rlogOutTask ca012e0 2 READY c00fc16 ca0118c 0 0
tRlogInTask_rlogInTask c9ff424 2 READY c00fa4a c9ff2b0 0 0
tWdbTask c07ee50 ceb86bc 3 PEND c00fc16 ceb854c 0 0
scScnTmrMgr_scScnTmrMgr cb75684 21 PEND c0a4cb0 cb755fc 3d0002 0
scTrigSeqen_scTrigSeqen cb6daec 22 PEND c00fc16 cb6da58 3d0002 0
scExternalG_scExternalG cb65f54 23 PEND c00fc16 cb65ec0 3d0002 0
scScanDataQ_scScanDataQ cb873e8 24 PEND c00fc16 cb87344 3d0002 0
scHvdcMgrLo_scHvdcMgrLo cb5e3bc 25 PEND c00fc16 cb5e324 3d0002 0
tilt_mgr _tilt_mgr cb0ec18 35 PEND c00fc16 cb0e8c8 3d0002 0
guif_can _guif_can_mg cb2d47c 40 READY c00fc16 cb2d120 3d0002 0
guif_can_in_guif_can_in cb1e5ac 41 READY c0a4cb0 cb1e49c 0 0
tNetTask _netTask cec1754 50 READY c08646c cec16e4 0 0
tgpMsgAccep_msg_accepte cea233c 54 PEND c00fc16 cea21a4 3d0003 0
tgpListner _msg_listner ca06ef0 54 PEND c00fc16 ca06d74 0 0
tgp_subsys _subsys_mgr cd36be4 60 PEND c00fc16 cd36884 3d0002 0
tgp_lan_wat_lan_watchdo ce98010 60 PEND c00fc16 ce97cb0 3d0002 0
virtualSeri_virtual_ss_ cb4740c 70 PEND c00fc16 cb472f8 39 0
hc_wdog _hc_wdog cb12b3c 70 PEND c00fc16 cb12ab4 3d0002 0
table_plat__table_plat_ cae082c 70 PEND c00fc16 cae0264 3d0002 0
table_appl__table_appl_ cad5d58 70 READY c00fc16 cad57a8 3d0002 0
hc_exec_tas_hc_exec_tas cb15408 71 PEND c0a4cb0 cb15358 0 0
hc_tx _hc_tx cb17514 72 PEND c0a4cb0 cb1746c 0 0
hc_rx _hc_rx cb19620 73 PEND c00fc16 cb1953c 0 0
cpb_rcv _cpb_rcv ccc7708 80 PEND c0a4cb0 ccc7658 0 0
cpb_xmit _cpb_xmit ccc9fe4 81 PEND c0a4cb0 ccc9f30 0 0
uif_switch _uif_switch_ cb35284 90 READY c0a4cb0 cb351c4 0 0
table_mgr _table_mgr_t caecaec 90 PEND c00fc16 caec79c 3d0002 0
uif_table_t_uif_table_t cbcd488 91 READY c00fc16 cbcd114 3d0002 0
uif_display_uif_display cea7804 95 PEND c00fc16 cea74ac 3d0002 0
uif_control_uif_control cb37b60 95 PEND c00fc16 cb37808 3d0002 0
hc_in_mail _hc_in_mail cb1b72c 95 PEND c0a4cb0 cb1b678 0 0
tPortmapd _portmapd cebc3e0 100 PEND c00fc16 cebc298 16 0
amc_mon _amc_mon_tas cab8c1c 102 READY c00fc16 cab8b6c 3d0002 0
amc_mgr _amc_mgr_tas cac1044 103 PEND c0a4cb0 cac0f68 3d0002 0
amc_stats _amc_stats_t cab6340 104 READY c00fc16 cab6224 3d0004 0
scAVoiceTmr_scAVoiceTmr cba887c 107 PEND c00fc16 cba8810 3d0002 0
scCPBEnable_scCPBEnable cba4ab0 107 PEND c00fc16 cba4a44 3d0002 0
scOffsetStr_scOffsetStr cb8ef80 107 PEND c00fc16 cb8ef14 3d0002 0
scTransitio_scTransitio cb718b8 107 PEND c00fc16 cb7184c 3d0002 0
scStartPbLo_scStartPbLo cb8361c 109 PEND c00fc16 cb83584 3d0002 0
scReRefMgr _scReRefMgr cb7f850 109 PEND c00fc16 cb7f7d0 3d0002 0
scBrLightSt_scBrLightSt cb62188 110 PEND c00fc16 cb620f4 3d0002 0
scAutoVLogi_scAutoVLogi cbac648 111 PEND c00fc16 cbac5b0 3d0002 0
scMinOffset_scMinOffset cb92d4c 112 PEND c00fc16 cb92cdc 3d0002 0
scPrepTmr _scPrepTmr cb8b1b4 113 PEND c00fc16 cb8b144 3d0002 0
scLongDlySe_scLongDlySe cba0ce4 114 PEND c00fc16 cba0c54 3d0002 0
scDrvResume_scDrvResume cb9cf18 114 PEND c00fc16 cb9ceac 3d0002 0
scRxMgr _scRxMgr cbb6814 115 PEND c00fc16 cbb6778 3d0002 0
cpb_mgr _cpb_mgr ccd1a78 120 PEND c00fc16 ccd172c 3d0002 0
cpb_button _cpb_button cccf19c 121 PEND c0a4cb0 cccef98 0 0
cpb_led _cpb_led cccc8c0 122 PEND c0a4cb0 cccc7f0 3d0002 0
axial_mgr _axial_mgr ccdb884 150 PEND c00fc16 ccdb538 3d0002 0
cpb_watchdo_cpb_watchdo ccc4e2c 160 DELAY c087eec ccc4da8 3d0002 22
scGantryInM_scGantryInM cbc09e0 170 PEND c0a4cb0 cbc0880 39 0
scHostInMai_scHostInMai cbcabac 171 PEND c00fc16 cbca858 3d0002 0
scMainsMoni_scMainsMoni cb69d20 172 PEND+T c00fc16 cb69cb4 3d0002 46
tgp_exp_rep_exp_report cd31bf8 200 PEND c0a4cb0 cd31a1c 0 0
tgp_exp_sen_exp_report_ cce7f6c 200 PEND c00fc16 cce7f2c 0 0
Thermal_Mgr_gantryTherm cb52da4 200 READY c087eec cb52a0c 3d0002 0
gantryCooli_gantryCooli cb4e71c 200 PEND c0a4cb0 cb4e600 0 0
stats_mgr _stats_mgr cce0870 210 PEND c00fc16 cce0514 3d0002 0
tLogTask _logTask cef95d0 250 PEND c0a4cb0 cef9538 39 0
value = 0 = 0x0

The only value of this (on both TGP & ORP) is to show that Applications are running. If you
see a much shorter list, some tasks did not start. You can try to reflash the controlers
(Flash Download Tool), or boot them from OC disk, or suspect boards components
(memory…)
top

4. TGP specific tools

-> tcb_trace_dump
value = 0 = 0x0
->
[TCB:0:0] inithdw.c (70) | Initializing Hardware
[TCB:1:0] tascomm.c (134) | Create mtcbCradle_PIPECB status = 0x0
[TCB:2:0] tascomm.c (141) | Create mtcbCradle_PIPECB status = 0x0
[TCB:3:0] tascomm.c (148) | Create mtcbElev_PIPECB status = 0x0
[TCB:4:0] tascomm.c (155) | Create mtcbElev_PIPECB status = 0x0
[TCB:5:0] mtcb_hdw_watchdog_task.c (139) | Now start mtcb_hdw_watchdog_task()
[TCB:6:1] mtcb_exec.c (134) | Waiting for the mtcb manager to finish initialization.
[TCB:7:1] in_mail.c (116) | Waiting for core tasks to start.
[TCB:8:2] mtcb_watchdog.c (113) | Waiting for core tasks to start.
[TCB:9:12] pacsci_actions.c (474) | PACSCI Transmit buffer full
.../...
[TCB:35:341] pacsci_actions.c (474) | PACSCI Transmit buffer full
[TCB:36:473] serv_mon.c (95) | Waiting for MTCB Manager to finish Initialization.
[TCB:37:473] mtcb_exec.c (166) | TCB Mgr Executive Starting.
[TCB:38:732] in_mail.c (168) | mtcb manager ready...
[TCB:39:858] cmd_can_wdog.c (88) | Watchdog start received: period = 60, tmo = 30
[TCB:40:857] mtcb_err_handler.c (182) | **MTCB Except: File: Line 175
[TCB:41:859] (191) | ***> MTCB Has Notified The System Of An Error <***
[TCB:42:860] mtcb_bg.c (101) | Background Task Up and waiting for Mgr to finish initialization.
[TCB:43:860] mtcb_bg.c (123) | MTCB Background Task Starting.
[TCB:44:869] pacsci_actions.c (474) | PACSCI Transmit buffer full
[TCB:45:901] mtcb_watchdog.c (149) | mtcb watchdog ready...
[TCB:46:905] cmd_mode.c (110) | Enter Standby Mode Command Received..
[TCB:47:905] cmd_mode.c (133) | Set Mode to Ready..

This command reports the comm. Between the TGP and the MTCB (Table Bd.).
Above capture shows several TCB re-init required by the TGP. Note that message PACSCI
Transmit buffer full is an error commonly seen, even on working systems.
The MTCB Error comes from a bad serial connection between the MTCB and one of the
table servo-amps (cradle in this case) : the DB9 serial plug was badly connected (loose).
top
-> tbShow
current table_debug_level : 0x0000

/*** Cradle time stamp(tick) [table_debug_level = 0x0002] ***/


UIF -> :0
-> cc_send() : 0
cc_send() -> : 0
TCB(move) -> : 0
TCB(stop) -> : 0

/*** Elev time stamp(tick) [table_debug_level = 0x0002] ***/


UIF -> :0
-> cc_send() : 0
cc_send() -> : 0
TCB(move) -> : 0
TCB(stop) -> : 0

/*** Wdog time stamp(msec) [table_debug_level = 0x0004] ***/


wdog(current): 0
wdog(MAX) : 0
wdog(MIN) : 1000

/*** Watchdog status [table_debug_level = 0x0008] ***/


cradle state : 0
cradle pos : 0
elev state : 0
elev pos :0
tcb_state : 0
offset :0

"tbClear" to clear time stamp values. table_debug_level = 0x0001 for log mode.
tracing functions: tcb_trace_dump, tcb_trace_level bit_code
value = 0 = 0x0

Not sure how useful this is : reports elevation & drive positions.

top

-> tiltShow
value = 32 = 0x20 = ' '
-> 0xceb74e0 (tShell): 0xceb74e0 (tShell): Tilt Show:
Tilt Show:
0xceb74e0 (tShell): 0xceb74e0 (tShell): tilt_moving_fw_state:0
tilt_moving_fw_state:0
0xceb74e0 (tShell): 0xceb74e0 (tShell): current_angle:8939
current_angle:8939
0xceb74e0 (tShell): 0xceb74e0 (tShell): previous_angle:8939
previous_angle:8939
0xceb74e0 (tShell): 0xceb74e0 (tShell): tilt_state:0
tilt_state:0
0xceb74e0 (tShell): 0xceb74e0 (tShell): tilt_display_angle:8869
tilt_display_angle:8869
0xceb74e0 (tShell): 0xceb74e0 (tShell): velocity in mdeg/sec:969
velocity in mdeg/sec:969
0xceb74e0 (tShell): 0xceb74e0 (tShell): motion_str.header.code = 52632
motion_str.header.code = 52632
0xceb74e0 (tShell): 0xceb74e0 (tShell): motion_str.position_mdeg = 0
motion_str.position_mdeg = 0
0xceb74e0 (tShell): 0xceb74e0 (tShell): motion_str.speed_mdeg_per_sec = 0
motion_str.speed_mdeg_per_sec = 0
0xceb74e0 (tShell): 0xceb74e0 (tShell): motion_str.options = 0
motion_str.options = 0

This reports real-time the value & speed of the tilt motion as seen by the TGP from tilt-
pot data reading. Angles & angle-speed are given in 1/1000 of degrees.
Items of interrest are in bold.
top

-> amcShow
*** AMC Show ***
amc_profile.gantry_home_cpulse_position 38787
amc_profile.last_gantry_home_position 5470085
amc_profile.ABdriveCurOutput 0
amc_profile.ABdriveTurqCur 0
amc_profile.hardware_overspeed_msec_per_rev 360
amc_profile.monitor.current_running_velocity_average 665
amc_profile.drive.velocity_rev_per_sec 4003
amc_profile.monitor.current_position 5550620
value = 45 = 0x2d = '-'

This returns the current settings of the AMC servo-amp. Not too useful except it
confirms that TGP can ‘talk’ to the AMC.
Next one is more verbose : reports stats data from the AMC.

Sample values while scanning @ 0.5 sec:

-> amcStatsShow
- total_num_of_rotations: 31
- valid_num_of_info_fields: 2
* index:0 msec/rot:0 numOfRot:0
++ State:0
++ State:1
++ State:2
* index:1 msec/rot:500 numOfRot:31
++ State:0
Samp:7 outCurr:16466 flux:8030 torq:14240 temp:48000 inputBus:595407 OutVolts:136017
outFreq:29140 CmdOutFreq:52001
++ State:1
Samp:9 outCurr:4493 flux:3607 torq:2294 temp:48000 inputBus:609078 OutVolts:202248 outFreq:52592
CmdOutFreq:52001
++ State:2
Samp:5 outCurr:6212 flux:1842 torq:5969 temp:48000 inputBus:609904 OutVolts:11971
outFreq:858990459 CmdOutFreq:6499
value = 116 = 0x74 = 't'
-> amcShow
*** AMC Show ***
amc_profile.gantry_home_cpulse_position 45200
amc_profile.last_gantry_home_position 4518037
amc_profile.ABdriveCurOutput 0
amc_profile.ABdriveTurqCur 0
amc_profile.hardware_overspeed_msec_per_rev 360
amc_profile.monitor.current_running_velocity_average 5324
amc_profile.drive.velocity_rev_per_sec 500
amc_profile.monitor.current_position 4613222
value = 45 = 0x2d = '-'
top
Sample values while scanning @ 4 sec:

-> amcStatsShow
- total_num_of_rotations: 8
- valid_num_of_info_fields: 2
* index:0 msec/rot:0 numOfRot:0
++ State:0
++ State:1
++ State:2
* index:1 msec/rot:4000 numOfRot:8
++ State:0
Samp:1 outCurr:6930 flux:5002 torq:4588 temp:46000 inputBus:608691 OutVolts:38745
outFreq:7566 CmdOutFreq:6499
++ State:1
Samp:24 outCurr:3422 flux:3325 torq:620 temp:46000 inputBus:613899 OutVolts:27977 outFreq:6861
CmdOutFreq:6499
++ State:2
Samp:2 outCurr:3297 flux:2200 torq:522 temp:46000 inputBus:613520 OutVolts:20945 outFreq:923
CmdOutFreq:6499
value = 109 = 0x6d = 'm'
-> amcShow
*** AMC Show ***
amc_profile.gantry_home_cpulse_position 38787
amc_profile.last_gantry_home_position 5470085
amc_profile.ABdriveCurOutput 0
amc_profile.ABdriveTurqCur 0
amc_profile.hardware_overspeed_msec_per_rev 360
amc_profile.monitor.current_running_velocity_average 665
amc_profile.drive.velocity_rev_per_sec 4003
amc_profile.monitor.current_position 5550620
value = 45 = 0x2d = '-'

This gives real-time Axial servo-amp (Allan Bradley) data like currents, torque,
temperature, and also input bus voltage & output voltage to the motor (in bold).

top

-> guifShow
[0]: ID = 1, P/N = 2256730, S/N = 7389, STATE = Alive
Sent packets = 762191, Received packets = 660495, Resets = 0
Duplicate button packets = 0
[1]: ID = 2, P/N = 2330703, S/N = 14522, STATE = Alive
Sent packets = 354600, Received packets = 3607419, Resets = 0
Duplicate button packets = 3252910
[2]: ID = 3, P/N = 2330695, S/N = 11972, STATE = Alive
Sent packets = 354598, Received packets = 3608304, Resets = 0
Duplicate button packets = 3253709
[3]: ID = 4, P/N = 2330695, S/N = 14, STATE = Alive
Sent packets = 354598, Received packets = 3609269, Resets = 0
Duplicate button packets = 3254674
[4]: ID = 5, P/N = 0, S/N = 0, STATE = Not Alive
Sent packets = 0, Received packets = 0, Resets = 0
Duplicate button packets = 0
[5]: ID = 6, P/N = 0, S/N = 0, STATE = Not Alive
Sent packets = 0, Received packets = 0, Resets = 0
Duplicate button packets = 0
Button owner: 206
Debug flags: 0x00000000
value = 0 = 0x0
->
These are the Gantry Display & Panels reports shown as being alive or not.
Device [0] ID=1 is always the display.
Order (ID 2, 3...) for Ctrl Panels is changing at each boot as it depends how 'fast' each
device answers. Track by Serial Numbers (S/N) that are reported by the boards to know
which is which.

Real-time info, i.e. unplug one device should now report as Not Alive if you retype the
command.
In the case above, 1 Ctrl Panel is not responding (red bold)
Device 5 (orange bold) is an 'extra' in case a 5th panel is connected (at a Manufacturing
console e.g.). It may be in use if someone has disconnected/reconnected Ctrl Panels, as
device detection order can change from one boot to next.
On a customer site, this 5th one will much likely report as Not Alive.

top

-> tempShow
All Temperature Readings are in Celsius
Cooling State is OFF
Normal Operating Mode, DAS - OK, Gantry - OK
Fans Currently Off
---------------- Detector Temps -------------------
Current Left Temp - 35.97
Current Center Temp - 36.14
Current Right Temp - 36.27
Average Left Temp - 10.18
Min Left Temp - 0.00
Max Left Temp - 36.33
Average Center Temp - 10.15
Min Center Temp - 0.00
Max Center Temp - 36.20
Average Right Temp - 10.16
Min Right Temp - 0.00
Max Right Temp - 36.30
---------------- Gantry Temps -------------------
Current Temp - 26.90
Average Temperature - 24.75
Max Temperature - 28.20
Min Temperature - 24.62
Fan Off State:
Average Temperature - 26.85
Max Temperature - 27.41
Min Temperature - 26.85
Fan Low State:
Average Temperature - 26.87
Max Temperature - 28.11
Min Temperature - 26.82
Fan High State:
Average Temperature - 0.00
Max Temperature - 0.00
Min Temperature - 0.00
value = 24 = 0x18
->
Not much to explain : this reports temperatures as sensed by the TGP/ORP. Note the
gantry Temp’s are read directly by the TGP ; Detector Temp’s are read via the DHCB ->
DCB -> ORP -> TGP.
top

-> uifShow
Orientation: Feet first
Elevation absolute: 589011
Elevation up limit: 1050825
Elevation down limit: 575825
Elevation tolerance: 200
Elevation full: 478814
Elevation display: 479000
Elevation interference up limit: 1050825
Elevation interference down limit: 575825
Elevation up limit full: 17000
Elevation up limit display: 17000
Elevation down limit full: 492000
Elevation down limit display: 492000
Elevation Rx position: 1067825
Elevation state: Idle
Elevation current touch sensor state: 0
Elevation past touch sensor state: 0
Elevation touch sensor press position: 0
Tilt absolute: -213
Tilt forward limit: 30000
Tilt back limit: -30000
Tilt tolerance: 250
Tilt full: -213
Tilt display: 0
Tilt Rx position: 0
Tilt state: Idle
Remote Tilt Button State: 0
Remote Tilt Hardline State: 0
Remote Tilt Enabled: 1
ISO center: (730000, 1015825)
ISO center vertical offset: 17000
ISO Adjustment center vertical offset: 52000
ISO center to table maximum vertical distance: 210000
Absolute value of table down limit: 857825
Table points: (-2719863, -418814) (-719863, -418814) (-369863, -418814) (-369863, -519214) (-2719863,
-519214)
Gantry btm points: (-361172, -747327) (-385357, -704647) (-386732, -671848) (-368093, -615305) (-253302,
-445839)
(-113014, -289790) (-89250, -279546) (73997, -280196) (129343, -285578) (229491, -310076) (373240, -
377807) (609302, -539509)
Table/gantry pinch distance: 25400
Top of bottom of gantry: -279546
X position of top of bottom of gantry: -89250
Front of bottom of gantry: -386732
Top of table: -418814
Bottom of table: -519214
Front of table: -369863
Interference sides: 0x0000
Vertical distance between table and gantry: -214268
Cradle absolute: 0
Cradle offset: 10137
Cradle in limit from table: 1703000
Cradle in limit: 1703000
Cradle small footprint max: 0
Cradle out limit: 0
Cradle max accel distance: 43100
Cradle max accel time msec: 1340
Cradle tolerance: 250
Cradle full: -811947
Cradle display: -812000
Cradle interference in limit: 1703000
Cradle interference out limit: 0
Cradle in limit full: 203344
Cradle in limit display: 203500
Cradle non-moving in limit full: 246444
Cradle non-moving in limit display: 246500
Cradle out limit full: -1413456
Cradle out limit display: -1413500
Cradle non-moving out limit full: -1456556
Cradle non-moving out limit display:-1456500
Cradle state: Idle
Current Rx: sequence number: 976000
cradle start: -274020 um
cradle end: -801400 um
cradle speed: 37500 um/sec
gate to first view: 86 msec
table/tilt options: 0
cradle options: 1
elevation position: 0 um
tilt position: 0 mdeg
abs start position: 1193736
sync position: 1185761
abs end position: 642956
Landmark: invalid
uifActiveRx: 0
sent Cradle Ready: 1
sent Elev Ready: 1
sent Tilt Ready: 0
Change flags: 0x0000000F
Debug flags: 0x00000000
value = 0 = 0x0
->

This gives lots of real-time cradle/elevation position elements, as well as Characterizations


values.
All distances are in µmeters, divide by 1000 to get mm.
Can be used to watch e.g. actual Cradle absolute position in Z and adjust the cradle
latch (that must engage between 0.75 and 2mm from home position ; thanks Dawten
Kuhn for this hint).
top

5. ORP specific tools

-> gen_reinit
value = 0 = 0x0
-> 0xcaca504 (gen_exec): 0xcaca504 (gen_exec): get_SmartID_tube_ID(): Soliciting tube ID
get_SmartID_tube_ID(): Soliciting tube ID
0xcba9e6c (sid_mgr): 0xcba9e6c (sid_mgr): Received msg from appID: 102
Received msg from appID: 102
0xcba9e6c (sid_mgr): 0xcba9e6c (sid_mgr): getRevision succeeded [rev: 0x0005]
getRevision succeeded [rev: 0x0005]
0xcba9e6c (sid_mgr): 0xcba9e6c (sid_mgr): Subsystem state switched to ON
Subsystem state switched to ON
0xcba9e6c (sid_mgr): 0xcba9e6c (sid_mgr): Entry matching ID 1 and Ver 1: 1
Entry matching ID 1 and Ver 1: 1
-> 0xcba9e6c (sid_mgr): 0xcba9e6c (sid_mgr): Checksum comparison; calculated: 0x000002A0, from DB:
0x000002A0
Checksum comparison; calculated: 0x000002A0, from DB: 0x000002A0
0xcba9e6c (sid_mgr): 0xcba9e6c (sid_mgr): TubeID status: 0
TubeID status: 0
0xcba9e6c (sid_mgr): 0xcba9e6c (sid_mgr): ID: 'M' 'X' '_' '2'
ID: 'M' 'X' '_' '2'
0xcba9e6c (sid_mgr): 0xcba9e6c (sid_mgr): '4' '0' 'M' 'C'
'4' '0' 'M' 'C'
0xcba9e6c (sid_mgr): 0xcba9e6c (sid_mgr): 'T' '' '' ''
'T' '' '' ''
0xcaca504 (gen_exec): 0xcaca504 (gen_exec): Received SmartID tube ID -- status: 0, ver_state: 0
Received SmartID tube ID -- status: 0, ver_state: 0

->
This is a very quick command to reset the Jedi kV Ctrl PPC board. Of course, it interfers
with generator usage…
Note that in case the SmartID Bd. Is present and ‘alive’, it is read and a report of tube
type is posted (see above how is coded the Hercules tube MX240MCT).
Running this command on a Jedi/Tube having NO SmartID Bd. will report only a few lines
stating that it’s using ‘wildcard’ for tube ID.

top

-> rotorShow
*** rotorShow ***
rotor_state : 0
current_state : 1
current_time : 85435
scan_acq_mode : 0
rotor_hold : 85435
remaining_exposure_delay_msec : 0
rotor_idle_timer_active : 0
rotor_restore_timer_active : 0
fil_idle_timer_active : 0
fil_restore_timer_active : 0
last_acq_cmd : 0
last_rotor_accel_time_msec : 0
last_rotor_decel_time_msec : 0
value = 35 = 0x23 = '#'
->
To be updated w/ data taken during various phases of rotor control.

-> automa_trace_dump
*** automa_trace_dump ***
: Prep mA is 0 mA
0ms : Receive exposure enable
0ms : Receive starting x-ray angle
0ms : Exposure ON
0ms : Set 0 mA
0ms : Exposure OFF
value = 24 = 0x18

To be updated w/ data taken during AutomA scan.

-> gen_trace_dump_to_file
This will likely not produce much output, but can be used to dump the CAN comm’s
between the ORP and Jedi which goes to an error log :
/usr/g/service/log/jedi_can_trace.log
This file contains the Hex codes of the CAN comm. Needs support of CT Engineering to
analyse it.
top

6. Force TGP / ORP to boot from OC disk files.


This describes a way to force the controlers to boot…
• NOT from the on-board Flash memory (which is usually re-flashed by the Flash
Download Tool [FDT] upon release update)
• BUT from the OC boot files that reside in /usr/g/fw
To force this process, just go to /usr/g/fw directory and create 2 files (using touch
command) ; then connect to TGP and request a reboot. This will also force the ORP to
reboot.
{ctuser@ct01} [1] cd /usr/g/fw
{ctuser@ct01} [2] touch tgpFtp orpFtp
{ctuser@ct01} [3] rlogin tgp
-> reboot

TGP/ORP download & boot process.


• TGP/ORP Flash memory are initialized by FDT.
OC Console • Normal Boot is : copy Flash RAM (if CRC OK)
• Alternate Boot is : copy OC Files RAM (tftp boot)
Boot
files

Gantry LAN
Flash Download process

CT Remote Training – 2005 – PhG - ServOps


Flash Flash
[CRC] [CRC]
Slip/Ring
NB
NB

RAM RAM

TGP ORP
Alternate Boot method (manual)

GE Healthcare
top

You might also like