【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。代码段用于对输入令牌进行更复杂的处理。令牌求和示例可以使用代码段表示为:

在这里插入图片描述

在这里插入图片描述

执行一次变迁:
在这里插入图片描述
执行两次:
在这里插入图片描述
执行完:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/905946.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Cityscapes数据集:如何将像素级的多边形标注的分割数据标注转为目标检测的bbox标注

Cityscapes数据集官网下载地址: https://www.cityscapes-dataset.com/ 相关介绍:从官网下载这三个压缩包文件leftImg8bit_trainvaltest.zip、gtCoarse.zip、gtFine_trainvaltest.zip 1)leftImg8bit_trainvaltest.zip分为train、val以及tes…

NVR批量管理平台EasyNVR多品牌NVR管理工具/设备关于远程控制的详细介绍

在数字化安防时代,视频监控技术已成为维护公共安全、提升管理效能的重要基石。随着科技的飞速发展,流媒体技术和视频监控正经历着前所未有的变革与融合。NVR批量管理平台EasyNVR,作为一款基于“云-边-端”一体化架构的视频融合云平台&#xf…

理解原子变量之一:从互斥锁到原子变量,最粗浅的认识

目录 三个实例对比 结论 多线程编程对于程序员来说,是一项非常重要的技能。在C11标准问世之前,C标准是不支持多线程的。在C11出台前,如果你想在linux平台进行多线程编程,就要使用linux的多线程库pthread,而pthread是…

eBay自养号测评养成攻略:从环境系统搭建到养号下单

eBay账号在测评中的重要性不言而喻,然而,新注册的账号往往面临被封禁或下单即封的风险。如何养成稳定的买家号,成为众多商家关注的焦点。以下将详细讲解eBay测评中如何稳定养成买家号。 一、账号注册后的初期养护 新注册的eBay账号&#xf…

Docker(二):Docker的基本使用

1 Docker的基本使用 1.1 镜像相关操作 1、从DockerHub搜索镜像 [rootmaster ~]# docker search centos # 镜像名字 描述 星标 是否官方(有OK表示为官方镜像) NAME …

【hector mapping参数设置】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 hector mapping部分参数介绍调整hector_mapping中的参数ros常见问题总结 hector mapping部分参数介绍 在wiki.ros.org/hector_mapping界面找到3.1.4 Parameters章节…

使用wordcloud与jieba库制作词云图

目录 一、WordCloud库 例子: 结果: 二、Jieba库 两个基本方法 jieba.cut() jieba.cut_for_serch() 关键字提取: jieba.analyse包 extract_tags() 一、WordCloud库 词云图,以视觉效果提现关键词,可以过滤文本…

ios Framework版本号的问题。

自己创建的framework和普通的app的版本号设置的地方是有所有不同的。 framework 的版本号是在 TARGETS -> Build Settings -> current Project Version 这个地方设置的, 在创建framework的时候xcode 会自动创建一个framework.h的文件名,framewo…

Axure设计之多级菜单导航教程(中继器)

在数字化时代,优化产品设计,提升用户界面交互,是产品设计着重考虑的点。针对传统菜单导航复杂繁琐的问题,本设计提出了一套灵活的菜单导航方案,结合中继器与动态面板,实现一键搜索、菜单收藏、多级菜单导航…

真题总结和整理

补码的符号位在最高位 IEEE754 规格化要求 小数点前面是1,其他的认为是小数点后面为1即可 计算之前要对阶 左移和右移在寄存器中如果未说明定点数,可以通过移动小数点实现 涉及最小帧长要记得除以2 求用于外设的时钟周期数 指令两端只允许有寄存器,间接寻址要通过MA…

计组-层次化存储结构

这里主要看存储的整体结构,cache,内存 这里看存储结构是按什么样的层次来划分存储结构,速度由慢到快,容量由大到小,这是基于性价比的考虑,所以分为多级多层次,可以做到提高速度的同时没有增加多…

Rust整合Elasticsearch

Elasticsearch是什么 Lucene:Java实现的搜索引擎类库 易扩展高性能仅限Java开发不支持水平扩展 Elasticsearch:基于Lucene开发的分布式搜索和分析引擎 支持分布式、水平扩展提高RestfulAPI,可被任何语言调用 Elastic Stack是什么 ELK&a…

CoTAM——思维属性操纵链,一种利用大规模语言模型的新的高效快速学习方法

概述 近年来,大规模语言模型已显示出惊人的能力,可以从少量样本中学习。然而,这种能力需要昂贵的大规模模型,其运行成本是一大挑战。此外,在推理过程中,需要对所有测试输入的上下文(包括演示&a…

Chromium 中chrome.topSites扩展接口定义c++

一、chrome.topSites 使用 chrome.topSites API 访问新标签页上显示的热门网站(即最常访问的网站)。不包括用户自定义的快捷方式。 权限 topSites 您必须声明“topSites”扩展程序清单中授予使用此 API 的权限。 {"name": "My exten…

物联网设备如何助力实现高效远程老人监护

在发达国家,老龄化进程加速,老年人常需医疗、行动辅助、安全保障及个人卫生护理,费用高昂。传统老人监护依赖护士或助理现场照料,而物联网远程监控方案能有效改进此模式。它通过运用传感器等技术,实现全天候低成本实时…

NPM 包开发与优化全面指南

前言 Hey, 我是 Immerse系列文章首发于【Immerse】,更多内容请关注该网站转载说明:转载请注明原文出处及版权声明! 1. 理解 NPM 包的结构 1.1 package.json 文件:包的核心 package.json文件是 NPM 包的中央配置,定…

基于redis实现延迟队列

Redis实现延时队列 延时队列里装的主要是延时任务,用延时队列来维护延时任务的执行时间。 1、延时队列有哪些使用情景? 1、如果请求加锁没加成功 可以将这个请求扔到延时队列里,延后处理。 2、业务中有延时任务的需要 比如说&#xff0…

探索Python安全字符串处理的奥秘:MarkupSafe库揭秘

文章目录 探索Python安全字符串处理的奥秘:MarkupSafe库揭秘第一部分:背景介绍第二部分:MarkupSafe是什么?第三部分:如何安装MarkupSafe?第四部分:MarkupSafe的简单使用方法1. 使用escape函数2.…

Docker(一):Docker简介及安装

目录 1 Docker简介1.1 容器跟虚拟机的区别1、虚拟机是什么2、容器是什么3、容器和虚拟机的区别 1.2 为什么要学习容器1.3 Docker 是什么 2 Docker安装2.1 安装docker-centos71、环境初始化2、安装docker-ce3、配置docker镜像加速器 2.2 安装docker-ubuntu22.041、安装2、添加镜…

scp免密传输教程

scp免密传输教程 为了在使用 scp 命令时不需要输入密码,通常的做法是通过设置 SSH 公钥认证来实现。这种方法不仅避免了每次都要输入密码的麻烦,而且也更加安全。下面是如何设置 SSH 公钥认证的步骤: 1. 生成 SSH 密钥对(如果你…