SCADE Suite安全状态机

一、安全状态机

1、状态机组成

SSM(Safe State Machine)

控制流方面建模

原理:状态A在满足某个条件时会发生迁移,从当前状态A跳转到状态B,这个系统就是状态机

组成:状态(State)迁移(Transition)

关系:操作符[1:n]状态机(嵌套/并行)[1:n]状态(迁移)

每个状态机内有且仅有一个初始状态,边框加粗表示

2、创建状态机

创建一个SCADE工程,创建操作符,双击操作符,打开建模框,使用下面左边的[New State Machine]创建一个SSM,使用右边[New State]为SSM添加状态

并可使用鼠标连线,添加迁移,创建完成状态如下:

二、状态的设置

1、初始状态和终止状态

初始状态:加粗线框

终止状态:双线框

init和final状态切换

  • 选中状态,右键

  • 工具栏选中

  • 属性[Declaration]勾选

2、状态的编辑

状态创建、状态属性设置

状态内行为设置

  • 无行为逻辑

    没有添加行为逻辑(default)

  • 嵌套基于模型设计的方式

    适用于状态布局范围完全可以容纳行为元素的情况

  • 隐藏基于模型设计的方式

    适用于状态布局范围无法容纳行为元素的情况

  • 嵌套SCADE文本设计的方式

    适用于控制行为便于用SCADE语言表达的情况

三、迁移的设置

1、迁移

迁移用于实现从源状态到目的状态的跳转功能,其属性有 条件(Condition) 和 **行为(Actions)**组成

两属性通过[/]分割,左边为condition(布尔表达式),右边为行为(赋值语句)

  • 条件

    布尔表达式,判断是否满足迁移条件,用于时序方面的控制,times,last关键字

  • 行为

    赋值语句,必须以分号结尾,定义状态迁移的那个周期要完成的操作

    注意区别迁移线上的赋值语句和状态内的赋值语句的区别

    ​ 位于状态内的赋值语句,只要该状态处于激活状态,每个周期都要运行

    ​ 处于迁移线上的赋值语句,只在迁移触发的那个周期运行

2、迁移的触发

触发条件:触发条件为真(true) 源状态在前一个周期处于激活状态

3、迁移和初始状态

  • 第一周期初始状态的迁出迁移条件都不满足,则初始状态就是激活态
  • 在之后的运行周期,初始状态和其他状态没有分别

4、迁移的编辑

  • 创建一个迁移

  • 迁移的属性

    选中迁移,在属性[Activation]中设置condition和Actions

  • 迁移的优先级

    当某状态多个迁移到其他状态的条件同时满足时,优先级最高的迁移触发

    迁移线上的数字即为优先级,数字越小优先级越高

    也可在属性中修改优先级

  • 迁移的类型

    可通过工具条中三个符号进行设置

    • 强迁移

      迁移条件满足时,当前周期的源状态不再是激活态,而目标状态变为激活态

    • 弱迁移

      迁移条件满足时,当前周期的源状态依然是激活态,而目标状态变为非激活态

    • 同步迁移

      配合状态的终止符Final属性联合设计,达到同步功能

  • 迁移的分叉

    将不同迁移标识的相同部分合并起来

  • 迁移线形状

    曲线、直线

  • 迁移的历史属性

    当再次回到某状态时,该状态的行为是重新开始(Restart)还是接着上一次离开之前的情况继续(Resume

    可通过属性中[Declaration]进行设置

    Restart

    模型

    仿真

    • Start为false时,一直处于State1

    • 修改Start为true,下一个周期跳转到State2

    • 进入State2后,A每一个周期自增1,若A>101则进入State3,若在State2时Reset变为true(Restart),则A重新计数

      A一直自增1

      直到A>101,进入State3

      若A在计数时,Reset为true,则下一个周期开始A重新从1计数(Restart)

Resume

​ 模型

​ 仿真

四、状态机中变量的隐式赋值

1、变量的隐式赋值

**目的:**简化模型设计

**Last:**只要没有显示赋值,便取上一周期的数值

**Default:**只要没有显示赋值,便取默认设置的数值(优先级更高)

设置方法

2、定义变量的Last值

3、定义变量Default值

4、同时定义Last和Default

5、同时不定义Last和Default

均没有定义时,若变量没有显示赋值,便取上一周期的值

五、Signal信号量

在所定义的整个操作符中均可见

Signal用于在状态机之间传输信号

SCADE Sutie 状态机之Transaction History相关推荐

  1. SCADE Suite 状态机之变量隐式赋值

    SCADE Suite 状态机之变量隐式赋值 1.变量的隐式赋值 **目的:**简化模型设计 **Last:**只要没有显示赋值,便取上一周期的数值 **Default:**只要没有显示赋值,便取默认 ...

  2. 软件测试 atp,基于SCADE模型的车载ATP软件测试方法

    摘要: 列车自动防护(Automatic Train Protection,ATP)是列控系统的核心,负责监控列车速度,防止列车超速,是典型的安全苛求系统.作为安全苛求系统,对车载ATP进行严格的测试 ...

  3. 浅析分布式系统之体系结构 - 事务与隔离级别(多对象、多操作)上篇

    事务的本质 数千年前两河流域的楔形文字书写关于贸易.法律.账户等内容的大量文献中就已经提到事务.为了保证整个交易过程中的信息处理(例如:某笔交易)的完整.正确以及可追述,人们需要将各种信息完整正确的记 ...

  4. Fedora 15 安装与配置一览

    Fedora 15 将于2011.5.24日发布,今日离正式版发布还有4天.笨兔兔这里提前给大家支招用好Fedora 15.下面是笨兔兔在安装.配置Fedora 15 过程中的小结,希望给大家配置自己 ...

  5. 计算机科学精彩帖子收集

    linux源码 LXR 源自"the Linux Cross Referencer",中间的"X"形象地代表了"Cross".与 Sourc ...

  6. FACEBOOK’S CALIBRA

    APPS FACEBOOK'S CALIBRA IS A SECRET WEAPON FOR MONETIZING ITS NEW CRYPTOCURRENCY The newly formed su ...

  7. 【English】Grab-Verify Your Email Address

    Grab抓住[ɡræb]  secure安全可靠的[sɪˈkjʊr] confirmation确认书[ˌkɑːnfərˈmeɪʃn] subsequently随后[ˈsʌbsɪkwəntli] To ...

  8. linux下面升级 Python版本并修改yum属性信息

    最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...

  9. Oracle里PO自动售货如何做,Oracle R12采办接收流程(PR-PO-RCV-AP-Payment)

    Oracle R12采购接收流程(PR-PO-RCV-AP-Payment) 1.Requisitions 路径:Purchasing > Requisitions > Requisiti ...

最新文章

  1. JVM调优实战:G1中的to-space exhausted问题
  2. 自学python爬虫要多久-入门Python爬虫要学习多久?
  3. JMeter:报错(Content type 'text/plain;charset=UTF-8' not supported)
  4. QT的QDesignerTaskMenuExtension类的使用
  5. Transformation available that removes all elements from form message type
  6. 用python做采集时相对路径转换成绝对路径
  7. php中global与$_GLOBALS[]的区别
  8. 使用docker+tomcat部署jenkins
  9. 【后台任务】在线程池线程上运行代码(6)
  10. esp8266 蓝牙耳机_基于Qualcomm QCC3001/TWS迷你型入耳式蓝牙耳机方案
  11. 人人之间“不简单”,关系图谱“有一套”
  12. 会员消费积分管理系统c语言,三步教你玩转会员系统——会员等级、折扣、积分...
  13. Objective-C 程序设计(第4版)
  14. linux下双网卡绑定,Linux下双网卡绑定bond0
  15. 软件开发随笔系列一——分布式架构实现
  16. JSON字符串与protobuf互转
  17. Concise,一款为hexo设计的简约而漂亮的主题
  18. Chromedriver 安装
  19. c#解决将json中的\u6b66\u6c49等字符转换成中文
  20. 华硕x580nv拆机_华硕x550v怎么拆机 华硕x550v拆机教程【图文步骤】

热门文章

  1. 可逆计算:下一代软件构造理论
  2. 一个人有文化,到底有多重要?
  3. 苹果a10处理器_苹果发布新品,A10处理器,1599元起!超级不划算!
  4. 工作流框架flowable6与activiti7的选择
  5. 静态成员及友元(小题)
  6. vue-element页面说明文档
  7. 【小程序从0到1】小程序项目的创建(项目目录结构)
  8. 提交按钮变灰色不可用状态
  9. Spring Cloud Document翻译(二)--Spring Cloud Commons
  10. 【Windows】C盘右键扩展卷是灰色的怎么办?如何扩展C盘分区?