ASCII 码转换为整数以进行运算 如何将 PLC 中的 (ascii码表)

假设通过 232C 接口与仪表通讯,得到的数值存放在 D0~D3 中,其对应 ASC 码分别为 31,32,2E,35。现在需要将其转换为对应的十进制数值 12.5。

转换步骤

  1. 将每个 ASC 码字符转换为对应的整数:31 → 1, 32 → 2, 2E → ., 35 → 5
  2. 将转换后的整数连接起来得到字符串:"12.5"
  3. 将字符串转换为浮点数:12.5

指令示例

以下是一些可能使用的指令:
  MOV &H31, D0
  MOV &H32, D1
  MOV &H2E, D2
  MOV &H35, D3
  MOV D0, R0 ; 将 D0 中的 1 加载到 R0
  MOV D1, R1 ; 将 D1 中的 2 加载到 R1
  MOV D2, R2 ; 将 D2 中的 . 加载到 R2
  MOV D3, R3 ; 将 D3 中的 5 加载到 R3
  STR "1", R0, R1, R2, R3 ; 将字符串 "12.5" 存储到寄存器组 R0-R3
  LD R0, D0 ; 将 D0 中的 1 加载到 R0
  LD R1, D1 ; 将 D1 中的 2 加载到 R1
  LD R2, D2 ; 将 D2 中的 . 加载到 R2
  LD R3, D3 ;R1 ; 将 R1 添加到 R3,得到小数点后面的第二个数字的索引
  MOVB R3, 1 ; 将 R3 中的数字移动一位,得到小数点后面的第二个数字
  ADD R2, R3 ; 将 R2 和 R3 添加起来,得到小数点后面的数字的总和
  FSTRF &H8000, R0, R1, R2, R3 ; 将浮点数 12.5 存储在地址 &H8000
  
通过使用这些指令,可以准确地将通过 232C 接口与仪表通讯得到的 ASC 码数值转换为十进制,即使寄存器的值会变换并且小数点会移动。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论