首页 / 行业
西门子SCL逻辑块中声明的变量或参数类型
2021-08-25 18:07:00
每类本地变量或参数,都有用各自关键字对标识的自己的声明子域。每个子域包含允许的详细的声明子域,子域可按任何顺序定位。
下表显示能够在各种逻辑块中声明的变量或参数类型。
变量作为:
静态变量VAR
...
END_VAR
临时变量VAR_TEMP
...
END_VAR
块参数作为:
输入参数VAR_INPUT
...
END_VAR
输出参数VAR_OUTPUT
...
END_VAR
输入/输出参数VAR_IN_OUT
...
END_VAR
静态变量
静态变量是本地变量,块运行时其值被保留。用来保存功能块的值,并包含在相应实例数据块中。
句法(Syntax)
静态变量在VAR / END_VAR声明区内声明。该声明子域是FB声明部分的一部分。编译之后,该子域和块参数子域决定了指定的实例数据块的结构。
在该子域能够:
建立变量,指定变量的数据类型和初始化变量。
如果要在当前FB中作为本地实例调(其他的)FB,则将一个被调用的FB声明为静态变量。
例子(Example)
VAR
RUN :INT;
MEASARR :ARRAY [1..10] OF REAL;
SWITCH :BOOL;
MOTOR_1,MOTOR_2 :FB100; // 实例声明
END_VAR
存取(Access)
从如下代码部分存取变量:
块内存取(Access within the block):在功能块的代码部分能够存取在声明部分声明的变量。详细的解释在标题为“赋值语句(Value Assignment)”节。
用实例DB进行外部存取(External access using the instance DB): 用索引存取能够从其他块存取变量,如DBx.变量。
临时变量
Temporary Variables
临时变量在本地属于逻辑块,不产生静态内存区域,他们位于CPU的堆栈里。本块正在运行时,其值才被保留。临时变量不能从声明它的块外存取。一个OB、FB或FC首次执行前,临时变量的值是不确定的。也不能被初始化。
如果只要求在OB、FB或者FC执行时记录中间结果,可以声明临时数据。
句法(Syntax)
临时变量在VAR_TEMP / END_VAR声明部分里声明。该声明部分是FB、FC或OB的一部分。通过变量声明以声明变量名和数据类型。
例子(Example)
VAR_TEMP
BUFFER 1 : ARRAY [1..10] OF INT ;
AUX1, AUX2 : REAL ;
END_VAR
存取(Access)
变量总是从逻辑块的代码部分存取,变量是在声明部分声明的(内部存取)。参见题为“赋值语句(Value Assignment)”节。
块参数
Block Parameters
参数是占位符,块被实际地调用时才指定一个值。在块里声明的占位符认为是指派了作为实际参数的值的形式变量。且参数提供了一个块间交换信息的机制。
块参数的类型(Types of Block Parameters)
被实际参数指定的形式输入参数(数据流入块)。
形式输出参数用来传递输出参数(数据 从块流出)。
有输入和输出参数功能的形式输入/输出参数。
句法(Syntax)
在功能块或函数的声明部分制作形式参数的声明,根据在三种声明子域内的参数类型组合参数。在变量声明中,指定参数名和数据类型。初始化只可能对一个FB的输入和输出参数。
声明形式参数时,不仅只能用基本的、复杂的和用户定义数据类型,也可用参数数据类型。
例子(Example)
VAR_INPUT // 输入参数
MY_DB : BLOCK_DB ;
CONTROLLER : DWORD ;
TIMEOFDAY : TIME_OF_DAY ;
END_VAR
VAR_OUTPUT // 输出参数
SETPOINTS: ARRAY [1..10] of INT ;
END_VAR
VAR_IN_OUT // 输入/输出参数
SETTING : INT ;
END_VAR
存取(Access)
块参数可从逻辑块的代码部分进行存取如下:
内部存取: 从在其声明部分已经声明该参数的逻辑块的代码部分存取。在题为“赋值语句(Value Assignment)”和“表达式、操作和地址(Expressions, Operations and Addresses)”节有解释。
用实例数据块外部存取: 用特定的DB能够存取功能块的块参数。
最新内容
手机 |
相关内容
光耦仿真器简介和优势
光耦仿真器简介和优势,仿真器,参数,接收器,设计方案,耦合,器件,光耦仿真器是一种用于模拟光耦合器件的工具,它可以帮助工程师在设计STC15W芯片A/D、D/A转换的简单使用
STC15W芯片A/D、D/A转换的简单使用,简单使用,转换,芯片,模拟,输入,输出,STC15W系列芯片是一种高性能的单片机芯片,具有丰富的外设资消除“间隙”:力敏传感器如何推动新
消除“间隙”:力敏传感器如何推动新颖的HMI设计,传感器,智能手机,交互,交互方式,操作,用户,随着科技的不断发展,人机交互界面(HMI)的设电源滤波器的设计原则和参数选择
电源滤波器的设计原则和参数选择,设计原则,参数,选择,滤波器,噪声,高频,AM26LV32CDR电源滤波器是用来净化电源信号的装置,能够阻止高变频器过载保护和过流保护有什么区
变频器过载保护和过流保护有什么区别?,变频器,频率,超过,损害,方法,负载,BCP55变频器过载保护和过流保护是两种不同的保护机制,用于保应用在阀门控制中的直流有刷驱动芯
应用在阀门控制中的直流有刷驱动芯片,芯片,控制,支持,远程控制,电动,调节,直流有刷驱动芯片是一种用于控制直流电机的IPB072N15N3G全极性霍尔芯片LM224DR2G可实现共
全极性霍尔芯片LM224DR2G可实现共享充电宝中位置检测功能,位置,检测,充电,宝中,芯片,输出,全极性霍尔芯片LM224DR2G是一种用于位置开关电源供应器的功能、应用场景以
开关电源供应器的功能、应用场景以及重要性,应用场景,开关电源,高效率,超过,能源,车载充电器,开关电源供应器(Switching Power Suppl