在 STEP 7 (TIA Portal) 中,如何对S7-1200/S7-1500 进行数据类型转换?

描述
下表(图.1)给出了常用转换功能的概览。

在 STEP 7 (TIA Portal)  中,如何对S7-1200/S7-1500 进行数据类型转换?
图. 1

INT,DINT,REAL和 BCD 数据类型之间的转换
STEP 7 (TIA Portal) 提供了“CONV” (转换)指令可以用于 INT,DINT,REAL和 BCD 数据类型之间的转换。可以在块编辑器中按下表的步骤进行插入和参数化操作。

1. 在块编辑器中,打开“指令” 库,再打开“基本指令 > 转换操作” 目录。使用拖拽方式将 “CONVERT”指令插入到网络段中。

2. 插入指令块后,指令的数据类型还没有定义,在 "CONV" 下显示的是通配符 "??? to ???"。将鼠标指针放在左侧的三角形上时,会显示下拉箭头。

3. 点击左侧的箭头,从下拉菜单中可以给输入参数“IN” 选择想要的数据类型(例如,INT)。

4. 重复上面步骤可以为输出参数 “OUT” 从右侧的下拉菜单中选择想要转换的数据类型(例如,REAL)。这个例子就是将一个数据类型为 INT 的数据转换为数据类型为 REAL 的数据(“Int to Real”)。

注意
如果直接通过变量为指令指定输入输出参数,那么步骤 2 到步骤 4 不是必须的,因为转换指令自动将数据类型设置为变量的数据类型。

5。给转换指令的输入和输出分配所选择的变量。为输入输出指定参数后,就可以完成下面的数据转换,例如:

  • 从 Int到 Int, DInt, Real, Bcd16, USint, UInt, UDint, SInt, LReal和 Char
  • 从DInt到 Int, DInt, Real, Bcd32, USint, UInt, UDint, SInt, LReal和 Char
  • 从Real到 Int, DInt, Real, USint, UInt, UDint, SInt和 LReal
  • 从USint到 Int, DInt, Real, USint, UInt, UDint, SInt, LReal和 Char
  • 从UInt 到 Int, DInt, Real, USint, UInt, UDint, SInt, LReal和 Char
  • 从UDint 到 Int, DInt, Real, USint, UInt, UDint, SInt, LReal和 Char
  • 从SInt到 Int, DInt, Real, USint, UInt, UDint, SInt, LReal和 Char
  • 从LReal 到 Int, DInt, Real, USint, UInt, UDint, SInt和 LReal
  • 从Char 到 Int, DInt, USint, UInt, UDint, SInt和 Char
  • 从BCD16 (16-bit)到 Int,
  • 从BCD32 (32-bit)到 DInt.

转换指令注释:
图. 2 展示了BCD格式到 Real 和 Byte 到 SInt 的数据格式转换的例子。

  • BCD格式的数据必须先转换为 Int或 DInt 格式才能转换为 REAL 格式,如例子。
  • 如要实现数据类型 Byte到 SInt或从 Byte到 USInt, CONVERT 指令需要手动设置 input 和 output 数据类型为 SInt或 USInt。

更多的信息可以参见STEP7(TIA Portal)在线帮助 CONVERT: Convert value

在 STEP 7 (TIA Portal)  中,如何对S7-1200/S7-1500 进行数据类型转换?
图. 2

实数取整

下面的指令可以将实数类型的数据取整为一个整数( INT 或 DINT ),这些指令也在上面描述的“Converters” 目录中。

  • “CEIL ” :上取整。
  • “FLOOR”: 下取整。
  • “ROUND ”:舍入取整。
  • “TRUNC ”: 截尾取整。

字符串数据类型转换
下表包含转换字符串数据类型的说明。指令的编程过程如表中的描述 。

高级指令

描述
S_CONV 字符串转换
STRG_VAL 将字符串转换为数值
VAL_STRG 将数值转换为字符串
Strg_TO_Char 将字符串转换为字符
Char_TO_Strg 将字符转换为字符串
ATH 将 ASCII 字符串转换为十六进制数
HTA 将十六进制数转换为ASCII 字符串

转换为 TIME 数据类型
使用高级指令“T_CONV” 将 INT 类型的数据转换为一个时间值(TIME)和进行反向转换。在转换为 TIME 数据类型之前必须将所有数据类型(INT,REAL,BCD 等)转换为DINT。“T_CONV ” 指令在块编辑器的“扩展指令 >日期和时间”指令卡中。

图 3 给出了一个将 INT 和 REAL 转换为 TIME 格式的例子。

在 STEP 7 (TIA Portal)  中,如何对S7-1200/S7-1500 进行数据类型转换?

图. 3

硬件数据类型 HW_IO 的转换
硬件数据类型 HW_IO 是 STEP 7 (TIA Portal) 访问模板信息时用来识别硬件模板的。这个识别码是自动分配的,在创建设备时保存在设备的硬件配置中。模块名作为系统常量放在 "PLC variables"表中。在相应功能块中通过模块名可以直接使用该模块。

另外,使用 "IO2MOD" 功能可以从模块的逻辑输入地址"InAddress" (E0.0) 确定模块的硬件标识符 "HWIO" 。直接在功能块的 "LADDR" 参数直接输入硬件标识符 "HWIO" 。"LADDR" 参数无需做转换,因为可以填写 "HW_IO" 参数,也可以填写 UINT 数据类型变量。

在 STEP 7 (TIA Portal)  中,如何对S7-1200/S7-1500 进行数据类型转换?
图. 4
在图4中是一个 SCL 的程序例子,调用指令 "IO2MOD"。如果功能块分配参数不正确,变量 "ChangeHWIO" 会显示报错代码。

更多信息
可以在 STEP 7(TIA Portal) 的在线帮助中找到更多上面提到的关于编程和参数化指令的信息。选中指令后按“F1 ”键可以打开在线帮助。

创建环境
FAQ 中的图片在 STEP 7 (TIA Portal) V13+SP1软件中创建。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc324055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论