Subsections
Scilab
Others
This block can realize any type of Scicos block. The function of the
block is defined interactively using dialogue boxes and in Scilab
language. During simulation, these instructions are interpreted by
Scilab; the simulation of diagrams that include these types of blocks
is slower. For more information see Scicos reference manual.
Set scifunc_block parameters |
|
input ports sizes |
1 |
output port sizes |
1 |
input event ports sizes |
[] |
output events ports sizes |
[] |
initial continuous state |
[] |
initial discrete state |
[] |
System parameters vector |
[] |
initial firing vector (0 for no firing) |
[] |
is block always active (0:no, 1:yes) |
0 |
- input ports sizes: a scalar. Number of regular input ports
- output port sizes: a scalar. Number of regular output ports
- input event ports sizes: a scalar. Number of input event ports
- output events ports sizes: a scalar. Number of output event ports
- initial continuous state:a column vector.
- initial discrete state: a column vector.
- System parameters vector:a string: c or d (CBB or DBB, other types are not supported).
- initial firing vector :vector. Size of this vector corresponds
to the number of event outputs. The value of the i-th entry
specifies the time of the preprogrammed event firing on the i-th
output event port. If less than zero, no event is preprogrammed.
- is block always active :other dialogues are opened
consecutively where used may input Scilab code associated with the
computations needed (block initialization, outputs, continuous and
discrete state, output events date, block ending)
- always active: no
- direct-feedthrough: yes
- zero-crossing: no
- mode: no
- number/sizes of inputs: 1 / 1
- number/sizes of outputs: 1 / 1
- number/sizes of activation inputs: 0 /
- number/sizes of activation outputs: 0 /
- continuous-time state: no
- discrete-time state: no
- name of computational function: scifunc
scilab/macros/scicos_blocks/misc/scifunc_block.sci
subroutine scifunc(mlhs,mrhs)
c execute scilab function with mrhs input args and mlhs output
c variables
c input args are supposed to be stored in the top of the stack
c at positions top-mrhs+1:top
c function adress is given by the integer ptr in the common /scsptr/
c
c Copyright INRIA
include "../stack.h"
integer ptr
integer mlhs,mrhs
integer iadr
logical allowptr
C
common /scsptr/ ptr
c
iadr(l) = l + l - 1
c
C macro execution
C
pt = pt + 1
if (pt .gt. psiz) then
call error(26)
goto 9999
endif
ids(1,pt) = lhs
ids(2,pt) = rhs
rstk(pt) = 1001
lhs = mlhs
rhs = mrhs
niv = niv + 1
fun = 0
fin = ptr
C
icall = 5
krec = -1
include "../callinter.h"
200 lhs = ids(1,pt)
rhs = ids(2,pt)
pt = pt - 1
niv = niv - 1
C+
9999 continue
iero=1
niv=niv-1
return
end
Ramine Nikoukhah
2004-06-22