EBSILON®Professional Online Documentation
本主题中
    编译
    本主题中

    EbsScript 编译

    如果 EbsScript 在执行时被评估,将非常缓慢。因此,使用了一个编译器,将 PASCAL 脚本转换为"虚拟机"(真实机器的软件模拟)的机器代码,从而执行脚本。每次如果在 EbsScript 编辑器EbsScript 执行器中执行之前有变化,编译器会自动调用。

    EbsScript 编译器还能极大地加快存储脚本的文本字段的显示速度,因为每次刷新屏幕时,都不需要再次被编译。


    此外,可以通过命令菜单"编译器à语法分析"手动启动编译器。这可以在运行脚本之前检查语法是否正确。

    EbsScript 编译器是一个特殊的 PASCAL 编译器,符合在 Ebsilon 内使用 PASCAL - 编译器的要求。因此,有几个语言的扩展和几个特殊函数,而对其它很少使用的结构的支持可能就有所限制。

    EbsScript 编译器的输入脚本示例如下:

    var  
    
          CoolantTemp : integer; 
    
          InletTemp   : real;    
    
          OutletTemp  : real;
    
          deltaTemp   : real;
    
          counter     : integer;
    
    begin 
    
          counter := 0;
    
          setParentProfileByName ("Variation_C");
    
          for CoolantTemp := 60 to 85 step 5 do
    
          begin
    
                newSubProfile;
    
                HeatConsumer_PrimaryCircuit.T2SET := CoolantTemp;
    
                simulate;
    
                InletTemp  := last.CoolantInlet_Secondary.T;
    
                OutletTemp := last.CoolantOutlet_Secondary.T;
    
                deltaTemp  := OutletTemp - InletTemp;
    
                counter    := counter + 1;
    
                print ("Variation ", counter," :\n",
    
                        "The resulting power output ",
    
                       "with coolant inlet temperature of ",
    
                       last.CoolantInlet_Secondary.T, " \°C  is: ",
    
                       last.GeneratorOutlet.Q, " kW.  \n",
    
                       "Rise of coolant temperature is: ",
    
                       deltaTemp, " \°C.\n" 
    
                       ); 
    
                if CoolantTemp = 85.0 then
    
                begin
    
                    print ("This is the end\n");
    
                end;
    
          end;
    
    end.  
    

    如果在编译时发生错误,将出现如下所示的错误信息,并且脚本不会被执行。

    这条错误信息提示,第 19 行中缺少一个")"。

     

    EbsScript 选项

    所有的选项都在"附加"菜单下
    在"编辑器"选项卡上,可以为输出 ebscript 进行设置:

    • 设置字体
    • 显示或不显示行号

    编译器选项可以在"语法"(内部)选项卡中通过"附加à选项..."进行调整。

    如果一个程序块没有以"end"结束(PASCAL 标准),EbsScript 编译器将产生一个错误信息。默认情况下,EbsScript 编译器也接受"end;"。

    选项"实数作为整数除法的结果"规定了两个整数的除法是返回一个整数还是一个实数。在 PASCAL 中,默认情况下,两个整数相除的结果是一个整数。由于这很容易导致意外的结果,特别是在使用默认字段时,可以设置两个整数的除法结果为是一个实数。

    这个设置也可以在"通用设置 \ 复杂 \ EbsScript \"中完成,还可以启用和禁用整数除法的警告。默认情况下,警告是启用的。

     

    编译器指令

    在"编译器"-->"选项"-->"语法"下选择的 EbsScript 编译器的设置也可以在运行时被查询或改变。为此,有以下编译器指令:

    当这个指令被设置后,关键词"result"可以作为函数值的同义词使用,特别是在分配的右侧。

    对于这些指令,相应的选项由参数(+)激活,由参数(-)停用。通过(show),可以查询当前的状态(输出会出现在控制台窗口)。通过(push)和(pop), 分别可以将当前状态归档和恢复。通过空的(push)可以复制当前状态。

    为了改变上下文(例如在编译时跳转到一个宏上下文),有以下指令:

    无上下文编译:

    使用 pragma


    注意:实数作为整数除法的结果

    默认情况下,两个整数的除法结果在 PASCAL 中是一个整数。这样 - 特别是在使用默认字段时 - 很容易导致意想不到的结果,因此可以在 EbsScript - 编辑器的"附加"à"选项"à"语法"中设置两个整数除法的结果为实数。

    这个设置也可以在"高级"à"EbsScript"的常规设置中完成。在这里,也可以激活和取消整数除法的警告。默认情况下,警告是激活的。

      

    选项卡"运行时间(Runtime)"可以设置是否在运行时显示"取消"窗口,以便取消执行(即使没有显示"取消"窗口,也可以用 ESC 键取消),以及是否在 EbsScript 结束时保留在 EbsScript 中设置的工况(如果有任何改变),或者是否在调用前激活当前活跃工况。