北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8640811

西门子SCL编程入门教程连载(2)-变量

上一篇文章我们对西门子SCL语言进行了简单的介绍,今天这篇文章,我们来介绍下SCL语言的变量。

cover.png

变量(Variable),是指在程序运行过程中其值可以被改变的量。与“变量”相对应的是“常量(Constant)”。顾名思义,常量的值在程序运行过程中保持不变。

与变量相关的几个概念包括:

  1. 变量的名称;

  2. 变量的数据类型;

  3. 变量的作用域;

  4. 变量的生命周期;

变量的名称简称为变量名,用来唯一标识该变量。变量名必须满足编程语言的命名约定,比如S7-200 SMART规定变量名称不能以数字开头,不能使用关键词,长度不能超过23个字符等等。

变量的数据类型用来表明其占用存储区的大小及支持的操作方式。比如,布尔型数据占用存储区的一个位,而字节型数据占用一个字节,整型数据占用两个字节等等。

变量的作用域是指变量的作用范围。根据作用域的不同,变量可分为全局变量和局部变量;

变量的生命周期是指变量的存在时间。全局变量和静态变量的生命周期与系统程序相同,即在整个系统程序运行期间都有效;而临时变量只在其所属的程序块被执行期间有效。一旦该程序块退出运行,该变量的内存就被释放;当程序块再次运行时,其值重新被初始化。更多关于静态变量与临时变量的内容,请参考我之前写的这篇文章:

什么是静态变量?它与临时变量有什么区别?(深入解读)

编程的本质,是通过各种指令,对数据(变量+常量)进行操作的过程。在西门子SCL的编程中,变量必须先声明才能使用。

下面这张图是西门子博途V14中SCL编辑器对功能(FC)的编辑界面。

SCL_VARIABLE.PNG

编辑器的上部是变量的声明部分。其中包括:输入(Input)、输出(Output)、输入及输出(InOut)、临时变量(Temp)、常量(Consta)及返回值(Return)。

在输入(Input)、输出(Output)、输入及输出(InOut)中声明的变量作为函数块(FC)的形参,可以在上级调用中赋予不同的值。

比如下面这张图为该功能(FC)添加电机启停控制的变量参数:

SCL_PARAM.PNG

在OB1中调用该FC的代码如下图:

motor_control.PNG

临时变量只在本程序块中有效,它一般用来保存程序运行过程的中间值,当FC的调用结束后,其存储空间被释放。也就是说,临时变量的值不能一直保存。

但有时候,我们需要程序运行的中间结果也能保存。比如,做一个累加器,我们希望其累加的结果在下一次调用时也是存在的,而不是每次都从0开始累加。

怎么办呢?这就要用到静态变量。

在西门子SCL编程中,FC中不能声明静态变量。要使用静态变量,必须使用功能块(FB)。

下面这张图是FB的编辑界面,其中Static栏就是用来声明静态变量的。

FB.PNG

变量的声明还必须为其指定数据类型。明确了数据类型,编译器才知道需要为该变量分配多大的地址空间;明确了数据类型,才能知道该变量支持哪些指令。

更多关于数据类型的文章,可以在本站内部搜索一下。

欢迎扫描下方的二维码关注我们的微信公众号。

founderchip.png

西门子SCL编程入门教程连载(2)-变量

来源:本站|   大小:519KB|   下载次数:2722次

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论