SIEMENS西门子 S120伺服电机 1FK7015-5AK21-1TG3-Z
S7-1500 的数据类型转换: (S7-1500) 数据类型转换概述 (S7-1500) 简介 如果在一个指令中包含多个操作数,必须确保这些数据类型是兼容的。分配或提供块参数时 也适用。如果操作数不是同一数据类型,则必须进行转换。 可选择两种转换方式: • 隐式转换 编程语言 LAD、FBD、SCL 和 GRAPH 支持隐式转换。STL 编程语言不支持隐式转换。 • 显式转换 在执行实际指令之前使用显式转换指令。
数据类型 基本数据类型 说明 OB_HWINT OB_ATT 用于指定发生硬件中断时调用的组织块。 OB_DIAG OB_ANY 用于指定发生诊断中断时调用的组织块。 OB_TIMEERROR OB_ANY 用于指定发生时间错误时调用的组织块。 OB_STARTUP OB_ANY 用于指定发生启动事件时调用的组织块。 PORT HW_SUBMODULE 用于指定通信端口。 该数据类型用于点对点通信。 RTM UINT 用于指定运行小时计数器值。 例如,此数据类型用于“RTM”指令。 PIP UINT 用于创建和连接“同步循环”OB。该数据类型可 用于 SFC 26、27、126 和 127 中。 CONN_ANY WORD 用于指定任意连接。 CONN_PRG CONN_ANY 用于指定通过 UDP 进行开放式通信的连接。 CONN_OUC CONN_ANY 用于指定通过工业以太网 (PROFINET) 进行开放 式通信的连接。 CONN_R_ID DWORD S7 通信块上 R_ID 参数的数据类型。 DB_ANY UINT DB 的标识(名称或编号) 数据类型“DB_ANY”在“Temp”区域中的长度为 0。 DB_WWW DB_ANY 通过 Web 应用生成的 DB 的数量(例如, “WWW”指令) 数据类型“DB_WWW”在“Temp”区域中的长度为 0。 DB_DYN DB_ANY 用户程序生成的 DB 编号 C_ALARM C_ALARM CPU S7-400:单通道,带确认,Zui多 10 个相关 值 报警块 ALARM 不支持该数据类型。 C_ALARM_S DWORD CPU S7-300/400:单通道,带/不带确认,Zui多 1 个相关值 该数据类型可用于 ALARM_S、ALARM_SQ、 ALARM_DQ 和 ALARM_D 报警块。 C_ALARM_8 C_ALARM CPU S7-400:8 个通道,带确认,无相关值 报警块 ALARM_8 不支持该数据类型。数据类型 基本数据类型 说明 C_ALARM_8P C_ALARM CPU S7-400:8 个通道,带确认,每个通道Zui 多 10 个相关值 报警块 ALARM_8P 不支持该数据类型。 C_AR_SEND C_ALARM CPU S7-400:用于发送归档 报警块 AR_SEND 不支持该数据类型。 C_NOTIFY C_ALARM CPU S7-400:1 个通道,无确认,Zui多 10 个相 关值 报警块 NOTIFY 不支持该数据类型。 C_NOTIFY_8P C_ALARM CPU S7-400:8 个通道,无确认,Zui多 10 个相 关值 报警块 NOTIFY_8P 不支持该数据类型。 C_ALARM_SD DWORD 用于记录消息的编号。CPU S7-410H 只能使用 该数据类型。
将位字符串转换为 SCL 在表达式中,所有位字符串(BYTE、WORD、DWORD 和 LWORD)都可以处理为相应的无符 号整数(USINT、UINT、UDINT 和 ULINT)。因此,从 DWORD 隐式转换为 REAL 的操作过 程与从 UDINT 转换为 REAL 的相同。 说明 转换 REF() 不支持 REF() 的数据类型转换。所传递变量的数据类型必须与目标数据类型完全匹配。 隐式转换 如果操作数的数据类型是兼容的,则自动执行隐式转换。可以根据设定的严格或较宽松的条 件来进行兼容性测试: • 进行 IEC 检查(默认设置): 如果设置了 IEC 检查,则应用以下规则: – 无法将 BOOL 隐式转换为其它数据类型。 – 只能隐式转换数据类型 REAL、BYTE、WORD、DWORD、DINT、INT、SINT、UDINT、 UINT、USINT、TIME、LDT、DTL、DT、TOD、WCHAR 和 CHAR。 – 源数据类型的位长度不能超过目标数据类型的位长度。例如,无法为预计为 BYTE 数 据类型的参数指定 WORD 数据类型的操作数。 • 不进行 IEC 检查 如果没有设置 IEC 检查,则应用以下规则: – 无法将 BOOL 隐式转换为其它数据类型。 – 只能隐式转换数据类型 REAL、LREAL、BYTE、WORD、DWORD、LWORD、SINT、 INT、DINT、LINT、USINT、UINT、UDINT、ULINT、TIME、LTIME、S5TIME、LDT、 DTL、TOD、LTOD、DATE、STRING、WSTRING、WCHAR 和 CHAR。 – 源数据类型的位长度不能超过目标数据类型的位长度。例如,无法为预计为 WORD 数 据类型的参数指定 DWORD 数据类型的操作数。 – 在输入输出参数 (InOut) 处输入的操作数位长度必须与为该参数设定的位长度相同。 说明 隐式转换,不进行 IEC 检查 程序编辑器将使用灰色三角标记已隐式转换的操作数。深灰色三角表示可以进行隐式 转换,而不会降低准确度。例如,在将 INT 数据类型转换为 DINT 时。浅灰色三角表 示可以进行隐式转换,但是运行期间可能会出错。例如,如果在将数据类型 LINT 转换 为 DINT 时出现上溢,使能输出 ENO 将被设置为“0”。有关 IEC 检查和隐式转换设置的详细信息,请参见“另请参见”。 显式转换 如果因操作数不兼容而不能进行隐式转换,则可以执行显式转换。可以通过使用“指令”任 务卡中的转换指令来执行显示转换或者可以在程序中手动插入该转换。可以在“另请参见” 下找到有关显式转换的更多信息。 在使能输出 ENO 上将显示所有溢出。例如,如果源数据类型的值大于目标数据类型的值,则 会发生溢出。 说明 位模式的移位 如果显式转换中包含位模式移位,则不置位使能输出 ENO。 可以在“另请参见”下找到有关显式转换的更多信息。 下图所示为一个必须执行显式数据类型转换的示例:“Block”函数块的输入参数“IN_INT”要求使用 INT 数据类型的变量。因此,需要先将“IN_DINT” 变量的值从 DINT 转换为 INT。如果“IN_DINT”变量的值在 INT 数据类型值的允许范围内,则 执行转换。否则将报告发生溢出。然而,即使发生溢出也将进行转换,但值会被截断同时将 ENO 使能输出置位为“0”。激活或取消激活 IEC 检查 (S7-1500) 该操作数的数据类型用于检查兼容性。可设置较多或较少的条件进行兼容性测试。如果激活 “IEC 检查”(IEC check),则系统将应用较严格条件。 可以为项目的所有新块或个别块统一设置 IEC 检查。 为新块设置 IEC 检查 要为项目中的所有新块设置 IEC 检查,请按以下步骤操作: 1. 在“选项”(Options) 菜单中,选择“设置”(Settings) 命令。 将在工作区中显示“设置”(Settings) 窗口。 2. 在区域导航中选择“PLC 编程 > 常规”(PLC programming > General) 组。 3. 在“新块的默认设置”(Default settings for new blocks) 组中,选中或取消选中“IEC 检查”(IEC Check) 复选框。 将为程序中的所有新块启用或禁用 IEC 检查。 为某个块设置 IEC 检查 要为某个块设置 IEC 检查,请按以下步骤操作: 1. 打开块。 2. 在巡视窗口中打开“属性”(Properties) 选项卡。 3. 在区域导航中选择“常规”组。 4. 选中或清除“IEC 检查”(IEC Check) 复选框。 启用或禁用此块的 IEC 检查。设置与项目存储在一起。二进制数字 (S7-1500) BOOL 隐式转换 (S7-1500) 隐式转换选项 无法隐式转换 BOOL 数据类型。DWORD 隐式转换 (S7-1500) 隐式转换选项 下表列出了数据类型 DWORD 隐式转换的选项:LWORD 隐式转换 (S7-1500) 隐式转换选项 下表列出了数据类型 LWORD 隐式转换的选项:浮点数 (S7-1500) REAL 隐式转换 (S7-1500) 隐式转换选项 下表列出了数据类型 REAL 隐式转换的选项:定时器 (S7-1500) S5TIME 隐式转换 (S7-1500) 隐式转换选项 下表列出了数据类型 S5TIME 隐式转换的选项。LTIME 隐式转换 (S7-1500) 隐式转换选项 下表列出了数据类型 LTIME 隐式转换的选项:String (S7-1500) CHAR 隐式转换 (S7-1500) 隐式转换选项 下表列出了数据类型 CHAR 隐式转换的选项:可能出现以下情况: • 如果源为“0”,则目标数据类 型也为“0”且使能输出 ENO 为“1”。 • 如果只有源值的Zui低有效位 LSB 为“1”,则目标数据类型 也为“1”且使能输出 ENO 为 “1”。 • 如果源值中的其它位与 LSB 不相同,则目标数据类型将 根据 LSB 进行设置且使能输 出 ENO 为“0”。1) 位串(BYTE、WORD、DWORD、LWORD)将解释为位长度相同的无符号整数。 数据类型 BYTE 将解释为 USINT,WORD 将解释为 UINT,DWORD 将解释为 UDINT,同时 LWORD 将解释为 ULINT。WORD 显式转换 (S7-1500) 显式转换选项 下表列出了 WORD 数据类型显式转换的选项和指令。