将结构化文本可编程逻辑控制器代码转换为SMV模型的工具。

st2smv的Python项目详细描述


概述

st2smv是用于转换可编程逻辑控制器(plc)的工具 将代码转换为形式化模型,并检查模型是否满足 属性(例如,时序逻辑规范)。顾名思义, st2smv可以处理用结构化 文本(ST)编程语言,并用SMV语言生成模型。

基本用途

运行命令

st2smv --help

查看如何使用st2smv的摘要。

考虑以下带有3个布尔变量的st程序:

x1 := x2;
x2 := NOT x1;
x3 := NOT (x1 = x2);

以及规范

SPEC AG(x3);

要将文件code.st转换为模型,请运行命令

st2smv --convert --input code.st --output-directory outdir

其中outdir是要保存输出的目录。你 现在应该有以下文件:

.
├── code.st
├── outdir
│   ├── ast.json
│   └── model.json
└── spec.smv

ast.json包含代码的抽象语法树(ast),并且 model.json是模型,存储在中间表示中。

要生成SMV模型(包括规范),请运行命令

st2smv --combine --input outdir/model.json spec.smv | tee outdir/model.smv

它将打印模型并将其写入文件 outdir/model.smv

最后,运行命令

NuSMV outdir/model.smv

检查规格(这是真的)。

模型结构

正在进行…

高级使用

正在进行…

安装

要从python包索引(pypi)安装st2smv,请运行 命令

pip install st2smv

如果你已经从另一个来源获得这个包并且希望 要安装该副本,请运行命令

pip install st2smv_directory

其中st2smv_directory是此目录的位置(即 包含文件setup.py的目录。

依赖性

st2smv将可编程逻辑控制器代码转换为形式模型,然后必须是 使用解算器分析。当前版本的st2smv生成 可以使用 SynthSMV,必须是 单独安装。NuSMV(synthsmv是 基于)可用于检查某些(但不是全部)模型 st2smv产生。

许可证

GPLv3+:GNU将军 公共许可证,版本3,或(由您选择)任何更高版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Play Framework 2.1中的简单搜索?   java:Springbeans的真正工作原理   java不能从字符串中提取数字   不同管道中的java共享ExecutionHandler   在Java中,如何为扩展comparator的类实现多个comparator方法?   通用混沌Java   java问题:从自定义类获取要添加到驱动程序类的形状   java如何利用HikariCP和Hibernate?   eclipse如何执行Java应用程序?   用户界面Java Swing:如何将JLabel的文本绑定到JTable选定行中的列?   java替换JPanel元素而不添加到面板的末尾?   java Sets根据action命令在按钮组中选择了特定的jradiobutton   在java中如何将从控制台添加的字符串中的元素添加到列表中   处理未在浏览器上运行的Java签名小程序   java如何在我的安卓应用程序中单击任意按钮时禁用音频音调?   编码如何在Java中将十六进制转换为utf8编码的字符串   java JSF Spring安全集成问题   java如何更正Oracle for Windows中的字符?   java Spark结构化流媒体:当前批次落后   java Hibernate根据最匹配的条件排序结果