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

    文章

    239

    浏览量

    17033

原文标题:SCL 语句的赋值

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

收藏 人收藏

    评论

    相关推荐

    为什么指针之间不要随意赋值呢?

    指针之间也不能随意赋值
    的头像 发表于 03-28 17:13 499次阅读
    为什么指针之间不要随意<b class='flag-5'>赋值</b>呢?

    mapgis如何给区属性赋值

    MapGIS是一款功能强大的地理信息系统软件,它提供了丰富的功能和工具,使用户能够对地理数据进行快速、高效的管理和分析。其中一个重要的功能就是给区属性赋值,即对地图中的区域进行分类和标记,以便更好
    的头像 发表于 02-23 17:49 2062次阅读

    proteus属性赋值工具怎么用

    Proteus是一种电路设计和仿真软件,在进行电路设计和仿真时,属性赋值是非常重要的步骤。属性赋值工具可以帮助用户快速有效地配置电路元件的属性,从而实现电路的准确仿真。下面是关于Proteus属性
    的头像 发表于 02-23 17:19 4080次阅读

    assign语句和always语句的用法

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

    verilog同步和异步的区别 verilog阻塞赋值和非阻塞赋值的区别

    Verilog是一种硬件描述语言,用于设计和模拟数字电路。在Verilog中,同步和异步是用来描述数据传输和信号处理的两种不同方式,而阻塞赋值和非阻塞赋值是两种不同的赋值方式。本文将详细解释
    的头像 发表于 02-22 15:33 1527次阅读

    为什么TC397对外设赋值这么慢?

    现在遇到了一个问题,再给GTM.ATOMX.CHX的SR0或SR1赋值时一句赋值语句的周期要130ns左右,相当于几十个指令周期;而TI的DSP芯片对相应PWM寄存器赋值一条
    发表于 02-05 09:05

    西门子博途中的LAD、FBD与SCL编程

    选择要在其后插入新程序段的程序段。 在快捷菜单中,选择命令“插入 STL 程序段”(Insert STL network) 或“插入 SCL 程序段” (Insert SCL network)。
    发表于 01-16 09:33 2624次阅读
    西门子博途中的LAD、FBD与<b class='flag-5'>SCL</b>编程

    单片机if是什么语句

    单片机中的if语句是一种条件语句,用于根据不同的条件执行不同的代码块。在程序执行过程中,条件语句用来决定是否执行特定的代码段。在单片机编程中,if语句是最常见和最基础的一种条件
    的头像 发表于 01-05 14:04 1623次阅读

    单片机中for语句的运用

    单片机中的for语句是一种常见的循环控制结构,用于重复执行一段代码块,可以简化程序的编写和减少代码量。本文将详细介绍单片机中for语句的运用。 一、for语句的基本结构和功能 for语句
    的头像 发表于 01-05 14:02 2163次阅读

    STEP7博图中的SCL设置和属性解析

    SCL V11中,可以检查“扩展状态信息”。与SCL V5.x相反,始终创建最小化的调试信息,这允许进行基本调试!
    的头像 发表于 01-02 09:58 1809次阅读
    STEP7博图中的<b class='flag-5'>SCL</b>设置和属性解析

    oracle执行sql查询语句的步骤是什么

    Oracle数据库是一种常用的关系型数据库管理系统,具有强大的SQL查询功能。Oracle执行SQL查询语句的步骤包括编写SQL语句、解析SQL语句、生成执行计划、执行SQL语句、返回
    的头像 发表于 12-06 10:49 890次阅读

    oracle sql 定义变量并赋值

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

    SIMATIC S7-1500 PLC S7-SCL SCL详解

    函数和函数块在西门子的大中型PLC编程中,应用十分广泛,前介绍过函数和函数块,其编程采用的是LAD语言,而本节采用SCL语言编程,以下仅用一个例子介绍函数,函数块使用方法也类似。
    的头像 发表于 12-06 09:17 916次阅读
    SIMATIC S7-1500 PLC S7-<b class='flag-5'>SCL</b> <b class='flag-5'>SCL</b>块<b class='flag-5'>详解</b>

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

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

    Java提供了哪些注释语句

    comments): 单行注释以双斜杠(//)开头,可以在代码的任何位置使用。它们是用来提供对代码的短暂解释或调试信息的,不会对程序的运行产生任何影响。示例如下: // 这是一个单行注释 int x = 5 ; // 这是一个赋值语句 多行注释(Multi-line c
    的头像 发表于 11-28 16:56 578次阅读