ST语言编程手册Word文档格式.docx

上传人:b****3 文档编号:7719774 上传时间:2023-05-09 格式:DOCX 页数:168 大小:137.88KB
下载 相关 举报
ST语言编程手册Word文档格式.docx_第1页
第1页 / 共168页
ST语言编程手册Word文档格式.docx_第2页
第2页 / 共168页
ST语言编程手册Word文档格式.docx_第3页
第3页 / 共168页
ST语言编程手册Word文档格式.docx_第4页
第4页 / 共168页
ST语言编程手册Word文档格式.docx_第5页
第5页 / 共168页
ST语言编程手册Word文档格式.docx_第6页
第6页 / 共168页
ST语言编程手册Word文档格式.docx_第7页
第7页 / 共168页
ST语言编程手册Word文档格式.docx_第8页
第8页 / 共168页
ST语言编程手册Word文档格式.docx_第9页
第9页 / 共168页
ST语言编程手册Word文档格式.docx_第10页
第10页 / 共168页
ST语言编程手册Word文档格式.docx_第11页
第11页 / 共168页
ST语言编程手册Word文档格式.docx_第12页
第12页 / 共168页
ST语言编程手册Word文档格式.docx_第13页
第13页 / 共168页
ST语言编程手册Word文档格式.docx_第14页
第14页 / 共168页
ST语言编程手册Word文档格式.docx_第15页
第15页 / 共168页
ST语言编程手册Word文档格式.docx_第16页
第16页 / 共168页
ST语言编程手册Word文档格式.docx_第17页
第17页 / 共168页
ST语言编程手册Word文档格式.docx_第18页
第18页 / 共168页
ST语言编程手册Word文档格式.docx_第19页
第19页 / 共168页
ST语言编程手册Word文档格式.docx_第20页
第20页 / 共168页
亲,该文档总共168页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ST语言编程手册Word文档格式.docx

《ST语言编程手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《ST语言编程手册Word文档格式.docx(168页珍藏版)》请在冰点文库上搜索。

ST语言编程手册Word文档格式.docx

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

1.2.2ST中的标识符

标识符的ST中的名称。

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

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

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

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

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

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

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

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

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

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

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

有效的标识符

无效的标识符

无效标识符

原因

4ter

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

*#AB

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

RR__20

不允许有两个下划线

Svalue

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

Array

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

,只能做预先定义使用。

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

变量

标识符不能用作

绝不定义标识符:

●与预留标识符一样

●与任务命名相匹配

注意:

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

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

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

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

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

符号的大小写无区别。

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

●·

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

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

●系统的常规功能块

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

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

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

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

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

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

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

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

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

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

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

则认为数字为正。

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

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

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

下列为有效的整数:

01+1-1

743-528060000-32211321

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

123,456不允许有逗号

36.整数不能包括小数点

102030不允许有空格

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

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

●2#为二进制

●8#为八进制

●16#为十六进制

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

2#11118#1716#F

下列为有效的浮点数

0.01.3-0.2827.602

0000.0+0.00074360_000.15-315.0066

下列为无效的浮点数

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

1,000.0不允许有逗号

不允许有两个小数点

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

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

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

基数10用字母E来表示。

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

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

0.3e930.0E+730e7

下列浮点数是无效的:

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

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

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

30E8不允许有空格

布尔值是恒定常量。

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

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

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

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

什么是字符串?

一个字符串是许多的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编辑器窗口,根据你的需求修改模板。

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

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

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

首尾没有明显的关键词。

在ST中有三种基本语句:

●赋值:

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

●控制语句:

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

●子程序执行:

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

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

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

注释有两种:

●线注释

●块注释

线注释由//开始。

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

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

当插入注释时注意:

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

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

●不允许块注释的嵌套。

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

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

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

1.4数据类型

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

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

●基本数据类型

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

—简单的导数

—阵列

—枚举

—结构

●技术目标数据类型

●系统数据类型

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

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

系统数据类型(第104页)

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

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

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

类型

预留词

位宽度

值的范围

位数据类型:

此类型的数据使用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

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

无符号短整数

USINT

0to255(0to2**8-1)

整数

INT

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

无符号整数

UINT

0to65_535(0to2**16-1)

双整数

DINT

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

无符号双整数

UDINT

0to4_294_96_7295(0to2**32-1)

浮点数(perIEEE-754)

REAL

-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

T#0d_0h_0m_0s_0mstoT#49d_17h_2m_47s_295ms

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

里程碑最多为3位。

初始为T#0d_0h_0m_0s_0ms

1天的增量的日期

DATE

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

初始为D#0001-01-01

分钟为单位的当日时间

TIME_OF_DAY(TOD)

TOD#0:

0:

0.0toTOD#23:

59:

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

初始为TOD#0:

0.0

日期和时间

DATE_AND_TIME(DT)

DT#1992-01-01-0:

0.0toDT#2200-12-31-23:

59.999

日期和时间包括日期和时间的类型。

初始为DT#0001-01-01-0:

串类型:

此类数据代表字符串,每个字符使用特定字节的数字来编码。

串的长度可以在声明中定义。

用"

["

和"

]"

来表示长度。

STRING[100]。

默认的设置包含80个字符。

指定(初始)字符的数字可以少于声明的长度。

1字节/字符的串

STRING

ASCIIcode$00到$F的所有字符都是允许的。

默认’’(空字符串)

当导出变量到其他系统时,需要考虑对应的目标系统的数据类型的值的范围

基础数据类型的值的范围作为常量可用。

普通的数据类型被用作系统功能和系统功能块的输入和输出参数。

子程序被称做包含在普通数据类型中的每个数据类型的变量。

下表列出了可用的普通数据类型:

在SIMOTION系统中,表格中指出的数据类型使用与基础数据类型类似。

和许多系统功能一起使用。

标识符

用途

StructAlarmId

alarmld的数据类型用于识别唯一的信息。

alarmld用于生成信息。

见功能手册SIMOTION基本功能。

初始为STRUCTALARMID#NIL

StructTaskId

taskld的数据类型是在执行系统中识别唯一的任务。

初始为STRUCTTASKID#NIL

无效的基础数据类型数值的符号常量

符号常量

数据类型

意义

STRUCTALARMID#NIL

无效AlarmId

STRUCTTASKID#NIL

无效TaskId

用户定义的数据类型(UDT)通过在声明章节中随后的源文件部分和以下内容来创建TYPE/END_TYPE:

●interface部分

●implementation部分

●程序组织单元(POU)

可以使用在声明章节中创建的数据类型。

源文件部分决定了类型声明的范围。

对于每个声明的数据类型,需要遵循以下:

1.名称:

数据类型的名称必须遵循标识符的规则。

2.数据类型声明

数据类型包括(见第96页,基础派生或派生数据类型)

-基本数据类型

-之前声明的UDT

-TO数据类型

-系统数据类型

下列数据类型声明也是可能的:

-阵列数据类型声明(见派97页生数据类型ARRAY)

-枚举数据类型声明(见派99页生数据类型Enumerator)

-STRUCT数据类型声明(见派100页生数据类型STRUCT)

括号中的内容只可以参考的章节,相关的数据类型声明详细描述在这些章节中。

3.可选的初始值

你可以为每个数据类型指定初始值。

如果你声明一个数据类型的变量,初始值被指定为变量。

例外:

在STRUCT数据类型中,每个单独的组件的初始值范围规定在数据类型声明中

见变量或数据类型的初始化(第107页)

完整的UDT声明用END_TYPE关键词来结束。

你可以使用TYPE/END_TYPE结构来创建任意数据类型的数字。

你可以使用定义的数据类型来声明变量或参数。

只要语法在图标中可见,UDT可以用任意方式嵌套。

例如:

你可以使用之前定义的UDT或嵌套结构作为一个数据类型声明。

类型声明仅可以连续使用,并不是以嵌套结构的形式。

你可以学习如何在所有变量声明的概述(见106页)中声明变量和参数,以及如何在语法中使用UDT来数值指定(见113页)。

在数据类型的派生中,一个基础或用户定义的数据类型(UDT)使用TYPE/END_TYPE结构来定义。

TYPE标识符:

基本数据类型{:

=initialization};

END_TYPE

用户定义数据类型{:

一旦你已声明数据类型,你可以定义派生的数据类型标识符的变量。

这等同于声明变量。

派生数据类型ARRAY

ARRAY派生数据类型包括用TYPE/END_TYPE结构来定义的同种数据类型。

下图的语法图展示了这种数据类型,在预留标识符OF之后这种数据类型声明得更加详细。

ARRAY数据类型声明{:

索引声明书描述了阵列的限制:

●阵列限制声明了索引值的最大和最小值。

可以使用常量或常量表达式。

数据类型为DINT(或转化为DINT-详见141页基础数据类型转化)

●阵列限制必须用两个句号隔开

●全部的索引声明须在方括号中

●索引可以为一个数据类型DINT(或转化为DINT-详见141页基础数据类型转化)的整数值

如果运行时阵列超限,程序会产生过程故障(见SIMOTION基本功能功能手册)

用数据类型声明来声明阵列组件的数据类型。

本章节中所描述的所有的选项都可以用作数据类型,甚至是用户定义数据(UDT)。

有多种不同的阵列类型:

●一维阵列类型为升序排列的一列数据元素

●二维阵列是一个包括行和列的数据表。

第一维是指行数,第二维是指列数。

●更高维的阵列类型是二维阵列类型的扩展

二维阵列可以与带行和列的表格比较。

可以通过多层次的类型声明来创建二维或多维阵列。

在例子中,你可以定义:

●表格列a[1]到a[3]作为一维阵列,将包含整数

●表格行矩阵1[1]到矩阵2[4]作为一个阵列,但是作为使用表格中的列创建的阵列的数据类型声明。

当你在数据类型声明中声明阵列时,创建了一个第二维度。

可以使用此方式创建更多的维度。

使用创建此表格的数据类型来声明一个变量。

使用方括号为表格中的每个维度寻址。

派生的数据类型—枚举

在枚举的数据类型中,使用受限的标识符或名称来定义TYPE/END_TYPE结构。

枚举数据类型声明{:

一旦你已声明了标识符的数据类型,可以在枚举中定义变量。

在语句部分,可以从这些变量的定义标识符(枚举元素)表单中数值指定。

可以直接声明数据类型:

把枚举数据类型标识符和“#”放在枚举前面。

可以包含带enum_type#MIN和enum_type#MAX结构的枚举数据类型的第一和最后一个值,enum_type为枚举数据类型标识符。

可以包含带ENUM_TO_DINT转化功能的枚举元素的数值。

你将会得知枚举数据类型为系统数据类型。

枚举数据类型可以为一个结构的部分,意味着在用户定义的数据结构中可以在任意的低级别中被找到。

派生的数据类型STRUCT,或者结构包括TYPE/END_TYPE结构的固定数量的组件。

这些组件的数据类型可以变化:

STRUCT数据类型声明;

END_TYPE

下列为数据类型:

基础数据类型

●之前声明过的UDT

●TO数据类型

●ARRAY数据类型声明

你可以选择给组件赋初始值。

继续关于变量初始值或数据类型(见107页变量或数据类型的初始值)

下列数据声明不可以在组件声明中直接使用

●STRUCT数据类型声明

●枚举数据类型声明

解决方案:

用之前提到的声明在组件声明中预先声明UDT(用户定义数据类型)

这允许嵌套STRUCT数据类型

同样可能会发现STRUCT数据类型为系统数据类型

这个例子说了了一个UDT是如何定义的,在变量声明中又是如何使用的这种数据类型

可以用技术目标来声明变量。

下表给出了可用的技术目标的数据类型。

例如,可以用数据类型posaxis来声明一个变量,然后指配一个是适合的位置轴。

可以通过结构访问技术目标的元素。

轴的继承声明所有的数据类型,系统变量和TOdriveAxis的功能都全部包含在TOpositionAxis中。

同样,位置轴页包含在TOfollowingAxis中,下列轴是在TOpathAxis中,有以下影响:

●如果一个功能或功能块,除了driveAxis数据类型的输入参数之外,调用时你可以使用positionaxis或者followingaxis或pathaxis。

●如果有一个功能或功能块,除了posAxis数据类型的输入参数之外,调用时你可以使用followingaxis或pathaxis。

以下,你将看见可选的技术目标数据类型(你将在SIMOTION基本功能功能手册中找到强制使用TO数据类型的变量)的变量使用。

第二个例子介绍了无需使用TO数据类型的变量的替代方法。

TO功能将被用为在程序的主要部分启用一个轴,因此轴能定位。

在定位操作结束后,现行的轴的位置将使用结构访问来进行记录。

第一个例子使用了TO数据类型的变量来演示用途。

第二个例子未使用TO数据类型的变量。

你将在SIMOTION运动控制功能描述中招待技术目标的组态和配置细节。

有很多可用的喜悦数据类型,无需预先声明就可以使用。

每个导入的技术包提供了一库的系统数据类型。

额外的系统数据类型可以找到

●在普通标准功能中的参数(见SIMOTION基本功能功能手册)

●在普通标准功能模块中的参数(见SIMOTION基本功能功能手册)

●在SIMOTION设备的系统变量中(见相关的参数手册)

●在SIMOTION设备的系统功能参数中(见相关的参数手册)

●在技术目标的系统变量和组态(见相关的参数手册)

●在技术目标的系统功能参数中(见相关的参数手册)

1.5变量声明

一个变量定义了可在ST源文件中使用的变量内容的数据项。

一个变量包括一个可以自由选择的标识符(如myVar1))和一个数据类型(如BOOL)。

预留的标识符(见75页预留标识符)不能作为标识符使用。

变量通常是根据源文件声明部分的相同模式来创建的。

●通过合适的关键词来开始一个声明块(如VAR,VAR_GLOBAL-见106页所有变量声明的概述

●遵循实际的变量声明(见图表),也可以如你所愿尽可能的创建,顺序是任意的。

●以END_VAR来结束一个声明块

●你可以创建更多的声明块(要有同样的关键词)

注意

●变量的名称必须是一个标识符,如,只能包含字母,数字或下划线,但是不能包含特殊字符。

●允许作为数据类型的下列项:

—UDT(用户定义数据类型)

—系统数

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2