今天给大家讲一下什么是局部变量、全局变量、临时变量、静态变量,这些变量都有什么区别,以及在西门子S7-1200中这些变量如何来使用。
在编写带参数子程序时需要使用局部变量。在PLC变量表和DB块中定义的变量称为全局变量,在全部程序中都有效。在某个块的变量声明表中定义的变量称为局部变量,只在创建它的块中有效。
为了增强通用性,方便移植到别的项目,子程序FC和FB中一般只有局部变量。在局部变量表中,名称列用来定义局部变量的符号名,数据类型列用来定义局部变量的数据类型。
在FC和FB的变量声明表中,形式变量也就是形式参数,用来在子程序块和调用它的程序块之间传递数据。形式参数INPUT是指输入到子程序块的参数,在子程序块中只能读取输入值。OUTPUT是指从子程序块返回的参数,在子程序块中只能写入返回值。INOUT是输入并从子程序块返回的参数,在子程序块中既可以读也可以写,输入值和返回值使用同一个地址。FC中的RETURN返回值只有一个,主要用于FC和调用该FC的其它程序交换数据,反应该FC的执行情况。在TEMP行下定义的变量称为临时变量,用来在该程序块执行时暂时存储数据,当退出该程序块时,这些程序将丢失。请注意,临时变量不能赋予初始值。如果有一些变量在调用结束后仍需要保持原值,则必须将这些变量定义为静态变量,即在STATIC行下定义的变量,静态变量只能用在FB中。
赋值给FB的背景数据块用作静态变量的存储区。因为FB带有存储区,即背景数据块,所以形式变量和静态变量可以赋予初始值。在FB中定义的静态变量不在生成的指令块中显示。
在程序中用符号名访问变量时,全局变量的符号名加引号、局部变量的符号名前带#号以示区分。
调用FC时必须用实际参数代替形式参数。调用FB时必须指定背景数据块,实际参数的值被存储在该FB的背景数据块中。如果在块调用时没有实际参数分配给形式参数,则在程序执行时将采用上一次存储在背景数据块中的参数值。
以上就是今天给大家讲解的内容,我们简单介绍了局部变量、全局变量、临时变量、静态变量,这些变量都有什么区别,以及在西门子S7-1200中这些变量如何来使用。
如果大家想要学习更多西门子PLC编程方面的知识,可以持续关注本号,我会在以后的文章中继续为大家分享。