38.9.5.8 位数据访问

在访问位寄存器时,WinGP SDK提供了三种处理位数据的方法。

  1. 以16位为单位:在位寄存器上以16位为单位将数据作为位数组进行处理。
    从D0位开始以右对齐的方式保存/使用指定数量的位数据。
    即使指定的数量为1,数据缓冲器也要求16个位的足够空间。同时,需要以16位为单位指定数量。

(例如) 当指定了20位寄存器时的数据缓冲器保存顺序:

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

20

19

18

17

可用API

ReadDeviceBit/WriteDeviceBit ()

当为ReadDevice/WriteDevice(), ReadDeviceVariant/WriteDeviceVariant()中的数据类型指定1 (EASY_AppKind_Bit)时

当在ReadSymbol/WriteSymbol ()中指定位符号和包含任何位符号的组时

  1. Variant布尔数据单位:将1个位作为1个Variant布尔数据处理。

数据缓冲器是布尔型,其中1个位是1个Variant数据。它将指定数量的数据按布尔型数组进行处理。

可用API

当为ReadDeviceVariant/WriteDeviceVariant ()中的数据类型指定0x201(EASY_AppKind_BOOL)时

当在 ReadSymbolVariant/WriteSymbolVarinat()中指定位符号和包含任何位符号的组时

  1. 当用逻辑指令中的一个结构变量访问设备时的位偏移符号
    当您直接指定访问设备的位偏移符号时,数据缓冲器会如上所述要么以“16位单位”要么以“Variant布尔单位”处理数据。
    需要注意的是,组符号自身具有位偏移符号,当用逻辑指令中的结构变量访问设备时,不会在数据缓冲器中获取位偏移符号数据。
    位偏移符号不能独立存在,它们总是有父(上一级)字符号。会为父符号保留一个数据区。请为位偏移符号使用各自保留区的一部分。