logo资料库

(完整版)ST语言编程手册.pdf

第1页 / 共183页
第2页 / 共183页
第3页 / 共183页
第4页 / 共183页
第5页 / 共183页
第6页 / 共183页
第7页 / 共183页
第8页 / 共183页
资料共183页,剩余部分请下载后查看
ST 语言编程手册 目录 1. ST 基本原理 .......................................................................................................... 6 1.1 语言描述 .......................................................................................................... 6 1.1.1 语法图 ....................................................................................................... 6 1.1.2 语法图中的块 ............................................................................................. 6 1.1.3 规则的意义(语义) .................................................................................. 7 1.2 基本元素的语言 ................................................................................................ 7 1.2.1 ST 字符组 .................................................................................................. 7 1.2.2 ST 中的标识符 ........................................................................................... 8 1.2.2.1 标识符的规则 .................................................................................... 1.2.2.2 标识符举例 ........................................................................................ 1.2.3 预留标识符 ................................................................................................ 9 1.2.3.1 保护标识符 ...................................................................................... 1.2.4 数字和布尔值 ........................................................................................... 16 1.2.4.1 整数 ................................................................................................. 1.2.4.2 浮点数 ............................................................................................. 1.2.4.3 指数 ................................................................................................. 1.2.4.4 布尔值 ............................................................................................. 1.2.4.5 数字的数据类型 ............................................................................... 1.2.5 字符串 ..................................................................................................... 18 1.3 ST 源文件的结构 ............................................................................................ 19 1.3.1 语句 ......................................................................................................... 20 1.3.2 注释 ......................................................................................................... 21 1.4 数据类型 ........................................................................................................... 22 8 9 10 16 17 17 17 18 1.4.1 基本数据类型 ........................................................................................... 22 1.4.1.1 基本数据类型 .................................................................................. 22 1.4.1.2 基础数据类型的值的范围限制 ......................................................... 24 1.4.1.3 普通的数据类型 ............................................................................... 25 26 1.4.1.4 基础系统数据类型 ........................................................................... 1.4.2 用户定义的数据类型 ................................................................................ 26 1.4.2.1 用户定义的数据类型 ........................................................................ 26 1.4.2.2 用户定义的数据类型的语法(类型声明) ....................................... 27 28 1.4.2.3 基础派生或派生的数据类型 ............................................................. 1.4.2.4 派生数据类型 ARRAY .................................................................... 29 1.4.2.5 派生的数据类型—枚举 ................................................................... 30 1.4.2.6 派生的数据类型 STRUCT (结构) ................................................. 31 1.4.3 技术目标数据类型 .................................................................................... 33 1.4.3.1 技术目标数据类型的描述 ................................................................ 1.4.3.2 轴属性的继承 .................................................................................. 1.4.3.3 技术目标数据类型的例子 ................................................................ 1.4.4 系统数据类型 ........................................................................................... 36 1.5 变量声明 ........................................................................................................ 36 33 34 35 1.5.1 变量声明的语法 ....................................................................................... 36
1.5.2 所有变量声明的概述 ................................................................................ 38 1.5.3 变量或数据类型的初始值 ......................................................................... 39 1.6 赋值和表达式 ................................................................................................. 42 1.6.1 赋值 ......................................................................................................... 43 1.6.1.1 赋值的语法图 .................................................................................. 43 1.6.1.2 基础数据类型的变量的数值指定 ...................................................... 44 1.6.1.3 串基础数据类型的变量数值指定 ...................................................... 44 1.6.1.4 位数据类型的变量的数值指定 ......................................................... 45 1.6.1.5 派生的枚举数据类型的变量的数值指定 ........................................... 47 1.6.1.6 派生的阵列数据类型的变量的数值指定 ........................................... 47 1.6.1.7 派生的 STRUCT 数据类型的变量数值指定 ..................................... 47 48 49 53 61 61 62 67 69 75 1.6.2 表达式 ..................................................................................................... 48 1.6.2.1 表达式结果 ...................................................................................... 1.6.2.2 表达式的解释顺序 ........................................................................... 1.6.3 运算对象 .................................................................................................. 49 1.6.4 算术表达式 .............................................................................................. 50 1.6.4.1 算术表达式的例子 ........................................................................... 1.6.5 关系表达式 .............................................................................................. 53 1.6.6 逻辑表达式和位串行表达式 ...................................................................... 55 1.6.7 运算符的优先级 ....................................................................................... 56 1.7 控制语句 ........................................................................................................ 57 1.7.1 IF 语句 ..................................................................................................... 57 1.7.2 CASE 语句 .............................................................................................. 59 1.7.3 FOR 语句 ................................................................................................ 60 1.7.3.1 处理 FOR 语句 ................................................................................ 1.7.3.2 FOR 语句规则 ................................................................................. 1.7.3.3FOR 语句例子 .................................................................................. 1.7.4WHILE 语句 .............................................................................................. 62 1.7.5REPEAT 语句 ........................................................................................... 63 1.7.6EXIT 语句 ................................................................................................. 63 1.7.7RETURN 语句 .......................................................................................... 64 1.7.8WAIFORCONDITION 语句 ....................................................................... 64 1.7.9GOTO 语句 .............................................................................................. 66 1.8 数据类型转换 ................................................................................................. 66 1.8.1 基础数据类型转换 .................................................................................... 66 1.8.1.1 隐式数据类型转换 ........................................................................... 1.8.1.2 显式数据类型转换 ........................................................................... 1.8.2 补充的转换 .............................................................................................. 70 2.功能,功能块和程序 ............................................................................................. 70 2.1 创建和调用功能和功能块 ................................................................................ 71 2.1.1 定义功能 .................................................................................................. 71 2.1.2 定义功能块 .............................................................................................. 72 2.1.3FC 和 FB 的声明部分 ................................................................................ 72 2.1.4FB 和 FC 部分的语句 ................................................................................ 74 2.1.5 功能和功能块的调用 ................................................................................ 75 2.1.5.1 参数转移的原则 ...............................................................................
76 2.1.5.2 转移给输入参数的参数 .................................................................... 2.1.5.3 参数转移给 in/out 参数 .................................................................... 77 2.1.5.4 参数转移到输出参数(仅对 FB ) .................................................... 78 2.1.5.5 参数访问时间 .................................................................................. 78 78 2.1.5.6 调用一个功能 .................................................................................. 79 2.1.5.7 调用功能块(实例调用) ................................................................ 2.1.5.8 在 FB 外访问 FB 输出参数 .............................................................. 80 81 2.1.5.9 在 FB 外访问 FB 输入参数 .............................................................. 2.1.5.10FB 调用时的错误源 ........................................................................ 81 2.2 功能和功能块的比较 ....................................................................................... 82 2.2.1 例子说明 .................................................................................................. 82 2.2.2 带注释的源文件 ....................................................................................... 83 2.3 程序 ............................................................................................................... 84 2.4 表达式 ............................................................................................................ 86 3.在 SIMOTION 中 ST 的集成 .................................................................................. 88 3.1 源文件部分的使用 .......................................................................................... 88 3.1.1 源文件部分的使用 .................................................................................... 88 3.1.1.1interface 部分 ................................................................................... 3.1.1.2implementation 部分 ........................................................................ 3.1.1.3 程序组织单元( POU ) ................................................................... 3.1.1.4 功能( FC) ..................................................................................... 3.1.1.5 功能块( FB) ................................................................................. 3.1.1.6 程序 ................................................................................................. 3.1.1.7 表达式 ............................................................................................. 3.1.1.8 声明部分 .......................................................................................... 3.1.1.9 语句部分 .......................................................................................... 3.1.1.10 数据类型定义 ................................................................................ 3.1.1.11 变量声明 ........................................................................................ 3.1.2 在 ST 源文件之间的导入和导出 ............................................................... 97 88 90 90 91 91 92 93 93 94 94 95 3.1.2.1 单元标识符 ...................................................................................... 97 3.1.2.2 一个导出单元的 interface 部分 ........................................................ 98 3.1.2.3 一个导出单元的例子 ........................................................................ 98 3.1.2.4 在一个导入单元的 USES 语句 ........................................................ 99 3.1.2.5 一个导入单元的例子 ...................................................................... 100 3.2 在 SIMOTION 中的变量 ................................................................................ 101 3.2.1 变量模型 ................................................................................................ 101 3.2.1.1 单元变量 ........................................................................................ 103 3.2.1.2 不保留的单元变量 ......................................................................... 104 3.2.1.3 保持单元变量 ................................................................................ 105 3.2.1.4 本地变量(静态和临时变量) ....................................................... 106 3.2.1.5 静态变量 ........................................................................................ 108 109 3.2.1.6 临时变量 ........................................................................................ 3.2.2 全局设备变量的使用 .............................................................................. 110 3.2.3 变量类型的存储范围 .............................................................................. 111 112 3.2.3.1 存储区域的例子,有效关于 KernelV3.1 ........................................ 3.2.3.2 本地数据栈变量的存储要求( kernel V3.1 或更高) ...................... 115 3.2.4 变量初始化的时间 .................................................................................. 117 3.2.4.1 保留全局变量的初始化 .................................................................. 3.2.4.2 不保留的全局变量的初始化 ........................................................... 3.2.4.3 本地变量的初始化 ......................................................................... 3.2.4.4 静态编程变量的初始化 .................................................................. 3.2.4.5 功能块实例的初始化 ...................................................................... 117 118 119 120 121
3.2.4.6 技术目标的系统变量的初始化 ....................................................... 121 3.2.4.7 全局变量的版本 ID 和下载时的初始化 ........................................... 122 3.2.5 变量和 HMI 设备 .................................................................................... 123 3.3 访问输入和输出(过程图像, I/O 变量) ...................................................... 125 3.3.1 访问输入和输出的概述 ........................................................................... 125 3.3.2 直接访问和过程图像访问的重要特征 ...................................................... 126 3.3.3 直接访问和循环任务的过程图像 ............................................................. 127 3.3.3.1 直接访问和循环任务的过程图像的 I/O 地址的规则 ....................... 128 3.3.3.2 为直接访问和循环任务的过程图像创建一个 I/O 变量 .................... 129 3.3.3.3 输入 I/O 地址的语法图 ................................................................... 130 131 3.3.3.4 可能的 I/O 变量的数据类型 ........................................................... 3.3.4 背景任务的固定过程图像的访问 ............................................................. 131 3.3.4.1 背景任务的固定过程图像的绝对访问(绝对 PI 访问) .................. 132 3.3.4.2 一个绝对过程图像访问的标识符语法 ............................................ 133 3.3.4.3 背景任务的固定过程图像的符号访问(符号 PI 访问) .................. 134 3.3.4.4 可能的符号 PI 访问的数据类型 ...................................................... 135 3.3.4.5 符号 PI 访问的例子 ........................................................................ 135 3.3.4.6 为访问背景任务固定过程图像而创建一个 I/O 变量 ....................... 135 3.3.5 访问 I/O 变量 ......................................................................................... 136 3.4 使用库 .......................................................................................................... 136 3.4.1 编辑一个库 ............................................................................................ 137 3.4.2 库的 know-how 保护 .............................................................................. 138 3.4.3 从库中使用数据类型,功能和功能块 ...................................................... 139 3.5 相同的标识符和命名空间的使用 ................................................................... 140 3.5.1 相同的标识符的使用 .............................................................................. 140 3.5.2 命名空间 ................................................................................................ 142 3.6 参考数据 ...................................................................................................... 145 3.6.1 交叉对照表 ............................................................................................ 146 3.6.1.1 创建一个交叉对照表单 .................................................................. 3.6.1.2 交叉对照表的内容 ......................................................................... 3.6.1.3 交叉对照表的使用 ......................................................................... 3.6.2 程序结构 ................................................................................................ 147 3.6.2.1 程序结构的内容 ............................................................................. 3.6.3 代码属性 ................................................................................................ 148 3.6.3.1 代码属性内容 ................................................................................ 3.7 控制预处理器和 pragma 编辑 ....................................................................... 149 3.7.1 控制一个预处理器 .................................................................................. 149 146 146 147 148 149 150 153 3.7.1.1 预处理器语句 ................................................................................ 3.7.1.2 预处理器语句的例子 ...................................................................... 3.7.2 属性控制编辑器 ..................................................................................... 154 3.8 跳转语句和标签 ............................................................................................ 156 4.错误源和程序调试 ...............................................................................................157 4.1 避免错误和有效编程的注释 .......................................................................... 157 4.2 程序调试 ...................................................................................................... 157 4.2.1 程序测试的模式 ..................................................................................... 157 4.2.1.1SIMOTION 设备模式 ...................................................................... 4.2.1.2life-sign 监视的重要信息 ................................................................. 157 159
4.2.1.3life-sign 监视参数 ........................................................................... 4.2.2 符号浏览器 ............................................................................................ 161 4.2.2.1 符号浏览器的属性 ......................................................................... 4.2.2.2 使用符号浏览器 ............................................................................. 4.2.3 在 watch 表中监视变量 .......................................................................... 163 4.2.3.1 在 watch 表中的变量 ..................................................................... 4.2.3.2 使用 watch 表格 ............................................................................ 4.2.4 程序运行 ................................................................................................ 164 160 161 161 163 163 165 166 168 169 4.2.4.1 程序运行:显示代码位置和调用路径 ............................................ 164 4.2.4.2 参数调用栈程序运行 ...................................................................... 165 165 4.2.4.3 程序运行工具栏 ............................................................................. 4.2.5 程序状态 ................................................................................................ 165 4.2.5.1 程序状态的属性 ............................................................................. 4.2.5.2 使用状态程序 ................................................................................ 4.2.5.3 程序状态的调用路径 ...................................................................... 4.2.5.4 参数调用路径状态程序 .................................................................. 4.2.6 断点 ....................................................................................................... 169 169 4.2.6.1 设置断点的普通步骤 ...................................................................... 170 4.2.6.2 设置 debug 模式 ............................................................................ 171 4.2.6.3 定义 debug 任务组 ........................................................................ 172 4.2.6.4debug 任务组参数 .......................................................................... 173 4.2.6.5debug 表格参数 .............................................................................. 173 4.2.6.6 设置断点 ........................................................................................ 4.2.6.7 断点工具栏 .................................................................................... 175 4.2.6.8 定义一个单独断点的调用路径 ....................................................... 175 177 4.2.6.9 断点调用路径 /任务选择参数 .......................................................... 4.2.6.10 定义所有断点的调用路径 ............................................................ 178 4.2.6.11 每个 POU 所有断点的调用路径 /任务选择参数 ............................ 179 180 4.2.6.12 激活断点 ...................................................................................... 4.2.6.13 显示调用栈 .................................................................................. 181 182 4.2.6.14 断点调用栈参数 ........................................................................... 4.2.7 追溯 ....................................................................................................... 182
1. ST 基本原理 此章节描述了 ST中的语言资源和使用方法。请注意此章节中描述了功能、功能块和任务 控制系统。一个完整正式的语言描述包括语法图。 1.1 语言描述 在本手册的下列章节中语法图用作语言描述的基础, 为你提供了对 ST语法结构的新认识。 1.1.1 语法图 语法图是对语法结构的图形式的阐述。结构是由一系列的规则描述组成。可以基于现有 的规则生成新的规则。 上图中的语法图需从左至右读。需要注意下列规则结构: ●序列:块的序列 ●选项:可以跳过的语句 ●迭代:一个或多个语句的重复 ●替代: Branch 1.1.2 语法图中的块 块是基本元素。下图显示了代表块而使用的符号类型。
要更多解释的基本元素 由更多的语法图解释的复合单元 当输入源文本时需要注意格式化规则和非格式化规则。比如:把语法图中的块或元素转 化为源文本(见帮助中的语言描述,第 291 页) 1.1.3 规则的意义(语义) 规则能仅代表语言的格式结构。意义(语义)一般不明显。由于这个原因,如果意义很 关键,则需要在规则旁边写上额外的信息。 ●如果同类型的元素意义不同,需要附上额外的命名。例如,额外指定每个十进制字符串 元素—年,月或日(见 308 页)。名称表示了用途 ● 重要的限制也列出。 如:整数规则中对于— (负号),标明负号只能在 SINT, INT, and DINT 数据类型之前出现(见 308 页) 1.2 基本元素的语言 ST语言的基本元素包括 ST字符组 , 根据 ST字符组(如:语言命令)创建的预留标识符, 自定义的标识符和数字。 ST 字符组合预留标识符都是基本的元素( terminals ),因为是无需另外的规则来描述。 自定义的标识符和数字不是 terminals,因为它们是由另外的规则来描述。 在语法图中,终端是由圆形或者椭圆形符号来表示,但是复合单元由长方形来表示(见 语法图中的块,第 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)、数字( 0 到 9)或单独的下划线随意组成,但是首字 符必须是字母或者下划线。大小写字母没有区分(比如,在编辑器中 样的)。 Anna 和 AnNa 是一 一个正式的标识符可以由以下的语法图表示: 命名时,最好选用唯一的、有意义的命名,以便解释程序。 图表中的语法图声明了一个标识符的首字符必须是字母或者下划线。下划线必须跟着字 母或数字。如:不允许连续有两根或以上的下划线。下划线可以跟着任意或者一系列的 数字,下划线或字母。在这唯一的例外是两条下划线可能不会同时出现。
分享到:
收藏