Dear List,

I am assuming he is talking about "external references".  External
references are a truly cool and useful feature of HLBL, for those of you
familiar with sequence blocks.  However, there is no way to do a "where
used" or "find" on them.  That should not be considered a shortcoming of
'CAE.

The reason that the external reference cannot be found is that the full path
name (FPN), which is the [COMPOUND]:BLOCK.PARAM need not be hard coded.  An
FPN may consist of string literals only, or it may be constructed at run
time from string literals and references to parameters, local variables and
formal arguments of data type string.  Such an FPN construct bears no
semantically meaning for the HLBL compiler.

It is difficult to determine whether an external reference really will exist
until runtime.  The compiler could look for a line that begins with a ":"
since all external references must begin with a colon, but even that can be
entered as part of the string, so you still don't know.  Here is some sample
code and sample external references that should all be legal, but I'm just
doing these off the top of my head:

VARIABLES
        xtref_string, ,blk_name, parm_nam       :       S6;     (* internally used 
strings *)
        colon, dot                              :       S6;
        i                                       :       I;      (* internall used 
integer *)

USER_LABELS
        FPN_Name        : SN0001;               (* string parameter, settable from 
display or outside
block *)
        INP1            : II0001;               (* integer parameter, settable from 
display or another
block *)

(* code *)
STATEMENTS
:UC01_LEAD:COSINE.SPT := 50; (* hard coded reference, maybe could be found
by where used *)
::SINE.SPT := 75;                     (* hard coded reference, don't need compound if 
:the
block is in the same compound *)

blk_name := "COSINE";
parm_name := ".SPT";
::'blk_name','parm_name' := 60;

blk_name := ":SINE";
parm_name := ".SPT";
:'blk_name','parm_name' := 80;

colon := ":";
dot := ".";
blk_name := "COSINE";
parm_name := "RSP";
'colon','colon','blk_name','dot','parm_name' := 10;

:'FPN_Name' := INP1; (* get a user entered C:B.P and set it equal to a user
set value *)

xtref_string := "UNIT1:FILL_SEQUENCE.RI000";  (* sets first 9 real parmams
to a constant *)
FOR  i := 1 TO 9 DO
        :'xtref_string',i   := 43.7;
DONE;

So, you could write yourself a script to find all of the external references
if you always use hard-coded :C:B.P's in your source code.  You should be
able to do it pretty quickly with awk, grep & cut.  However, if you create
your FPN's by concatenating strings or through the user entering a string
into a sequence block SN00xx parameter you'll never be able to find what all
of the possibilities are.  A simulation engine that could run the block
might be able to find some, but cannot guarantee it, especially because you
can create segments of code that only get executed under special conditions.

I hope this helped.

Tom
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of
[EMAIL PROTECTED]
Sent: Tuesday, August 21, 2001 10:43 AM
To: [EMAIL PROTECTED]
Subject: RE: FoxCAE Enhancements


At 10:12 AM 8/21/01 -0400, Golemme, Stephen wrote:

>Please provide suggestions/recommendations for improvements in FoxCAE.

Stephen,

How about the ability to document gets/sets (one-shot connections) from
sequence blocks? This has always been on our wish list for FoxCAE, and it's
never been realized. We ended up going through gyrations on our own to
create a database of connections between blocks that also include these soft
reads/writes for backdocumentation purpose.

Regards,

Duc

--
Duc M. Do
Dow Corning Corp.
Carrollton Plant
Carrollton, KY, US

_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp


-----------------------------------------------------------------------
This list is neither sponsored nor endorsed by the Foxboro Company. All
postings from this list are the work of list subscribers and no warranty
is made or implied as to the accuracy of any information disseminated
through this medium. By subscribing to this list you agree to hold the
list sponsor(s) blameless for any and all mishaps which might occur due to
your application of information received from this mailing list.

To be removed from this list, send mail to
[EMAIL PROTECTED]
with "unsubscribe foxboro" in the Subject. Or, send any mail to
[EMAIL PROTECTED]


-----------------------------------------------------------------------
This list is neither sponsored nor endorsed by the Foxboro Company. All 
postings from this list are the work of list subscribers and no warranty 
is made or implied as to the accuracy of any information disseminated 
through this medium. By subscribing to this list you agree to hold the 
list sponsor(s) blameless for any and all mishaps which might occur due to 
your application of information received from this mailing list.

To be removed from this list, send mail to 
[EMAIL PROTECTED] 
with "unsubscribe foxboro" in the Subject. Or, send any mail to
[EMAIL PROTECTED]

Reply via email to