MATRIXx

cancel
Showing results for 
Search instead for 
Did you mean: 

simexe catalog uptodate

I have come across another interesting feature of the "simexe" process (matrixx 7.16 on Windows 2000).

While implementing a small SBA script I got confused between the results/operation obtained when running pieces of the code (copy-paste) to the xmath command line versus running the MSC.

When running the MSC, the debugger window would open at the point when a "sim" command was used: Error message:
 Number of inputs specified: 2  Number of inputs required: 1  No input history installed.

My MSC runs an SBAdisplay {refresh} just prior to the "sim" and the number of input required (and displayed) is "2" not 1 as per the debugger.

I found that if I added a "pause 1" after my SBA code before running the "sim", all was happy.

It appears that SBA commands may "return" before actually being finished?

I have included 2 MSC (the original and #2 which has the "pause" statements).
I have also included the "log" of each. Note that with the "pause" statement, you get the following prior to the "lin" or "sim" commands:
        1 catalog object loaded.
        Analyzing model
        Library Loaded [1]: U:\tools\StdBlk\Blocks\StdBlk.cat
        SuperBlock Reference Map : (Subsystem, SuperBlock, [LibraryNumber])
           1 Testing
        Analyze complete for SuperBlock Testing.

In the original, all that is displayed is: "simexe catalog uptodate."



Download All
0 Kudos
Message 1 of 6
(8,737 Views)
The missing log file (I was only permitted to include 3 attachments)

0 Kudos
Message 2 of 6
(8,736 Views)
Hi Brian,

I will talk to some developers about this and get back to you here on the forum. Thanks for the attachments.

Richard

Field Sales Engineer, New Jersey
National Instruments
0 Kudos
Message 3 of 6
(8,720 Views)
Hi Brian,

We are not sure if it should be doing this or not, so I will be hearing back from a developer and posting here in the next few days. For now, using a time delay is the only recourse.

Richard

Field Sales Engineer, New Jersey
National Instruments
0 Kudos
Message 4 of 6
(8,693 Views)
Hi Brian,

The Simulator checks for new blocks every second, so that is why you found you had to include a wait of 1 second. The SBA commands do block until they are complete, but that doesn't always coincide with the timestamp update that would trigger the simulator to update. I have discussed this with R&D and they are interested in investigating implementing a different way of doing this in an upcoming release of MATRIXx. For now the only workaround is to use pause 1 as you have already discovered. Thanks for having a keen eye for this.

Richard

Field Sales Engineer, New Jersey
National Instruments
0 Kudos
Message 5 of 6
(8,688 Views)
I wasn't quite accurate in my description, so I will correct it now. The simulator will check the model every time the sim command is called. But the model has a timestamp that is only accurate to 1 second. So if the call sequence of

1)sim
2) some SBA command
3) sim again

Takes less than one second, then the simulator will check the timestamp of the model put in memory during step (1) against the one stored in the builder. Since the timestamp has 1 second resolution, the simulator will erroneously think the model has not changed. Therefore, it won't bother to re-load the model into memory.

Richard

Field Sales Engineer, New Jersey
National Instruments
0 Kudos
Message 6 of 6
(8,681 Views)