浔之漫智控技术(上海)有限公司
西门子授权代理商 , 西门子授权代理商 , 西门子一级代理商
SIEMENS西门子 S120伺服电机 1FK7022-5AK71-1LH5-Z 


         

              DeviceStates: 读取 IO 系统的模块状态信息 (S7-1200, S7-1500) 说明 指令“DeviceStates”用于查询 IO 系统中所有模块的特定状态信息,即: • PROFINET IO 系统中所有 IO 设备的状态信息 • 或 DP 主站系统中所有 DP 从站的状态信息 输出的布尔值指示所选状态适用于的模块。例如,读取当前 PROFINET IO 系统中禁用的 IO 设 备。 此信息的显示还依赖于要读取的状态信息是否适用于至少一个 IO 设备或 DP 从站。 可在循环 OB 以及中断 OB(例如,OB82 - 诊断中断)中调用此指令。 参数 下表列出了“DeviceStates”指令的参数: 参数 声明 数据类型 存储区 说明 LADDR Input HW_IOSYSTE M I、Q、M、L 或常量 PROFINET IO 或 DP 主站系统的硬件标 识符(请参见以下说明) MODE Input UINT I、Q、M、D、L 或常 量 选择要读取的状态信息(请参见以下 说明) RET_VAL Return INT I、Q、M、D、L 指令的状态(请参见以下说明) STATE InOut VARIANT I、Q、M、D、L IO 设备或 DP 从站的状态缓冲区(请 参见以下说明) 有关有效数据类型的更多信息,请参见“有效数据类型概述”。 参数 LADDR 使用 LADDR 参数通过硬件标识符选择 PROFINET IO 或 DP 主站系统。

             下表列出了“GetClockStatus”指令的参数: 参数 声明 数据类型 说明 ClockStatus Output WORD 内部 CPU 时钟的状态; • 位 0:有关时间同步是否丢失的信息 – Bit0 = 1:一个或多个时间同步丢失。 – 位 0 = 0:时间同步未丢失。 有关评估位 0 的注意事项:仅当时间同步启用(即位 1 = 1) 时,才能对位 0 进行评估 在以下情况下,位 0 将复位为 0: – CPU 重新启动后 – 设置时间后 请注意,S7-1500 CPU 中Zui早切换为 1 时间为:发生时间同 步丢失后约 3 分钟时间。 • Bit1 = 1:已启用时间同步。 • 位 2 – = 1:激活夏令时 – = 0:激活标准时 • 位 3 到 15:0(预留) Ret_Val Output INT 返回值 有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 参数 Ret_Val 错误代码说明 0 无错误 8092 例如,由于 CPU 不支持“GetClockStatus”,因此不提供任何数据。 * 在程序编辑器中,错误代码将显示为整数或十六进制值。有关切换显示格式的信息,请参见“另请参见”。 示例 在以下示例中,确定 CPU 内部时钟的状态。 要存储数据,可以在全局数据块中创建一个变量和包含五个变量的结构。结果 如果 CPU 处于 RUN 模式,将执行“GetClockStatus”指令。CPU 内部时钟的状态会在输出参数 CLOCKSTATUS(“#clockStatus”)中以数据类型 WORD 输出。在以下程序段(2 到 4)中,会 解密该状态值,并在“itemiseClockStatus”结构中以普通文本名称的形式输出。 输出参数 RET_VAL(“returnValue”)用于指示处理无错误。硬件标识符位于: • PROFINET IO 或 DP 主站系统属性的网络视图中。 • 或数据类型为 HW_IOSYSTEM 的所列系统常量的 PLC 变量表中。 参数 MODE 使用 MODE 参数可读取状态信息。可读取整个 PROFINET IO 或 DP 主站系统的下列一条状态 信息: • 1:IO 设备/DP 从站已组态 • 2:IO 设备/DP 从站故障 • 3:IO 设备/DP 从站已禁用 • 4:IO 设备/DP 从站存在 • 5:出现问题的 IO 设备/DP 从站。例如: – 维护要求或建议 – 不可访问 – 不可用 – 出现错误 参数 STATE 通过 STATE 参数,输出由 MODE 参数选择的 IO 设备/DP 从站的状态。 如果使用 MODE 选择的状态适用于 IO 设备/DP 从站,则在 STATE 参数中将下列位设置为“1”: • 位 0 = 1:组显示。至少有一个 IO 设备/DP 从站的第 n 位设置为“1”。 • 位 n = 1:通过 MODE 选择的状态将应用到 IO 设备/DP 从站。 – 对于 PROFINET IO 系统,第 n 位对应于相应 IO 设备的设备编号(请参见设备视图和 网络视图中的 PROFINET 接口属性)。 – 对于 PROFINET DP 系统,第 n 位对应于 DP 从站的 PROFIBUS 地址(请参见设备视图 和网络视图中的 DP 从站属性)。 使用“BOOL”或“Array of BOOL”作为数据类型: • 要仅输出状态信息的组显示位,可在 STATE 参数中使用 BOOL 数据类型。 • 要输出所有 IO 设备/DP 从站的状态信息,请使用下列长度的 Array of BOOL: – 对于 PROFINET IO 系统:1024 位 – 对于 DP 主站系统:128 位完整的状态信息,不适用于 STATE 参数中组态的变量。 注:检查 STATE 中所组态变量的字段长度时,可调用 CountOfElements 指令。将数据类型 VARIANT 指向 Array of BOOL 时,该指令将计数填充的元素个数;例如,使用 Array [0...120] of BOOL 时,字段长度为 128。因此,当设置的字段元素个数加上 CPU 创建的填充元素个数小 于值 1024 或 128 时,DeviceStates 将仅返回错误代码 W#16#8452。 * 在程序编辑器中,错误代码将显示为整数或十六进制值。有关切换显示格式的信息,请参见“另请参见”。 示例 - 读取 PROFINET IO 主站系统中是否存在 IO 设备 在以下示例中,将在 IO 系统中查询是否存在 IO 设备。该 IO 系统中包含两个 S7-1500 系列的 CPU。“PLC_14”CPU 将包含程序,其中包括“DeviceStates”指令。“PLC_13”CPU 将组态为一个 IO 设备。 在“PLC_14”CPU 中:在全局数据块中创建三个变量和一个“mySTATE”结构(数据类型为 Array of BOOL),用于存储数据。在“PLC_14”CPU 中:通过参数 LADDR(“myLADDR”)使“DeviceStates”指令了解 IO 系统的硬 件标识符。根据参数 MODE(“myMODE”)的值“4”,在 IO 系统中搜索 IO 设备。 在参数 STATE(“mySTATE”)中,输出 IO 设备是否存在(基于参数 MODE 的值)。位 0 作 为组值,指示 IO 设备存在。位 1 指示存在设备编号为 1 的 IO 设备。 输出参数 RET_VAL(“returnValue”)用于指示处理无错误。ModuleStates:读取模块的模块状态信息 (S7-1200, S7-1500) 说明 “ModuleStates”指令可用来读取 PROFINET IO 设备或 PROFIBUS DP 从站的模块状态信息。 输出的布尔值指示所选状态适用于的模块。例如,可以读取 PROFINET IO 设备中当前禁用的 模块。 此信息的显示还依赖于要读取的状态信息是否适用于至少一个模块。 可在循环 OB 以及中断 OB(例如,OB82 - 诊断中断)中调用此指令。下表列出了“ModuleStates”指令的参数: 参数 声明 数据类型 存储区 说明 LADDR Input HW_DEVICE I、Q、M、D、L 或 常量 站的硬件标识符(请参见以下说明) MODE Input UINT I、Q、M、D、L 或 常量 选择要读取的模块状态信息(请参见以下 说明) RET_VAL Return INT I、Q、M、D、L 指令的状态(请参见以下说明) STATE InOut VARIANT I、Q、M、D、L 模块状态缓冲区(请参见以下说明) 有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 参数 LADDR 使用 LADDR 参数通过站硬件标识符选择 IO 设备或 DP 从站。 硬件标识符位于: • IO 设备站或 DP 从站属性的网络视图中。 • 或数据类型为 HW_DEVICE(对于 IO 设备)或 HW_DPSLAVE(对于 DP 从站)的所列系统 常量的 PLC 变量表中。 参数 MODE 使用 MODE 参数可读取状态信息。可读取模块的下列一条状态信息: • 1:模块已组态 • 2:模块故障 • 3:模块禁用 • 4:模块存在 • 5:模块中存在故障。例如: – 维护要求或建议 – 不可访问 – 不可用 – 出错参数 STATE STATE 参数输出使用 MODE 参数选择的模块状态。 如果使用 MODE 选择的状态适用于某个模块,那么下列位将设置为“1”: • 位 0 = 1:组显示。至少一个模块的第 n 位设置为“1”。 • 位 n = 1:使用 MODE 选择的状态将应用到插槽 n-1(例如:位 3 对应插槽 2)中的模 块。 使用“BOOL”或“Array of BOOL”作为数据类型: • 如果要只输出状态信息的组显示位,则可在 STATE 参数中使用 BOOL 数据类型。 • 要输出所有模块的状态信息,请使用长度为 128 位的 Array of BOOL。在以下示例中,查询 PROFINET IO 设备的模块是否存在。该 IO 系统中包含两个 S7-1500 系 列的 CPU。“PLC_14”CPU 将包含程序,其中包括“ModuleStates”指令。“PLC_13”CPU 将组态 为一个 IO 设备。 在“PLC_14”CPU 中:在全局数据块中创建三个变量和一个“mySTATE”结构(数据类型为 Array of BOOL),用于存储数据。在“PLC_14”CPU 中:通过参数 LADDR(“myLADDR”)使“ModuleStates”指令了解 IO 设备的 硬件标识符。根据参数 MODE(“myMODE”)的值“4”,在 IO 设备中搜索模块。 在参数 STATE(“mySTATE”)中,输出模块备是否存在(基于参数 MODE )的值。位 0 作为 组值,指示模块存在。位 2 指示插槽 1 中存在模块。 输出参数 RET_VAL(“returnValue”)用于指示处理无错误。

展开全文
拨打电话 微信咨询 发送询价