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

[复制链接]
查看173 | 回复0 | 2024-4-25 16:57:09 | 显示全部楼层 |阅读模式
实际项目中有时候需要对一个字(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:要写入的字变量;
代码如下:

这两个函数我已经测试过,感兴趣的小伙伴欢迎测试、留言交流。
我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》详细的介绍了西门子SCL语言编程,从硬件到软件,从编程规范到代码实例都有详细的介绍。如果你感兴趣的话,可以看看下的链接:
如果你已经购买此书,希望加入读书群交流,请留言。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

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

本版积分规则