c# 请教一下,倍福ADS可以根据变量的地址偏移量 读写BIT类型吗。
倍福ADS可以通过读取/写入字节数组来实现对位变量的访问。
比如有一个BOOL类型的变量testBit,它在PLC的输入地址空间位于IB0.0。
读取testBit的值:
csharp
byte[] bytes = adsClient.ReadBytes(DataType.Bool, 0x84, 0, 1);
bool value = BitConverter.ToBoolean(bytes, 0);
写入testBit的值:
csharp
byte[] bytes = new byte[1];
BitConverter.GetBytes(true).CopyTo(bytes, 0);
adsClient.WriteBytes(DataType.Bool, 0x84, 0, 1, bytes);
这里通过读取/写入位变量对应的字节来实现对位访问。
ADS客户端在读取位变量时,会自动将位变量所在的字节读取出来。在写入时也需要提供整个字节的数据。
所以根据位变量的地址,可以计算出它所在的字节偏移量,然后读写整个字节即可实现对位的访问。
总体来说,倍福ADS是支持通过地址偏移量来读写位变量的。但需要自己处理位和字节之间的转换。