操作指南:
在 S7-SCL 和 LAD/FBD/STL 编辑器中,要在 UDT 或 DB 中声明一个 ANY 数据类型的变量是不可能的,因为 ANY 变量是一个参数类型。但是,可以声明 ANY 变量是一个临时变量。
当调用 SFC14 或 SFC15 时,应确保通过 ANY 变量“记录”被参数化的用户数据区的长度必须与 HW Config 中的模块组态中的用户数据区长度相同(例如 3 字节)。这就是为什么建议要在 STL 中调用这些块,目的是可以定义 ANY 指针到精确的字节上(例如 DB100.DBX0.0 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
程序描述:
“调用_SFC14_15”功能提供一个 DP 标准从站的 SFC14 读取和 SFC15 书写的一致数据。数据存储在“DB_Number”数据块类似在字节地址“DB_Byte_Adr”中。字节的数字长度(“BYTE_COUNT”) 一定要与 STEP 7 组态选取的模块的长度相同。如果“SFC15_Select”参数信号状态“1” (True),数据传送到 SFC15 的从站,如果信号状态是“0” (False),则被 SFC14 读取。“LADDR”参数和返回值“RET_VAL”在 STEP 7 SFC14/15 在线帮助中有描述。
下载:
附件下载包括有 S7-SCL 功能 FC10 的 STEP 7 项目。复制 “NY_SCL.zip”文件到一个单独的文件夹,然后双击打开文件。STEP 7 V5.4 项目及所有相关子目录就会自动解包。可以使用 SIMATIC 管理器打开和处理解压缩项目。
此处有STEP 7 项目中的两个相同的 S7 程序。
- “S7-Prog_d”包括德文注释的 S7-SCL 功能。
- “S7-Prog_e”包括英文注释的 S7-SCL 功能。
ANY_SCL.zip ( 48 KB )
重要提示:
例子项目是免费软件。任何用户均可免费使用、复制以及转发本程序。程序的作者和拥有者对于该软件的功能和兼容性不承担任何责任。使用该软件可能带的风险由用户自行承担。由于该软件为免费软件,所以不提供任何担保,并且没有义务提供错误纠正和不提供热线支持。
关键字:
ANY 指针