1、 .ST语言编程手册目录1. ST基本原理31.1语言描述31.1.1语法图31.1.2语法图中的块31.1.3规则的意义(语义)31.2基本元素的语言31.2.1 ST字符组31.2.2 ST中的标识符31.2.2.1标识符的规则31.2.2.2标识符举例31.2.3预留标识符31.2.3.1保护标识符31.2.4数字和布尔值31.2.4.1整数31.2.4.2浮点数31.2.4.3指数31.2.4.4布尔值31.2.4.5数字的数据类型31.2.5字符串31.3 ST源文件的结构31.3.1语句31.3.2注释31.4数据类型31.4.1基本数据类型31.4.1.1基本数据类型31.4.1
2、.2基础数据类型的值的范围限制31.4.1.3普通的数据类型31.4.1.4基础系统数据类型31.4.2用户定义的数据类型31.4.2.1用户定义的数据类型31.4.2.2用户定义的数据类型的语法(类型声明)31.4.2.3基础派生或派生的数据类型31.4.2.4 派生数据类型ARRAY31.4.2.5 派生的数据类型枚举31.4.2.6派生的数据类型STRUCT(结构)31.4.3技术目标数据类型31.4.3.1技术目标数据类型的描述31.4.3.2轴属性的继承31.4.3.3技术目标数据类型的例子31.4.4系统数据类型31.5变量声明31.5.1变量声明的语法31.5.2所有变量声明的概
3、述31.5.3变量或数据类型的初始值31.6赋值和表达式31.6.1赋值31.6.1.1赋值的语法图31.6.1.2基础数据类型的变量的数值指定31.6.1.3串基础数据类型的变量数值指定31.6.1.4位数据类型的变量的数值指定31.6.1.5派生的枚举数据类型的变量的数值指定31.6.1.6派生的阵列数据类型的变量的数值指定31.6.1.7派生的STRUCT数据类型的变量数值指定31.6.2表达式31.6.2.1表达式结果31.6.2.2表达式的解释顺序31.6.3运算对象31.6.4算术表达式31.6.4.1算术表达式的例子31.6.5关系表达式31.6.6逻辑表达式和位串行表达式31.
4、6.7运算符的优先级31.7控制语句31.7.1 IF语句31.7.2 CASE语句31.7.3 FOR语句31.7.3.1处理FOR语句31.7.3.2 FOR语句规则31.7.3.3FOR语句例子31.7.4WHILE语句31.7.5REPEAT语句31.7.6EXIT语句31.7.7RETURN语句31.7.8WAIFORCONDITION语句31.7.9GOTO语句31.8数据类型转换31.8.1基础数据类型转换31.8.1.1隐式数据类型转换31.8.1.2显式数据类型转换31.8.2补充的转换32.功能,功能块和程序32.1创建和调用功能和功能块32.1.1定义功能32.1.2定义
5、功能块32.1.3FC和FB的声明部分32.1.4FB和FC部分的语句32.1.5功能和功能块的调用32.1.5.1参数转移的原则32.1.5.2转移给输入参数的参数32.1.5.3参数转移给in/out参数32.1.5.4参数转移到输出参数(仅对FB)32.1.5.5参数访问时间32.1.5.6调用一个功能32.1.5.7调用功能块(实例调用)32.1.5.8 在FB外访问FB输出参数32.1.5.9在FB外访问FB输入参数32.1.5.10FB调用时的错误源32.2功能和功能块的比较32.2.1例子说明32.2.2带注释的源文件32.3程序32.4表达式33.在SIMOTION中ST的集成
6、33.1源文件部分的使用33.1.1源文件部分的使用33.1.1.1interface部分33.1.1.2implementation部分33.1.1.3程序组织单元(POU)33.1.1.4功能(FC)33.1.1.5功能块(FB)33.1.1.6程序33.1.1.7表达式33.1.1.8声明部分33.1.1.9语句部分33.1.1.10数据类型定义33.1.1.11变量声明33.1.2在ST源文件之间的导入和导出33.1.2.1单元标识符33.1.2.2一个导出单元的interface部分33.1.2.3一个导出单元的例子33.1.2.4在一个导入单元的USES语句33.1.2.5一个导入
7、单元的例子33.2在SIMOTION中的变量33.2.1变量模型33.2.1.1单元变量33.2.1.2不保留的单元变量33.2.1.3保持单元变量33.2.1.4本地变量(静态和临时变量)33.2.1.5静态变量33.2.1.6临时变量33.2.2全局设备变量的使用33.2.3变量类型的存储范围33.2.3.1存储区域的例子,有效关于KernelV3.133.2.3.2本地数据栈变量的存储要求(kernel V3.1或更高)33.2.4变量初始化的时间33.2.4.1保留全局变量的初始化33.2.4.2不保留的全局变量的初始化33.2.4.3本地变量的初始化33.2.4.4静态编程变量的初始
8、化33.2.4.5功能块实例的初始化33.2.4.6技术目标的系统变量的初始化33.2.4.7全局变量的版本ID和下载时的初始化33.2.5变量和HMI设备33.3访问输入和输出(过程图像,I/O变量)33.3.1访问输入和输出的概述33.3.2直接访问和过程图像访问的重要特征33.3.3直接访问和循环任务的过程图像33.3.3.1 直接访问和循环任务的过程图像的I/O地址的规则33.3.3.2为直接访问和循环任务的过程图像创建一个I/O变量33.3.3.3输入I/O地址的语法图33.3.3.4可能的I/O变量的数据类型33.3.4背景任务的固定过程图像的访问33.3.4.1背景任务的固定过程
9、图像的绝对访问(绝对PI访问)33.3.4.2一个绝对过程图像访问的标识符语法33.3.4.3背景任务的固定过程图像的符号访问(符号PI访问)33.3.4.4可能的符号PI访问的数据类型33.3.4.5符号PI访问的例子33.3.4.6为访问背景任务固定过程图像而创建一个I/O变量33.3.5访问I/O变量33.4使用库33.4.1编辑一个库33.4.2库的know-how保护33.4.3从库中使用数据类型,功能和功能块33.5相同的标识符和命名空间的使用33.5.1相同的标识符的使用33.5.2命名空间33.6参考数据33.6.1交叉对照表33.6.1.1创建一个交叉对照表单33.6.1.2
10、交叉对照表的内容33.6.1.3交叉对照表的使用33.6.2程序结构33.6.2.1程序结构的内容33.6.3代码属性33.6.3.1代码属性内容33.7控制预处理器和pragma编辑33.7.1控制一个预处理器33.7.1.1预处理器语句33.7.1.2预处理器语句的例子33.7.2属性控制编辑器33.8跳转语句和标签34.错误源和程序调试34.1避免错误和有效编程的注释34.2程序调试34.2.1程序测试的模式34.2.1.1SIMOTION设备模式34.2.1.2life-sign监视的重要信息34.2.1.3life-sign监视参数34.2.2符号浏览器34.2.2.1符号浏览器的属
11、性34.2.2.2使用符号浏览器34.2.3在watch表中监视变量34.2.3.1在watch表中的变量34.2.3.2使用watch表格34.2.4程序运行34.2.4.1程序运行:显示代码位置和调用路径34.2.4.2参数调用栈程序运行34.2.4.3程序运行工具栏34.2.5程序状态34.2.5.1程序状态的属性34.2.5.2使用状态程序34.2.5.3程序状态的调用路径34.2.5.4参数调用路径状态程序34.2.6断点34.2.6.1设置断点的普通步骤34.2.6.2设置debug模式34.2.6.3定义debug任务组34.2.6.4debug任务组参数34.2.6.5debu
12、g表格参数34.2.6.6设置断点34.2.6.7断点工具栏34.2.6.8定义一个单独断点的调用路径34.2.6.9断点调用路径/任务选择参数34.2.6.10定义所有断点的调用路径34.2.6.11每个POU所有断点的调用路径/任务选择参数34.2.6.12激活断点34.2.6.13显示调用栈34.2.6.14断点调用栈参数34.2.7追溯31. ST基本原理此章节描述了ST中的语言资源和使用方法。请注意此章节中描述了功能、功能块和任务控制系统。一个完整正式的语言描述包括语法图。1.1语言描述在本手册的下列章节中语法图用作语言描述的基础,为你提供了对ST语法结构的新认识。1.1.1语法图语
13、法图是对语法结构的图形式的阐述。结构是由一系列的规则描述组成。可以基于现有的规则生成新的规则。上图中的语法图需从左至右读。需要注意下列规则结构:序列:块的序列选项:可以跳过的语句迭代:一个或多个语句的重复替代:Branch1.1.2语法图中的块块是基本元素。下图显示了代表块而使用的符号类型。 要更多解释的基本元素 由更多的语法图解释的复合单元当输入源文本时需要注意格式化规则和非格式化规则。比如:把语法图中的块或元素转化为源文本(见帮助中的语言描述,第291页)1.1.3规则的意义(语义)规则能仅代表语言的格式结构。意义(语义)一般不明显。由于这个原因,如果意义很关键,则需要在规则旁边写上额外的
14、信息。如果同类型的元素意义不同,需要附上额外的命名。例如,额外指定每个十进制字符串元素年,月或日(见308页)。名称表示了用途 重要的限制也列出。如:整数规则中对于(负号),标明负号只能在SINT, INT, and DINT数据类型之前出现(见308页)1.2基本元素的语言ST语言的基本元素包括ST字符组, 根据ST字符组(如:语言命令)创建的预留标识符,自定义的标识符和数字。ST字符组合预留标识符都是基本的元素(terminals),因为是无需另外的规则来描述。自定义的标识符和数字不是terminals,因为它们是由另外的规则来描述。在语法图中,终端是由圆形或者椭圆形符号来表示,但是复合单
15、元由长方形来表示(见语法图中的块,第72页)。下列内容是主要终端的节选,作为全局预览,参考基本元素(terminals,第294页)1.2.1 ST字符组ST使用ASCII字符组中的下列字母和数字从A到Z的大小字母从0到9的阿拉伯数字字母和数字是最常用的字符。例如,标识符是字母,数字和下划线的组合。下划线是特殊的字符之一。特殊字符在ST中有特定的含义(见第291页的正式语言描述和第294页的基本元素)1.2.2 ST中的标识符标识符的ST中的名称。这些名称可以根据系统来定义,例如语言命令等。但是,名称可以是用户定义,比如常量、变量或功能。1.2.2.1标识符的规则标识符是由字母(A到Z,a到z
16、)、数字(0到9)或单独的下划线随意组成,但是首字符必须是字母或者下划线。大小写字母没有区分(比如,在编辑器中Anna和AnNa是一样的)。一个正式的标识符可以由以下的语法图表示:命名时,最好选用唯一的、有意义的命名,以便解释程序。图表中的语法图声明了一个标识符的首字符必须是字母或者下划线。下划线必须跟着字母或数字。如:不允许连续有两根或以上的下划线。下划线可以跟着任意或者一系列的数字,下划线或字母。在这唯一的例外是两条下划线可能不会同时出现。1.2.2.2标识符举例有效的标识符无效的标识符无效标识符原因4ter第一次字符必须为一个字母或者下划线*#AB不允许特殊字符(除了下划线)RR_20不
17、允许有两个下划线S value不允许出现空格,因为是特殊字符Array虽然ARRAY是一个正式有效的标识符,但是它是一个预留标识符。,只能做预先定义使用。这意味着你不能使用这个名称,比如:变量标识符不能用作绝不定义标识符:与预留标识符一样与任务命名相匹配注意:如有可能,避免定义由下划线,struct,enum,或者command开始的标识符虽然这些是有效的标识符,当你下载技术包时可能导致出现错误。在基础系统和在技术包中命令词语,参数或数据类型以这些字符开始。1.2.3预留标识符预留标识符可能和预先定义的用途不一样。你不能用预留标识符的名称来命名一个变量或者数据类型。符号的大小写无区别。所有标识
18、符的预先定义的意义可以在SIMOTION基本功能功能手册中找到:ST编程语言中的保护或者预留标识符,欲知更多,请见76页和81页标准功能和功能定义的数据类型,欲知更多,请见251页系统的常规功能块SIMOTION设备系统功能、系统变量和数据类型技术目标的系统功能、系统变量和数据类型1.2.3.1保护标识符ST语言中的保护标识符全列在了下表中。欲见所有预留词的简短描述,请见附录预留词语(第299页)和规则附录中的语法图(第307页)3.2.3.2额外的预留标识符下表包含了将来扩展所有的预留标识符。1.2.4数字和布尔值在ST中可以通过多种方式编写数字。数字可以包括一个符号、一个小数点或者一个指数
19、。下列规则适用于所有的数字:数字中不能出现逗号和空格下划线允许作为视觉上的分隔线数字可以冠以正号(+)或者负号(),如果没有使用符号则认为数字为正。数字不能超过确定的最大值或最小值1.2.4.1整数整数既不包括小数点也不包括指数。一个整数是一系列的数字,也可以在前面加上一个符号。下列为有效的整数:0 1 +1 -1743 -528060 000-32 211 321下列整数为无效,并且已经列出原因:123,456不允许有逗号36.整数不能包括小数点10 20 30不允许有空格在ST中,你可以使用不同的编号体系来表示整数。通过插入编号系统的关键字前缀来实现。2#为二进制8#为八进制16#为十六进
20、制十进制小数15的有效表示方式为:2#1111 8#1716#F1.2.4.2浮点数下列为有效的浮点数0.0 1.3 -0.2 827.6020000.0+0.00074360_000.15-315.0066下列为无效的浮点数1. 数字必须出现在小数点之前或之后1,000.0不允许有逗号1.333.333不允许有两个小数点1.2.4.3指数指数可以用来定义小数点的位置。如果没有出现小数点,我们就假设位于数字的右侧。指数必须为正整数或负整数。基数10用字母E来表示。3 x 108在ST中可以通过下列正确的浮点数来表示:3.0E+83.0E83e+83E80.3E+90.3e930.0E+730e
21、7下列浮点数是无效的:3.E+8数字必须出现在小数点之前或之后8e2.3指数必须为一个整数.333e-3数字必须出现在小数点之前或之后30 E8不允许有空格1.2.4.4布尔值布尔值是恒定常量。必须通过0或者1,TRUE或者FALSE来表示。1.2.4.5数字的数据类型编辑器根据数值和使用来自动选择适合数字的基本数据类型。也可以直接指定数据类型。在数字前面输入数据类型(数字数据类型)和字符“#”。1.2.5字符串什么是字符串?一个字符串是许多的0或在最前面或者最后面带撇号的多字符。每个字符在串中一个字符可以如下输入:可打印的字符(ASCII code $20 to $7E, $80 to $F
22、F),除了美元符号(ASCII code $24)和撇号(ASCII code $27)之外,因为这些符号在字符串中有着特殊的含义。美元符号($)之后的相关字符的2位的十六进制ASCII code根据下表组成的两个字符的组合1.3 ST源文件的结构一个ST源包含连续的文本,通过划分为逻辑块形成文本。详细的规则见源文件章节(第169页)。简单的总结如下:一个ST源文件是可以在项目中创建的一个逻辑单元,可以出现多次。通常被称为一个单元。一个ST源文件的逻辑部分被称为Section(见表格)一个用户程序是所有程序源的集合(如:ST源文件,MCC单元)每个ST源文件的逻辑部分的开头和结尾都有特定关键词
23、没有必要自己对每个功能编程,可以使用SIMOTION系统组件。这些是预先编程好的部分,如系统功能或技术目标的功能。源文件部分描述单元语句(可选的)包括ST的名称interface部分包括导入和导出变量的语句,类型和POUimplementation部分包括ST源文件的执行部分POU(程序组织单元)ST源文件(程序,功能,功能块)单独的可执行部分声明部分包含声明(如变量和类型),可以被包含在interface部分和implementation部分,以及POU中语句部分包含一个POU的可执行语句注意:在线帮助中有很多可用的示范单元的模板。你可以使用作为一个新ST源文件的模板。调用ST编辑器帮助,点
24、击相关链接。复制文本到ST编辑器窗口,根据你的需求修改模板。示范单元的模板包括此模板的复制件1.3.1语句一个POU的语句部分包括重复的单独语句。跟着POU的声明部分,以POU的结束而结束。首尾没有明显的关键词。在ST中有三种基本语句:赋值:从表达式到变量的赋值,见105页变量声明控制语句:语句的分支的重复,见130页控制子程序执行:功能和功能块,见147页功能,功能块和程序1.3.2注释注释用作编制文件,同时也帮助用户理解源文件部分。在编制后,对于程序执行没有任何意义。注释有两种:线注释块注释线注释由/开始。编辑器将进行跟随的文本,知道线注释结束你可以在很多线之后输入一个块注释,如果 (首尾
25、都是 *)先于它。当插入注释时注意:在注释中可以使用完整的扩展ASCII字符集在线型注释中可以忽略字符组(* 和 *)不允许块注释的嵌套。但是,在块注释中你可以嵌套线注释。可以在任意位置插入注释,但是不能在保持的规则中插入,如标识符的名称中。欲知更 多规则信息,见291页语言描述源。1.4数据类型使用数据类型来定义如何在程序源中使用变量或常量值。下列数据类型对用户是可用的:基本数据类型用户定义的数据类型(UDT)简单的导数阵列枚举结构技术目标数据类型系统数据类型见 基本数据类型(第90页) 技术目标数据类型(第101页) 系统数据类型(第104页)1.4.1基本数据类型1.4.1.1基本数据类
26、型基本数据类型定义了不能分成更小的单元的数据结构。一个基本数据类型描述了有固定长度的存储区域,代表了数字数据、整数、浮点值、时间、日期和字符串。所有的基本数据类型在下表中列出:类型预留词位宽度值的范围位数据类型:此类型的数据使用1位、8位、16位或32位。此数据类型的变量初始值为0位BOOL10, 1 or FALSE, TRUE字节BYTE816#0 to 16#FF字WORD1616#0 to 16#FFFF双字DWORD3216#0to 16#FFFF_FFFF数字类型:此类数据类型可用于处理数值。此数据类型的变量初始值为0(全为整数)或0.0(全为浮点数)短整数SINT8-128 to
27、 127 (-2*7 to 2*7-1)无符号短整数U SINT80 to 255 (0 to 2*8-1)整数INT16-32_768 to 32_767 (-2*15 to 2*15-1)无符号整数UINT160 to 65_535 (0 to 2*16-1)双整数DINT32-2_147_483_648 to 2_147_483_647 (-2*31 to 2*31-1)无符号双整数UDINT320 to 4_294_96_7295 (0 to 2*32-1)浮点数(per IEEE -754)REAL32-3.402_823_466E+38to 1.175_494_351E38, 0.
28、0,+1.175_494_351E38 to +3.402_823_466E+38精度:23位尾数(对应6位小数),8位指数,1位字符长浮点数(IEEE-754)LREAL64-1.797_693_134_862_315_8E+308 to -2.225_073_858_507_201_4E308, 0.0,+2.225_073_858_507_201_4E308 to+1.797_693_134_862_315_8E+308精度:52位尾数(对应15位小数),11位指数,1位字符时间类型:此类数据用于表示不同的时间或日期1分钟的增量的持续时间TIME32T#0d_0h_0m_0s_0msto
29、 T#49d_17h_2m_47s_295ms天,小时,分钟的数值最多为2位。里程碑最多为3位。初始为T#0d_0h_0m_0s_0ms 1天的增量的日期DATE32D#1992-01-01 to D#2200-12-31需要考虑闰年,年份为4位,月份和天数为2位。初始为D#0001-01-01分钟为单位的当日时间TIME_OF_DAY(TOD)64TOD#0:0:0.0 to TOD#23:59:59.999天,小时,分钟的数值最多为2位。里程碑最多为3位。初始为TOD#0:0:0.0日期和时间DATE_AND_TIME(DT)64DT#1992-01-01-0:0:0.0to DT#220
30、0-12-31-23:59:59.999日期和时间包括日期和时间的类型。初始为DT#0001-01-01-0:0:0.0串类型:此类数据代表字符串,每个字符使用特定字节的数字来编码。串的长度可以在声明中定义。用 和来表示长度。如:STRING100。默认的设置包含80个字符。指定(初始)字符的数字可以少于声明的长度。1字节/字符的串STRING8ASCII code $00 到 $F的所有字符都是允许的。 默认 (空字符串)注意:当导出变量到其他系统时,需要考虑对应的目标系统的数据类型的值的范围1.4.1.2基础数据类型的值的范围限制基础数据类型的值的范围作为常量可用。1.4.1.3普通的数据
31、类型普通的数据类型被用作系统功能和系统功能块的输入和输出参数。子程序被称做包含在普通数据类型中的每个数据类型的变量。下表列出了可用的普通数据类型:1.4.1.4基础系统数据类型在SIMOTION系统中,表格中指出的数据类型使用与基础数据类型类似。和许多系统功能一起使用。标识符位宽度用途StructAlarmId32alarmld的数据类型用于识别唯一的信息。alarmld用于生成信息。见功能手册SIMOTION基本功能。初始为STRUCTALARMID#NILStructTaskId32taskld的数据类型是在执行系统中识别唯一的任务。见功能手册SIMOTION基本功能。初始为STRUCTT
32、ASKID#NIL无效的基础数据类型数值的符号常量符号常量数据类型意义STRUCTALARMID#NILStructAlarmId无效AlarmIdSTRUCTTASKID#NILStructTaskId无效TaskId1.4.2用户定义的数据类型1.4.2.1用户定义的数据类型用户定义的数据类型(UDT)通过在声明章节中随后的源文件部分和以下内容来创建TYPE/END_TYPE:interface部分implementation部分程序组织单元(POU)可以使用在声明章节中创建的数据类型。源文件部分决定了类型声明的范围。1.4.2.2用户定义的数据类型的语法(类型声明)对于每个声明的数据类型
33、,需要遵循以下: 1.名称:数据类型的名称必须遵循标识符的规则。 2.数据类型声明 数据类型包括(见第96页,基础派生或派生数据类型) -基本数据类型 -之前声明的UDT -TO数据类型 -系统数据类型下列数据类型声明也是可能的:-阵列数据类型声明(见派97页生数据类型ARRAY)-枚举数据类型声明(见派99页生数据类型Enumerator)-STRUCT数据类型声明(见派100页生数据类型STRUCT)括号中的内容只可以参考的章节,相关的数据类型声明详细描述在这些章节中。3.可选的初始值你可以为每个数据类型指定初始值。如果你声明一个数据类型的变量,初始值被指定为变量。例外:在STRUCT数据
34、类型中,每个单独的组件的初始值范围规定在数据类型声明中见变量或数据类型的初始化(第107页)完整的UDT声明用END_TYPE关键词来结束。你可以使用TYPE/END_TYPE结构来创建任意数据类型的数字。你可以使用定义的数据类型来声明变量或参数。只要语法在图标中可见,UDT可以用任意方式嵌套。例如:你可以使用之前定义的UDT或嵌套结构作为一个数据类型声明。类型声明仅可以连续使用,并不是以嵌套结构的形式。注意:你可以学习如何在所有变量声明的概述(见106页)中声明变量和参数,以及如何在语法中使用UDT来数值指定(见113页)。1.4.2.3基础派生或派生的数据类型在数据类型的派生中,一个基础或
35、用户定义的数据类型(UDT)使用TYPE/END_TYPE结构来定义。TYPE标识符:基本数据类型 := initialization ; END_TYPETYPE标识符:用户定义数据类型 := initialization ; END_TYPE一旦你已声明数据类型,你可以定义派生的数据类型标识符的变量。这等同于声明变量。1.4.2.4 派生数据类型ARRAYARRAY派生数据类型包括用TYPE/END_TYPE结构来定义的同种数据类型。下图的语法图展示了这种数据类型,在预留标识符OF之后这种数据类型声明得更加详细。TYPE标识符:ARRAY数据类型声明 := initialization ;
36、 END_TYPE索引声明书描述了阵列的限制:阵列限制声明了索引值的最大和最小值。可以使用常量或常量表达式。数据类型为DINT(或转化为DINT-详见141页基础数据类型转化)阵列限制必须用两个句号隔开全部的索引声明须在方括号中索引可以为一个数据类型DINT(或转化为DINT-详见141页基础数据类型转化)的整数值注意:如果运行时阵列超限,程序会产生过程故障(见SIMOTION基本功能功能手册)用数据类型声明来声明阵列组件的数据类型。本章节中所描述的所有的选项都可以用作数据类型,甚至是用户定义数据(UDT)。有多种不同的阵列类型:一维阵列类型为升序排列的一列数据元素二维阵列是一个包括行和列的数
37、据表。第一维是指行数,第二维是指列数。更高维的阵列类型是二维阵列类型的扩展二维阵列可以与带行和列的表格比较。可以通过多层次的类型声明来创建二维或多维阵列。在例子中,你可以定义:表格列a1 到 a3作为一维阵列,将包含整数表格行矩阵11 到矩阵24作为一个阵列,但是作为使用表格中的列创建的阵列的数据类型声明。当你在数据类型声明中声明阵列时,创建了一个第二维度。可以使用此方式创建更多的维度。使用创建此表格的数据类型来声明一个变量。使用方括号为表格中的每个维度寻址。1.4.2.5 派生的数据类型枚举在枚举的数据类型中,使用受限的标识符或名称来定义TYPE/END_TYPE结构。TYPE标识符:枚举数
38、据类型声明 := initialization ; END_TYPE一旦你已声明了标识符的数据类型,可以在枚举中定义变量。在语句部分,可以从这些变量的定义标识符(枚举元素)表单中数值指定。可以直接声明数据类型:把枚举数据类型标识符和“#”放在枚举前面。可以包含带enum_type#MIN和enum_type#MAX结构的枚举数据类型的第一和最后一个值,enum_type为枚举数据类型标识符。可以包含带ENUM_TO_DINT转化功能的枚举元素的数值。注意:你将会得知枚举数据类型为系统数据类型。枚举数据类型可以为一个结构的部分,意味着在用户定义的数据结构中可以在任意的低级别中被找到。1.4.2.
39、6派生的数据类型STRUCT(结构)派生的数据类型STRUCT,或者结构包括TYPE/END_TYPE结构的固定数量的组件。这些组件的数据类型可以变化:TYPE标识符:STRUCT数据类型声明;END_TYPE下列为数据类型:基础数据类型之前声明过的UDT系统数据类型TO数据类型ARRAY数据类型声明你可以选择给组件赋初始值。继续关于变量初始值或数据类型(见107页变量或数据类型的初始值)注意:下列数据声明不可以在组件声明中直接使用STRUCT数据类型声明枚举数据类型声明解决方案:用之前提到的声明在组件声明中预先声明UDT(用户定义数据类型)这允许嵌套STRUCT数据类型同样可能会发现STRU
40、CT数据类型为系统数据类型这个例子说了了一个UDT是如何定义的,在变量声明中又是如何使用的这种数据类型1.4.3技术目标数据类型1.4.3.1技术目标数据类型的描述可以用技术目标来声明变量。下表给出了可用的技术目标的数据类型。例如,可以用数据类型posaxis来声明一个变量,然后指配一个是适合的位置轴。可以通过结构访问技术目标的元素。1.4.3.2轴属性的继承轴的继承声明所有的数据类型,系统变量和TO driveAxis的功能都全部包含在TO positionAxis中。同样,位置轴页包含在TO followingAxis中,下列轴是在TO pathAxis中,有以下影响:如果一个功能或功能块
41、,除了driveAxis数据类型的输入参数之外,调用时你可以使用position axis或者following axis或 path axis。如果有一个功能或功能块,除了posAxis数据类型的输入参数之外,调用时你可以使用following axis或 path axis。1.4.3.3技术目标数据类型的例子以下,你将看见可选的技术目标数据类型(你将在SIMOTION基本功能功能手册中找到强制使用TO数据类型的变量)的变量使用。第二个例子介绍了无需使用TO数据类型的变量的替代方法。TO功能将被用为在程序的主要部分启用一个轴,因此轴能定位。在定位操作结束后,现行的轴的位置将使用结构访问来进
42、行记录。第一个例子使用了TO数据类型的变量来演示用途。第二个例子未使用TO数据类型的变量。你将在SIMOTION运动控制功能描述中招待技术目标的组态和配置细节。1.4.4系统数据类型有很多可用的喜悦数据类型,无需预先声明就可以使用。每个导入的技术包提供了一库的系统数据类型。额外的系统数据类型可以找到在普通标准功能中的参数(见SIMOTION基本功能功能手册)在普通标准功能模块中的参数(见SIMOTION基本功能功能手册)在SIMOTION设备的系统变量中(见相关的参数手册)在SIMOTION设备的系统功能参数中(见相关的参数手册)在技术目标的系统变量和组态(见相关的参数手册)在技术目标的系统功
43、能参数中(见相关的参数手册)1.5变量声明一个变量定义了可在ST源文件中使用的变量内容的数据项。一个变量包括一个可以自由选择的标识符(如myVar1))和一个数据类型(如BOOL)。预留的标识符(见75页预留标识符)不能作为标识符使用。1.5.1变量声明的语法变量通常是根据源文件声明部分的相同模式来创建的。通过合适的关键词来开始一个声明块(如 VAR, VAR_GLOBAL - 见106页所有变量声明的概述遵循实际的变量声明(见图表),也可以如你所愿尽可能的创建,顺序是任意的。以END_VAR来结束一个声明块你可以创建更多的声明块(要有同样的关键词)注意变量的名称必须是一个标识符,如,只能包含字母,数
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100