| 弧注入式 | CPN Tools help |
| CPN ML |
所有的弧只有一种注入式--弧注入式.弧注入式就是一个CPN ML表达式,表示为一个多重集 multi-set或者是一个孤立的元素.
在弧注入式没有被给定以前,默认的弧注入式为一段文字"expr".
弧表达式的颜色集必须要与相连接的库所的颜色集保持一致.否则,在语法检查中,这个弧的旁边将会出现一个错误提示.
自由变量是输出弧上的变量,它即没有被绑定在输入弧上,也不是警戒函数.在CP-net执行的时候,自由变量将被赋予一个随机值.自由变量的类型必须是一个小的颜色集 small colour sets.
在下面这个例子中,b是一个自由变量.
如果与输出弧相连接的库所的颜色集是赋时颜色集 (timed colour sets)中的一种,弧注入式可以拥有一个延时表达式.
输出弧的延时表示必须是一个整数型的表达式,同时它必须添加在输出弧的注入式的后面,用 @+ 隔开.语法为:
弧表达式 @+ 弧延时
如果没有输出弧延时,则认为延时为零.
举例来说,弧延时可以使用值values,CPN变量CPN variables,函数functions,还有时间(),这些可能依托肯的值而定.在这一点上,弧延时与变迁延时transition delays是完全一样的.
输出弧延时表达式的例子可以在以下的例程网example nets中找到:赋时资源分配Timed Resource Allocation.
如果所有的变量被绑定在警戒函数上,或者是其它输入弧上,则附条件的弧注入式就可以用在输入弧上.
输出弧上的附条件的弧注入式可以约束在代码段输出条款中提到的输出变量.
附条件的弧注入式可以在以下的例程网example nets中找到:资源分配Resource Allocation ,环型网协议Ring Protocol.
在弧注入式中使用的函数不能有副作用.
只有当函数的参数在别的地方被绑定在该变迁之上时,输入弧才可以使用函数.
输出弧注入式上的函数可以约束输出变量.
输入弧上的函数的例子可以在以下的例程网example nets中找到:分布式数据库 Distributed Database.
弧注入式不允许有副作用,同时不能有:
random 函数.