EBSILON®Professional Online Documentation
本主题中
    模型函数
    本主题中

    模型函数

    这些函数有助于打印、保存和更新模型。

    EbsScript 的自动打印对于为不同的状态创建一系列的文件尤其有用。

     

    名称

    目的 

    参数

    返回值 

    例子

    changeObjectName

    通过函数 changeObjectName,可以重新定义对象的名称。在这里,可以通过一个标志来控制如果所需的名称已经存在,该如何处理。
    例如:

    strNew:="Throttle_5";

    changeObjectName("Throttle_3", strNew);

    将 “Throttle_3“ 重命名为 “Throttle_5“,但前提是模型中还没有名为 "Throttle_5" 的对象。可以通过 changeObjectName 的返回代码看到重命名是否成功。

    另外,也可以使用标志 "allowModify"(changeObjectName 的第三个参数):

    strNew:="Throttle_5";

    changeObjectName("Throttle_3", strNew, true);

    在这种情况下,如果可以实现重命名,调用后 strNew 包含之前名为 "Throttle_3" 的组件的名称,即 "Throttle_5",否则为 "Throttle_3"。

    第四个参数 "checkOnly" 可以用来只检查是否可以重命名,而实际上并不重命名对象:

    strNew:="Throttle_5";

    changeObjectName("Throttle_3", strNew, false, true);

    如果重命名是可行的,但不改变对象的名称,则返回 true。 

    1: STRING: 当前名称

    2: STRING: 新名称

    3: BOOLEAN: allowModify-标志(见目的)

    4: BOOLEAN: checkOnly-标志(见目的)

    BOOLEAN:
    true=
    false=

    见目的

    getAllCompNames

    与 getCompNames 一样,但即使是那些在计算中被停用了的组件也会被返回。 

    1: INTEGER: 组件数量

    2: STRING 数组: 组件名称字段

    3: INTEGER: 移交字段的大小

    4: BOOLEAN: 用于处理宏的标志:

    true: 下一级上下文对象被包括在内

    false (默认): 只考虑当前的上下文

    INTEGER: 

    发现的组件总数(其中只有大小与字段相符合的组件才会被显示)

    nCount:=getAllCompNames( 46, arstrMeasmNames, 1000);

    getAllPipeNames

    与 getPipeNames 一样,但即使是那些在计算中被停用了的管道也会被返回。

    1: INTEGER: 管道类型(见下文)

    2: STRING 数组: 用于管道名称的字段

    3: INTEGER: 移交字段的大小

    4: BOOLEAN: 用于处理宏的标志:

    true: 下一级上下文对象被包括在内

    false (默认): 只考虑当前的上下文

    INTEGER:      

    发现的管道总数(其中只有大小与字段相符合的管道才会被显示)

    nCount:=getAllPipeNames( 3, arstrNames, 100 );

    getCalcState

    返回一个组件的计算状态,即一个组件是否包括在计算中,否则只作为一个被动图形使用

    1: STRING
    组件的名称

    INTEGER:
    0: 不计算
    1: 计算
    2: 不计算,但打印

    iStatus:=getCalcState( "Boundary value" );

    getCompNames

    有了这个函数,就可以在一个循环中一个接一个地处理这些组件。它返回一个包含所有类型的组件名称数组。该数组必须事先以合适的大小创建。

    1: INTEGER: 组件数量

    2: STRING 数组: 组件名称的字段

    3: INTEGER: 移交字段的大小

    4: BOOLEAN: 用于处理宏的标志:

    true: 下一级上下文对象被包括在内

    false (默认): 只考虑当前的上下文

    INTEGER:

    发现的组件总数(其中只有符合字段大小的组件才会被显示)

    nCount:=getCompNames( 46, arstrMeasmNames, 200);

    getEbscriptOutpufilename

    返回 EbsScript 输出文件的路径。

    -

    STRING:
    文件名称

    var
      str:string;

    begin

        str:=getEbsScriptOutputfilename;

        println (str);

        setEbsScriptOutputfilename
               ("D:\\temp\\ebsscript.txt", true );

        str:=getEbsScriptOutputfilename;

        println (str);

     

        if (getEbsScriptOutputfilenameAddTimestamp)
         then

        begin

          println ("Timestamp will be added");

        end;

    end;

    getEbscriptOutpufilename
    AddTimestamp

    返回,EbsScript 输出文件是否附有时间戳。 

    -

    BOOLEAN:
    "true" 如果设置了时间戳,否则 "false"

    getModelEbsScriptOutputfilename

    返回模型特定的 EbsScript 输出文件的路径。

    -

    STRING:
    文件名称

    getModelEbsScriptOutputfilename();

    getObjects

    返回模型特定类型的所有对象

    1: STRING: 要求的对象类型(类别)

    2: BOOLEAN:
    true: 包括宏中的对象

    false: 局限于当前上下文中的对象(默认设置)

    3: BOOLEAN:
    true: 仅限激活的对象

    false: 所有对象(默认设置)

    EBSOBJECT 数组: 要求的对象的数组

    var

      are:array of ebsobject;

      i,n:integer;

      strName:string;

    begin

      are:=getObjects("ebscomp1");

      n:=length(are);

      for i:=0 to n-1 do

      begin

        println (are[i]);

      end;

    end;

    getPipeNames

    通过这个函数,可以在一个循环中一个接一个地处理管道。它返回一个数组,其中包含某一类型的所有管道的名称(类型数量见下文)。该数组必须事先以合适的大小创建。

    1: INTEGER: 管道
    类型(见下文)

    2: STRING 数组: 管道名称的字段

    3: INTEGER: 移交字段的大小

    4: BOOLEAN: 用于处理宏的标志:

    true: 下一级上下文对象被包括在内

    false (默认): 只考虑当前的上下文

    INTEGER:

    发现的管道总数(其中只有大小与字段相符合的管道才会被显示)

    nCount:=getPipeNames( 3,
       arstrNames, 100 );

    getText

    返回在一个文本对象中输入的文本 

    1: STRING:
    文本对象的名称

    STRING:
    存储的文本

    strText:=getText( "Text object" );

    getTextNames

    通过这个函数,可以在一个循环中一个接一个地处理文本字段。它返回一个包含所有文本字段(包括按钮和警报字段)名称的数组。该数组必须事先以合适的大小创建。

    1: STRING 数组: 文本字段名称的字段

    2: INTEGER: 移交字段的大小

    3: BOOLEAN: 用于处理宏的标志:

    true: 下一级上下文对象被包括在内

    false (默认): 只考虑当前的上下文

    INTEGER:

    发现的文本字段总数(其中只显示适合字段大小的数量)

    var
      arstrNames:array[1..1000] of string;
      i,nSize,nCount:integer;

    begin
      nSize:=1000;
      nCount:=getTextNames(arstrNames,nSize);
      for i:=1 to nCount do
      begin
        print (arstrNames[i],"\n");
      end;
    end.

    getVisibleState

    返回一个对象的可见性状态,即一个对象在循环中是可见还是不可见

    1: STRING:
    对象的名称

    INTEGER:
    0: 对象是不可见的
    1: 对象是可见的

    iStatus:=getVisibleState( "Boundary Value" );

    printModel

    通过使用指定的布局,用默认的打印机设置打印模型。

    1: STRING: 用于打印的布局名称(见打印预览,布局)

    2: STRING: 打印机的名称(可选;当此条目为空时,使用默认打印机)

    3: STRING: 在打印到文件的情况下:文件的名称(可选)

    BOOLEAN:
    true: 没问题
    false: 错误

    printModel ("SmallFrameLandscape");

    restoreModelVariables

    参见 saveModelVariables 和 saveProfileVariables

    1: INTEGER: 索引,应使用哪个存储集

    2: BOOLEAN:
    true: 保留已存储的数据以备将来恢复使用

    false: 恢复后删除存储的数据

    BOOLEAN:
    true: 没问题
    false: 错误

     

    restoreProfileVariables

    1: INTEGER: 索引,应使用哪个存储集

    2: BOOLEAN:
    true: 恢复到激活的工况

    false: 恢复到原始工况(默认设置)

    3: BOOLEAN:  
    true: 保留已存储的数据以备将来恢复使用

    false: 恢复后删除数据(默认设置) 

    BOOLEAN:
    true: 没问题
    false: 错误

     

    saveModel

    将模型的当前状态保存在硬盘上。
    对于这个函数,已经实现了另一个可选的参数 "拷贝"。如果该参数为"真",该函数的作用与菜单命令"将副本保存为"一样,即在不改变该文件的情况下,以不同的名称保存副本。

    1: STRING: 文件名,包括路径(可选;如果为空,模型将被存储到之前的同一文件中)。

    2:BOOLEAN: true:
    (可选参数)成为模型的副本,如果没有指定该参数,默认值为 false

    BOOLEAN:
    true: 没问题
    false: 错误

    saveModel;

    saveModelVariables

    通过函数 saveModelVariables 和 saveProfileVariables,可以在内部将所有模型和工况变量的当前值存储在一个缓冲区中。用函数 restoreModelVariables 或 restoreProfileVariables,可以在之后的时间点恢复。

    也可以在一个缓冲区中存储几个状态。为此,函数 saveModelVariables 和 saveProfileVariables 返回一个索引作为返回值,然后必须用还原-函数指定。

    默认情况下,中间状态在恢复后被删除。然而,可以通过设置还原函数"keepEntryForFurtherRestores"的第二个参数为 "true" 来保存中间状态(以备以后需要再次恢复)。

    -

    INTEGER:

    恢复用的索引

     

    saveProfileVariables

    -

    INTEGER:

    恢复用的索引

     

    setCalcState

    设置一个组件的计算状态,即一个组件是否包括在计算中,否则只作为一个被动图形使用。

    1: STRING
    组件的名称

    2:INTEGER
    计算状态:
    0: 只有被动图形
    1: 为计算激活

    BOOLEAN:

    setCalcState( "Boundary Value", 1 );

    setColor

    这个函数使设置一个对象(组件、管道、文本字段)的颜色成为可能。第三个可选参数 "colorIndex" 控制 "颜色1"-"颜色4"中的哪个颜色被改变:

    colorIndex = 0: 颜色 1
    colorIndex = 1: 颜色 2
    colorIndex = 2: 颜色 3
    colorIndex = 3: 颜色 4

    如果省略了 "colorIndex" 参数,颜色 1 将被改变。

    颜色必须指定为格式为 $00bbggrr 的 RGB 值,其中 bb、gg、rr 可以分别从 0 到 $ff,表示蓝色、绿色或红色组件。

    例子:

    $ 00ff0000 = 16711680 纯蓝                $ 0000ff00 = 65280 纯绿
    $ 000000ff = 255 纯红
    $ 00ffffff = 16777215 白色

    另外,也可以指定标准调色板中的一种颜色。要做到这一点,请输入 $01000000 + 调色板索引的值。(这些对应于布局下属性栏中的标准颜色的值。)       

    1: STRING
    对象的名称

    2: INTEGER
    颜色标识(见左)

    3: INTEGER:
    颜色指数(索引)

    -

    setColor ("Boundary Value", $ 000000ff);
    // 将组件的背景颜色改为红色

    setColor ("heliostat field", $ 00ffffc0, 1); // 将定日镜的颜色改为浅绿松石色

    setColor ("heliostat field", 01000000);
    // 将定日镜的背景颜色改为调色板指数 0(黑色)

    setColor ("heliostat field", $ 01000001, 1);

    // 将定日镜的颜色改为色板指数 1(白色)

    setColor( "边界值", 255 );

     

     

    setEbscriptOutputfilename

    将 EbsScript 输出文件的路径设置为一个特定的路径,并决定是否在输出文件中附加一个时间戳。

    1: STRING:
    希望的路径

    2:BOOLEAN
    true: 附加时间戳
    false: 没有时间戳

     

    setEbscriptOutputfilename("C:\\Temp\\Test", false);

    setModelEbsScriptOutputfilename

    将当前模型的 EbsScript 输出重定向到指定文件。其它模型的通用设置不被改变。

    1: STRING: 请求的 EbsScript 输出文件的名称(包括路径)

    -

    setModelEbsScriptOutputfilename ("D:\\Temp\\EbsScript.txt");

    setModelTime

    这个函数设置模型的时间。这通常是在从 EposInterface 或 EposArchive 接收数据时设置的,但如果需要,也可以明确地进行修改。

    1: STRING:
    希望的模型时间,格式为日.月.年,时:分:秒的文本

    -

    setModelTime( "01.12.2004 16:30:00" );

    setModelTime ForArchiveId

    此函数为特定的档案 ID 设置模型时间。

    1: INTEGER:
    档案的 ID

    2: STRING:
    希望的模型时间,格式为日.月.年,时:分:秒的文本 

    -

    setModelTimeForArchiveId(300, "01.12.2004 16:30:00" );

    setStandardColor

    此函数将对象的颜色重置为原始状态。

    1: STRING:
    对象的名称

    2: INTEGER:

    -

    setStandardColor ( "Boundary Value" );

    setText

    设置在文本对象中输入的文本

    1: STRING:
    文本对象的名称

    2: STRING:
    要输入的文本

    -

    setText( "Text object",  "This is a test text" );

    setVisibleState

    设置一个对象的可见性状态,即隐藏该对象或显示该对象。 

    1: STRING:
    对象的名称

    2:INTEGER:
    可见性状态:
    0: 对象是不可见的
    1: 对象是可见的 

    -

    setVisibleState( "Boundary Value", 1);

    switchShiftView

    通过 switchShiftView 函数,可以将控制室的视图切换到一个特定的视图。

    1: INTEGER: 请求的视图的索引

    BOOLEAN:

     

    updateModel

    更新监视器屏幕上的显示。

    1: BOOLEAN:

    2: BOOLEAN:

    -

     

    与 "printModel" 不同,函数 "print" 和 "printToString" 不在打印机上产生输出,而只是在内部使用。可以在简单输入/输出函数字符串函数两章中分别找到这些函数。

    以下的 ID 是为管道类型定义的:

    0

    所有管道

    1

    空气

    2

    烟气

    3

    蒸汽

    4

    5

    预期值

    6

    当前值

    7

    粗煤气

    8

    9

    电力

    10

    机械轴

    11

    12

    13

    逻辑

    14

    用户定义

    15

    两相流体气态

    16

    两相流体液态

    17

    盐水

    18

    通用流体

    19

    二元混合物

    20

    热液(油/熔化物)

    21

    湿空气

    22

    NASA(美国国家航空航天局)