ST语言编程手册.docx

上传人:b****5 文档编号:24836944 上传时间:2023-06-02 格式:DOCX 页数:231 大小:3.47MB
下载 相关 举报
ST语言编程手册.docx_第1页
第1页 / 共231页
ST语言编程手册.docx_第2页
第2页 / 共231页
ST语言编程手册.docx_第3页
第3页 / 共231页
ST语言编程手册.docx_第4页
第4页 / 共231页
ST语言编程手册.docx_第5页
第5页 / 共231页
点击查看更多>>
下载资源
资源描述

ST语言编程手册.docx

《ST语言编程手册.docx》由会员分享,可在线阅读,更多相关《ST语言编程手册.docx(231页珍藏版)》请在冰豆网上搜索。

ST语言编程手册.docx

ST语言编程手册

ST语言编程手册

1.ST基本原理3

1.1语言描述3

1.1.1语法图3

1.1.2语法图中的块3

1.1.3规则的意义(语义)3

1.2基本元素的语言3

1.2.1ST字符组3

1.2.2ST中的标识符3

1.2.2.1标识符的规则3

1.2.2.2标识符举例3

1.2.3预留标识符3

1.2.3.1保护标识符3

1.2.4数字和布尔值3

1.2.4.1整数3

1.2.4.2浮点数3

1.2.4.3指数3

1.2.4.4布尔值3

1.2.4.5数字的数据类型3

1.2.5字符串3

1.3ST源文件的结构3

1.3.1语句3

1.3.2注释3

1.4数据类型3

1.4.1基本数据类型3

1.4.1.1基本数据类型3

1.4.1.2基础数据类型的值的围限制3

1.4.1.3普通的数据类型3

1.4.1.4基础系统数据类型3

1.4.2用户定义的数据类型3

1.4.2.1用户定义的数据类型3

1.4.2.2用户定义的数据类型的语法(类型声明)3

1.4.2.3基础派生或派生的数据类型3

1.4.2.4派生数据类型ARRAY3

1.4.2.5派生的数据类型—枚举3

1.4.2.6派生的数据类型STRUCT(结构)3

1.4.3技术目标数据类型3

1.4.3.1技术目标数据类型的描述3

1.4.3.2轴属性的继承3

1.4.3.3技术目标数据类型的例子3

1.4.4系统数据类型3

1.5变量声明3

1.5.1变量声明的语法3

1.5.2所有变量声明的概述3

1.5.3变量或数据类型的初始值3

1.6赋值和表达式3

1.6.1赋值3

1.6.1.1赋值的语法图3

1.6.1.2基础数据类型的变量的数值指定3

1.6.1.3串基础数据类型的变量数值指定3

1.6.1.4位数据类型的变量的数值指定3

1.6.1.5派生的枚举数据类型的变量的数值指定3

1.6.1.6派生的阵列数据类型的变量的数值指定3

1.6.1.7派生的STRUCT数据类型的变量数值指定3

1.6.2表达式3

1.6.2.1表达式结果3

1.6.2.2表达式的解释顺序3

1.6.3运算对象3

1.6.4算术表达式3

1.6.4.1算术表达式的例子3

1.6.5关系表达式3

1.6.6逻辑表达式和位串行表达式3

1.6.7运算符的优先级3

1.7控制语句3

1.7.1IF语句3

1.7.2CASE语句3

1.7.3FOR语句3

1.7.3.1处理FOR语句3

1.7.3.2FOR语句规则3

1.7.3.3FOR语句例子3

1.7.4WHILE语句3

1.7.5REPEAT语句3

1.7.6EXIT语句3

1.7.7RETURN语句3

1.7.8WAIFORCONDITION语句3

1.7.9GOTO语句3

1.8数据类型转换3

1.8.1基础数据类型转换3

1.8.1.1隐式数据类型转换3

1.8.1.2显式数据类型转换3

1.8.2补充的转换3

2.功能,功能块和程序3

2.1创建和调用功能和功能块3

2.1.1定义功能3

2.1.2定义功能块3

2.1.3FC和FB的声明部分3

2.1.4FB和FC部分的语句3

2.1.5功能和功能块的调用3

2.1.5.1参数转移的原则3

2.1.5.2转移给输入参数的参数3

2.1.5.3参数转移给in/out参数3

2.1.5.4参数转移到输出参数(仅对FB)3

2.1.5.5参数访问时间3

2.1.5.6调用一个功能3

2.1.5.7调用功能块(实例调用)3

2.1.5.8在FB外访问FB输出参数3

2.1.5.9在FB外访问FB输入参数3

2.1.5.10FB调用时的错误源3

2.2功能和功能块的比较3

2.2.1例子说明3

2.2.2带注释的源文件3

2.3程序3

2.4表达式3

3.在SIMOTION中ST的集成3

3.1源文件部分的使用3

3.1.1源文件部分的使用3

3.1.1.1interface部分3

3.1.1.2implementation部分3

3.1.1.3程序组织单元(POU)3

3.1.1.4功能(FC)3

3.1.1.5功能块(FB)3

3.1.1.6程序3

3.1.1.7表达式3

3.1.1.8声明部分3

3.1.1.9语句部分3

3.1.1.10数据类型定义3

3.1.1.11变量声明3

3.1.2在ST源文件之间的导入和导出3

3.1.2.1单元标识符3

3.1.2.2一个导出单元的interface部分3

3.1.2.3一个导出单元的例子3

3.1.2.4在一个导入单元的USES语句3

3.1.2.5一个导入单元的例子3

3.2在SIMOTION中的变量3

3.2.1变量模型3

3.2.1.1单元变量3

3.2.1.2不保留的单元变量3

3.2.1.3保持单元变量3

3.2.1.4本地变量(静态和临时变量)3

3.2.1.5静态变量3

3.2.1.6临时变量3

3.2.2全局设备变量的使用3

3.2.3变量类型的存储围3

3.2.3.1存储区域的例子,有效关于KernelV3.13

3.2.3.2本地数据栈变量的存储要求(kernelV3.1或更高)3

3.2.4变量初始化的时间3

3.2.4.1保留全局变量的初始化3

3.2.4.2不保留的全局变量的初始化3

3.2.4.3本地变量的初始化3

3.2.4.4静态编程变量的初始化3

3.2.4.5功能块实例的初始化3

3.2.4.6技术目标的系统变量的初始化3

3.2.4.7全局变量的版本ID和下载时的初始化3

3.2.5变量和HMI设备3

3.3访问输入和输出(过程图像,I/O变量)3

3.3.1访问输入和输出的概述3

3.3.2直接访问和过程图像访问的重要特征3

3.3.3直接访问和循环任务的过程图像3

3.3.3.1直接访问和循环任务的过程图像的I/O地址的规则3

3.3.3.2为直接访问和循环任务的过程图像创建一个I/O变量3

3.3.3.3输入I/O地址的语法图3

3.3.3.4可能的I/O变量的数据类型3

3.3.4背景任务的固定过程图像的访问3

3.3.4.1背景任务的固定过程图像的绝对访问(绝对PI访问)3

3.3.4.2一个绝对过程图像访问的标识符语法3

3.3.4.3背景任务的固定过程图像的符号访问(符号PI访问)3

3.3.4.4可能的符号PI访问的数据类型3

3.3.4.5符号PI访问的例子3

3.3.4.6为访问背景任务固定过程图像而创建一个I/O变量3

3.3.5访问I/O变量3

3.4使用库3

3.4.1编辑一个库3

3.4.2库的know-how保护3

3.4.3从库中使用数据类型,功能和功能块3

3.5相同的标识符和命名空间的使用3

3.5.1相同的标识符的使用3

3.5.2命名空间3

3.6参考数据3

3.6.1交叉对照表3

3.6.1.1创建一个交叉对照表单3

3.6.1.2交叉对照表的容3

3.6.1.3交叉对照表的使用3

3.6.2程序结构3

3.6.2.1程序结构的容3

3.6.3代码属性3

3.6.3.1代码属性容3

3.7控制预处理器和pragma编辑3

3.7.1控制一个预处理器3

3.7.1.1预处理器语句3

3.7.1.2预处理器语句的例子3

3.7.2属性控制编辑器3

3.8跳转语句和标签3

4.错误源和程序调试3

4.1避免错误和有效编程的注释3

4.2程序调试3

4.2.1程序测试的模式3

4.2.1.1SIMOTION设备模式3

4.2.1.2life-sign监视的重要信息3

4.2.1.3life-sign监视参数3

4.2.2符号浏览器3

4.2.2.1符号浏览器的属性3

4.2.2.2使用符号浏览器3

4.2.3在watch表中监视变量3

4.2.3.1在watch表中的变量3

4.2.3.2使用watch表格3

4.2.4程序运行3

4.2.4.1程序运行:

显示代码位置和调用路径3

4.2.4.2参数调用栈程序运行3

4.2.4.3程序运行工具栏3

4.2.5程序状态3

4.2.5.1程序状态的属性3

4.2.5.2使用状态程序3

4.2.5.3程序状态的调用路径3

4.2.5.4参数调用路径状态程序3

4.2.6断点3

4.2.6.1设置断点的普通步骤3

4.2.6.2设置debug模式3

4.2.6.3定义debug任务组3

4.2.6.4debug任务组参数3

4.2.6.5debug表格参数3

4.2.6.6设置断点3

4.2.6.7断点工具栏3

4.2.6.8定义一个单独断点的调用路径3

4.2.6.9断点调用路径/任务选择参数3

4.2.6.10定义所有断点的调用路径3

4.2.6.11每个POU所有断点的调用路径/任务选择参数3

4.2.6.12激活断点3

4.2.6.13显示调用栈3

4.2.6.14断点调用栈参数3

4.2.7追溯3

1.ST基本原理

此章节描述了ST中的语言资源和使用方法。

请注意此章节中描述了功能、功能块和任务控制系统。

一个完整正式的语言描述包括语法图。

1.1语言描述

在本手册的下列章节中语法图用作语言描述的基础,为你提供了对ST语法结构的新认识。

1.1.1语法图

语法图是对语法结构的图形式的阐述。

结构是由一系列的规则描述组成。

可以基于现有的规则生成新的规则。

 

上图中的语法图需从左至右读。

需要注意下列规则结构:

●序列:

块的序列

●选项:

可以跳过的语句

●迭代:

一个或多个语句的重复

●替代:

Branch

1.1.2语法图中的块

块是基本元素。

下图显示了代表块而使用的符号类型。

要更多解释的基本元素由更多的语法图解释的复合单元

当输入源文本时需要注意格式化规则和非格式化规则。

比如:

把语法图中的块或元素转化为源文本(见帮助中的语言描述,第291页)

1.1.3规则的意义(语义)

规则能仅代表语言的格式结构。

意义(语义)一般不明显。

由于这个原因,如果意义很关键,则需要在规则旁边写上额外的信息。

●如果同类型的元素意义不同,需要附上额外的命名。

例如,额外指定每个十进制字符串元素—年,月或日(见308页)。

名称表示了用途

●重要的限制也列出。

如:

整数规则中对于—(负号),标明负号只能在SINT,INT,andDINT数据类型之前出现(见308页)

1.2基本元素的语言

ST语言的基本元素包括ST字符组,根据ST字符组(如:

语言命令)创建的预留标识符,自定义的标识符和数字。

ST字符组合预留标识符都是基本的元素(terminals),因为是无需另外的规则来描述。

自定义的标识符和数字不是terminals,因为它们是由另外的规则来描述。

在语法图中,终端是由圆形或者椭圆形符号来表示,但是复合单元由长方形来表示(见语法图中的块,第72页)。

下列容是主要终端的节选,作为全局预览,参考基本元素(terminals,第294页)

1.2.1ST字符组

ST使用ASCII字符组中的下列字母和数字

●从A到Z的大小字母

●从0到9的阿拉伯数字

字母和数字是最常用的字符。

例如,标识符是字母,数字和下划线的组合。

下划线是特殊的字符之一。

特殊字符在ST中有特定的含义(见第291页的正式语言描述和第294页的基本元素)

1.2.2ST中的标识符

标识符的ST中的名称。

这些名称可以根据系统来定义,例如语言命令等。

但是,名称可以是用户定义,比如常量、变量或功能。

1.2.2.1标识符的规则

标识符是由字母(A到Z,a到z)、数字(0到9)或单独的下划线随意组成,但是首字符必须是字母或者下划线。

大小写字母没有区分(比如,在编辑器中Anna和AnNa是一样的)。

一个正式的标识符可以由以下的语法图表示:

命名时,最好选用唯一的、有意义的命名,以便解释程序。

图表中的语法图声明了一个标识符的首字符必须是字母或者下划线。

下划线必须跟着字母或数字。

如:

不允许连续有两根或以上的下划线。

下划线可以跟着任意或者一系列的数字,下划线或字母。

在这唯一的例外是两条下划线可能不会同时出现。

 

1.2.2.2标识符举例

有效的标识符

无效的标识符

无效标识符

原因

4ter

第一次字符必须为一个字母或者下划线

*#AB

不允许特殊字符(除了下划线)

RR__20

不允许有两个下划线

Svalue

不允许出现空格,因为是特殊字符

Array

虽然ARRAY是一个正式有效的标识符,但是它是一个预留标识符。

,只能做预先定义使用。

这意味着你不能使用这个名称,比如:

变量

标识符不能用作

绝不定义标识符:

●与预留标识符一样

●与任务命名相匹配

注意:

如有可能,避免定义由下划线,struct,enum,或者command开始的标识符

虽然这些是有效的标识符,当你下载技术包时可能导致出现错误。

在基础系统和在技术包中命令词语,参数或数据类型以这些字符开始。

1.2.3预留标识符

预留标识符可能和预先定义的用途不一样。

你不能用预留标识符的名称来命名一个变量或者数据类型。

符号的大小写无区别。

所有标识符的预先定义的意义可以在SIMOTION基本功能功能手册中找到:

●·ST编程语言中的保护或者预留标识符,欲知更多,请见76页和81页

●·标准功能和功能定义的数据类型,欲知更多,请见251页

●系统的常规功能块

●SIMOTION设备系统功能、系统变量和数据类型

●技术目标的系统功能、系统变量和数据类型

1.2.3.1保护标识符

ST语言中的保护标识符全列在了下表中。

欲见所有预留词的简短描述,请见附录预留词语(第299页)和规则附录中的语法图(第307页)

 

3.2.3.2额外的预留标识符

下表包含了将来扩展所有的预留标识符。

 

1.2.4数字和布尔值

在ST中可以通过多种方式编写数字。

数字可以包括一个符号、一个小数点或者一个指数。

下列规则适用于所有的数字:

●数字中不能出现逗号和空格

●下划线允许作为视觉上的分隔线

●数字可以冠以正号(+)或者负号(—),如果没有使用符号

则认为数字为正。

●数字不能超过确定的最大值或最小值

1.2.4.1整数

整数既不包括小数点也不包括指数。

一个整数是一系列的数字,也可以在前面加上一个符号。

下列为有效的整数:

01+1-1

743-528060000-32211321

下列整数为无效,并且已经列出原因:

123,456不允许有逗号

36.整数不能包括小数点

102030不允许有空格

在ST中,你可以使用不同的编号体系来表示整数。

通过插入编号系统的关键字前缀来实现。

●2#为二进制

●8#为八进制

●16#为十六进制

十进制小数15的有效表示方式为:

2#11118#1716#F

1.2.4.2浮点数

下列为有效的浮点数

0.01.3-0.2827.602

0000.0+0.00074360_000.15-315.0066

下列为无效的浮点数

1.数字必须出现在小数点之前或之后

1,000.0不允许有逗号

1.333.333不允许有两个小数点

1.2.4.3指数

指数可以用来定义小数点的位置。

如果没有出现小数点,我们就假设位于数字的右侧。

指数必须为正整数或负整数。

基数10用字母E来表示。

3x108在ST中可以通过下列正确的浮点数来表示:

3.0E+83.0E83e+83E80.3E+9

0.3e930.0E+730e7

下列浮点数是无效的:

3.E+8数字必须出现在小数点之前或之后

8e2.3指数必须为一个整数

.333e-3数字必须出现在小数点之前或之后

30E8不允许有空格

1.2.4.4布尔值

布尔值是恒定常量。

必须通过0或者1,TRUE或者FALSE来表示。

1.2.4.5数字的数据类型

编辑器根据数值和使用来自动选择适合数字的基本数据类型。

也可以直接指定数据类型。

在数字前面输入数据类型(数字数据类型)和字符“#”。

 

1.2.5字符串

什么是字符串?

一个字符串是许多的0或在最前面或者最后面带撇号的多字符。

每个字符在串中

一个字符可以如下输入:

●可打印的字符(ASCIIcode$20to$7E,$80to$FF),除了美元符号(ASCIIcode$24)和撇号(ASCIIcode$27)之外,因为这些符号在字符串中有着特殊的含义。

●美元符号($)之后的相关字符的2位的十六进制ASCIIcode

●根据下表组成的两个字符的组合

1.3ST源文件的结构

一个ST源包含连续的文本,通过划分为逻辑块形成文本。

详细的规则见源文件章节(第169页)。

简单的总结如下:

●一个ST源文件是可以在项目中创建的一个逻辑单元,可以出现多次。

通常被称为一个单元。

●一个ST源文件的逻辑部分被称为Section(见表格)

●一个用户程序是所有程序源的集合(如:

ST源文件,MCC单元)

每个ST源文件的逻辑部分的开头和结尾都有特定关键词

没有必要自己对每个功能编程,可以使用SIMOTION系统组件。

这些是预先编程好的部分,如系统功能或技术目标的功能。

 

源文件部分

描述

单元语句(可选的)

包括ST的名称

interface部分

包括导入和导出变量的语句,类型和POU

implementation部分

包括ST源文件的执行部分

POU(程序组织单元)

ST源文件(程序,功能,功能块)单独的可执行部分

声明部分

包含声明(如变量和类型),可以被包含在interface部分和implementation部分,以及POU中

语句部分

包含一个POU的可执行语句

注意:

在线帮助中有很多可用的示单元的模板。

你可以使用作为一个新ST源文件的模板。

调用ST编辑器帮助,点击相关。

复制文本到ST编辑器窗口,根据你的需求修改模板。

示单元的模板包括此模板的复制件

1.3.1语句

一个POU的语句部分包括重复的单独语句。

跟着POU的声明部分,以POU的结束而结束。

首尾没有明显的关键词。

在ST中有三种基本语句:

●赋值:

从表达式到变量的赋值,见105页变量声明

●控制语句:

语句的分支的重复,见130页控制

●子程序执行:

功能和功能块,见147页功能,功能块和程序

1.3.2注释

注释用作编制文件,同时也帮助用户理解源文件部分。

在编制后,对于程序执行没有任何意义。

注释有两种:

●线注释

●块注释

线注释由//开始。

编辑器将进行跟随的文本,知道线注释结束

你可以在很多线之后输入一个块注释,如果(首尾都是*)先于它。

当插入注释时注意:

●在注释中可以使用完整的扩展ASCII字符集

●在线型注释中可以忽略字符组(*和*)

●不允许块注释的嵌套。

但是,在块注释中你可以嵌套线注释。

●可以在任意位置插入注释,但是不能在保持的规则中插入,如标识符的名称中。

欲知更多规则信息,见291页语言描述源。

 

1.4数据类型

使用数据类型来定义如何在程序源中使用变量或常量值。

下列数据类型对用户是可用的:

●基本数据类型

●用户定义的数据类型(UDT)

—简单的导数

—阵列

—枚举

—结构

●技术目标数据类型

●系统数据类型

见基本数据类型(第90页)

技术目标数据类型(第101页)

系统数据类型(第104页)

1.4.1基本数据类型

1.4.1.1基本数据类型

基本数据类型定义了不能分成更小的单元的数据结构。

一个基本数据类型描述了有固定长度的存储区域,代表了数字数据、整数、浮点值、时间、日期和字符串。

所有的基本数据类型在下表中列出:

类型

预留词

位宽度

值的围

位数据类型:

此类型的数据使用1位、8位、16位或32位。

此数据类型的变量初始值为0

BOOL

1

0,1orFALSE,TRUE

字节

BYTE

8

16#0to16#FF

WORD

16

16#0to16#FFFF

双字

DWORD

32

16#0to16#FFFF_FFFF

数字类型:

此类数据类型可用于处理数值。

此数据类型的变量初始值为0(全为整数)或0.0(全为浮点数)

短整数

SINT

8

-128to127(-2**7to2**7-1)

无符号短整数

USINT

8

0to255(0to2**8-1)

整数

INT

16

-32_768to32_767(-2**15to2**15-1)

无符号整数

UINT

16

0to65_535(0to2**16-1)

双整数

DINT

32

-2_147_483_648to2_147_483_647(-2**31to2**31-1)

无符号双整数

UDINT

32

0to4_294_96_7295(0to2**32-1)

浮点数(perIEEE-754)

REAL

32

-3.402_823_466E+38to1.175_494_351E−38,0.0,

+1.175_494_351E−38to+3.402_823_466E+38

精度:

23位尾数(对应6位小数),8位指数,1位字符

长浮点数(IEEE-754)

LREAL

64

-1.797_693_134_862_315_8E+308to-2.225_073_858_507_201_4E−308,0.0,

+2.225_073_858_507_201_4E−308to+1.797_693_134_862_315_8E+308

精度:

52位尾数(对应15位小数),11位指数,1位字符

时间类型:

此类数据用于表示不同的时间或日期

1分钟的增量的持续时间

TIME

32

T#0d_0h_0m_0s_0mstoT#49d_17h_2m_47s_295ms

天,小时,分钟的数值最多为2位。

里程碑最多为3位。

初始为T#0d_0h_0m_0s_0ms

1天的增量的日期

DATE

32

D#1992-01-01toD#2200-12-31需要考虑闰年,年份为4位,月份和天数为2位。

初始为D#0001-01-01

分钟为单位的当日时间

TIME_OF_DAY(TOD)

64

TOD#0:

0:

0.0toTOD#23:

59:

59.999天,小时,分钟的数值最多为2位。

里程碑最多为3位。

初始为TOD#0:

0:

0.0

日期和时间

DATE_AND_TIME(DT)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1