如果 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 中设置的工况(如果有任何改变),或者是否在调用前激活当前活跃工况。