SIMOTION-ST编程说明书中文_第1页
SIMOTION-ST编程说明书中文_第2页
SIMOTION-ST编程说明书中文_第3页
SIMOTION-ST编程说明书中文_第4页
SIMOTION-ST编程说明书中文_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录3.ST根根源理73.1语言描述73.1.1语法图73.1.2语法图中的块73.1.3规那么的意义〔语义〕83.2根本元素的语言83.2.1ST字符组83.2.2ST中的表记符93.2.2.1表记符的规那么93.2.2.2表记符举例103.2.3预留表记符103.2.3.1保护表记符113.2.4数字和布尔值173.2.4.1整数173.2.4.2浮点数183.2.4.3指数183.2.4.4布尔值183.2.4.5数字的数据种类193.2.5字符串193.3ST源文件的结构203.3.1语句213.3.2说明223.4数据种类233.4.1根本数据种类233.4.1.1根本数据种类233.4.1.2基础数据种类的值的范围限制253.4.1.3普通的数据种类263.4.1.4基础系统数据种类273.4.2用户定义的数据种类273.4.2.1用户定义的数据种类273.4.2.2用户定义的数据种类的语法〔种类声明〕283.4.2.3基础派生或派生的数据种类293.4.2.4派生数据种类ARRAY30精选3.4.2.5派生的数据种类—列举313.4.2.6派生的数据种类STRUCT〔结构〕323.4.3技术目标数据种类343.4.3.1技术目标数据种类的描述343.4.3.2轴属性的继承353.4.3.3技术目标数据种类的例子363.4.4系统数据种类373.5变量声明373.5.1变量声明的语法373.5.2所有变量声明的归纳393.5.3变量或数据种类的初始值403.6赋值和表达式433.6.1赋值443.6.1.1赋值的语法图443.6.1.2基础数据种类的变量的数值指定453.6.1.3串基础数据种类的变量数值指定453.6.1.4位数据种类的变量的数值指定463.6.1.5派生的列举数据种类的变量的数值指定483.6.1.6派生的阵列数据种类的变量的数值指定483.6.1.7派生的STRUCT数据种类的变量数值指定483.6.2表达式493.6.2.1表达式结果493.6.2.2表达式的解释序次503.6.3运算对象503.6.4算术表达式513.6.4.1算术表达式的例子543.6.5关系表达式543.6.6逻辑表达式和位串行表达式563.6.7运算符的优先级573.7控制语句583.7.1IF语句583.7.2CASE语句603.7.3FOR语句613.7.3.1办理FOR语句623.7.3.2FOR语句规那么62语句例子63精选3.7.4WHILE语句63语句64语句64语句65语句65语句673.8数据种类变换673.8.1基础数据种类变换673.8.1.1隐式数据种类变换683.8.1.2显式数据种类变换703.8.2补充的变换714.功能,功能块和程序714.1创立和调用功能和功能块724.1.1定义功能724.1.2定义功能块73和FB的声明局部734.1.4FB和FC局部的语句754.1.5功能和功能块的调用764.1.5.1参数转移的原那么764.1.5.2转移给输入参数的参数774.1.5.3参数转移给in/out参数774.1.5.4参数转移到输出参数〔仅对FB〕784.1.5.5参数接见时间794.1.5.6调用一个功能794.1.5.7调用功能块〔实例调用〕794.1.5.8在FB外接见FB输出参数814.1.5.9在FB外接见FB输入参数814.1.5.10FB调用时的错误源824.2功能和功能块的比较824.2.1例子说明824.2.2带说明的源文件844.3程序854.4表达式875.在SIMOTION中ST的集成895.1源文件局部的使用89精选5.1.1源文件局部的使用895.1.1.1interface局部89局部905.1.1.3程序组织单元〔POU〕915.1.1.4功能〔FC〕915.1.1.5功能块〔FB〕925.1.1.6程序925.1.1.7表达式935.1.1.8声明局部945.1.1.9语句局部945.1.1.10数据种类定义945.1.1.11变量声明955.1.2在ST源文件之间的导入和导出975.1.2.1单元表记符975.1.2.2一个导出单元的interface局部985.1.2.3一个导出单元的例子985.1.2.4在一个导入单元的USES语句995.1.2.5一个导入单元的例子1005.2在SIMOTION中的变量1015.2.1变量模型1015.2.1.1单元变量1035.2.1.2不保存的单元变量1045.2.1.3保持单元变量1055.2.1.4本地变量〔静态和临时变量〕1065.2.1.5静态变量1075.2.1.6临时变量1085.2.2全局设备变量的使用1095.2.3变量种类的存储范围1105.2.3.1存储地域的例子,有效关于KernelV3.11115.2.3.2本地数据栈变量的存储要求〔kernelV3.1或更高〕1145.2.4变量初始化的时间1165.2.4.1保存全局变量的初始化1165.2.4.2不保存的全局变量的初始化1175.2.4.3本地变量的初始化1185.2.4.4静态编程变量的初始化1195.2.4.5功能块实例的初始化1205.2.4.6技术目标的系统变量的初始化1205.2.4.7全局变量的版本ID和下载时的初始化1215.2.5变量和HMI设备1225.3接见输入和输出〔过程图像,I/O变量〕124精选5.3.1接见输入和输出的归纳1245.3.2直接接见和过程图像接见的重要特点1255.3.3直接接见和循环任务的过程图像1265.3.3.1直接接见和循环任务的过程图像的I/O地址的规那么1275.3.3.2为直接接见和循环任务的过程图像创立一个I/O变量1285.3.3.3输入I/O地址的语法图1295.3.3.4可能的I/O变量的数据种类1305.3.4背景任务的固定过程图像的接见1305.3.4.1背景任务的固定过程图像的绝对接见〔绝对PI接见〕1315.3.4.2一个绝对过程图像接见的表记符语法1325.3.4.3背景任务的固定过程图像的符号接见〔符号PI接见〕1335.3.4.4可能的符号PI接见的数据种类1345.3.4.5符号PI接见的例子1345.3.4.6为接见背景任务固定过程图像而创立一个I/O变量1345.3.5接见I/O变量1355.4使用库1355.4.1编写一个库1365.4.2库的know-how保护1375.4.3从库中使用数据种类,功能和功能块1385.5相同的表记符和命名空间的使用1395.5.1相同的表记符的使用1395.5.2命名空间1415.6参照数据1445.6.1交错比较表1455.6.1.1创立一个交错比较表单1455.6.1.2交错比较表的内容1455.6.1.3交错比较表的使用1465.6.2程序结构1465.6.2.1程序结构的内容1475.6.3代码属性1475.6.3.1代码属性内容1485.7控制预办理器和pragma编写1485.7.1控制一个预办理器1485.7.1.1预办理器语句1495.7.1.2预办理器语句的例子1525.7.2属性控制编写器153精选5.8跳转语句和标签1556.错误源和程序调试1566.1防备错误和有效编程的说明1566.2程序调试1566.2.1程序测试的模式1566.2.1.1SIMOTION设备模式1566.2.1.2life-sign监察的重要信息1586.2.1.3life-sign监察参数1596.2.2符号浏览器1606.2.2.1符号浏览器的属性1606.2.2.2使用符号浏览器1606.2.3在watch表中监察变量1626.2.3.1在watch表中的变量1626.2.3.2使用watch表格1626.2.4程序运行1636.2.4.1程序运行:显示代码地址和调用路径1636.2.4.2参数调用栈程序运行1646.2.4.3程序运行工具栏1646.2.5程序状态1646.2.5.1程序状态的属性1646.2.5.2使用状态程序1656.2.5.3程序状态的调用路径1676.2.5.4参数调用路径状态程序1686.2.6断点1686.2.6.1设置断点的普通步骤1686.2.6.2设置debug模式1696.2.6.3定义debug任务组1706.2.6.4debug任务组参数1716.2.6.5debug表格参数1716.2.6.6设置断点1726.2.6.7断点工具栏1736.2.6.8定义一个单独断点的调用路径1746.2.6.9断点调用路径/任务选择参数1756.2.6.10定义所有断点的调用路径1766.2.6.11每个POU所有断点的调用路径/任务选择参数1776.2.6.12激活断点1786.2.6.13显示调用栈1806.2.6.14断点调用栈参数1806.2.7追想181精选ST根根源理此章节描述了ST中的语言资源和使用方法。请注意此章节中描述了功能、功能块和任务控制系统。一个完整正式的语言描述包括语法图,详见目录〔第307页〕。3.1语言描述在本手册的以下章节中语法图用作语言描述的基础,为你提供了对ST语法结构的新认识。语法图语法图是对语法结构的图形式的阐述。结构是由一系列的规那么描述组成。可以基于现有的规那么生成新的规那么。上图中的语法图需从左至右读。需要注意以下规那么结构:●序列:块的序列●选项:可以跳过的语句●迭代:一个或多个语句的重复●替代:Branch语法图中的块块是根本元素。以下列图显示了代表块而使用的符号种类。精选要更多解释的根本元素由更多的语法图解释的复合单元当输入源文本时需要注意格式化规那么和非格式化规那么。比方:把语法图中的块或元素转化为源文本〔见帮助中的语言描述,第291页〕规那么的意义〔语义〕规那么能仅代表语言的格式结构。意义〔语义〕一般不显然。由于这个原因,如果意义很重点,那么需要在规那么旁边写上额外的信息。●如果同种类的元素意义不同,需要附上额外的命名。比方,额外指定每个十进制字符串元素—年,月或日〔见308页〕。名称表示了用途●重要的限制也列出。如:整数规那么中关于—〔负号〕,注明负号只能在SINT,INT,andDINT数据种类从前出现〔见308页〕3.2根本元素的语言ST语言的根本元素包括ST字符组,根据ST字符组〔如:语言命令〕创立的预留表记符,自定义的表记符和数字。ST字符组合预留表记符都是根本的元素〔terminals〕,因为是无需别的的规那么来描述。自定义的表记符和数字不是terminals,因为它们是由别的的规那么来描述。在语法图中,终端是由圆形也许椭圆形符号来表示,但是复合单元由长方形来表示〔见语法图中的块,第72页〕。以下内容是主要终端的节选,作为全局预览,参照根本元素terminals,第294页〕3.2.1ST字符组ST使用ASCII字符组中的以下字母和数字●从A到Z的大小字母●从0到9的阿拉伯数字字母和数字是最常用的字符。比方,表记符是字母,数字和下划线的组合。下划线是特殊的字符之一。精选特殊字符在ST中有特定的含义〔见第291页的正式语言描述和第294页的根本元素〕3.2.2ST中的表记符表记符的ST中的名称。这些名称可以根据系统来定义,比方语言命令等。但是,名称可以是用户定义,比方常量、变量或功能。3.2.2.1表记符的规那么表记符是由字母〔A到Z,a到z〕、数字〔0到9〕或单独的下划线随意组成,但是首字符必须是字母也许下划线。大小写字母没有划分〔比方,在编写器中Anna和AnNa是一样的〕。一个正式的表记符可以由以下的语法图表示:命名时,最好采用唯一的、有意义的命名,以便解释程序。图表中的语法图声了然一个表记符的首字符必须是字母也许下划线。下划线必须随着字母或数字。如:不允许连续有两根或以上的下划线。下划线可以随着随意也许一系列的数字,下划线或字母。在这唯一的例外是两条下划线可能不会同时出现。精选3.2.2.2表记符举例有效的表记符无效的表记符无效表记符4ter*#ABRR__20valueArray表记符不能用作绝不定义表记符:●与预留表记符同样●与任务命名相匹配

原因第一次字符必须为一个字母也许下划线不允许特殊字符〔除了下划线〕不允许有两个下划线不允许出现空格,因为是特殊字符虽然ARRAY是一个正式有效的表记符,但是它是一个预留表记符。,只能做预先定义使用。这意味着你不能使用这个名称,比方:变量注意:如有可能,防备定义由下划线,struct,enum,也许command开始的表记符虽然这些是有效的表记符,当你下载技术包时可能致使出现错误。在基础系统和在技术包中命令词语,参数或数据种类以这些字符开始。预留表记符预留表记符可能和预先定义的用途不同样。你不能用预留表记符的名称来命名一个变量也许数据种类。符号的大小写无区别。所有表记符的预先定义的意义可以在SIMOTION根本功能功能手册中找到:●·ST编程语言中的保护也许预留表记符,欲知更多,请见76页和81页●·标准功能和功能定义的数据种类,欲知更多,请见251页●系统的老例功能块SIMOTION设备系统功能、系统变量和数据种类技术目标的系统功能、系统变量和数据种类精选3.2.3.1保护表记符ST语言中的保护表记符全列在了下表中。欲见所有预留词的简短描述,请见附录预留词语〔第299页〕和规那么附录中的语法图〔第页〕精选精选精选精选3.2.3.2额外的预留表记符下表包含了将来扩展所有的预留表记符。精选精选数字和布尔值在ST中可以经过多种方式编写数字。数字可以包括一个符号、一个小数点也许一个指数。以下规那么适用于所有的数字:●数字中不能出现逗号和空格●下划线允许作为视觉上的分开线●数字可以冠以正号〔+〕也许负号〔—〕,如果没有使用符号那么认为数字为正。●数字不能超过确定的最大值或最小值3.2.4.1整数整数既不包括小数点也不包括指数。一个整数是一系列的数字,也可以在前面加上一个符号。以下为有效的整数:01+1-1743-528060000-32211321以下整数为无效,并且已经列出原因:123,456不允许有逗号整数不能包括小数点102030不允许有空格在ST中,你可以使用不同的编号体系来表示整数。经过插入编号系统的重点字前缀来实精选现。2#为二进制8#为八进制16#为十六进制十进制小数15的有效表示方式为:2#11118#1716#F3.2.4.2浮点数以下为有效的浮点数0.01.3-0.2827.6020000.0+0.00074360_000.15-315.0066以下为无效的浮点数数字必须出现在小数点从前或之后1,000.0不允许有逗号不允许有两个小数点3.2.4.3指数指数可以用来定义小数点的地址。如果没有出现小数点,我们就假设位于数字的右侧。指数必须为正整数或负整数。基数10用字母E来表示。x108在ST中可以经过以下正确的浮点数来表示:3.0E+83.0E83e+83E80.3E+90.3e930.0E+730e7以下浮点数是无效的:3.E+8数字必须出现在小数点从前或之后8e2.3指数必须为一个整数.333e-3数字必须出现在小数点从前或之后30E8不允许有空格3.2.4.4布尔值布尔值是恒定常量。必须经过0也许1,TRUE也许FALSE来表示。精选3.2.4.5数字的数据种类编写器根据数值和使用来自动选择适合数字的根本数据种类。也可以直接指定数据种类。在数字前面输入数据种类〔数字数据种类〕和字符“#〞。字符串什么是字符串?一个字符串是好多的0或在最前面也许最后边带撇号的多字符。每个字符在串中一个字符可以如下输入:●可打印的字符〔ASCIIcode$20to$7E,$80to$FF〕,除了美元符号(ASCIIcode$24)和撇号(ASCIIcode$27)之外,因为这些符号在字符串中有着特殊的含义。●美元符号($)之后的相关字符的2位的十六进制ASCIIcode●根据下表组成的两个字符的组合精选3.3ST源文件的结构一个ST源包含连续的文本,经过划分为逻辑块形成文本。详细的规那么见源文件章节〔第页〕。简单的总结如下:●一个ST源文件是可以在工程中创立的一个逻辑单元,可以出现屡次。平时被称为一个单元。●一个ST源文件的逻辑局部被称为Section〔见表格〕●一个用户程序是所有程序源的会集〔如:ST源文件,MCC单元〕每个ST源文件的逻辑局部的开头和结尾都有特定重点词精选没有必要自己对每个功能编程,可以使用SIMOTION系统组件。这些是预先编程好的局部,如系统功能或技术目标的功能。源文件局部描述单元语句〔可选的〕包括ST的名称interface局部包括导入和导出变量的语句,种类和POUimplementation局部包括ST源文件的执行局部POU〔程序组织单元〕ST源文件〔程序,功能,功能块〕单独的可执行局部声明局部包含声明〔如变量和种类〕,可以被包含在interface局部和implementation局部,以及POU中语句局部包含一个POU的可执行语句注意:在线帮助中有好多可用的示范单元的模板。你可以使用作为一个新ST源文件的模板。调用ST编写器帮助,点击相关链接。复制文本到ST编写器窗口,根据你的需求更正模板。示范单元的模板包括此模板的复制件语句一个POU的语句局部包括重复的单独语句。随着POU的声明局部,以POU的结束而结束。首尾没有显然的重点词。精选在ST中有三种根本语句:●赋值:从表达式到变量的赋值,见105页变量声明●控制语句:语句的分支的重复,见130页控制●子程序执行:功能和功能块,见147页功能,功能块和程序说明说明用作编制文件,同时也帮助用户理解源文件局部。在编制后,关于程序执行没有任何意义。说明有两种:●线说明●块说明线说明由//开始。编写器将进行随从的文本,知道线说明结束你可以在好多线之后输入一个块说明,如果(首尾都是*〕先于它。当插入说明时注意:●在说明中可以使用完整的扩展ASCII字符集●在线型说明中可以忽略字符组(*和*)●不允许块说明的嵌套。但是,在块说明中你可以嵌套线说明。●可以在随意地址插入说明,但是不能在保持的规那么中插入,如表记符的名称中。欲知更多规那么信息,见291页语言描述源。精选3.4数据种类使用数据种类来定义怎样在程序源中使用变量或常量值。以下数据种类对用户是可用的:●根本数据种类●用户定义的数据种类〔UDT〕—简单的导数—阵列—列举—结构●技术目标数据种类●系统数据种类见根本数据种类〔第90页〕技术目标数据种类〔第101页〕系统数据种类〔第104页〕根本数据种类3.4.1.1根本数据种类根本数据种类定义了不能分成更小的单元的数据结构。一个根本数据种类描述了有固定长度的存储地域,代表了数字数据、整数、浮点值、时间、日期和字符串。精选所有的根本数据种类在下表中列出:种类预留词位宽度值的范围位数据种类:此种类的数据使用1位、8位、16位或32位。此数据种类的变量初始值为0位BOOL10,1orFALSE,TRUE字节BYTE816#0to16#FF字WORD1616#0to16#FFFF双字DWORD3216#0to16#FFFF_FFFF数字种类:此类数据种类可用于办理数值。此数据种类的变量初始值为0〔全为整数〕或0.0〔全为浮点数〕短整数SINT8-128to127(-27to27-1)无符号短整数USINT80to255(0to28-1)整数INT16-32_768to32_767(-215to215-1)无符号整数UINT160to65_535(0to216-1)双整数DINT32-2_147_483_648to2_147_483_647(-231to231-1)无符号双整数UDINT320to4_294_96_7295(0to232-1)浮点数(perIEEEREAL32-3.402_823_466E+38to-754)1.175_494_351E-38,0.0,+1.175_494_351E-38to+3.402_823_466E+38精度:23位尾数〔对应6位小数〕,8位指数,1位字符长浮点数LREAL64-1.797_693_134_862_315_8E+308〔IEEE-754〕to-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分钟的增量的持TIME32T#0d_0h_0m_0s_0msto续时间T#49d_17h_2m_47s_295ms天,小时,分钟的数值最多为2位。里程碑最多为3位。初始为T#0d_0h_0m_0s_0ms1天的增量的日期DATE32D#1992-01-01toD#2200-12-31需要考虑闰年,年份为4位,月份和天数为2位。初始为D#0001-01-01分钟为单位的当日TIME_OF_DAY(TOD)64TOD#0:0:0.0toTOD#23:59:59.999时间天,小时,分钟的数值最多为2位。里程碑最多为3位。初始为精选TOD#0:0:0.0日期和时间DATE_AND_TIME(DT)64DT#1992-01-01-0:0:0.0toDT#2200-12-31-23:59:59.999日期和时间包括日期和时间的类型。初始为DT#0001-01-01-0:0:0.0串种类:此类数据代表字符串,每个字符使用特定字节的数字来编码。串的长度可以在声明中定义。用"["和"]"来表示长度。如:STRING[100]。默认的设置包含个字符。指定〔初始〕字符的数字可以少于声明的长度。1字节/字符的串STRING8ASCIIcode$00到$F的所有字符都是允许的。默认’空’字(符串)注意:当导出变量到其他系统时,需要考虑对应的目标系统的数据种类的值的范围3.4.1.2基础数据种类的值的范围限制基础数据种类的值的范围作为常量可用。精选3.4.1.3普通的数据种类普通的数据种类被用作系统功能和系统功能块的输入和输出参数。子程序被称做包含在普通数据种类中的每个数据种类的变量。下表列出了可用的普通数据种类:精选3.4.1.4基础系统数据种类在SIMOTION系统中,表格中指出的数据种类使用与基础数据种类近似。和好多系统功能一起使用。表记符位宽度用途StructAlarmId32alarmld的数据种类用于鉴别唯一的信息。alarmld用于生成信息。见功能手册SIMOTION根本功能。初始为STRUCTALARMID#NILStructTaskId32taskld的数据种类是在执行系统中鉴别唯一的任务。见功能手册SIMOTION根本功能。初始为STRUCTTASKID#NIL无效的基础数据种类数值的符号常量符号常量数据种类意义STRUCTALARMID#NILStructAlarmId无效AlarmIdSTRUCTTASKID#NILStructTaskId无效TaskId用户定义的数据种类3.4.2.1用户定义的数据种类用户定义的数据种类〔UDT〕经过在声明章节中随后的源文件局部和以下内容来创立TYPE/END_TYPE:interface局部implementation局部●程序组织单元〔POU〕可以使用在声明章节中创立的数据种类。源文件局部决定了种类声明的范围。精选3.4.2.2用户定义的数据种类的语法〔种类声明〕关于每个声明的数据种类,需要按照以下: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页〕。3.4.2.3基础派生或派生的数据种类在数据种类的派生中,一个基础或用户定义的数据种类〔UDT〕使用TYPE/END_TYPE结构来定义。TYPE表记符:根本数据种类{:=initialization};END_TYPETYPE表记符:用户定义数据种类{:=initialization};END_TYPE一旦你已声明数据种类,你可以定义派生的数据种类表记符的变量。这等同于声明变量。精选3.4.2.4派生数据种类ARRAYARRAY派生数据种类包括用TYPE/END_TYPE结构来定义的同种数据种类。以下列图的语法图展示了这种数据种类,在预留表记符OF之后这种数据种类声明得更加详细。TYPE表记符:ARRAY数据种类声明{:=initialization};END_TYPE索引声明书描述了阵列的限制:●阵列限制声了然索引值的最大和最小值。可以使用常量或常量表达式。数据种类为DINT〔或转变为DINT-详见141页基础数据种类转变〕●阵列限制必须用两个句号分开●全部的索引声明须在方括号中●索引可以为一个数据种类DINT〔或转变为DINT-详见141页基础数据种类转变〕的整数值注意:如果运行时阵列超限,程序会产生过程故障〔见SIMOTION根本功能功能手册〕用数据种类声明来声明阵列组件的数据种类。本章节中所描述的所有的选项都可以用作数据种类,甚至是用户定义数据〔UDT〕。有多种不同的阵列种类:●一维阵列种类为升序排列的一列数据元素●二维阵列是一个包括行和列的数据表。第一维是指行数,第二维是指列数。●更高维的阵列种类是二维阵列种类的扩展精选二维阵列可以与带行和列的表格比较。可以经过多层次的种类声明来创立二维或多维阵列。在例子中,你可以定义:●表格列a[1]到a[3]作为一维阵列,将包含整数●表格行矩阵1[1]到矩阵2[4]作为一个阵列,但是作为使用表格中的列创立的阵列的数据种类声明。当你在数据种类声明中声明阵列时,创立了一个第二维度。可以使用此方式创立更多的维度。使用创立此表格的数据种类来声明一个变量。使用方括号为表格中的每个维度寻址。3.4.2.5派生的数据种类—列举在列举的数据种类中,使用受限的表记符或名称来定义TYPE/END_TYPE结构。TYPE表记符:列举数据种类声明{:=initialization};END_TYPE精选一旦你已声了然表记符的数据种类,可以在列举中定义变量。在语句局部,可以从这些变量的定义表记符〔列举元素〕表单中数值指定。可以直接声明数据种类:把列举数据种类表记符和“#〞放在列举前面。可以包含带enum_type#MIN和enum_type#MAX结构的列举数据种类的第一和最后一个值,enum_type为列举数据种类表记符。可以包含带ENUM_TO_DINT转变功能的列举元素的数值。注意:你将会得知列举数据种类为系统数据种类。列举数据种类可以为一个结构的局部,意味着在用户定义的数据结构中可以在随意的初级别中被找到。3.4.2.6派生的数据种类STRUCT〔结构〕派生的数据种类STRUCT,也许结构包括TYPE/END_TYPE结构的固定数量的组件。这些组件的数据种类可以变化:TYPE表记符:STRUCT数据种类声明;END_TYPE精选以下为数据种类:基础数据种类●从前声明过的UDT●系统数据种类●TO数据种类●ARRAY数据种类声明你可以选择给组件赋初始值。持续关于变量初始值或数据种类〔见107页变量或数据类型的初始值〕注意:以下数据声明不可以在组件声明中直接使用●STRUCT数据种类声明●列举数据种类声明解决方案:用从前提到的声明在组件声明中预先声明UDT〔用户定义数据种类〕这允许嵌套STRUCT数据种类同样可能会发现STRUCT数据种类为系统数据种类这个例子说了了一个UDT是怎样定义的,在变量声明中又是怎样使用的这种数据种类精选技术目标数据种类3.4.3.1技术目标数据种类的描述可以用技术目标来声明变量。下表给出了可用的技术目标的数据种类。比方,可以用数据种类posaxis来声明一个变量,然后指配一个是适合的地址轴。精选可以经过结构接见技术目标的元素。3.4.3.2轴属性的继承轴的继承声明所有的数据种类,系统变量和TOdriveAxis的功能都全部包含在TOpositionAxis中。同样,地址轴页包含在TOfollowingAxis中,以下轴是在TOpathAxis中,有以下影响:●如果一个功能或功能块,除了driveAxis数据种类的输入参数之外,调用时你可以使用positionaxis也许followingaxis或pathaxis。●如果有一个功能或功能块,除了posAxis数据种类的输入参数之外,调用时你可以使用followingaxis或pathaxis。精选3.4.3.3技术目标数据种类的例子以下,你将看见可选的技术目标数据种类〔你将在SIMOTION根本功能功能手册中找到强制使用TO数据种类的变量〕的变量使用。第二个例子介绍了无需使用TO数据种类的变量的替代方法。TO功能将被用为在程序的主要局部启用一个轴,因此轴能定位。在定位操作结束后,现行的轴的地址将使用结构接见来进行记录。第一个例子使用了TO数据种类的变量来演示用途。第二个例子未使用TO数据种类的变量。精选你将在SIMOTION运动控制功能描述中招待技术目标的组态和配置细节。系统数据种类有好多可用的喜悦数据种类,无需预先声明就可以使用。每个导入的技术包提供了一库的系统数据种类。额外的系统数据种类可以找到●在普通标准功能中的参数〔见SIMOTION根本功能功能手册〕●在普通标准功能模块中的参数〔见SIMOTION根本功能功能手册〕●在SIMOTION设备的系统变量中〔见相关的参数手册〕●在SIMOTION设备的系统功能参数中〔见相关的参数手册〕●在技术目标的系统变量和组态〔见相关的参数手册〕●在技术目标的系统功能参数中〔见相关的参数手册〕3.5变量声明一个变量定义了可在ST源文件中使用的变量内容的数据项。一个变量包括一个可以自由选择的表记符〔如myVar1)〕和一个数据种类〔如BOOL〕。预留的表记符〔见75页预留表记符〕不能作为表记符使用。变量声明的语法变量平时是根据源文件声明局部的相同模式来创立的。●经过适宜的重点词来开始一个声明块(如VAR,VAR_GLOBAL-见106页所有变量声明的归纳●按照实际的变量声明〔见图表〕,也可以如你所愿尽可能的创立,序次是随意的。●以END_VAR来结束一个声明块●你可以创立更多的声明块〔要有同样的重点词〕精选注意●变量的名称必须是一个表记符,如,只能包含字母,数字或下划线,但是不能包含特殊字符。●允许作为数据种类的以下项:基础数据种类—UDT〔用户定义数据种类〕—系统数据种类—TO数据种类—ARRAY数据种类声明—功能块的设计●可以在声明语句中直接给变量赋初始值,这叫做初始化从格式来的派生如下:●常量声明〔常量必须有初始值,见111页常量〕●过程图像接见〔见106页所有变量声明的归纳〕—不需要一个变量声明作为绝对过程图像接见—不允许初始化作为符号过程接见控制精选所有变量声明的归纳在变量和参数声明中声明名称、数据种类和变量的初始值。在以下源文件的声明局部执行这些声明:●interface局部●implementation执行局部●POU(程序、功能、功能块、表达式)源文件局部也决定了你可以声明的变量和范围欲知源文件局部的更多信息,参见86页的ST源文件结构个169页的源文件局部。重点词意义声明VAR暂时或静态变量的声明,见随意POU184页变量模型VAR_GLOBAL单元变量声明,见184页变interface局部量模型implementation局部VAR_IN_OUT输入/出参数的变量声明;功能POU直接接见变量〔使用参功能块考〕,也可直接更正。见148表达式页定义功能,149页定义功能块VAR_INPUT输入参数的变量声明;数值功能是外部赋予,不能在POU里功能块面改变这个数值。表达式见148页定义功能,149页定义功能块VAR-OUTPUT输出参数的变量声明;数值功能块是从功能块传达的。见148页定义功能,149页定义功能块VAR_TEMP临时变量的声明程序见184页变量模型功能块RETAIN保存变量的声明仅作为补充见184页的变量模型interface和implementation局部的VAR_GLOBALCONSTANT常量的声明,见111页常量仅作为补充在FB,FC或程序中的VAR在interface或implementation部分的VAR_GLOBAL精选变量或数据种类的初始值在声明中指定初始值给变量或数据种类是可选的〔见图表语法:变量声明或语法:用户定义数据种类〕●如果在变量声明中没有特别指定初始值,编译程序自动给变量指定在数据种类声明中声明的初始值●如果在数据种类声明中也没有特别指定初始值,编译程序自动给变量或数据种类指定值为0。例外:—时间数据种类:初始值—列举数据种类:1.列举值预先给变量或用户定义的数据种类指定初始值在数据种类声明之后〔见语法图表:变量初始化〕●根据语法图表:常量表达式来给基础数据种类〔或从基础数据种类派生的数据种类〕赋常量表达式●根据语法图:域初始化给域〔阵列〕指定域初始化列表●根据语法图:结构初始化列表来给单独的结构成分来指定结构初始化列表●给列举数据种类指定列举元素在编译程序时给变量赋的初始值是从常量表达式计算得知的。见语法图。欲知更多常量表达式的信息,见常量表达式的语法图。注意一个变量列表(a1,a2,a3,..:INT:=..可)以是由普通数值初始化的。在这种情况下,不需要单独初始化变量(a1:INT:=..;a2:INT:=..;etc.)精选精选技术目标〔TO〕数据种类的变量由编写器用TO#NIL初始化。任务对变量初始化的影响在SIMOTION根本功能功能手册中描述。3.5.4常量常量是带固定值的数据,在程序运行时不能更改固定数值。常量的声明方式与变量同样。●本地常量的POU声明局部〔见语法图:POU中的常量块和语法图:常量声明〕●在ST源文件单元常量是interface或implementation局部〔见语法图:在interface或implementation局部的单元常量和语法图:常量声明〕。可以在interface局部导入单元常量到其他ST源文件〔见184页常量模型〕精选源文件局部也决定常量声明的范围。赋给常量的值是经过在编译时计算常量表达式得出的。欲知更多常量表达式的语法图和信息,见常量表达式的语法图。3.6赋值和表达式你已经用字符串来创立数值指定,也许是一个作为局部例子的语句〔见87页语句示范表〕,也许是在源文件声明局部初始化变量的时候。精选但是这只是对可用的公式化指定数值的小范围的选择。手册的本章节经过使用大量的例子详细描述了这个重要的话题。注意:在算法和逻辑表达式中,结果平时是经过最大数值格式化表达式和转变数据种类所得出的。隐式转变在数值指准时不总是可行的。欲知更多错误源文件和解决方法的信息,见SIMOTION根本功能功能手册。赋值3.6.1.1赋值的语法图使用指定的数值来给变量数值指定。重写从前的数值。在一个数字可以正确指定前,在声明局部必须声明一个变量〔见105页变量声明语法图〕如下面的语法图所示,表达式位于右侧。结果保存在变量中,变量的名称列于左侧。所有的目标变量在图表中显示以下包含了左侧的数值指定的解释和例子:●基础数据种类的变量数值指定〔114页〕精选●派生的列举数据种类的变量数值指定〔117页〕●派生的阵列数据种类的变量数值指定〔118页〕●派生的结构数据种类的变量数值指定〔118页〕●绝对的PI接见的数值指定〔给过程图像寻址〕,见221页绝对PI接见3.6.1.2基础数据种类的变量的数值指定当以下情况之一知足时,基础数据种类〔90页〕的表达式可以指定给一个变量:●表达式和目标变量是同样的数据种类注意关于字符串数据种类(114页)的以下信息●表达式的数据种类可以隐式转变为目标变量的数据种类3.6.1.3串基础数据种类的变量数值指定串数据种类的变量之间的数值指定不同长度的串基础数据种类的变量之间的数值指定没有限制,如果声明的目标变量的长度要短于现在指定的字符串的长度,字符串被截取成目标变量的长度。例外:in/out数值指定的应用〔参数转变为in/out参数〕:指定变量的声明长度必须长于也许等同于目标变量〔正式in/out参数〕的声明长度。见154页参数转变为in/out参数。例子:string20:='ABCDEFG';string20:=string30;一个字符串元素的接见一个字符串的单独元素可以用阵列[1..n]的元素的相同方式寻址。这些元素隐式转变成基础数据元素BYTE。经过这种方式,字符串元素和BYTE数据种类的变量之间的指定是可行的。例子:byteVar:=string20[5];string20[10]:=byteVar;需要考虑到下面的特殊情况:精选1.当把BYTE数据种类的变量指定给一个字符串元素时:(e.g.stringVar[n:]:=byteVar):—给字符串元素的数值超出了声明的字符串的长度字符串保持不变,TSI#ERRNO被设为1—给字符串元素的数值超出了指定的字符串的长度(n>LEN(stringVar)),但是在声明的长度之内〕字符串的长度被更改,在LEN(stringvar)和N之间的字符串元素被设为$002.当给BYTE数据种类的一个变量指定一个字符串元素时(byteVar:=stringVar[n:]):—给字符串元素的数值超出了指定的字符串的长度(n>LEN(stringVar))变量设为16#00,TSI#ERRNO设为2编写字符串不同的系统功能关于编写字符串都是可用的,比方插入字符串,替换和字符等。见SIMOTION根本功能功能手册数字和字符串之间的变换不同的系统功能关于数字数据种类的变量和字符串之间的变换是可用的,见141页基础数据种类转变和SIMOTION根本功能功能手册3.6.1.4位数据种类的变量的数值指定接见单独的位数据种类的变量的二进制数字接见单独的BYTE,WORD或DWORD数据种类的变量的二进制数字:●经过标准功能可以经过使用_getBit,_setBit和_toggleBit功能来读,写或转变随意位字符串可以经过变量来指定位数●直接的位接见可以定义你需要接见的变量的位,经过变量后边的一个分开的点可以经过一个常量来指定位数必须先开启编写器功能选项“允许语言扩展〞才能使用〔见45全局编写器设置和46页本地编写器设置〕精选注意:接见I/O变量也许系统变量的二进制数字可以被其他任务搅乱。所以不能保证一致性。编写位数据种类的变量你可以:1.可以把同数据种类的不同变量合为一种高级其他数据种类的变量〔比方:BYTE数据种类的两个变量变为一种WORD数据种类〕。不同的系统功能都可以使用此功能,如WORD_FROM_2BYTE2.把一个变量拆分成初级其他几种数据种类的变量〔如:SWORD数据种类的一个变量分为4个BYTE数据种类的变量〕。不同的系统功能都可以使用此功能,如DWORD_TO_4BYTE精选3.在一个变量中旋转或移位字节。位字符串标准功能ROL,ROR,SHL和SHR都可使用此功能这些系统功能和系统功能块在SIMOTION根本功能功能手册中有详细描述。逻辑运算符位数据种类的变量可以和逻辑运算符一起结合,见127页逻辑表达式和位串行表达式。3.6.1.5派生的列举数据种类的变量的数值指定每个表达式和派生的列举数据种类的每个变量〔见99页派生数据种类—列举可以指定同数据种类的其他变量〕3.6.1.6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论