全国服务热线 15801815554

SIEMENS西门子 S120伺服电机1FK7022-5AK71-1LG5

更新时间:2024-07-04 08:00:00
价格:请来电询价
西门子:代理商
S120:全新原装 假一罚十
德国:现货 实体经营
联系电话:15801815554
联系手机:15801815554
联系人:邓经理
让卖家联系我
详细介绍


               WRREC:写入数据记录 (S7-1200, S7-1500) WRREC: 写数据记录 (S7-1200, S7-1500) 说明 指令“WRREC”用于将 RECORD 数据记录传送到地址为 ID 的组件中。该组件可以是中央机架 中的一个模块或一个分布式组件(PROFIBUS DP 或 PROFINET IO)。 • 通过 ID 参数,可选择待写入数据记录的模块。对于 ID 参数,仅使用模块的硬件标识符 (HW ID)。模块的硬件标识符,位于“PLC 变量 > 系统常量”(PLC tags > System constants) 中。例如,S7-1500 DI 模块:将显示为数据类型为“Hw_SubModule”的。 • 使用 INDEX 参数,可选择待写入的数据记录。该模块将确定数据记录编号与待写入的数 据记录。更多信息,请参见相关模块的手册。 • 使用 LEN 指定要传输的数据记录的长度(字节)。选择长度至少为 LEN 个字节的源区域 RECORD。 • 输出参数 DONE 的值为 TRUE 时,表示数据记录已成功传送。 • 如果在数据记录的传送过程中发生错误,则通过输出参数 ERROR 指示错误。此时,输出 参数 STATUS 中包含错误信息。 说明 指令“WRREC”的接口与标准“PROFIBUS and PROFINET Guideline Communication Function Blocks on PROFIBUS DP and PROFINET IO”中定义的“WRREC”函数块接口相同。 功能描述 “WRREC”为异步执行指令,可以跨多个调用执行。当 REQ = 1 时,调用“WRREC”,将启动数 据记录传送。 作业状态通过输出参数 BUSY 和输出参数 STATUS 的两个中间字节显示。STATUS 的两个中间 字节与异步工作的指令的 RET_VAL 输出参数相对应。 另请参见“同步指令和异步指令之间的不同之处 (页 715)”。 请注意,对于属于同一任务的所有“WRREC”调用,必须为 RECORD 的实参指定相同的值。这 同样适用于 LEN 的实参。 输出参数 BUSY 的值为 FALSE 时,表示数据记录已传送完成。程序段 3: 当常开触点(“error”)的信号状态为“TRUE”时,如果发生错误(“memErrStatus”),则系统 保存该状态(“#statusExe”)。同时复位变量“checkedValid”和“startRead”,并停止 RDREC 的 执行。函数块“SLI_FB_chooseStruct_RDiag”的执行将无法启动。 程序段 4: RDREC 完全执行后(“#statusExe”的值为“16#0070_0200”),“startRead”将置位为“FALSE”。 并停止 RDREC 的执行。 程序段 5: 如果常开触点(“startRead”)的信号状态为“TRUE”,则将跳转到程序段 1 的“RDREC”标签处 (使用 "JMP" 指令)。 程序段 6: 如果变量“checkedValid”的信号状态为“TRUE”,且变量“reset”的信号状态为“FALSE”,则在函 数块“SLI_FB_chooseStruct_RDiag”中启动排序过程。 在函数块“SLI_FB_chooseStruct_RDiag”中,将选择相应数据记录的结构类型以及与 UserStructureIdentifier 相匹配的结构类型。系统将数据记录的数据复制到相应数组中的正确 位置中。之后,将根据相应数据记录的大小多次重复执行以上操作。此时,系统将读取一个 或多个通道的信息。 如果对数据记录内容进行操作后,“数据记录的长度 + 前置长度”(“#allRecLEN”)小于所 有读取的数据长度(“readLength”),则将从顶部重新开始函数块的执行。此时,系统将读 取另一个数据记录、进行内容比较,并将该数据记录的数据复制到相应数组的正确位置处。

               通过将局部变量(“#readComplete”、“#dbComplete”、“#limitReach”)和全局变量 “checkedValid”设置为“FALSE”,可完成排序过程。 基于以下变量,可记录该排序过程: • “data_sorting_done”:该变量用于指示函数块“SLI_FB_chooseStruct_RDiag”的执行已结 束。同时变量“checkedValid”复位,表示该函数块无法重新执行。 • “outputOverflow”:该结构中包含三个变量,每个变量分别记录不同的数组超出限值错 误。例如,读取的数据记录数量超出相应数组(“recordA”或“recordB”)可存储的Zui大数 量。 • “different_structs_used”:如果使用“recordA”和“recordB”存储诊断数据记录,则变量 “different_structs_used”将返回值“TRUE”。 • “countRecs”:该变量用于计数复制的数据数目。 • “chooseStruct”:该变量用于指示上一次所用的结构。值“4”用于指示“recordB”结构中上一 次以“USI Type 1”形式存储的数据记录。 • “posForRec”:该变量将存储数据记录(“recordA”或“recordB”)的数组中Zui近使用的位 置。值“1”用于指示“recordB[1]”中上一次存储的数据记录(参见“chooseStruct”)。 • “posForChannel”:该变量将存储通道(“USI_DetailsType[x]”)的数组中Zui近使用的位 置。值“0”用于指示“recordB[1]/USI_DetailsType[0]”中存储的通道(参见“chooseStruct”和 “posForRec”)。在 S7-1500-R/H 系统的 SYNCUP 系统状态下调用 WRREC 在 S7-1500-R/H 系统的 SYNCUP 系统状态下调用 WRREC 指令时,通常返回错误代码 0x7001 和 0x7002。即使出错(如,数据记录目标不存在),也不会生成其它错误代码。此时,仅 当 SYNCUP 状态结束后,才会生成正确的错误代码。 需要循环调用 WRREC 才能实现 SYNCUP 系统状态的动态响应。 参数 下表列出了“WRREC”指令的参数: 参数 声明 数据类型** 存储区 说明 REQ Input BOOL I、Q、M、D、L、 T*、C* 或常量 REQ = 1:传送数据记录 ID Input HW_IO I、Q、M、D、L 或 常量 硬件组件 (DP/PROFINET IO) 的 ID 号 该编号自动分配并存储在硬件配置的组件 或接口属性中。 INDEX Input DINT I、Q、M、D、L 或 常量 数据记录编号 LEN Input UINT I、Q、M、D、L 或 常量 (隐藏) 要传输的数据记录的Zui大长度(字节) DONE Output BOOL I、Q、M、D、L 数据记录已传送 BUSY Output BOOL I、Q、M、D、L BUSY = 1:写入过程尚未完成。 ERROR Output BOOL I、Q、M、D、L ERROR = 1:写入过程中发生错误。 STATUS Output DWORD I、Q、M、D、L 块状态或错误信息 有关 STATUS 参数的解释,请参见下文。 RECORD InOut VARIANT I、Q、M、D、L 数据记录 * 仅适用于 S7-1500。 ** STL 中不支持隐式转换,因此有效数据类型的范围会受到限制。在 STL 中进行编程时,请注意有效的数据 类型。这些信息将显示在参数工具提示中。 有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 说明 如果使用“WRREC”写入 PROFINET IO 的数据记录,则 INDEX 和 LEN 参数中的负值将被解释 为无符号 16 位整数。通过 WRREC 和 RDREC 使用参数数据记录的程序示例 (S7-1200, S7-1500) 简介 在以下示例中,将通过 RDREC 读取数字量输入模块的参数数据记录,并通过 WRREC 重新写 入该数据记录。为此,需要更改输入延时。 有关数据记录的更多信息,请参见“数据记录类型概述 (页 2770)”。 要求 创建以下变量,在全局数据块中进行数据存储: • 2 个通用变量和 7 个用于 WRREC 的变量:程序段 1 的结果: 创建一个输入模块并读取该输入模块属性中的硬件 ID。并通过输入参数 ID(“id”)存储该硬 件标识符。通过输入参数 INDEX(“dataRecNbr”),系统将调用该模块中编号为“3”的数据记 录。该数据记录对应同名的通道。 输入参数 REQ(“startRead”)返回信号状态“TRUE”时,启动指令“RDREC”。“RDREC”指令将通 过输入参数 ID(“id”),调用该输入模块。 多次调用后,“RDREC”指令将读取该数据记录,并通过参数 RECORD(“#readBYTE”)进行保 存。通过输出参数 LEN(“#readLength”),可存储所读取数据记录的长度。根据输入参数 MLEN(“maxReadLength”)的值,待读取的数据记录信息将限制为 4 个字节。 在执行过程中,输出参数 BUSY(“readBusy”)将置位为“TRUE”;VALID(“#readCheck”)将 置位为“FALSE”。 执行完成时,将输出成功读取的结果,如下所示: • 输出参数 VALID(“#readCheck”)将置位为“TRUE”,变量“readCheckedValid”将yongjiu性地 置位为“TRUE”。 • 此外,局部变量“#readLength”的值也将yongjiu性地存储在变量“readLength”中。 并在输出参数 STATUS(“readStatus”)处,显示该块的状态。该过程成功执行且无任何错误。

联系方式

  • 地址:上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201100
  • 电话:15801815554
  • 联系人:邓经理
  • 手机:15801815554
  • 微信:15801815554
  • QQ:190755061