您现在的位置是:首页 > PLC技术 > PLC技术
SIMATIC S7 STL代码块的基于源文件的编程
来源:艾特贸易2017-06-05
简介通过在 SIMATIC 管理器中生成一个空的 STL 程序源文件,开始面向源文件的编程。通过打开程序源文件启动编辑器,并立即启动输入程序,例如利用用于功能块的关键字,或用 Insert → B
通过在SIMATIC管理器中生成一个空的STL程序源文件,开始面向源文件的编程。通过打开程序源文件启动编辑器,并立即启动输入程序,例如利用用于功能块的关键字,或用Insert→BlockTemplate,使用块模板。
表3-3给出了块编程所需的关键字,以及使用关键字的顺序。
表3-3 编程STL代码块的关键字
1.块标题
在块类型之后,变量声明之前,在块标题中编程块的属性。块标题中所有的信息都是可选的,可以省略单个说明或所有的说明。有块属性的描述和配置。
在块类型行之后立即用关键字“TITLE=”,可以输入最多64个字符的块标题。随后,以双斜线开始,以一个或多个注释行的形式输入块注释。块注释可长达18KB。
2.变量声明
声明段包含块内局部变量的定义,即只在块内使用的变量的定义。在每一个块内,不能编程每一种变量类型(如表3-3所示)。如果不使用变量类型,省略声明段,包括关键字。
变量的声明段包括名字、数据类型、默认值,还有变量注释(可选项),例如:
Quantity: INT:=+500; //Units per batch
不是所有的变量都能够配置默认值(例如,暂态局部数据)。。
代码块的声明顺序是固定的(如表中所示)。变量类型内的顺序是任意的,与数据类型的联系,以及在存储器中所需空间的大小也是已定好的。
3.程序段
代码块的程序段用关键字BEGIN开始,用END_xxx结束。对于块类型ORGANIZATION_BLOCK、FUNCTION_BLOCK或FUNCTION,用ORGANIZATION_BLOCK、FUNCTION_BLOCK或FUNCTION取代xxx。关键字END_xxx代替块结束BE。
在关键字和程序代码中,编辑器接受字母的大小写。用一个或多个空格或者制表符把OP代码(操作码)和地址(操作数)彼此分开。为了改善源文件文本的可读性,在字之间放置一个或多个空格或制表符。在程序编辑器中,用Options→Customize在“Source text”(源文本)选项卡上给不同类型的文本设置字体和颜色。
必须用分号结束每行语句,分号之后写语句注释,但它必须以双斜线开始,可能超出这一行的末尾。也可以在一行上输入几条语句,彼此用分号分开。
在行开始处用两条斜线开始一行的注释,一行注释由不超过160个字符组成,不能包括制表符和非打印字符。
为了有更好的可读性和逻辑性,把块中的程序分成网络。在图形化语言中,细化分成网络是非常必要的,在STL中没有必要。网络没有功能化的目的,在STL中,它们简单地用来把程序在逻辑上分成相关的段落,以改善可读性,使得更容易、更有效地写注释。在非常长的程序中,在已编译的块中能够直接寻址网络是一个优点,因此可以非常快地到达程序的某个特别位置(用Edit→Go To→Network/Row指定网络数,或者与网络的开头有关的行数)。
网络以关键字NERWORK开始,下一行的关键字“TITLE=”允许用户为每一个网络给出一个最多64个字符的标题。随后的行注释形成网络注释,可能长达18KB。STL自动地从1开始,为每个网络编号,每个块最大为999。对于块和网络注释,每个块的有效存储空间为64KB。
注意:当调用块时,所传递的块参数以它们在被调用块中声明时的相同顺序列出。
4.基于源文件编程中块的顺序
要调用块,编辑器需要一些信息,包括块标题、要预置的块参数和在每种情况下块参数具有的说明类型以及数据类型。这就意味着必须首先编程被调用功能和功能块,或者从“最低水平”的块开始编程(所以把它们放在源文件的开始位置)。
然而只编程具有块参数的块标题就足够了(就像是只有一个“接口描述”)。在以后的时间里,可以用程序提供这个接口描述(但要保证不能修改已经被调用块的接口!否则,编辑器在输出块调用时,会报告有时间标记冲突)。
对在源文件中的块,建议采用下列顺序:
●用户自定义数据类型UDT
●全局数据块
●以“最低”调用水平块开始的功能和功能块
●实例数据块(也可以直接位于配置的功能块后)
●组织块
对于很长的用户程序,应该把整个程序源文件细分成单个容易处理的文件,例如一直细分成在程序中使用的“程序标准”、在技术上或在功能上可定义的子程序和一个“主程序”,它包含了组织块。
5.具有实例数据块的功能块举例
图3-8给出了具有静态局部数据的功能块的例子,以及与此功能块有关的已编程的实例数据块。
图3-8 STL功能块和相关的实例数据块编程举例
点击排行
