打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
西门子SCL编程实例——位与字节的相互转换
userphoto

2022.08.24 江苏

关注

在实际项目中,有时候需要位与字节的相互转换。比如:将8个位值(布尔值)组成一个字节,或者16个位值组成一个字,或者将一个字节按照其位顺序分成8个布尔值。今天这篇文章,我们来介绍下如何编程实现位与字节的相互转换。我们使用变量的切片访问功能来编写两个函数:FC5002_BitsToByte和FC5005_ByteToBits,前者实现将8个布尔值组成一个字节,后者实现将一个字节按照其位顺序分成8个布尔值,接下来详细介绍下。

1、FC5002_BitsToByte

该函数将8个布尔值组成一个字节变量,其变量声明如下图所示:

其中:

  • bit0~bit7是8个输入变量,数据类型为布尔型;
  • byteQ是输出变量,数据类型为字节;
  • tmpByte为临时变量,数据类型为字节;

该函数的代码如下:

上述代码中“#tmpByte.%Xb(b=0~7)”是变量的切片访问方式,比如:#tmpByte.%X0表示访问该变量的第0位。

2、FC5005_ByteToBits

该函数将一个字节按照其位顺序输出8个布尔值,其变量声明如下图所示:

其中:

  • iByte是输入的字节变量;
  • Q0~Q7为该字节的位0~位7的值;

该函数的代码如下:

这两个函数我都测试过,用同样的方式可以实现将16个布尔值组成一个字,或者将一个字分解成16个布尔值。类似的函数我之前还写过一篇文章《西门子SCL编程实例——按位读写字变量》,它实现读写字中的某一位。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
西门子SCL编程实例-自己编程实现减计数器
西门子SCL编程实例——电机一用一备的编程思路
使用SCL语言编程时,如何对ANY类型的虚参赋值
西门子SCL编程入门教程连载(15)-Variant类型
SCL语言基本语法规则:表达式
【实例】博途SCL编程:一建启停
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服