Протокол 3964R / RK512

Драйвер обеспечивает обмен данными, используя транспортный протокол 3964(R) и реализацию протокола RK512 для обмена с ПЛК. Драйвер поддерживает чтение регистров I/E, Q/A, M/F, C/Z, T, DB и запись регистров DB. Для обмена данными используется последовательный порт компьютера. Драйвер оформлен в виде драйвера t12.

Драйвер обеспечивает обмен данными как в режиме чтения, так и в режиме записи. Последовательные порты, используемые при обмене, должны быть занесены в список r3964.cfg. Для этого нужно воспользоваться утилитой R3964cfg.exe. Каждый порт в списке будет автоматически открыт драйвером.

Порт, к которому подключены устройства 3964(R), не нужно настраивать в Trace Mode.

Утилита R3964cfg.exe предназначена для создания списка портов, которые могут использоваться при обмене:

Список сохраняется в файл r3964.cfg

Файл конфигурации r3964.cfg должен быть расположен в папке узла.

Каждая строка списка портов в основном окне утилиты состоит из семи параметров:

   номер порта. Этот параметр, уменьшенный на 1, затем нужно указать в качестве настройки Номер канала, который связывается с данным портом;

   скорость передачи данных (300-115200 bps). Значение по умолчанию – 9600;

   число битов данных (8 по умолчанию);

   контроль четности передачи, может принимать значения None, Odd, Even, Значение по умолчанию – Even;

   количество стоп-битов (1 или 2). Значение по умолчанию – 1.

   тип протокола: 3964 (без контрольной суммы ВСС) или 3964R (с контрольной суммой ВСС). По умолчанию установлен тип 3964R;

   процессор, с которого получать данные (для многопроцессорных систем): AnyCPU (любой процессор) или CPU1CPU4. По умолчанию устанавливается AnyCPU.

Кнопки Добавить, Удалить и Правка основного окна утилиты предназначены для редактирования списка портов.

Если при запуске утилиты файл r3964.cfg уже существует, его содержимое после первичного анализа загружается в список портов. Процедура анализа отбирает все записи, которые имеют правильный номер порта. Если несколько записей имеют одинаковый номер порта, то первая из них (самая верхняя в файле) появится в списке зарегистрированных портов, а остальные будут проигнорированы и удалены. Список зарегистрированных портов сохраняется при каждом выходе из утилиты, список проигнорированных портов не сохраняется.

Каналы должны иметь класс HEX16. Тип канала (I или O) определяет его назначение – чтение данных или запись.

Кроме атрибутов, общих для всех источников/приемников (см. Редакторы источников (приемников) , а также Шаблоны каналов обмена ), в редакторе шаблона канала обмена задаются следующие атрибуты:

   Номер – номер порта (0 – СОМ1, … 31 – СОМ32). Настройки порта должны быть предварительно заданы в утилите R3964cfg.exe. Если в списке утилиты нет порта с заданным номером или порт настроен в TRACE MODE как порт для обмена любыми данными, то канал будет отключен при запуске системы;

   Тип регистра – тип адресуемого регистра, выбирается из следующего списка:

   DInputs(I/E) – элементы данных типа Input;

   DOutputs(Q/A) – элементы данных типа Output;

   MemoryFlags(M/F) – элементы данных типа Memory или Flags;

   CounterCells(C/Z) – элементы данных типа CounterValue;

   TumeCells(T) – элементы данных типа TimerValue;

   DataBlocks(DB) – элементы данных типа DataBlocks;

   Номер регистра – адрес выбранного регистра в массиве регистров ПЛК. Значение параметра нужно вводить в десятичном виде (0-254 для I, Q, M, 0-255 для C, T, DB);

   DB-номер – номер блока DB, внутри которого находится запрашиваемый регистр. Влияет на работу только каналов с типом регистра DB. Первый блок имеет номер 1. Каналы с типом регистра DB и адресом 0 будут отключены при запуске. Параметр должен вводиться в десятичном виде, он не влияет на другие регистры и может иметь для них любое значение.  

Каналы для всех типов регистров могут иметь тип I, т.е. использоваться для чтения. Для записи могут быть применены только каналы с типом регистра DB (ограничение протокола). Каналы типа О с типом регистра, отличным от DB, будут отключены при запуске.

Элементы с типом регистра C, T, DB имеют размерность 2 байта (1 слово), поэтому они читаются/пишутся по одному элементу в канал. Элементы I, Q, M имеют размерность 1 бит, поэтому читаются/пишутся по 2 элемента в 1 канал. Таким образом, если указать Номер регистра=0, то канал будет содержать в себе элементы 0 (ст. байт) и 1 (мл. байт), а если указать Номер регистра=1, то канал будет содержать в себе элементы 1 и 2.

Чтение данных происходит по запросу МРВ в соответствии с фазой и периодом работы канала. Запись – при изменении выходного значения канала типа О. При каждой посылке ответ ожидается в течение 1 с. Если ответа за это время нет, то каналу выставляется признак недостоверности, связь с ПЛК разрывается и предпринимается попытка восстановить ее заново. Вне зависимости от того, была ли попытка успешной или нет, драйвер возвращает управление МРВ. Если восстановления связи  не произошло, следующая попытка установки связи будет при следующем обращении к этому порту. Необходимо обратить внимание, что при безуспешной попытке записи значения канала Trace Mode будет пытаться повторить запись до тех пор, пока она не пройдет успешно.