实际项目中有时候需要对一个字(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语言编程,从硬件到软件,从编程规范到代码实例都有详细的介绍。如果你感兴趣的话,可以扫描下面的二维码购买:
如果你已经购买此书,希望加入读书群交流,请留言。
发表评论
已买,Q2014177544