0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解SCL语句如何赋值

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2021-04-16 09:43 次阅读

当一个值被指定,变量的当前值被通过表达式指定的新的值代替。此表达式也能够包含函数标识符,其被语句激活,然后返回相应的值(返回值)。

如下图所示,在赋值符右边的表达式被求值,且得到的值作为结果设定给其名字写在赋值符左边的变量。函数允许的变量如下图所示:

8bddf868-9e40-11eb-8b86-12bb97331649.png

能够将同类型的不同变量指定给基本数据类型的每个变量和每个表达式。

例子(Example)

FUNCTION_BLOCK FB12

VAR 声明变量类型

SWITCH_1 : INT ; 整数

SWITCH_2 : INT ;

SETPOINT_1 : REAL ;浮点数

SETPOINT_2 : REAL ;

QUERY_1 : BOOL ; 位

TIME_1 : S5TIME ;时间计时器

TIME_2 : TIME ;时间

DATE_1 : DATE ;日期

TIMEOFDAY_1 : TIME_OF_DAY ;时间和日期

END_VAR

BEGIN

// 给变量赋予常量值

SWITCH_1 := -17 ;

SETPOINT_1 := 100.1 ;

QUERY_1 := TRUE ;

TIME_1 := T#1H_20M_10S_30MS ;

TIME_2 := T#2D_1H_20M_10S_30MS ;

DATE_1 := D#1996-01-10 ;

// 给变量赋予变量值

SETPOINT_1 := SETPOINT_2 ;

SWITCH_2 := SWITCH_1 ;

// 给变量赋予表达式

SWITCH_2 := SWITCH_1 * 3 ;

END_FUNCTION_BLOCK

STRUCT和UDT类型变量的赋值

STRUCT和UDT类型变量是表示一个完整结构或一个结构元素的结构化变量。

下面是有效结构变量的例子:

Image //结构的标识符

Image.element //结构元素的标识符

Image.arr //在一个结构中的一维数组标识符

Image.arr[2,5] //在一个结构中的数组元素的标识符

赋值一个完整结构

一个完整结构只能赋值给另一个完整结构,两个结构内部的名称和数据类型应完全匹配。下面的赋值是有效的:

structname_1 := structname_2 ;

赋值结构元素

能够将一个同类型变量、同类型表达式或另一个结构部件赋值给任何结构元素。

能够通过说明结构的标识符来引用结构元素,结构元素的标识符用一个句点分开。下面的赋值是有效的:

structname_1.element1 := Value ;

structname_1.element1 := 20.0 ;

structname_1.element1 := structname_2.element1 ;

structname_1.arrname1 := structname_2.arrname2 ;

structname_1.arrname[10] := 100 ;

例子:

FUNCTION_BLOCK FB3

VAR

AUXVAR : REAL ;

MEASVAL : STRUCT //目标结构

VOLTAGE :REAL ;

RESISTANCE :REAL ;

SIMPLEARR : ARRAY [1..2, 1..2] OF INT ;

END_STRUCT ;

PROCVAL : STRUCT //源结构

VOLTAGE : REAL ;

RESISTANCE : REAL ;

SIMPLEARR : ARRAY [1..2, 1..2] OF INT ;

END_STRUCT ;

END_VAR

BEGIN

//赋值给一个完整结构

MEASVAL := PROCVAL ;

//赋值给地个结构元素

MEASVAL.VOLTAGE := PROCVAL.VOLTAGE ;

//将一个结构元素赋值给同类型变量

AUXVAR := PROCVAL.RESISTANCE ;

//将一个常量赋值给结构元素

MEASVAL.RESISTANCE := 4.5;

//将一个常量赋值给一维数组元素

MEASVAL.SIMPLEARR[1,2] := 4;

END_FUNCTION_BLOCK
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SCL
    SCL
    +关注

    关注

    1

    文章

    238

    浏览量

    16867

原文标题:SCL 语句的赋值

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    assign语句和always语句的用法

    Assign语句和Always语句是在硬件描述语言(HDL)中常用的两种语句,用于对数字电路建模和设计。Assign语句用于连续赋值,而Al
    的头像 发表于 02-22 16:24 480次阅读

    oracle sql 定义变量并赋值

    赋值可以通过使用PL/SQL语句块或使用SQL*Plus工具来实现。下面将详细介绍这两种方法以及它们的具体用法。 使用PL/SQL语句块定义和赋值变量: 在Oracle SQL中,P
    的头像 发表于 12-06 10:46 731次阅读

    SIMATIC S7-1500 PLC S7-SCL赋值详解

    通过赋值,一个变量接受另一个变量或者表达式的值。在赋值运算符“;=”左边的是变量,该变量接受右边的地址或者表达式的值。
    的头像 发表于 11-29 09:24 1217次阅读

    考虑x和z在verilog条件语句中的使用情况

    首先,考虑x和z在verilog条件语句中的使用情况,然后我们再考虑在verilog中用x和z给其他reg/wire赋值的情况。
    的头像 发表于 11-02 09:40 615次阅读
    考虑x和z在verilog条件<b class='flag-5'>语句</b>中的使用情况

    阻塞赋值与非阻塞赋值

    ”=“阻塞赋值与”
    的头像 发表于 09-12 09:06 643次阅读
    阻塞<b class='flag-5'>赋值</b>与非阻塞<b class='flag-5'>赋值</b>

    SCL中的 EN/ENO 机制概述

    SCL 中的 EN/ENO 机制概述 在 SCL 程序段中,可以通过赋值来改变 ENO。为此,请写入“ENO:=TRUE”或“ENO:=FALSE”,或使用 BOOL 数据类型的变量。当激活“自动
    的头像 发表于 08-23 10:08 1267次阅读

    C语言中赋值运算符详解

    在C语言中,赋值运算符用于将一个值赋给变量。
    发表于 08-18 16:38 1030次阅读
    C语言中<b class='flag-5'>赋值</b>运算符<b class='flag-5'>详解</b>

    C语言中if语句、if-else语句和switch语句详解

    在C语言中,有三种条件判断结构:if语句、if-else语句和switch语句
    发表于 08-18 16:36 1013次阅读
    C语言中if<b class='flag-5'>语句</b>、if-else<b class='flag-5'>语句</b>和switch<b class='flag-5'>语句</b><b class='flag-5'>详解</b>

    在verilog语句中,非阻塞赋值和小于等于均使用符号“<=”,如何区分<=所表示的含义?

    编译时会根据语句出现的位置自动识别是逻辑运算还是赋值运算。 在“表达式”(expression)中,\"<=\"作为逻辑比较运算符;在“语句”(statement
    发表于 08-08 09:32

    浅析SCL语句赋值

    当一个值被指定,变量的当前值被通过表达式指定的新的值代替。此表达式也能够包含函数标识符,其被语句激活,然后返回相应的值(返回值)。
    的头像 发表于 08-04 09:42 550次阅读
    浅析<b class='flag-5'>SCL</b><b class='flag-5'>语句</b>的<b class='flag-5'>赋值</b>

    一文了解阻塞赋值与非阻塞赋值

    今天给大家普及一下阻塞赋值和非阻塞赋值的相关知识
    的头像 发表于 07-07 14:15 1455次阅读
    一文了解阻塞<b class='flag-5'>赋值</b>与非阻塞<b class='flag-5'>赋值</b>

    博图SCL语言FOR循环的用法及典型案例

    SCL
    YS YYDS
    发布于 :2023年06月25日 00:06:13

    博途中SCL赋值运算

    可通过赋值运算,可以将一个表达式的值分配给一个变量。赋值表达式的左侧为变量,右侧为表达式的值。
    的头像 发表于 06-19 10:57 4212次阅读

    SCL语言的Case语句如何使用以及实例

    CASE语句用于根据不同的条件执行不同的操作。以下是使用CASE语句的示例: 示例1:根据输入的值执行不同的操作 在示例1中,根据Input的值,会执行相应的操作。如果Input的值为1, 则执行
    的头像 发表于 06-19 09:57 996次阅读
    <b class='flag-5'>SCL</b>语言的Case<b class='flag-5'>语句</b>如何使用以及实例

    Verilog中的If语句和case语句介绍

    我们在上一篇文章中已经看到了如何使用程序块(例如 always 块来编写按顺序执行的 verilog 代码。 我们还可以在程序块中使用许多语句来控制在我们的verilog设计中信号赋值的方式
    的头像 发表于 05-11 15:37 3124次阅读
    Verilog中的If<b class='flag-5'>语句</b>和case<b class='flag-5'>语句</b>介绍