---
title: "Руководство пользователя Библиотека SysLibCom"
product: "ALTA IDE"
document_number: "№ 1-RU-157964-1.6"
version: "1.6"
language: "ru"
source: "https://docs.owen.ru/product/alta-ide/doc/library_SysLibCom_stable"
pdf: "https://docs.owen.ru/download/pdf/FeVjI.rp_biblioteka+syslibcom_1-ru-157964-1.6.pdf"
generated: "2026-10-14"
---

# Руководство пользователя Библиотека SysLibCom

## Содержание

- [Цель документа](#topic-122144)
- [Установка библиотеки](#topic-122145)
- [Описание библиотеки SysLibCom](#topic-122146)
  - [SysComOpen](#topic-122147)
  - [PORTS](#topic-122148)
  - [SysComSetSettings](#topic-122149)
  - [COMSETTINGS](#topic-122150)
  - [SysComSetSettingsEx](#topic-122151)
  - [COMSETTINGSEX](#topic-122152)
  - [SysComClose](#topic-122153)
  - [SysComWrite](#topic-122154)
  - [SysComRead](#topic-122155)
  - [SysComGetVersion2300](#topic-122156)
- [Номера портов](#topic-122157)
- [Пример реализации SysLibCom](#topic-122158)
- [Программа тестирования COM-порта](#topic-122159)

<a id="topic-122144"></a>

## Цель документа

Библиотека SysLibCom — предоставляет работу с последовательными портами RS-485/RS-232 ПЛК. Используется для обмена данными с внешними устройствами.

Данный документ содержит описание алгоритмов работы блоков, входные/выходные параметры и типы данных каждого блока, и предназначен для ознакомления с составом библиотеки.

Для полного понимания принципов работы в среде необходимо ознакомиться с руководством пользователя ALTA IDE.

<a id="topic-122145"></a>

## Установка библиотеки

Чтобы подключить библиотеку к проекту:

1. Откройте редактор **Менеджер библиотек** одним из способов:

- дважды нажмите ЛКМ на системную папку **Менеджер библиотек** в дереве проекта;

- или нажмите ПКМ на системную папку **Менеджер библиотек** в дереве проекта и выберите в контекстном меню пункт **Открыть**:

  ![Менеджер библиотек Открыть1](https://docs.owen.ru/book_img/2374/158430.png)

- В редакторе **Менеджер библиотек** откройте вкладку **Магазин**.

- Выберите библиотеку **SysLibCom** и нажмите кнопку **Подключить** на карточке библиотеки.

- Библиотека добавится в проект и отобразится на вкладке **Мои библиотеки** в редакторе **Менеджер библиотек**.

<a id="topic-122146"></a>

## Описание библиотеки SysLibCom

Библиотека SysLibCom содержит:

- [SysComOpen](#topic-122147);

- [PORTS](#topic-122148);

- [SysComSetSettings](#topic-122149);

- [COMSETTINGS](#topic-122150)

  ;

- [SysComSetSettingsEx](#topic-122151);

- [COMSETTINGSEX](#topic-122152);

- [SysComClose](#topic-122153);

- [SysComWrite](#topic-122154);

- [SysComRead](#topic-122155);

- [SysComGetVersion2300](#topic-122156).

Блоки библиотеки SysLibCom используются совместно, поэтому отдельные примеры работы каждого блока не приводятся. В разделах [Пример реализации SysLibCom](#topic-122158) и [Программа тестирования COM-порта](#topic-122159) представлены общие готовые примеры программы, демонстрирующие применение всех блоков и работу с портами ПЛК.

> [!NOTE]
> **Примечание.** Вызов элементов библиотеки SysLibCom в AltaIDE реализован через вызов родительского объекта в коде (библиотеки).
>
> Пример
>
> Settings : <b>SysLibCom.</b>COMSETTINGS;
>
> Таким образом можно удобно отследить к какой библиотеке именно относится каждый элемент программы.

<a id="topic-122147"></a>

### SysComOpen

Функция SysComOpen типа данных DWORD открывает последовательный порт.

**Входные переменные**

| Имя переменной | Тип данных | Описание |
| --- | --- | --- |
| Port | [PORTS](#topic-122148) | Открываемый порт (например: COM1); Порт определяется перечислением [PORTS](#topic-122148) |

SysComOpen возвращает дескриптор порта, который используется при вызове других функций библиотеки. В случае ошибки, возвращается 16#FFFFFFFF.

<a id="topic-122148"></a>

### PORTS

Перечисление PORTS:

TYPE PORTS : BYTE (COM1:=1, COM2, COM3, COM4, COM5, COM6, COM7, COM8);

END_TYPE

<a id="topic-122149"></a>

### SysComSetSettings

Функция SysComSetSettings типа BOOL устанавливает скорость, число стоповых бит, контроль паритета, таймаут, размер буфера и период опроса для последовательного порта. Требуемые параметры передаются посредством указателя на структуру [COMSETTINGS](#topic-122150).

**Входные переменные**

| Имя переменной | Тип данных | Описание |
| --- | --- | --- |
| dwHandle | DWORD | Дескриптор порта, возвращаемый SysComOpen |
| ComSettings | REF_TO COMSETTINGS | Указатель на структуру [COMSETTINGS](#topic-122150) |

Возвращает TRUE при успешной установке параметров, иначе FALSE.

<a id="topic-122150"></a>

### COMSETTINGS

Элементы **структуры COMSETTINGS** определены следующим образом:

| Имя переменной | Тип данных | Описание |
| --- | --- | --- |
| Port | PORTS | Номер порта (см. [PORTS](#topic-122148)) |
| dwBaudRate | DWORD | Скорость: 4800, 9600, 19200, 38400, 57600, 115200 (на данный момент реализована работа с данными скоростями, в дальнейшем список поддерживаемых скоростей будет расширен) |
| byStopBits | BYTE | 0 = один стоп бит;<br>1 = полтора;<br>2 = два |
| byParity | BYTE | 0 = нет бита контроля;<br>1 = нечетность;<br>2 = четность |
| dwTimeout | DWORD | Таймаут интерфейса в мс, по умолчанию 0 |
| dwBufferSize | DWORD | Размер встроенного буфера, по умолчанию 0 |
| dwScan | DWORD | Время полинга последовательного интерфейса, должно быть 0 |

<a id="topic-122151"></a>

### SysComSetSettingsEx

Данная функция типа BOOL применяется для установки расширенных параметров порта. В дополнение к параметрам, определяемым SysComOpen, она задает управление потоком и размер символов. Требуемые параметры передаются посредством указателя на структуру COMSETTINGSEX. Возвращает TRUE при успешной установке параметров, иначе FALSE. В зависимости от аппаратной реализации, не всегда возможно многократно менять параметры открытого порта. В этом случае, закройте его и откройте заново.

**Входные переменные**

| Имя переменной | Тип данных | Описание |
| --- | --- | --- |
| dwHandle | DWORD | Дескриптор порта, возвращаемый [SysComOpen](#topic-122147) |
| ComSettingsEx | REF_TO COMSETTINGSEX | Указатель на структуру [COMSETTINGSEX](#topic-122152) |

<a id="topic-122152"></a>

### COMSETTINGSEX

Элементы **структуры COMSETTINGSEX** определены следующим образом:

| Имя переменной | Тип данных | Описание |
| --- | --- | --- |
| Size | INT | Размер структуры в байтах. Используйте sizeof() для заполнения этого поля |
| Port | PORTS | Номер порта (см. [PORTS](#topic-122148)) |
| dwBaudRate | DWORD | Скорость: 4800, 9600, 19200, 38400, 57600, 115200 |
| byStopBits | BYTE | 0 = один стоп бит;<br>1 = полтора;<br>2 = два |
| byParity | BYTE | 0 = нет бита контроля;<br>1 = нечетность;<br>2 = четность |
| dwTimeout | DWORD | Таймаут интерфейса в мс, по умолчанию 0 |
| dwBufferSize | DWORD | Размер встроенного буфера, по умолчанию 0 |
| dwScan | DWORD | Время полинга последовательного интерфейса; должно быть 0, если в документации изготовителя аппаратуры нет иных указаний |
| cByteSize | BYTE | 4...8: размер символа в битах |
| fOutxCtsFlow | BOOL | TRUE означает контроль потока передачи по сигналу CTS |
| fDtrControl | BYTE | DTR всегда 0 для открытого порта.<br>1: DTR<br>2: Управление по DTR |
| fDsrSensitivity | BOOL | При TRUE запрещен прием при отсутствии сигнала DSR |
| fRtsControl | BYTE | 0: RTS всегда 0 для открытого порта;<br>1: RTS всегда 1 для открытого порта;<br>2: Драйвер держит RTS пока буфер приемника заполнен менее чем на половину. Драйвер снимает RTS, если буфер заполнен более чем на три четверти;<br>3: Управление по RTS: драйвер устанавливает RTS на время передачи. После передачи всех данных из буфера RTS снимается |
| fOutxDsrFlow | BOOL | Разрешает управление по DSR. При переходе DSR в ноль передача приостанавливается |

> [!WARNING]
> **Внимание.** fOutxCtsFlow, fDtrControl, fDsrSensitivity, fRtsControl, fOutxDsrFlow - для порта RS-232 в ПЛК ОВЕН не распаяны, не следует использовать данные параметры при работе.

<a id="topic-122153"></a>

### SysComClose

Функция SysComClose типа BOOL закрывает COM порт. Возвращает TRUE при успешном завершении, иначе FALSE.

**Входные переменные**

| Имя переменной | Тип данных | Описание |
| --- | --- | --- |
| dwHandle | DWORD | Дескриптор порта, возвращаемый [SysComOpen](#topic-122147) |

<a id="topic-122154"></a>

### SysComWrite

SysComWrite — это функция типа DINT, записывающая данные в порта на передачу. Возвращает число реально записанных байт.

**Входные переменные**

| Имя переменной | Тип данных | Описание |
| --- | --- | --- |
| dwHandle | DWORD | Дескриптор порта, возвращаемый [SysComOpen](#topic-122147) |
| BufferAddress | DWORD | Указатель на буфер, содержащий данные для передачи. (Используйте оператор REF — полную информацию по указателю см. в Руководстве пользователя ALTA IDE) |
| BytesToWrite | DWORD | Число байт в буфере |
| dwTimeout | DWORD | Время в мс, после которого функция обязана завершиться |

<a id="topic-122155"></a>

### SysComRead

Функция типа DINT читает принятые данные из порта. Возвращает число считанных байтов.

|   |   |   |
| --- | --- | --- |
| Имя переменной | Тип данных | Описание |

**Входные переменные**

|   |   |   |
| --- | --- | --- |
| dwHandle | DWORD | Дескриптор порта, возвращаемый [SysComOpen](#topic-122147) |
| BufferAddress | DWORD | Указатель на буфер, куда копируются принятые данные. (Используйте оператор REF) |
| BytesToRead | DWORD | Число считаемых байт |
| dwTimeout | DWORD | Время в мс, после которого функция обязана завершиться |

<a id="topic-122156"></a>

### SysComGetVersion2300

Функция типа DWORD всегда возвращает 100. Используется для внутренней автоматической проверки версии. В прикладных программах ее вызывать не нужно.

<a id="topic-122157"></a>

## Номера портов

**ПЛК210-ALTA**

| Название порта | Номер порта в ALTA IDE |
| --- | --- |
| RS232-1 | COM1 |
| RS485-1 | COM5 |
| RS485-2 | COM4 |

**ПЛК110-ALTA \[M03\]**

| Название порта | Номер порта в ALTA IDE |
| --- | --- |
| RS232-1 | COM1 |
| RS485-1 | COM0 |
| RS485-2 | COM2 |
| RS232-Debug | COM4 |

<a id="topic-122158"></a>

## Пример реализации SysLibCom

Ниже приведен пример программы для взаимодействия с COM-портом ПЛК. В ходе ее выполнения последовательно происходит:

- Открытие порта.
- Запись первоначальных настроек COM-порта.
- Отправка данных в COM-порт.
- Чтение данных из COM-порта.
- Закрытие порта.

При запуске программы, ПЛК однократно производит попытку открытия порта RS485-1 и задает его настройки. В случае, если при открытии порта произошла ошибка и в качестве дескриптора порта программа вернула значение 16#FFFFFFFF, запись данных из буфера в COM-порт не будет произведена. Так же, как и чтение данных из COM-порта в буфер.

Данный пример является больше синтаксическим, для практической реализации ознакомьтесь с примером из раздела [Программа тестирования COM-порта](#topic-122159).

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font Weight="medium" FontColor="#5684DD"?>VAR<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>bPort<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>           <?Pub _font Weight="medium" FontColor="#E7B639"?>BYTE<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>// номер порта<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>dwHandle<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>        <?Pub _font Weight="medium" FontColor="#E7B639"?>DWORD<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>                 <?Pub _font FontColor="#5DA35B"?>// дескриптор порта<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>isOpen<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>          <?Pub _font Weight="medium" FontColor="#E7B639"?>BOOL<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>// флаг открытия порта<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>isClosed<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>        <?Pub _font Weight="medium" FontColor="#E7B639"?>BOOL<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>TRUE;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>// флаг закрытия порта<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>isInit<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>          <?Pub _font Weight="medium" FontColor="#E7B639"?>BOOL<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>// флаг первоначального задания настроек<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>settings<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>        <?Pub _font Weight="medium" FontColor="#E7B639"?>SysLibCom<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>.<?Pub /_font?><?Pub _font
Weight="medium" FontColor="#E7B639"?>COMSETTINGS<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>// элемент структуры с настройками порта<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>xStatusSettings<?Pub /_font?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#E7B639"?>BOOL<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* флаг проверки на успешную запись  
                                           настроек порта *)<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>dwBufWrite<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>      <?Pub _font Weight="medium" FontColor="#E7B639"?>DWORD<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="#FF99CC"?>16#41<?Pub /_font?><?Pub _font Weight="medium"
FontColor="white"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* буфер с данными, запись символа 
                                           ASCII "А" *)<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>dwBufRead<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>       <?Pub _font Weight="medium" FontColor="#E7B639"?>DWORD<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>                 <?Pub _font FontColor="#5DA35B"?>// буфер для считанных данных<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>dwAmountOfBytes<?Pub /_font?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#E7B639"?>DINT<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* количество байт переданных в результате
                                           операции чтения/записи *)<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>ton1<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>            <?Pub _font Weight="medium" FontColor="white"?>TON<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>// таймер с задержкой по включению<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="#7B8DF7"?>xStartTMR<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#EF7244"?>:<?Pub /_font?>       <?Pub _font Weight="medium" FontColor="#E7B639"?>BOOL<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>FALSE;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>// команда запуска таймера<?Pub /_font?>
<?Pub _font Weight="medium" FontColor="#5684DD"?>END_VAR<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>(*Открываем порт RS485-1*)<?Pub /_font
?>
<?Pub _font Weight="medium" FontColor="aqua"?>IF<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>isOpen<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="#EF7244"?>=<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>FALSE<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="aqua"?>THEN<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>bPort<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#7B8DF7"?>SysLibCom<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#FFFFCC"?>.PORTS<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#FFFFCC"?>.COM1<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>;<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>dwHandle<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#7B8DF7"?>SysLibCom<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>.SysComOpen(bPort<?Pub /_font?><?Pub _font Weight="medium" FontColor="white"?>);<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="white"?>isClosed<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="white"?>FALSE;<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="white"?>isOpen<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="white"?>TRUE;<?Pub /_font
?>
<?Pub _font Weight="medium" FontColor="aqua"?>END_IF<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Задаем настройки порта, если они еще не были заданы*)<?Pub /_font?>
<?Pub _font Weight="medium" FontColor="aqua"?>IF<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>isInit<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="#EF7244"?>=<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>FALSE<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="aqua"?>THEN<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>settings<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#FFFFCC"?>.Port<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="white"?>bPort<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>;<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>settings<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#FFFFCC"?>.dwBaudRate<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>9600<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>settings<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#FFFFCC"?>.byStopBits<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>settings<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#FFFFCC"?>.byParity<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>settings<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#FFFFCC"?>.dwTimeout<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>settings<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#FFFFCC"?>.dwBufferSize<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>settings<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#FFFFCC"?>.dwScan<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
Weight="medium" FontColor="white"?>;<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>xStatusSettings<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#7B8DF7"?>SysLibCom<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>.SysComSetSettings(dwHandle<?Pub /_font?><?Pub _font Weight="medium" FontColor="white"?>,<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#009999"?>ADR<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>(settings<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>));<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="aqua"?>IF<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>xStatusSettings<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="#EF7244"?>=<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>TRUE<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="aqua"?>THEN<?Pub /_font?>
      <?Pub _font Weight="medium" FontColor="white"?>isInit<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="white"?>TRUE;<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="aqua"?>END_IF<?Pub /_font
?>
<?Pub _font Weight="medium" FontColor="aqua"?>END_IF<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Записываем данные из буфера в порт*)<?Pub /_font?>
<?Pub _font Weight="medium" FontColor="aqua"?>IF<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>dwHandle<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="#EF7244"?>&lt;&gt;<?Pub /_font?> <?Pub _font
FontColor="#FF99CC"?>16#FFFFFFFF<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>AND isClosed<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="#EF7244"?>=<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>FALSE<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="aqua"?>THEN<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>dwAmountOfBytes<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#7B8DF7"?>SysLibCom<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>.SysComWrite(dwHandle<?Pub /_font?><?Pub _font Weight="medium" FontColor="white"?>,<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#009999"?>ADR<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>(dwBufWrite<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>),<?Pub /_font?> 
<?Pub _font Weight="medium" FontColor="#009999"?>SIZEOF<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>(dwBufWrite<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>),<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>1000<?Pub /_font?><?Pub _font Weight="medium"
FontColor="white"?>);<?Pub /_font?>
   <?Pub _font FontColor="#5DA35B"?>(*Считываем данные из порта*)<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="white"?>ton1(In<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="white"?>xStartTMR, pt<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#99FF99"?>T#30ms<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>);<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>xStartTMR<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="white"?>TRUE;<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="aqua"?>IF<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>ton1<?Pub /_font?><?Pub _font
Weight="medium" FontColor="#FFFFCC"?>.Q<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="aqua"?>THEN<?Pub /_font?>
      <?Pub _font Weight="medium" FontColor="white"?>dwAmountOfBytes<?Pub /_font?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#7B8DF7"?>SysLibCom<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>.SysComRead(dwHandle<?Pub /_font?><?Pub _font Weight="medium" FontColor="white"?>,<?Pub /_font
?><?Pub _font Weight="medium" FontColor="#009999"?>ADR<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>(dwBufRead<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>),<?Pub /_font?> 
<?Pub _font Weight="medium" FontColor="#009999"?>SIZEOF<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>(dwBufRead<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>),<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>1000<?Pub /_font?><?Pub _font Weight="medium"
FontColor="white"?>);<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="aqua"?>END_IF<?Pub /_font
?>
<?Pub _font Weight="medium" FontColor="aqua"?>END_IF<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Закрываем порт*)<?Pub /_font?>
<?Pub _font Weight="medium" FontColor="aqua"?>IF<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>isClosed<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="#EF7244"?>=<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="white"?>FALSE<?Pub /_font?> <?Pub _font
Weight="medium" FontColor="aqua"?>THEN<?Pub /_font?>
   <?Pub _font Weight="medium" FontColor="white"?>isClosed<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#7B8DF7"?>SysLibCom<?Pub /_font
?><?Pub _font Weight="medium" FontColor="white"?>.SysComClose(dwHandle<?Pub /_font?><?Pub _font Weight="medium" FontColor="white"?>);<?Pub /_font
?>
   <?Pub _font Weight="medium" FontColor="white"?>isClosed<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font Weight="medium" FontColor="white"?>TRUE;<?Pub /_font
?>
<?Pub _font Weight="medium" FontColor="aqua"?>END_IF<?Pub /_font?>
<?Pub _font Weight="medium" FontColor="#5684DD"?>END_PROGRAM<?Pub /_font
?></code></td></tr></tbody></table></div></div>

<a id="topic-122159"></a>

## Программа тестирования COM-порта

Данная программа тестирует COM1 (UART1) порт ПЛК, посылает в порт команду "ALTAIDE". Отследить команды можно в любом терминале, например Putty или Hercules. Вывод сообщения "ALTAIDE" каждый раз происходит на следующую строку.

Для записи в порт ПЛК через утилиту Hercules необходимо установить флаг "HEX" и записать байты, например 0A - переменная "rcvbuf" станет равной 10.

Комментарии реализации и настройки приведены ниже в коде программы.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5DA35B"?>(* Пример выдает в интерфейс RS-485-1 каждую секунду строку "ALTAIDE"<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>    Настройка порта 9600, 8бит, нет четности, один стоп бит *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>port_opened<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>com_handle<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>com_num<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>        <?Pub _font
FontColor="#DCDCDC"?>SysLibCom<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>PORTS<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(*В примере используется COM1(UART1) -
            RS485-1 ПЛК110-ALTA, для использования других портов/приборов необходимо
            поменять номер*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>com_set<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>        <?Pub _font
FontColor="#DBB740"?>SysLibCom<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#DBB740"
?>COMSETTINGS<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>SysLibCom<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#DBB740"
?>COMSETTINGSEX<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>            <?Pub _font
FontColor="#DBB740"?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>tOn1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>           <?Pub _font
FontColor="#DCDCDC"?>TON<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>start_tmr<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>BOOL<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>tr1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>            <?Pub _font
FontColor="#DCDCDC"?>R_TRIG<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>snd_str<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>        <?Pub _font
FontColor="#DBB740"?>STRING<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#66D1CD"?>'ALTAIDE$N'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>port_init<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rcvbuf<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>         <?Pub _font
FontColor="#DBB740"?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#7F73E9"?>sz<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>             <?Pub _font
FontColor="#DBB740"?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Открывает порт*)<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>IF<?Pub /_font?> <?Pub _font
FontColor="#EBC5DE"?>NOT<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>port_opened<?Pub /_font?> <?Pub _font FontColor="#A4DBD2"?>THEN<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>com_handle<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>SysLibCom<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SysComOpen<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>com_num<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#A4DBD2"?>IF<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>com_handle<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>&lt;<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>&gt;<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>16#FFFFFFFF<?Pub /_font
?> <?Pub _font FontColor="#A4DBD2"?>THEN<?Pub /_font?>
        <?Pub _font FontColor="#DCDCDC"?>port_init<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#A4DBD2"?>ELSE<?Pub /_font?>
        <?Pub _font FontColor="#7F73E9"?>SysLibCom<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>SysComClose<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>com_num<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
        <?Pub _font FontColor="#DCDCDC"?>com_handle<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#7F73E9"
?>SysLibCom<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SysComOpen<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>com_num<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
        <?Pub _font FontColor="#DCDCDC"?>port_init<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#A4DBD2"?>END_IF<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Настраиваем скорость*)<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>com_set.Port:=com_num;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>com_set.dwBaudRate:=115200;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>com_set.byParity:=0;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>com_set.dwTimeout:=0;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>com_set.byStopBits:=0;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>com_set.dwBufferSize:=0;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>com_set.dwScan:=0;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>res:=SysComSetSettings(com_num,ADR(com_set));<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Успешно открыли*)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>IF NOT res THEN<?Pub /_font?>
      <?Pub _font FontColor="#5DA35B"?>port_opened:=TRUE;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>END_IF<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Size<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="teal"?>ULINT_TO_INT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="teal"?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Port<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>com_num<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>dwBaudRate<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>9600<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>byStopBits<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5DA35B"?>(*<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>    byStopBits:BYTE;     Кол-во стоповых бит 0 = один, 1 = полтора , 2 = два<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>byParity<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>    byParity:BYTE;       Режим проверки четности 0 = нет, 1 = нечет, 2 = чет<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>dwTimeout<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?><?Pub _font FontColor="#5DA35B"
?>(*<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>    DWORD;     Не используется должно быть =0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>dwBufferSize<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?><?Pub _font FontColor="#5DA35B"
?>(*<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>    DWORD;     Не используется должно быть =0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>dwScan<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?><?Pub _font FontColor="#5DA35B"
?>(*<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>    DWORD;     Не используется должно быть =0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>cByteSize<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>8<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?><?Pub _font FontColor="#5DA35B"
?>(*<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>    BYTE;      Длина символа в битах   7-8 бит<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>  fOutxCtsFlow : BOOL; Определяет состояние вывода CTS, в ПЛК ОВЕН не распаян<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>  fDtrControl : BYTE;     Определяет состояние вывода DTR, в ПЛК ОВЕН не распаян<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>  fDsrSensitivity : BOOL; Определяет чувствительность к состоянию вывода DTR, 
                          в ПЛК ОВЕН не распаян<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>  fRtsControl : BYTE;     Определяет состояние вывода RTS, в ПЛК ОВЕН не распаян<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>  fOutxDsrFlow : BOOL; Определяет состояние вывода DSR, в ПЛК ОВЕН не распаян<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>  см. COMSETTINGSEX в документации на SysLibCom<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#7F73E9"
?>SysLibCom<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SysComSetSettingsEx<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>com_handle,<?Pub /_font?> <?Pub _font
FontColor="teal"?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>com_setEx<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Успешно открыли порт*)<?Pub /_font
?>    
    <?Pub _font FontColor="#A4DBD2"?>IF<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font FontColor="#A4DBD2"
?>THEN<?Pub /_font?>
        <?Pub _font FontColor="#DCDCDC"?>port_opened<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#A4DBD2"?>END_IF<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>END_IF<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>IF<?Pub /_font?> <?Pub _font
FontColor="#EBC5DE"?>NOT<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>port_opened<?Pub /_font?> <?Pub _font FontColor="#A4DBD2"?>THEN<?Pub /_font
?>
    <?Pub _font FontColor="#E1E1E1"?>RETURN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>END_IF<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>ton1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>In<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>start_tmr,<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>pt<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#A4FCA2"?>T#1s<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>start_tmr<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>tr1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>clk<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ton1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Q<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#A4DBD2"?>IF<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>tr1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"?>Q<?Pub /_font?> <?Pub _font
FontColor="#A4DBD2"?>THEN<?Pub /_font?>
        <?Pub _font FontColor="#7F73E9"?>SysLibCom<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>SysComWrite<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>com_handle<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="teal"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>snd_str<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="teal"?>LEN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>snd_str<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?><?Pub _font
FontColor="#5DA35B"?>//com_handle<?Pub /_font?>
        <?Pub _font FontColor="#DCDCDC"?>start_tmr<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>FALSE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#A4DBD2"?>END_IF<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>sz<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#7F73E9"
?>SysLibCom<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SysComRead<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>com_handle,<?Pub /_font?> <?Pub _font FontColor="teal"?>ADR<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>rcvBUF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>1024<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>
