1.2 Codesys八进制数字字符串与字节互转-CODESYS V3-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

HSC6490-cn中国制造,中国芯~
查看: 2358|回复: 0

1.2 Codesys八进制数字字符串与字节互转

[复制链接]

该用户从未签到

发表于 2023-9-22 22:24:37 | 显示全部楼层 |阅读模式
1、八进制数字字符串转换成字节,不包含前缀'8#',例如字符'177',转换后得数字8#177(10进制显示为127),具体功能代码如下:
  1. FUNCTION StrOct_To_Byte : BYTE
  2. VAR_INPUT
  3.         InString_Octal : STRING(3);
  4. END_VAR
  5. VAR
  6.         pbyTemp : POINTER TO BYTE;
  7.         i: INT;
  8. END_VAR
  9. //8进制数字字符串转换成字节,不包含前缀'8#'
  10. pbyTemp := ADR(InString_Octal);
  11. FOR I := 1 TO Standard.LEN(InString_Octal) BY 1 DO
  12.         IF pbyTemp^ >= 48 AND pbyTemp^ <= 55 THEN
  13.                 StrOct_To_Byte := SHL(StrOct_To_Byte,3) + (pbyTemp^ - 48);
  14.         END_IF;
  15.         pbyTemp := pbyTemp + 1;
  16. END_FOR;
复制代码
测试结果如下
1.2 Codesys八进制数字字符串与字节互转-1.png


2、字节转换成八进制数字字符串,例如数字8#177(10进制显示为127)转换后为'177',具体功能代码如下:
  1. FUNCTION Byte_To_strOct : STRING(3)
  2. VAR_INPUT
  3.         InByte      : BYTE;
  4. END_VAR
  5. VAR
  6.         xFlag       :BOOL;
  7.         byTemp      : BYTE;
  8.     iIndex      : INT;               
  9.         pbyTemp     : POINTER TO BYTE;
  10. END_VAR
  11. pbyTemp := ADR(Byte_To_strOct);
  12. FOR iIndex := 2 TO 0 BY -1 DO
  13.     byTemp := SHR(InByte,3*iIndex) AND 16#07;
  14.     IF byTemp>0 THEN
  15.           xFlag:=TRUE;       
  16.         END_IF;
  17.         IF xFlag THEN
  18.        byTemp := byTemp + 48;
  19.        pbyTemp^ := byTemp;
  20.        pbyTemp  := pbyTemp +1;       
  21.         END_IF;   
  22. END_FOR;
  23. pbyTemp^:= 0;
复制代码
测试结果如下:
1.2 Codesys八进制数字字符串与字节互转-2.png


经过学习,可以很快轻松完成八进制数字字符串与字,双字数字的互转功能。
+10
不赞一个?
打赏鼓励一下!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则


顶部qrcode底部
关注酷德网订阅号,获取更多资讯!

QQ|Archiver|手机版|小黑屋|酷德论坛 ( 苏ICP备16065247号-1 )|网站地图

GMT+8, 2026-11-4 06:25 , Processed in 0.216765 second(s), 50 queries .

酷德网

© 2001-2013 Hicodesys. 技术支持 by 酷德网

快速回复 返回顶部 返回列表