【CPN TOOLS建模学习】设置变迁的属性

使用Tab键在属性之间进行切换

与一个变迁相关联的四个铭文,均为可选项:

  • 变迁名称
  • 守卫(Guard)
  • 时间
  • 代码段

变迁延迟 必须是一个正整数表达式。该表达式前面加上@+,这意味着时间铭文的形式为@+ delayexpr。在添加时间铭文之前,铭文的默认文本为@+。时间延迟始终相对于当前时间添加。例如,如果当前时间为10,而时间延迟为@+2,则发送到输出库所的令牌的时间戳将为12。缺失的时间铭文等同于零延迟。尽管弧的延迟存在,变迁的延迟仍适用于所有输出令牌。在只有一个输出弧的情况下也是如此。例如。

点击sim面板里的"执行一个变迁":

点击三次后,流程执行完如下图所示:

guard 是一个CPN ML布尔表达式,其值为真或假。在添加guard之前,铭文的默认文本为 。guard可以是单个布尔表达式,也可以是布尔表达式的列表b-exp1, b-exp2, ..., b-expn。只有在guard为真时,变迁才会触发,而guard限制了输入令牌token的选择。例如:

执行完流程后:

此外,guard 允许通过将来自不同库所的令牌参数组合在表达式中进行比较。以下片段模拟了从以太网段提取帧的过程:

执行完:

根据变迁"get"的表达式"#1 f = addr",只有某令牌"addr=2=f中的第一个属性"时,此令牌才能通过。

工作站的自身地址存储在库所"own"中。它只进行检查,因此使用了双向弧。

每个变迁可以附带一个代码段,其中包含ML代码。当其父变迁发生时,代码段将被执行。代码段可以使用CPN变量,并可以绑定位于输出弧上的、未在其他地方绑定的CPN变量。每个代码段可以包含:

• 输入模式(可选)

• 输出模式(可选)

• 代码动作(强制)

输入模式是一个CPN变量的元组,以关键字"input"开头。输入模式列出了可以在代码动作中使用的CPN变量。代码动作可以使用这些CPN变量的值,但不能更改它们。即使在声明节点中声明了同名的ML标识符,输入模式中列出的CPN变量也可以在代码动作中使用。如果省略输入子句,则意味着在代码动作中不能使用任何CPN变量。

输出模式是一个CPN变量的元组,以关键字"output"开头。输出模式列出了由于执行代码动作而需要更改的CPN变量。输出模式必须是一个CPN变量或没有重复的CPN变量元组。如果省略输出子句,则意味着没有计算任何CPN变量。

代码动作是一个以关键字"action"开头的ML表达式。代码动作不能包含任何颜色集、CPN变量或引用变量的声明。然而,它可以应用用户声明和预声明的常量、操作和函数。此外,可以通过let-in-end为局部使用定义新的函数和常量。代码动作作为一个局部声明在包含输入模式中指定的CPN变量的环境中执行。这保证了代码动作不能直接更改任何CPN变量,而只能更改它们的局部副本。当代码动作执行完毕后,其结果用于绑定输出模式中的CPN变量。当在包含输入模式变量的环境中评估代码动作时,必须生成与输出模式相同类型的结果。如果没有给出输出模式,则其类型被假定为unit。代码段用于对输入令牌进行更复杂的处理。令牌求和示例可以使用代码段表示为:

执行一次变迁:

执行两次:

执行完:

相关推荐
代码山河9 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
释厄62310 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
小嘉丶学长14 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节
小李不想当小白14 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
adinnet202618 小时前
电商客服对话知识库的自学习闭环与质量演进机制
学习
lazy H19 小时前
【计算机网络】第 13 篇:NAT 和端口映射是什么?为什么本地服务外网访问不了?
java·网络·网络协议·学习·计算机网络·408
试剂界的爱马仕20 小时前
α-Cyano-4-hydroxycinnamic acid(CHCA)用作 MALDI-TOF 基质的配制与使用
大数据·人工智能·深度学习·学习
小向是个Der20 小时前
嵌入式进阶——编译与链接
汇编·单片机·学习·编译原理·交叉编译
学网安的肆伍20 小时前
认证机制攻防学习|PortSwigger Authentication 靶场复现总结(二):用户名枚举进阶
学习·web安全·网络安全·burpsuite·portswigger·认证安全·靶场复现
海绵宝宝转agent21 小时前
Leetcode二叉树算法个人理解
笔记·学习·算法·leetcode·深度优先