全国服务热线 15801815554

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

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


                在 S7-1500-R/H 系统的 SYNCUP 系统状态下调用 RDREC 在 S7-1500-R/H 系统的 SYNCUP 系统状态下调用 RDREC 指令时,通常返回错误代码 0x7001 和 0x7002。即使出错(如,数据记录源不存在),也不会生成其它错误代码。此时,仅当 SYNCUP 状态结束后,才会生成正确的错误代码。 需要循环调用 RDREC 才能实现 SYNCUP 系统状态的动态响应。 参数 下表列出了“RDREC”指令的参数: 参数 声明 数据类型* 存储区 说明 REQ Input BOOL I、Q、M、D、L、 T**、C** 或常量 REQ = 1:传送数据记录 ID Input HW_IO I、Q、M、D、L 或 常量 硬件模块 (DP/PROFINET IO) 的硬件标识 符。 该标识符由系统自动分配并存储在硬件配 置的模块或接口的属性中。 INDEX Input DINT I、Q、M、D、L 或 常量 数据记录编号 MLEN Input UINT I、Q、M、D、L 或 常量 要读取的数据记录信息的Zui大长度(字 节) VALID 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 块状态或错误信息 LEN Output UINT I、Q、M、D、L 所读取数据记录信息的长度功能描述 “RDREC”为异步执行指令。即,指令的执行可跨多次调用。调用“RDREC”时,如果 REQ = 1, 则启动数据记录传送。 作业状态通过输出参数 BUSY 和输出参数 STATUS 的两个中间字节显示。STATUS 的两个中间 字节与异步工作的指令的 RET_VAL 输出参数相对应。 另请参见“同步指令和异步指令之间的不同之处 (页 715)”。 输出参数 BUSY 的值为 FALSE 时,表示数据记录已传送完成。

              读取数据记录的目标范围。 如果使用 NREF 系统数据类型对数据块中 的目标范围进行优化访问,则目标范围内 不会写入任何值。 * STL 中不支持隐式转换,因此有效数据类型的范围会受到限制。在 STL 中编程时,注意参数工具提示中每 种情况下允许的数据类型 ** 仅适用于 S7-1500。 有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 说明 如果使用“RDREC”读取 PROFINET IO 的数据记录,则 INDEX、MLEN 和 LEN 参数中的负值将 被解释为无符号 16 位整数。PC 系统的特殊情况:确定 Windows 状态 以下情景有助于用户确认 PC 系统的 Windows 状态: • 通过一个循环 OB(如 OB1)调用“RDREC”指令 (SFB52)。 要通过“RDREC”指令确定 Windows 系统的状态,可为该软件控制器定义一个数据记录索引 (0x7FFE)。 可通过以下输入参数调用“RDREC”指令:表示 Windows 状态的数据记录将由第 8 个字节输出,可包含以下内容: • 0x01:Windows 正在运行 • 0x02:Windows 未运行 • 0x03:蓝屏故障 说明 系统崩溃后,Windows 不再响应,然后显示蓝屏指示系统崩溃的原因和时间。默认情况 下,蓝屏保持yongjiu可见。 系统在出错后停止,用户可进入以下场景: • Windows 不再向组态的软件 CPU 发送信号 • 不调用 OB82 • 诊断条目未创建使用 RDREC 指令读取 I&M 数据记录的程序示例 (S7-1200, S7-1500) 简介 在以下示例中,将读取 CPU S7-1500 的 I&M0 数据记录。 有关数据记录的更多信息,请参见“数据记录类型概述”。 要求 在全局数据块中,创建有 9 个变量和一个结构进行数据存储。在“PLC 变量 > 系统常量”(PLC tags > System constants) 中,读取 CPU 硬件标识符。此时,CPU 将显示数据类型为“Hw_SubModule”的。并通过输入参数 ID(“id”)存储该硬件标识 符。输入参数 REQ(“start”)返回信号状态“TRUE”时,启动指令“RDREC”。“RDREC”指令将通过输 入参数 ID(“id”),调用该模块。通过输入参数 INDEX(“dataRecNbr”),系统将调用 CPU 的 I&M0 数据记录。 多次调用后,“RDREC”指令将读取 I&M0 数据记录,并通过参数 RECORD(“recordIM0”)进 行保存。此外,I&M0 数据记录中还包含以下信息。 • 供应商名称(“VendorID_HL”) • 订货号(“OrderID”)和设备编号(“IM_SerialNbr”) • 硬件(“IM_HWrev”)和软件信息(“IMSWrev”) • IM 版本(“IM_Version”)和支持带宽的 I&M 数据记录(“IM_Supported”) 通过输出参数 LEN(“len”),可存储所读取数据记录的长度。根据输入参数 MLEN (“maxLen”)的值,值为“0”时,待读取的数据记录信息将不受限制。 在执行过程中,输出参数 BUSY(“busy”)将置位为“TRUE”;VALID(“checkedValid”)将置位 为“FALSE”。在执行完成后,将输出成功读取的结果(“checkedValid”到“TRUE”)。并在输出 参数 STATUS(“status”)处,显示该块的状态。该过程成功执行且无任何错误。使用 RDREC 读取诊断数据记录的编程示例 (S7-1200, S7-1500) 简介 在以下示例中,可通过 RDREC 读取 IO 设备的诊断数据记录“16#E00A”。触发断路时,系统 将错误信息输出为一条诊断数据记录。 有关数据记录的更多信息,请参见“数据记录类型概述 (页 2770)”。 说明 诊断数据记录的数目 对于该 IO 设备,模块上每个触发错误的插槽都将生成自己的数据记录。因此,诊断信息中 可包含多条记录。 在该示例中,将读取多个模块的多个硬件错误(通道错误),并将这些错误复制到存储器数 组的相应结构中。根据指定的设置,存储器数组(“recordA”、“recordB”)Zui多可包含 6 条数 据记录、16 个通道。触发断路 确保触发断路的 DQ 模块通道未接线。 说明 硬件配置的操作步骤 要进行硬件配置,请按以下步骤操作: 1. 通过 PROFINET 连接 CPU 和 IO,并将 CPU 分配给 IO 设备作为 IO 控制器。 2. 打开相应 DQ 模块的路径“属性 > 输出 0-x > 输出 > 通道 0-y”(Properties > Output 0-x > Outputs > Channel 0-y)。 3. 选择待组态的每个通道,然后在“诊断”("Diagnostics) 区域中选中“断路”(Wire break) 选项。数组的大小 如果要更改数组的大小(用于读取存储器、数据记录或通道),则需执行以下操作: • 通道:在 PLC 数据类型(“RECdiag_0100”、“RECdiag_0101”)中修改数组的大小(“Array[0..y] of USI_v..”)。在 gDB 中修改“maxChannelPos”值。 • 数据记录:在 gDB 中修改数组的大小(“recordA”、“recordB”)。在 gDB 中修改“maxRecordPos” 值。 • 读取存储器(“recordBYTE”):在 gDB 中修改数组的大小(“recordBYTE”)和“maxPosition”的 值。请注意,诊断数据记录“16#E00A”的Zui大总长度为 4176 个字节。 创建监控表 要触发断路,需使用监控表的“强制”(Force) 功能。 例如,如果要将输出“%QW0”的值强制为“16#FFFF”,则所有组态有断路的通道可使用该输出 触发一个硬件错误。读取 IO 设备前端模块的硬件标识符,并使用“id”变量进行存储。通过“PLC 变量 > 系统常 量”(PLC tags > System constants) 以及等条目,可查找到前端模块的硬 件标识符。所用的数据类型为“HW_SubModule”。 函数“SLI_FC_start_RDiag”:参数互连 要启动“RDREC”指令,可根据硬件故障创建函数“SLI_FC_start_RDiag”。 在 FC 中创建以下互连。 事件 FB“SLI_FB_RDREC_Diag” 程序段 1: 如果常开触点(“reset”)的信号状态为“TRUE”,则系统将复位 FB “SLI_FB_chooseStruct_RDiag”的过程值和全局数据块的过程值。 程序段 2: 输入参数 REQ(“startRead”)返回信号状态“TRUE”时,启动指令“RDREC”。 说明 调用“startRead” 根据 OB82 的调用结果,每次检测到硬件错误时,“startRead”将复位为“TRUE”。通过变量 “countCalls”,可计数 RDREC 成功调用的次数。触发三个通道错误后,“countCalls”值将为“3”。 “RDREC”指令将通过输入参数 ID(“id”)调用 IO 设备的前端模块。输入参数 INDEX (“dataRecNbr”)用于调用 IO 设备的诊断数据记录“16#E00A”。 “RDREC”指令将通过多次调用读取诊断数据,并使用 RECORD 参数(“recordBYTE”)保存所 读取的数据(x 条数据记录)。读取的数据长度记录在 LEN 输出参数(“#lengthOut”)中, 并使用变量“readLength”进行保存进行进一步处理。根据输入参数 MLEN 的值(“maxLength” 的值为“0”),待读取的数据长度无限制。 在执行过程中,输出参数 BUSY(“busy”)将置位为“TRUE”;VALID(“checkedValid”)将置位 为“FALSE”。仅当执行完成后,才会输出成功读取的结果(“checkedValid”置位为“TRUE”); 函数块“SLI_FB_chooseStruct_RDiag”将该结果用作一个起始条件。要结束函数块 “SLI_FB_chooseStruct_RDiag”的执行,系统将变量“checkedValid”置位为“FALSE”。 并在输出参数 STATUS(“#statusExe”)处,显示该块的状态。在本示例中,该过程成功执行 且无任何错误。

联系方式

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