文档介绍:访问 S7 - SCL 数组的索引> 问题: 我能否得到一个访问 SCL 数组的索引? 解答: 可以。在 SCL 中可以有一个访问数组变量的索引, 这里索引也可以是一个单精度的变量(与 STEP7 � STL 成对比)。 Example: function FC1:void var anna : ARRAY[1..30] OF INT; willy : INT; end_var begin willy:= 1; willy := anna[willy]; end_function 关键字: 索引在 S7-SCL 中如何进行 SFC14 和 SFC15 ANY 参数的编程? 使用说明操作指南: 在 S7-SCL 和 LAD/FBD/STL 编辑器中,要在 UDT 或 DB 中声明一个 ANY 数据类型的变量是不可能的, 因为 ANY 变量是一个参数类型。但是, 可以声明 ANY 变量是一个临时变量。当调用 SFC14 或 SFC15 时, 应确保通过 ANY 变量“记录”被参数化的用户数据区的长度必须与 HW Config 中的模块组态中的用户数据区长度相同( 例如 3 字节)。这就是为什么建议要在 STL 中调用这些块,目的是可以定义 ANY 指针到精确的字节上( 例如 BYTE 3)。如果在符号编程过程中,在 SCL 或 LAD/FBD/STL 中, 传送 STRUCT 或 ARRAY 到 ANY 类型的块参数时,编译器传送适当的 ANY 指针。如果直接调用 SFC14 或 SFC15 并通过“ STRUCT ”或“ ARRAY ”类型的变量用符号提供“记录”参数,若从站组态的字节数是奇数,则 SFC14/15 报告错误代码 80B1 。这个动作的原因是 STEP 7 中的 STRUCT 与 ARRAY 总是按字的边界储存在存储器中,所以总是传输的是偶数长度。如果在 S7-SCL 中调用 SFC14 或 SFC15 并要动态地提供 ANY 指针, 建议在 SCL “变量区域声明视图”中使用“ AT ”结构。图. 01 程序描述"CALL_SFC14_15" 功能块提供了 SFC14 读取和 SFC15 写一致性的数据到一个标准的从站。数据被储存在"DB_Number" 所指的 DB 块中"DB_Byte_Addr" 所指的地址开始的地址区中。字节的长度(“ BYTE_COUNT ”) 一定要与 STEP 7 组态所选模块的长度相同。如果"SFC15_Select" 参数的状态指示未"1" (True), 用 SFC15 传输数据到从站,若指示为"0" (False), 用 SFC14 从从站读取数据。“ LADDR ”参数和返回值“ RET_VAL ”在 STEP 7 SFC14/15 在线帮助中有描述。用户创建数据区拷贝功能注意事项例如,在"WORD_TO_BLOCK_DB(DBNo).DBB[Index]" 形式下,用户需自定义两个索引标签, 数据区拷贝和索引的直接访问是不允许的。原因是数据块号和此数据块的地址仅可以在运行的过程中被访问。除此之外系统是禁止访问的。下载附件下载包括有 S7-SCL 功能 FC10 的 STEP 7 项目。复制“ ”文件到一个单独的文件夹, 然后双击打开文件。 STEP 7 项目及所有相关子目录就会自动解包。可以使用 SIMATIC 管理器打开和处理解压缩项目。此处有 STEP 7 项目中的两个相同的 S7 程序。“ S7-Prog_d ”包括德文注释的 S7-SCL 功能。“ S7-Prog_e ”包括英文注释的 S7-SCL 功能。 ( 48 KB ) 相关信息: 关于带 AT 功能的 ANY 指针的结构的更多信息可在条目号 21946854 获得。关键字: ANY pointer S7-SCL 中的全局常数显示订货号描述使用 S7-SCL ,不能定义任何全局常数。解决方法: 在 STEP 7 的符号表中,使用相应的数据类型创建标记字或双字。为这些标记区域分配恒定的数值。此后, 便可以在整个项目中通过符号寻址和恒定分配的数值来使用标记数据区, 这当然也包括 S7-SCL 。 在变量表中定义"Global_Const" 变量, INT 类型,地址是"MW50" 。在 OB1 里使用 load 和 transfer 指令赋值。由此即可在项目和 S7-SCL 源程序里使用此变量。图 01 S7-SCL 中如何编辑、比较字符串,或将字符串转变为其他的数据类型? 显示订货号描述: 此条目下处理下列问题: 对一个字符串中的某个字符进行直接读写访问编辑,比较,转换数据类型编写一个字符串比较的 FB 例程