PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 75368|回复: 0

[西门子] 西门子SCL编程实例——按位读写字变量

[复制链接]
发表于 2024-4-28 20:44:11 | 显示全部楼层 |阅读模式
实际项目中有时候需要对一个字(word)变量进行位(bit)的读写。比如,我写的一个电机一用一备的函数,使用一个字变量Status来表示电机组的状态。其中:位0表示主电机断路器的状态,位1表示主电机接触器反馈状态,位2表示备用电机断路器的状态,位3表示备用电机接触器反馈状态等等。当需要判断电机组的状态时,需要对Status的某个位(bit)进行读取。如果断路器等发生故障,也需要对相应的位进行写操作。实际项目中类似的操作很多,都涉及到对“字”变量的按位读写。今天这篇文章,给大家分享一下我写的两个函数:FC5003_GetWordBitValue和FC5004_PutWordBitValue,它们可以实现按位读写字变量。


1、FC5003_GetWordBitValue

该函数可以读取字(word)变量的指定位(bit)的值。位编号(索引)从0开始,范围为:0~15。返回值为整数,0表示正常,-1表示出错。

函数变量声明如下:



其中:


    wd:要读取的变量(数据类型:字);

    index:要读取的位索引(编号),取值范围:0~15;

    bitValue:读取到的位值(布尔型);

代码如下:



2、FC5004_PutWordBitValue

该函数可以将字(word)变量的指定位(bit)置位(设置为1)或复位(设置为0)。返回值为整数,0表示正常,-1表示出错。

函数变量声明如下:



其中:


    bitValue:要写入的布尔值(true或false);

    index:字变量的索引(范围:0~15)

    wd:要写入的字变量;

代码如下:



这两个函数我已经测试过,感兴趣的小伙伴欢迎测试、留言交流。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-5-14 20:15 , Processed in 0.048426 second(s), 27 queries .

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