北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8635495

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

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

cover.png

1、FC5003_GetWordBitValue

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

函数变量声明如下:

FC5003_变量声明.png

其中:

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

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

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

代码如下:

FC5003_Code.png

2、FC5004_PutWordBitValue

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

函数变量声明如下:

FC5004_变量声明.PNG

其中:

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

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

  • wd:要写入的字变量;

代码如下:

FC5004_Code.png

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

我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》详细的介绍了西门子SCL语言编程,从硬件到软件,从编程规范到代码实例都有详细的介绍。如果你感兴趣的话,可以扫描下面的二维码购买:

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

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论