如何实现整形数(INT)与字符串(String)、S5TIME、BCD 码以及实数等数据类型之间的数据转换?

说明:
应用转换功能可以在累加器 1 中实现数据转换。不同的转换可以只对累加器 1 的低16位(位0-15)或者所有位产生影响。其它累加器的内容不会改变。在连续多次转换时,每一次转换累加器 1 的值都会随之而改变 ,所以并不需要将中间转换值临时存储。图 01 所示为本条目中所涉及数据转换的总览。n

如何实现整形数(INT)与字符串(String)、S5TIME、BCD 码以及实数等数据类型之间的数据转换?
图 01n

下面表格介绍了一些在累加器1 中进行数据转换的例子。

序号 在累加器1 中进行数据转换的例子:
1 整数,双整数,实数及 BCD 码之间的数据转换:
STEP 7 提供以下命令来实现整数,双整数,实数及 BCD 码之间的数据转换。 n

整数,双整数的转换:n

  1. ITD: 整数转换成双整数n
  2. ITB: 整数转换成BCD 码n
  3. DTB:双整数转换成BCD 码n
  4. DTR:双整数转换成实数

BCD 码的转换:n

  1. BTI: BCD 码转换成整数n
  2. BTD:BCD 码转换成双整数

实数的转换:n

  1. RND+: 取整为较大的双整数(向上取整)n
  2. RND-: 取整为较小的双整数(向下取整)n
  3. RND: 取整为最近的双整数(取整)n
  4. TRUNC: 截尾取整

图 02 所示为将 BCD 码数值转换为实数的例子。从图 01 中可知 BCD 类型的数据需要先转换成整数或者双整数后才能再转换为实数。n

如何实现整形数(INT)与字符串(String)、S5TIME、BCD 码以及实数等数据类型之间的数据转换?
图 02n

注意事项:
下述手册可提供更多信息:n

  • S7-300 Instruction List CPU Specifications CPUs 312 IFM to 318-2 DP (章节“Data Type Conversion Instructions”)条目号: 31977679。n
  • S7-400 Instruction List CPU 412, 414, 416, 417 (章节“Data Type Conversion Instructions”) 条目号:23904435
2 将整数和实数转换成 S5TIME 格式的数据:
这里所要求的时间值单位是毫秒。转换程序分为两步: n

  1. 首先将所要转换的数据转换为双整数并存储于数据格式为“TIME”的临时变量中。如将整数通过命令“ITD”转换为双整,通过“RND”将实数转换为双整。n
  2. 调用 STEP 7 标准库中 IEC 功能库中的 FC40(TIM_S5TI)功能块将上步存储的“TIME”格式的数据转换为“ S5TIME”数据格式的数值。

图 03 所示为整数到 “S5TIME” 数据的转换例程。n

如何实现整形数(INT)与字符串(String)、S5TIME、BCD 码以及实数等数据类型之间的数据转换?
图 03

3将 ASCII 码转换成整数:
STEP 7“Char_Int”项目包含将一个四位 ASCII 码转换为一个整数的 FC 1 块。对于输入参数,块要求ASCII 字符为“Char”型,并且满足: n

  • IN 变量:Char1 = 个位,n
  • IN 变量:Char2 = 十位,n
  • IN 变量:Char3 = 百位,n
  • IN 变量:Char4 = 千位。

在 OB 1 中调用 FC 1 功能,输出变量“Result”即为整数。用户可用变量表“VAT_1”监视结果

如何实现整形数(INT)与字符串(String)、S5TIME、BCD 码以及实数等数据类型之间的数据转换?
图 04n

注意事项:
如果 ASCII 字符不包含任何数字,则 FC 1 将输出变量“Error”(出错位)置位为 True。这种情况下,“Result”输出为“0”。n

如何实现整形数(INT)与字符串(String)、S5TIME、BCD 码以及实数等数据类型之间的数据转换? Char_Int.zip ( 299 KB ) n

将“Char_Int.zip”文件复制到一个单独的目录,然后双击打开此文件。 STEP 7 项目解压并生成所有相关子目录。然后用户可以使用 SIMATIC Manager 打开和处理解压后的项目。

4将十进制数转换成 ASCII 码:
用户可以使用 ICE 库中的 FC 5 功能将十进制数转换成 ASCII 字符。FC 5 功能完成转换操作。通过两个传输参数来设置该块: n

  1. 参数“i”:
    要转换的双字格式的数字n
  2. 参数“RetVal”:
    存储转换完的 ASCII 码的数据类型为字符串(String)的变量

在 OB 1 中调用 FC 5 功能,并提供相应的参数。转换结果出现在 DB 1 中从数据块字节 2 开始的位置。用户可用变量表监视结果。n

如何实现整形数(INT)与字符串(String)、S5TIME、BCD 码以及实数等数据类型之间的数据转换? S7iec.zip ( 135 KB ) n

将“S7iec.zip”文件复制到一个单独的目录,然后双击打开文件。STEP 7 项目解压并生成所有相关子目录。然后用户可以使用 SIMATIC Manager 打开和处理解压后的项目。

5字符串变量数据转换的相关一些 IEC 的标准功能:
使用 IEC 的标准功能FC5, FC16, FC30, FC37, FC38 和 FC39 这些功能块可以实现字符串与其它数据类型(例如双整数)之间的相互的转换。 n

  1. FC5 DI_STRNG: 将双整数转换为字符串n
  2. FC16 I_STRNG: 将整数转换为字符串n
  3. FC30 R_STRNG: 将实数转换为字符串n
  4. FC37 STRNG_DI: 将字符串转换为双整数n
  5. FC38 STRNG_I: 将字符串转换为整数n
  6. FC39 STRNG_R: 将字符串转换为实数

条目内容为“What standard STEP 7 functions are there for the conversion and comparison of string variables and ASCII characters?”条目号: 10913338 可以提供更多相关信息。

关键词:
数据格式,转换,数据赋值,数据传递

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

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

相关推荐

发表回复

登录后才能评论