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

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

1、FC5002_BitsToByte

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

其中:

bit0~bit7是8个输入变量,数据类型为布尔型;

byteQ是输出变量,数据类型为字节;

tmpByte为临时变量,数据类型为字节;

该函数的代码如下:

上述代码中“tmpByte.%X0表示访问该变量的第0位。

2、FC5005_ByteToBits

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

其中:

Q0~Q7为该字节的位0~位7的值;

该函数的代码如下:

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

:hover{text-decoration:none;}/*pc样式*/.pgc-card{box-sizing:border-box;height:164px;border:1pxsolide8e8e8;height:120px;position:absolute;right:76px;top:20px;}.pgc-cover{position:absolute;width:162px;height:162px;top:0;left:0;background-size:cover;}.pgc-content{overflow:hidden;position:relative;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);}.pgc-content-title{font-size:18px;color:444;overflow:hidden;text-overflow:ellipsis;padding-top:9px;overflow:hidden;line-height:1.2em;display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}.pgc-content-price{font-size:22px;color:406599;font-size:14px;text-align:center;}.pgc-buy-text{padding-top:10px;}.pgc-icon-buy{height:23px;width:20px;display:inline-block;background:url();}

西门子S7-1200/1500PLCSCL语言编程从入门到精通图书

¥54.71

购买

如果你已经购买此书,想加入读书群交流,请留言。

版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。

相关推荐