WinGP SDKは、ビットデバイスへアクセスする場合、そのビットデータを扱う方法として3種類の方法を提供しています。
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()で、ビットシンボルやビットシンボルを含むグループを指定した場合
VariantのBOOL単位での扱い : 1ビットをVariantのBOOLデータとして扱う方法です。
データバッファは1ビットが1 VariantのBOOL型となり、指定個数分のBOOL型の配列として扱います。
適用API
ReadDeviceVariant/WriteDeviceVariant()で、データ型に0x201 (EASY_AppKind_BOOL) を指定した場合
ReadSymbolVariant/WriteSymbolVarinat()で、ビットシンボルやビットシンボルを含むグループを指定した場合
ロジック命令の構造体変数によるアクセス時のビットオフセットシンボルの扱い
ビットオフセットシンボルを直接指定してデバイスへアクセスした場合、そのデータバッファは、上記で説明した“16ビット単位での扱い”か“VariantのBOOL単位での扱い”になります。
ただし、グループシンボル内にビットオフセットシンボルがあり、ロジック命令の構造体変数でデバイスへアクセスした場合、データバッファ内にそのビットオフセットシンボル用のデータ領域は確保されません。
ビットオフセットシンボルはそのシンボルが単体で存在することはなく、必ず、その親となるワードシンボルがあります。データ領域としてはその親の分が確保されるので、ビットオフセットシンボルの分はその親の分の一部を利用してください。