# 连接USB条码读取器

您可以将USB条码读取器连接至人机界面，将数据输入变量或对象中。

本节描述设置步骤以及如何使用USB条码读取器。

Hide Show

1. 可用USB条码读取器
2. 数据输入目标
3. 当数据输入目标是对象时
4. 当数据输入目标为变量时
5. 支持的字符
6. 使用USB条码读取器的注意事项

## 可用USB条码读取器

您可以使用HID类USB条码读取器。

在任何时间都只能连接一个USB条码读取器。

支持的键盘布局是英语键盘101和日语键盘106。

## 数据输入目标

您可以为从USB条码读取器输入的数据设置以下目标。

使用USB条码读取器的[保存数据到]属性选择目标。

Destination | 注解
对象 | 您可以使用USB条码读取器在以下对象中输入数据： 可以显示键盘的对象 Web浏览器部件
变量 | 您可将数据输入内部 STRING 变量。

## 当数据输入目标是对象时

### 设置

1. 在工程浏览器窗口中，转到[系统架构]并单击[附件]。
2. 在工具栏上，单击[USB条码读取器]。
3. 在属性窗口中，从[保存数据到]属性中选择[对象]。
4. 在[键控代码]属性中，选择键盘布局。

注： 您可以通过禁用对象的[使用小键盘]属性来抑制输入过程中的键盘显示。通过引用[使用小键盘]属性中的属性，您可以设计一个在操作中间显示或隐藏键盘的功能。

### 使用USB条码读取器输入数据

1. 在使用 USB 条码读取器读取数据之前，请触摸对象更改至其输入状态，以将其用作输入数据的目标。
   如果在设置输入状态之前读取数据，数据不会被输入到任何地方。
2. 使用USB条码读取器读取数据。
   在读取控制字符('CR' 或 'CR'+'LF')之前，读取数据不完整。读取数据会立即输入到对象。

   注：

   - 如果存在无法输入的字符，该字符的输入将被跳过。

   - 如果读取的数据多于对象的输入范围，则不会输入任何数据。在这种情况下，蜂鸣器会响，且对象颜色会改变。

   - 如果您在键盘上输入了任何字符，然后使用USB条码读取器读取数据，则读取数据将在键盘上显示的字符之后输入。

3. 数据输入完成后，对象的输入状态终止。当键盘显示并完成数据输入后，键盘将自动关闭。

## 当数据输入目标为变量时

### 设置

1. 在工程浏览器窗口中，转到[系统架构]并单击[附件]。
2. 在工具栏上，单击[USB条码读取器]。
3. 在属性窗口中，从[保存数据到]属性中选择[变量]。
4. 在 [扫描字符串] 属性中，设置一个内部 STRING 变量作为输入数据的目标。

   注： 您不能在[扫描字符串]属性中设置外部变量。

5. 如果您要记数读取数据中的字符数，请在[扫描字符串（字节）]属性中设置一个内部整数变量。

   注： 您不能在[扫描字符串（字节）]属性中设置外部变量。

6. 在[键控代码]属性中，选择键盘布局。

### 使用USB条码读取器输入数据

1. 使用USB条码读取器读取数据。
   在读取控制字符('CR' 或 'CR'+'LF')之前，读取数据不完整。
2. 读取数据输入到 [扫描字符串] 属性中设置的 STRING 变量。此外，读取数据中的字符数存储在[扫描字符串（字节）]属性中设置的整数变量中。
3. 数据输入完成后，以下目标源属性的值将设置为ON。
   (目标名称).Preferences.InputCompletedFromUSBBarcodeReader
   将源属性的值设置为ON后，手动将其重新设置为OFF，以便确认下一个输入的完成。此属性中的值不会自动恢复为OFF。

注： 如果读取数据中的字符数超过可以输入到[扫描字符串] STRING 变量的字节数，多余的字符则会被删除。

读取数据 | 可以输入到 STRING 变量的字节数 | [扫描字符串(字节数)] 整数变量的值*1 | 输入到 STRING 变量的字符 | 注解
ABC | 5 | 3 | ABC |
ABCDEFG | 5 | 7 | ABCDE | 超过输入范围的字符将不会被输入。
AB(0x00)CDEF | 6 | 6 | ABCDEF | 'NULL(0x00)'被跳过。不支持'NULL(0x00)'。

*1 在设置条码读取器时，使用一个变量来指定要读取的字节数。

## 支持的字符

使用USB条码读取器读取数据时，支持以下字符。

如果读取数据中有不支持的字符，则将跳过这些字符而不读取它们。

- 字母数字字符

- A-Z
- a-z
- 0-9

- 空格(空白)
- 特殊字符

  特殊字符
  ! | ) | ; | ]
  " | * | < | ^
  # | + | = | _
  $ | , | > | ` (重音符)
  % | - | ? | {
  & | . | @ | |
  ' (撇号) | / | [ | }
  ( | : | \ | ~

- 控制字符

- 'CR'

  注： 'CR’控制字符表示数据输入完成。

## 使用USB条码读取器的注意事项

### 当使用 SP5000 系列 Open Box (Windows 10 IoT Enterprise 型)、IPC 系列或 PC/AT 时

- 当数据输入目标设置为变量时，在使用USB条码读取器读取数据之前，请使用系统键盘禁用IME。当IME启用时，无法完成数据输入。
- 当数据输入目标设置为对象时，请勿使用USB条码读取器读取TAB控制字符。如果您读取TAB控制字符，将无法完成数据输入。如果您意外读取了TAB控制字符，请手动触摸该对象。它将返回到输入任何数据之前的相同状态。
- 即使未配置USB条码读取器，如果对象已设置为输入状态且使用USB条码读取器读取了数据，读取数据也将会输入到该对象。