一.z_uniform
- z_uniform([Stream:integer,]LowerBound:real,UpperBound:real) -> real
- 可以使用均匀分布对位于间隔边界 lower bound 和 upper bound 之间的随机数 z 建模
- 整数数据类型的 Stream 参数用于指定随机数流
二.XDim,YDim(数据表)
- <Path>.XDim -> integer
- XDim 只读属性返回 <Path> 所指定的包含条目的数据表的最后一列的编号。
- <Path>.YDim -> integer
- YDim 只读属性返回 <Path> 所指定的包含条目的数据表的最后一行的编号。
三.setCursor(数据表)
- <Path>.setCursor(Column:any, Row:any) → boolean
- setCursor 方法用于将由 <Path> 指定的数据表的内部光标设为指定单元格。查找方法从当前光标位置开始搜索,并将光标设置为下一个查找到的项。最大和最小方法将光标设置为给定范围的最大值或最小值。
四.existsObject (2D)
- existsObject(NameOfObject:string) → boolean
- 返回值的数据类型为布尔:对象存在时为 true;不存在时为 false。
五.writeRow
- <Path>.writeRow(Column:any, Row:any, Value:any[, Value:any, ..., Value:any])
- writeRow 方法用于在指定位置将数据写入 <Path> 指定的数据表。
- 任意数据类型的 Column 参数用于指定表的列。
- 任何数据类型的 Row 参数用于指定表的行。
- 任何数据类型的 Value 参数用于指定要写入的值。
六.find(列表)
- <Path>.find([Range:listrange, …,]Value:any) → boolean
- Plant Simulation 会从光标位置(可使用 setCursor 进行设置)开始在列表/表中进行搜索,然后按列继续搜索,直到找到值。找到值后,方法会返回 true 并将光标固定在该单元格中。如果未找到值,则返回 false。
七.executeIn
- &MyMethod.executeIn(CallAt:time[, Argument1:any, ...]) → boolean
- executeIn 方法在经过指定的秒数之后调用参考运算符指定的方法。Plant Simulation 将事件输入到事件控制器的计划事件列表中,该事件的发生时间为当前仿真时间后输入的时间秒数。由于将在未来某一时间调用方法,因此时间必须大于或等于 0。
八.InternalClassName
- <Path>.InternalClassName → string
- 只读属性 InternalClassName 将返回唯一的内置英文名称,用于描述 <Path> 所指定对象的类型
九.ResourceType
- <Path>.ResourceType:string
- ResourceType 属性为 <Path> 指定的对象设置资源类型:Production、Storage 或 Transport。
十.NumNodes(框架)
- <Path>.NumNodes → integer
- NumNodes 只读属性会返回由 <Path> 指定的框架中的对象数。插入所选框架中的其他所有框架均算作单一对象。Plant Simulation 不会计入框架中包含的对象。注:连接器也算作对象。
十一.node(框架)
- <Path>.node(ObjectNumberOrName:integer/string) → object
- node 方法会返回由 <Path> 指定的框架中的指定对象。Plant Simulation 会按对象的插入顺序对模型中的对象进行编号。还可以调用类库的方法。
十二.使用 Wait 中断方法执行
- wait timespan:real
- wait 关键字用于将调用链的执行中断数秒,该秒数会作为数据类型为实数的参数传递。仿真继续运行,就像已完成调用链一样。Plant Simulation 会在事件控制器的计划事件列表中输入方法唤醒事件,以在经过输入的时间后继续执行调用链。
十三.Waituntil 语句和 Stopuntil 语句
- waituntil condition [prio number] [wait timespan:time]
- stopuntil condition [prio number] [wait timespan:time]
- waituntil/stopuntil 语句用于挂起方法执行,直到语句中设置的条件评估为 true。这意味着仿真将继续运行,在此期间可以执行其他方法。满足条件时,将立即唤醒挂起的方法并继续执行。如果满足条件时正在执行方法,则其执行将中断,并仅在已唤醒方法一直执行之后继续执行。
- 当同时唤醒多个已挂起方法时,可能在执行优先级最高的方法之后,其他方法的条件将再次采用 false 值。
- 对于使用 waituntil 挂起的方法,在处理已唤醒的每个方法后,将重新评估要唤醒的每个附加方法的条件和优先级。
- 对于使用 stopuntil 挂起的方法,在满足一次条件后,在任何情况下都会唤醒这些方法。这意味着不会重新评估条件。
- waitExpired 关键字是 waituntil 语句和 stopuntil 语句的一部分。
- 在 SimTalk 2.0 中,可以使用 waitExpired 输入 waituntil/stopuntil 语句的时间限制。当 waituntil/stopuntil 语句已在此持续时间挂起时,接下来会被唤醒,尽管尚未满足条件。
- 当语句由于时间限制被唤醒时,关键字 waitExpired 设为 true。
- 如果挂起因条件限制而终止,则 waitExpired 设置为 false。
示例
waituntil Station.Empty wait 60
if waitExpired
Station.deleteMovables
else
.MUs.Part.create(Station)
End
十四. ErrorHandler
- 错误处理用于对方法中发生的运行时错误作出反应。当仿真在任何情况下都必须继续进行时、想要记录发生的错误时,或者当预期发生的错误确实发生而想要采取适当的措施时,这非常有用。
- 要实施错误处理,按如下方式进行:
- 对于方法:创建方法或对象数据类型的用户定义属性,并将其命名为 ErrorHandler。必须在方法本身或插入方法的框架中创建此属性。
- 对于方法数据类型的用户定义属性:在对象中创建另一个具有用户定义属性的用户定义属性。此属性的数据类型必须为方法或对象,并命名为 ErrorHandler。
- 当方法中发生运行时错误时,Plant Simulation 将取消执行该方法并调用该方法的错误处理方法(错误处理程序)。如果方法没有错误处理程序,则 Plant Simulation 将搜索调用链中的错误处理程序。当调用链中的任何方法都不具有错误处理程序时,Plant Simulation 使用标准错误处理过程,即通常打开方法调试程序。
参数
- 三个参数将传递到错误处理程序:
- 错误消息。
- 错误方法的路径。
- 发生错误的行号。