初识形式化验证工具——CPN tools

安装链接:https://cpntools.org/category/downloads/

学习链接:https://cs.au.dk/cpnets/industrial-use

成功安装软件:

右键新建/打开项目:

导入项目:

交互工具:

仿真运行:也是拖拽出来后,要进行的操作在命名处左键即可。

换颜色应该是在style里面。

层次petri网的概念

1.目的

创建大型的、复杂的 Petri网是一个很麻烦的任务。但是类似于模块化编程思想,通过在CPNTools工具内利用替代变迁的概念可以将CPN网络结构拆分为多个小块。一般概念上,具有替代变迁的网络是有多个层次的网络一你可以先创建一个有点简化的网络,以此来从广义上定义你正在建模的系统的全貌;然后利用高层网中的替代变迁,将其关联到更为详细的页面中去,从而你可以逐步地、越来越细化你的模型。

2.替代变迁

用变迁表征网结构中的某一整块是层次网中常用的一种方法,利用这种方法使得包含上述变迁网络从逻辑上得到简化。这样一种变迁就叫做替代变迁。

替代变迁根本上没有增加任何新的东西。利用替代变迁可以做的操作同样也可以利用融合库所fusion places 的方式来实现。但是类比于融合库所,替代变迁显得更方便、有用,它可以区分出建模上的可行性和整体不可行性上的不同。3.子页和父页

包含有替代变迁的页面叫做父页,上图中的Top页面就是一个父页。

当CPN 网使用替代变迁的时候,替代变迁所表达的逻辑必须得在某一位置得到实现。实现替代变迁逻辑的页面叫做子页,从逻辑的角度来看子页也可以被称呼为子网或者子模块。

下图中的Reverse页面就是一个子页,它与替代变迁Reverse关联。  每个替代变迁都是对应子页的父节点。层次网结构中子页和父页之间的关系,在索引区网的总视图 overview中得以显现。子页的名称通常位于父页的下面,而且子页的名称比父页的名称稍有缩进。如果在索引中没有看到子页,可以单击父页旁边的蓝色箭头来展开子页列表。

4.端口库所和槽库所

        父页和子页的关联是通过两个页面上有特殊目的的融合集 fusion sets 中的库所来实现的。这些特殊的融合集包含两种库所。其中子页中的库所叫做端口库所,而父页上的叫做槽库所。

 

 5.端口库所/槽库所的关联

        端口库所/槽库所的关联被用来定义子页是如何粘合到它的父节点中去的。每一个槽库所都必须关联一个对应子页的端口库所。而具有In标签的端口库所也必须得关联一个槽库所,而且这个槽库所还得是替代变迁的输入(不是输出)节点。类似地,有Out标签的端口库所也必须得关联一个槽库所,而且这个槽库所还得是替代变迁的输出(不是输入)节点;有I/O标签的端口库所所关联的槽库所则可以既是替代变迁的输入节点又可以是替代变迁的输出节点。

        注意:端口库所周围的弧与端口类型标签没有对应关系。例如:假定有一个具有 In标签的端口库所,可以有弧从子页中的变迁流向这个库所,也可以有弧从这个库所(作为输出节点)流向子页中的某个变迁。

 6.端口库所和槽库所的标识

        父页槽库所中具有的标识在子页对应端口库所中也同样应该具有,反之亦然。

例如:父页面Top中 Begin库所中的初始标识与子页面Reverse中 Begin库所的初始标识相同。

7.对子页面的多次使用

        替代变迁的最大作用在于子页面并不仅仅只是唯一一个替代变迁的值:子页面可以被重复使用,效果就如同于多个父页面上多个替代变迁的值。

        如果子页面表示超过一个替代变迁的值,那么这就叫做子页面的多重实例。类似地,也存在子页面上库所和变迁地多重实例的现象。每个子页面的实例都是完全独立的,与同一子页面的其他实例的标识无关。

CPN工具各功能

1.net

新建/关闭,鼠标拖住窗口下面边缘,可以改变形状大小

修改名称:

合并工具窗口,拖在一起就可以了。

保存:

2 create

利用磁性参考线,帮助对齐绘制:

红色×可以选中元素进行删除,删了没办法复原???没有Ctrl+Z,慎重!

3 style

改变颜色、粗细等样式,其他后面再学。

4 view

相关推荐

  1. 虚拟机:探索数字世界的神奇工具

    2024-06-13 11:10:04       32 阅读
  2. Dockerfile

    2024-06-13 11:10:04       56 阅读
  3. MyBatis

    2024-06-13 11:10:04       67 阅读
  4. docker

    2024-06-13 11:10:04       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-13 11:10:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-13 11:10:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-13 11:10:04       82 阅读
  4. Python语言-面向对象

    2024-06-13 11:10:04       91 阅读

热门阅读

  1. MPLS工作过程

    2024-06-13 11:10:04       36 阅读
  2. 力扣刷题记录: 1339. 分裂二叉树的最大乘积

    2024-06-13 11:10:04       37 阅读
  3. Oracle数据库-重点信息查询方法

    2024-06-13 11:10:04       28 阅读
  4. 【前端】vue在线编辑器

    2024-06-13 11:10:04       38 阅读
  5. 北京汽车美容元宇宙,未来已来

    2024-06-13 11:10:04       32 阅读
  6. C#A类调用B类的方法,在方法中更新B类的控件

    2024-06-13 11:10:04       35 阅读
  7. 注解 - @RequestPart

    2024-06-13 11:10:04       36 阅读
  8. 设计模式-原型模式

    2024-06-13 11:10:04       53 阅读
  9. PostgreSQL 数据类型详细说明

    2024-06-13 11:10:04       32 阅读