SCL编程问答 联系客服

发布时间 : 星期三 文章SCL编程问答更新完毕开始阅读d201657f1711cc7931b71618

“P#DB6.DBX0.0 Byte 10” 的结构: ? ? ? ? ? \//语法 ID 为十六进制 \//为数据类型字节 \//长度为 10 字节 \//为 DB6 \//数据块的字节和位地址 4 用定义了的 ANY 变量“pAny_source”和“pAny_destin”确定SFC20(BLKMOV)的 ANY 参数(图 01),例如, ? \INT 类型的变量“erg”对应于函数的返回值(RET_VAL), 下表描述了如何在 UDT 中定义一个 ANY 指针。 No. 步骤 1 首先创建一个 UDT 来定义 ANY 参数,例如为参数创建一个符号名为“AnyPoint” 的 UDT1: ? SyntaxID: BYTE; //指定语法 ID ? ? ? ? DataType: BYTE; //数据类型编码 DataCount: INT; //重复因数 DB_Number: WORD; //数据块数 BytePointer: DWORD; //字节和位地址的指针 2 在函数中声明了变量,如“AnyPoint”类型 (UDT1) 的“buffer_source”(源 DB)和“buffer_destin”(目的 DB)。使用 S7-SCL 指令 AT 通过结构变量“buffer_source”和“buffer_destin”创建模板,并声明为此而定义的变量为“ANY”类型,例如“Source_Any”和“Destin_Any”。使用指令 ? ? \AT buffer_source: ANY;\ \AT buffer_destin: ANY;\已经定义 ANY 指针如图 02 所示。 Li Ran/2_Release/20110505/Finished/S7_SCL_AT_Funktion_02.png 图 02 3 现在必须用图 02 中的结构化指令预置 ANY 指针。以下指令对应于目的数据块的 ANY 指针“P#DB7.DBX0.0 Byte 10”。 ? ? ? ? \//语法 ID 为十六进制 \//数据类型字节 \//本长度为 10 字节 \//为 DB7 ? \//数据块的字节和位地址 4 用定义了的 ANY 变量“Source_Any” 和“Destin_Any” 确定 SFC20 (BLKMOV) 的 ANY 参数 (图 02),例如, ? \INT 类型的变量“erg” 对应于函数的返回值 (RET_VAL)。 关于 ANY 指针的更多信息可见 STEP 7 的在线帮助的以下标题中 ? 参数类型 ANY 的格式 注意事项 如果在 S7-SCL 中用 STL 程序调用一个函数,而且该函数有一个 ANY 类型的 OUT 参数,就要用 ANY 指针将其参数化,例如,像“P#DB10.DBX0.0 BYTE 10”不可能在 S7-SCL 中,因为 ANY 指针在 STL 和 S7-SCL 中的处理是不一样的。当在 S7-SCL 中从 ANY 到 ANY 赋值时,为了转发接收到 INPUT 参数的 ANY 指针,就会有 10 个字节从一个指针复制到其它指针(6 字节)。为了确定 STL 程序的 ANY OUT 参数推荐使用“STRUCT” 类型(如上例所述)。如果一个不是 ANY 的类型变量赋值给 ANY 变量,那么 S7-SCL 编译器就会创建地址(10 字节)并且将其写入 ANY 指针。 复制“SCL_Any.zip”文件到一个单独的文件夹,并且双击打开。STEP 7 V5.5 项目以及其全部相关子目录就会自动解包。可以使用 SIMATIC 管理器打开和处理压缩项目。STEP 7 项目包含两个站。站_1 包含在一个函数中定义 ANY 指针的程序 而站_2 包含在一个 UDT 中定义 ANY 指针的程序。 Li Ran/2_Release/20110505/Finished/disk_35.gif SCL_ANY.zip ( 88 KB ) 关键字 滤波器,滤波,变量数据类型,变量视图 How can you construct an ANY pointer in S7-SCL using the AT function? Display part number Instructions In S7-SCL you can use the AT command to define other views of the declared variables. The two examples below describe how to declare the components for the ANY pointer, create the ANY pointer and parameterize the SFC20 (BLKMOV) for copying data from DB6 to DB7. The table below describes how to proceed to define an ANY pointer in a function. No. Procedure 1 STEP 7 saves the data of the parameter type ANY in 10 bytes. For this you must define a structured variable that contains the parameter types like \number\shows a sample declaration of the two structured variables \