Обмен по протоколам SNP, SNP-X

Данные протоколы используется для обмена данными с контроллерами Cegelec, GE Fanuc.

Драйвер обеспечивает обмен данными с ПЛК серии 90 фирмы GE Fanuc. Драйвер поддерживает чтение регистров I, Q, G, M, SA, SB, SC, T, S, R и AQ и запись регистров I, Q, G, M, T, R, AI и AQ. Для обмена данными используется последовательный порт компьютера. Драйвер оформлен в виде драйвера t12. Для корректной работы драйвера нужно правильно произвести конфигурацию порта в ПЛК и назначить контроллеру уникальный идентификатор SNP-ID. Протокол SNP-X является подразделом протокола SNP (Series Ninety Protocol).

Драйвер обеспечивает обмен данными как в режиме чтения, так и в режиме записи. Последовательные порты, используемые при обмене, должны быть занесены в список SNPX.cfg с указанием SNP-ID тех ПЛК, с которыми будет осуществляться связь. Для этого нужно воспользоваться утилитой SNPXconfig.exe. Каждый порт в списке будет автоматически открыт драйвером.

Порт, к которому подключены устройства SNP-X, не нужно настраивать в TRACE MODE.

Утилита SNPXconfig.exe предназначена для создания списка портов, которые могут использоваться при обмене. Список сохраняется в файл SNPX.cfg в папке узла.

Основное окно программы имеет следующий вид:

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

   номер порта;

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

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

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

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

   таймаут. Если в течение этого времени ПЛК не возвращает правильный ответ, каналу выставляется признак недостоверности. Значение этого параметра зависит от скорости передачи данных (обычно 500-1000 мс).

Каждому запросу по сети SNP-X предшествует посылка команды Attach (подключение к ПЛК), поэтому обработка каждого запроса занимает до 100-200 мс.

Для создания новой записи в списке COM-портов нажмите кнопку Добавить в верхней части основного окна утилиты, кнопка Удалить удалит запись, кнопка Правка или двойной щелчок по элементу списка вызовет окно редактирования параметров записи:

Нижняя половина окна конфигуратора позволяет редактировать список подключенных ПЛК и их идентификаторы. В данный список должны быть занесены все ПЛК, с которыми может осуществляться связь. Для создания новой записи в списке ПЛК нажмите кнопку Добавить, кнопка Удалить удалит запись, кнопка Правка или двойной щелчок по элементу списка вызовет окно редактирования параметров записи:

В окне добавления нового ПЛК нужно указать номер последовательного порта, к которому подключен контроллер, и идентификатор SNP-ID контроллера. При этом нужно следить, чтобы указанный СОМ-порт присутствовал в списке портов. Идентификатор должен быть уникальным для каждого контроллера; он устанавливается в системе программирования ПЛК (Versa Pro для ПЛК GE Fanuc).

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

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

   SNP идентификатор – номер ПЛК, по которому производится обмен для этого канала. Введенное здесь число должно соответствовать номеру ПЛК в списке контроллеров в утилите SNPXconfig. Если в списке утилиты нет порта с заданным номером или порт настроен в TRACE MODE как порт для обмена любыми данными, то канал будет отключен при запуске системы;

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

   (I)DInputs(R/W) – элементы данных типа Input, 1 бит/регистр, запись/чтение блоками по 16 элементов;

   (Q)DOutputs(R/W) – элементы данных типа Output, 1 бит/регистр, запись/чтение блоками по 16 элементов;

   (M)InCoils(R/W) – элементы данных типа Internal, 1 бит/регистр, запись/чтение блоками по 16 элементов;

   (T)TempCoils(R/W) – элементы данных типа Temporary, 1 бит/регистр, запись/чтение блоками по 16 элементов;

   (G)DGlobals(R/W) – элементы данных типа Global, 1 бит/регистр, запись/чтение блоками по 16 элементов;

   (S)StatusCoils(R) – элементы данных типа Status, 1 бит/регистр, только чтение блоками по 16 элементов;

   (SA)Descretes(R) – элементы данных типа StatusDiscrete, 1 бит/регистр, только чтение блоками по 16 элементов;

   (SB)Descretes(R) – элементы данных типа StatusDiscrete, 1 бит/регистр, только чтение блоками по 16 элементов;

   (SC)Descretes(R) – элементы данных типа StatusDiscrete, 1 бит/регистр, только чтение блоками по 16 элементов;

   (R)Registers(R/W) – элементы данных типа Register, 16 бит/регистр, чтение/запись;

   (AI)AnalogIn(R/W) – элементы данных типа AnalogIn, 16 бит/регистр, чтение/запись;

   (AQ)AnalogOut(R/W) – элементы данных типа AnalogOut, 16 бит/регистр, чтение/запись.

   Номер регистра – адрес выбранного регистра в массиве регистров ПЛК. Значение параметра нужно вводить в десятичном виде, начиная с 0. Для регистров, чтение которых невозможно, флаг Достоверность устанавливается в 1.

Каналы для всех типов регистров могут иметь тип I, т.е. использоваться для чтения. Для записи могут быть применены каналы с типом регистра I, Q, G, M, T, R, AI, AQ (ограничение стандарта) . Каналы типа О с типом регистра, отличным от приведенных выше, будут отключены при запуске.

Элементы с типом регистра R, AI, AQ имеют размерность 2 байта (1 слово), поэтому они читаются/пишутся по одному элементу в канал. Нумерация начинается с 0 и указывается в десятичной форме (0 соответствует R1, 1 – R2 и т.д.).

Элементы I, Q, S, SA, SB, SC, G, M, T имеют размерность 1 бит, поэтому читаются/пишутся по 16 элементов в 1 канал. Нумерация начинается с 0 и указывается в десятичном виде, значение начального адреса указывает на номер байта (пакет из 8 регистров). Таким образом, если указать RegNum=0, то канал будет содержать в себе элементы 1(мл. бит) – 16(ст. бит), а если указать RegNum=1, то канал будет содержать в себе элементы 9(мл. бит) – 24(ст. бит).

Если регистры привязаны в ПЛК к реальным входам, то команда записи в них не будет отработана на уровне ПЛК.

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