MCH-sweden.gif MCH Konsulting Sweden


Welcome
Contact
About MCH
HAZ1508
Consultancy Services


ABACUS4


eng Manual

eng is the text based Engineering tool used to program and document block parameters in ABACUS4. Because it is a text based tool it can be accessed via the simplest of terminal access programs (telnet / rlogin / ssh etc.) without any graphic requirements.

Starting eng

Log in as user abacus. Enter the command eng followed by enter.
$ eng

Please enter your name > frank
frank
Welcome to VAX ABACUS engineers mode
b100> 
Your name needs to be in the file aba_eng.users otherwise you will not be allowed to run eng.

Leaving eng

Use either the exit command, or <control>D.

Command syntax

Commands are of the form of a nmeumonic followed (in some cases) by a value. For example b1234 where b=nmeumonic and 1234 is the value.

Commands may be separated by , or ; or a new line; So it is possible to enter b1234,p in order to print block 1234.

Each block has a number of parameters (for example am, sn etc.). To show one of these just enter the two letter nmeumonic. To change one enter the two letter nmeumonic followed by the new value, i.e. ama or sn3.

Before one may change any block parameter one must be connected to the tg of that block. The easiest way of connecting is to use the con command.

Basic commands

Here are the most commonly used commands used in eng.

b - select block

Select a block. Each block has a unique block number by which it is known. It is with this number that access to a particular block is obtained.

The currently selected block is shown in the command prompt, so you should always know which block you have selected.

example
b100> b5001
Block   5001  () type control
b5001> 

p - print the block

Enter the command p to print the current contents of the block currently selected.
example:
b5001>  p

Block   5001  () type control
nn.b.name                                
de.descr
nm.name                            
tg.tag       spare sn.scan     3(1.0 sec) ra.rslta      530.000 
am.au/mn    a  vn.vltn     v  ss.sshot    r  
en.A Entpr          0 dd.D Entpr          0 
ci.cntr.in  0  oi.oper.in  0  
eq.eq/nq    n  
aa.algra            1 hl.hilim        0.000 ll.lolim        0.000 
is.ispnt            0(     0.000 m-rn) sp.spnt         0.000 
ia.inpta            5(    53.000 m-rn) in.incrm        0.000 
ab.algrb            1 er.error        0.000 
k1.k1         -10.000 k2.k2           0.000 
ca.casca      10008 so(    530.000 a+rn) 
cb.cascb          0 sp(      0.000 m-rn) 

> - select next block

This selects the block with the block number one greater than the currently selected block.
b5001> >
b5002> 

< - select previous block

This selects the block with the block number one less than the currently selected block.
b5002> <
b5001> 

xb - select last block

Selects the last block. This is used in the fp command, for example.

Multiple block facilities

Some facilities allow the inspection of a range of blocks.

fp - print range of blocks

This command prints the contents of all the blocks starting at the selected block (b) ending at the last block (xb).
b5001> b901
Block    901  () type scratchpad
b901> xb905
Xblock   905  type scratchpad
b901> fp

Block    901  () type scratchpad
nn.b.name                                
de.descr
nm.name                            
tg.tag       spare sn.scan     0(0.0 sec) ra.rslta        0.000 
am.au/mn    m  vn.vltn     n  ss.sshot    r  
en.A Entpr          0 dd.D Entpr          0 

Block    902  () type scratchpad
nn.b.name                                
de.descr
nm.name                            
tg.tag       spare sn.scan     0(0.0 sec) ra.rslta        0.000 
am.au/mn    m  vn.vltn     n  ss.sshot    r  
en.A Entpr          0 dd.D Entpr          0 

Block  ...............

Block    905  () type scratchpad
nn.b.name                                
de.descr
nm.name                            
tg.tag       spare sn.scan     0(0.0 sec) ra.rslta        0.000 
am.au/mn    m  vn.vltn     n  ss.sshot    r  
en.A Entpr          0 dd.D Entpr          0 
b901> 

Tabbular format printing

It is often desirable to be able to produce a list of certain parameters from a range of block. The may be done in the following way using the '.' (dot) format:

b101> b101,xb120,.sn.nm
Block    101  (LI13.MV.002) type pibus ai
Xblock   120  type pibus ai
b  101;sn  3(1.0 sec);nmICP1 7017 50 0 06132944 
b  102;sn  3(1.0 sec);nmICP1 7017 50 1 06132944 
b  103;sn  3(1.0 sec);nmICP1 7017 50 2 06132944 
b  104;sn  3(1.0 sec);nmICP1 7017 50 3 06132944 
b  105;sn  3(1.0 sec);nmICP1 7017 50 4 06132944 
b  106;sn  3(1.0 sec);nmICP1 7017 50 5 06132944 
b  107;sn  3(1.0 sec);nmICP1 7017 50 6 06132944 
b  108;sn  3(1.0 sec);nmICP1 7017 50 7 06132944 
b  109;sn  3(1.0 sec);nmICP1 7017 51 0 06132944 
b  110;sn  3(1.0 sec);nmICP1 7017 51 1 06132944 
b  111;sn  3(1.0 sec);nmICP1 7017 51 2 06132944 
b  112;sn  3(1.0 sec);nmICP1 7017 51 3 06132944 
b  113;sn  3(1.0 sec);nmICP1 7017 51 4 06132944 
b  114;sn  3(1.0 sec);nmICP1 7017 51 5 06132944 
b  115;sn  3(1.0 sec);nmICP1 7017 51 6 06132944 
b  116;sn  3(1.0 sec);nmICP1 7017 51 7 06132944 
b  117;sn  3(1.0 sec);nmICP1 7017 52 0 error    
b  118;sn  3(1.0 sec);nmICP1 7017 52 1 error    
b  119;sn  3(1.0 sec);nmICP1 7017 52 2 error    
b  120;sn  3(1.0 sec);nmICP1 7017 52 3 error    

The format here is .sn which causes the sn parameters for each block in the range to be listed. Note that the format of the list is exactly as would be required to enter the parameters back into the blocks. With the use of an editor this can be a very powerful tool for programming many blocks at a time. The values within parenthesis '(' and ')' would be ignored as comments on input.

linep - parameter per line formated block print

This is more useful to other programs (engdraw for example).

example:
b101> b101,xb102,linep
Block    101  (LI13.MV.002) type pibus ai
Xblock   102  type pibus ai
b101,nnLI13.MV.002                   
b101,deJUSTTESTING
b101,nmICP1 7017 50 0 06134445 
b101,tg   spare
b101,sn  3(1.0 sec)
b101,ra  -6251.562
b101,am  a 
b101,vn  n 
b101,ss  r 
b101,en          0
b101,dd          0
b101,ci  0 
b101,oi  0 
b101,aa         17
b101,rn          0
b101,ds          0
b101,rw     -0.001
b101,sp  25000.000
b101,ze      0.000
b102,nnLI14.MV.                      
b102,de
b102,nmICP1 7017 50 1 06134445 
b102,tg   spare
b102,sn  3(1.0 sec)
b102,ra  -6187.500
b102,am  a 
b102,vn  n 
b102,ss  r 
b102,en          0
b102,dd          0
b102,ci  0 
b102,oi  0 
b102,aa         17
b102,rn          0
b102,ds          0
b102,rw      0.000
b102,sp  24750.000
b102,ze      0.000
b101> 

Index generation

It can be very useful to create an index of those blocks in use. There are two facitlies in eng for this.

index

With b and xb set the range to be indexed, then enter index. This will cause the file /home/abacus/bindex.lst to be overwritten with the current index for the specified range of blocks. It look something like this:

Block allocation ABACUS4 node bip1co     co  Thu May 13 12:34:11 2004

cn 5601 .           cn 5651 .           cn 5701 .           cn 5751 .           
cn 5602 .           cn 5652 .           cn 5702 .           cn 5752 .           
cn 5603 .           cn 5653 .           cn 5703 .           cn 5753 .           
cn 5604 .           cn 5654 .           cn 5704 .           cn 5754 .           
cn 5605 .           cn 5655 .           cn 5705 .           cn 5755 .           
.........
sp 7848 .           sp 7898 .              7948 .              7998 .           
sp 7849 .           sp 7899 .              7949 .              7999 .           
sp 7850 .           sp 7900 .              7950 .           ac 8000 g           

Block allocation ABACUS4 node bip1co     co  Thu May 13 12:34:11 2004

ac 8001 bsap        ac 8051 bsap        ac 8101 bsap        ac 8151 bsap        
ac 8002 bsap        ac 8052 bsap        ac 8102 bsap        ac 8152 bsap        
ac 8003 bsap        ac 8053 bsap        ac 8103 bsap        ac 8153 bsap        
.........

The text printed after the block number is the tg of the block (or '.' if tg=spare). The two letters before the block number indicate the type of block.

map

With b and xb set the range to be mapped, then enter map. This will cause the file /home/abacus/block.map to be overwritten with the current map for the specified range of blocks. It look something like this:

.........
 5551 : .......... .......... .......... .......... ..........  :  5600
 5601 : ?......... .......... .......... .......... ..........  :  5650
 5651 : .......... .......... .......... .......... ..........  :  5700
 5701 : ?......... .......... .......... .......... ..........  :  5750
 5751 : .......... .......... .......... .......... ..........  :  5800
 5801 : .......... .......... .......... .......... xxxxxx...x  :  5850
 5851 : xx........ .......... .......... xxxxxxxxxx xxxxxxxxxx  :  5900
 5901 : xxxxxxxxxx xxxxxxxxxx xxxxxx.... xxxxxxxxxx ..........  :  5950
.........

Each line represents 50 blocks starting at the block number printed on the left and ending in the block number printed on the right.

.=spare, x=nonspare tag, ?=spare tag but ama, vnv, or ra!=0.

Advanced topics

long & short format

The commands long and short tell eng which or two formats to print blocks in. The default in eng is long, so if you prefer not to see the full names of the parameters then use short. short format printed blocks are in a format suitable for entering into eng, this can be useful combined with X windows copy/paste facilities for duplicating block entries.

b100> p

Block    100  () type scratchpad
nn.b.name                                
de.descr
nm.name                            
tg.tag        bsap sn.scan     3(1.0 sec) ra.rslta        0.000 
am.au/mn    m  vn.vltn     n  ss.sshot    r  
en.A Entpr          0 dd.D Entpr          0 
b100> short,p

B100 ()
nn                              
de                                                                               
nm                        
tg    bsap;sn  3(1.0 sec);ra      0.000
am  m ;vn  n ;ss  r 
en          0;dd          0
b100> 

The format will stay in long or short until you change it again, or leave eng. eng always starts in long format.

Logging

Two log files are updated by eng.

  • aba_eng.log
  • eng.jou
aba_eng.log

This file records every time eng is started, by whom, and when finished. Rejected attempts are also logged here.

Tue May  4 13:23:37 2004 Engineers mode started by frank
Tue May  4 13:24:01 2004 Engineers mode session ended

Thu May  6 10:53:32 2004 Engineers mode started by clive
Thu May  6 10:53:36 2004 Engineers mode session ended
Thu May  6 10:53:40 2004 User rejected 'andy'

Thu May  6 10:54:18 2004 Engineers mode started by clive
Thu May  6 13:47:34 2004 Engineers mode session ended
eng.jou

This file records every entry made in eng including the name entries.

(eng:Thu May  6 10:54:18 2004
)
clive
b7102
p

The eng2 program

The eng2 program works exactly as eng, except that commands are entered on the command line, no user name is required and no logging is carried out. This is suitable for embedding in external scripts or using as is.

example
abacus@bipco2:~$ eng2 b7101,p
Block   7101  () type p.i.d.

B7101 ()
nn                              
de
nm                        
tg   LIC17;sn  3(1.0 sec);ra      0.000
am  a ;vn  v ;ss  r 
en          0;dd          0
ci  0 ;oi  0 
is      10140(BIP1:LIC17.SP.     0.000 m-rv);sp      0.000;se  n 
ia        107(LIC17.MV.   -25.006 a+rn)
ir       2701(LIC17.AMR     1.000 a-rv)
ip          0(     0.000 m-rn)
kp      1.000;ti     10.000;td      0.000
sh      0.000;sl      0.000
mh      0.000;ml      0.000
db    164.621
ap          0;ad          0;ai          0
ar          0;sr      0.000
ag          0;gf      0.000
op       6301(LIC17.OP.     0.000 a-rn);an      0.000

Note that the printout is by default in the short format. If you want the full format use the long command:

abacus@bipco2:~$ eng2 long,b7101,p
Block   7101  () type p.i.d.

Block   7101  () type p.i.d.
nn.b.name                                
de.descr
nm.name                            
tg.tag       LIC17 sn.scan     3(1.0 sec) ra.rslta        0.000 
am.au/mn    a  vn.vltn     v  ss.sshot    r  
en.A Entpr          0 dd.D Entpr          0 
ci.cntr.in  0  oi.oper.in  0  
is.ispnt        10140(BIP1:LIC17.SP.     0.000 m-rv) sp.setpnt       0.000 se.sp.eql   n
ia.inputa         107(LIC17.MV.   -25.000 a+rv) 
ir.irun          2701(LIC17.AMR     1.000 a-rv) 
ip.iprocs           0(     0.000 m-rn) 
kp.k.prop       1.000 ti.t.int       10.000 td.t.driv       0.000 
sh.sp hl        0.000 sl.sp ll        0.000 
mh.mv hl        0.000 ml.mv ll        0.000 
db.d.band     166.254 
ap.al.prop          0 ad.al.driv          0 ai.al.int           0 
ar.al.ramp          0 sr.sp.ramp      0.000 
ag.al.good          0 gf.gfactor      0.000 
op.output        6301(LIC17.OP.     0.000 a-rv) an.answer       0.000 
abacus@bipco2:~$ 


Page updated 2012-04-19 14:00:09 by Frank McNamara (public_keys) abacus_pb.gif .
A member of the MCH-Systems Group