Протокол Siemens PPI

Этот драйвер обеспечивает поддержку протокола PPI (Point-to-Point Interface) для обмена с ПЛК Siemens S7-200. Драйвер поддерживает чтение/запись данных во все области памяти контроллера – Stage, System Memory, Analog Input, Analog Output, Counter, Timer, High Speed Counter, Discrete Input, Discrete Output, Marker, Variable Memory. Для обмена данными используется последовательный порт компьютера и конвертер RS-232/RS-485. Драйвер оформлен в виде драйвера t12. Для корректной работы драйвера необходимо правильно произвести конфигурацию порта PPI в ПЛК и последовательного порта компьютера. Протокол PPI поддерживается в ПЛК серий S7-200. О поддержке протокола в других сериях ПЛК нужно получить консультации поставщика ПЛК.

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

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

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

В списке портов каждая строка состоит из восьми параметров:

   номер COM-порта. Повторное объявление одного и того же порта приведет к сообщению об ошибке при попытке сохранить конфигурацию;

   скорость передачи данных (Baud Rate), от 300 bps до 115200 bps. Для устройств сети PPI по умолчанию принимается 9600 bps;

   число битов данных (Data Bits). По умолчанию установлено 8 бит;

   контроль четности передачи (Parity), может принимать значения None, Odd или Even. По умолчанию для устройств сети PPI принимается Even;

   количество стоп-битов (Stop Bits), 1 или 2. По умолчанию установлен 1 стоп-бит;

   время тайм-аута для данного последовательного порта (в мс) По умолчанию – 1000 мс;

   управление потоком. Используемый конвертер может требовать управления потоком. Для его корректной работы необходимо правильно указать сигналы (RTS, DTR), которые будут поданы перед каждой посылкой и сняты после ее отправки;

   адрес Trace Mode в сети PPI. Согласно принципам обмена данными в сети PPI, каждое устройство должно иметь уникальный адрес.

Заданные параметры последовательного порта должны совпадать с соответствующими параметрами всех остальных устройств в данном сегменте сети PPI. В противном случае драйвер не сможет вести обмен данными или полученные данные не будут соответствовать действительности и могут повлечь непредсказуемые сбои в системе.

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

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

Файл конфигурации PPI.cfg должен быть расположен в папке узла. Не пытайтесь редактировать его вручную и не удаляйте его, т.к. это может привести к непредсказуемым сбоям в системе.

Для открытия существующей конфигурации воспользуйтесь кнопкой Прочитать из файла. Для удаления текущей конфигурации (без сохранения в файл) воспользуйтесь кнопкой Очистить.

Опция Вести журнал событий предоставляет возможность удобной отладки работы системы. По указанному пути будут созданы 2 файла –  PPImedia.log и PPIproto.log, – в которых будет сохраняться соответственно протокол работы драйвера и сообщения о сбоях и их возможных причинах. Указанный каталог должен существовать еще до запуска Trace Mode. После успешной настройки системы эту опцию можно отключить, снизив затраты времени и дискового пространства.

Драйвер реализует обмен данными в сети Siemens PPI в режиме ведущего (Master) узла. Наличие нескольких ведущих узлов не поддерживается. Все остальные ПЛК должны быть ведомыми узлами. Архитектура сети – шина. Каждый узел в сети имеет свой уникальный адрес от 0 до 255. Режим работы сети – Polling Network. Ведущий узел отправляет запрос к ведомому, получает подтверждение о получении и через определенный промежуток времени запрашивает данные. Протокол PPI основан на электрическом интерфейсе RS-485. Поэтому подключение к стандартному последовательному порту ПК (RS-232) возможно только через конвертер RS-485/RS-232 согласно документации по коммуникационным портам ПЛК. За более подробной информацией по принципам функционирования сети Siemens PPI обращайтесь к соответствующим руководствам пользователя, в службу технической поддержки Siemens A&D или к поставщику оборудования.

Каналы могут иметь класс HEX16 или FLOAT. Возможен вариант, при котором будут прочитаны данные типа FLOAT в канал HEX, при этом дробная часть будет отброшена. Тип данных, которые читаются/записываются в контроллер, определяется атрибутом Область. Тип канала (I или O) определяет его назначение – чтение данных или запись.

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

   Порт – номер последовательного порта. Значение 0 соответствует COM1, 1 – COM2 и т.д. Все используемые порты должны быть описаны на странице настроек портов в PPIconfig, и настройки сохранены в файл конфигурации. Номер порта задается в DEC-формате;

   Адрес адрес удаленного ПЛК в сети PPI. Уникальный параметр, определяющий устройство в сети. Диапазон значений – 0 .. 255. По умолчанию контроллер имеет адрес 2. Изменить эту настройку можно с помощью пакета программирования STEP7. Адрес ПЛК задается в DEC-формате;

   Смещение – смещение внутри области памяти контроллера. Смещение задается в байтах. Для получения правильных данных необходимо четко представлять принципы адресации в памяти контроллера и способы хранения данных.

Все данные, состоящие из нескольких байт, хранятся в памяти контроллера в формате Big Endian. Т.е. самый старший байт размещается первым, а самый младший – последним:

Любая область памяти, кроме Timer, Counter и High Speed Counter, может рассматриваться как набор слов или чисел с плавающей точкой. Это определяется параметром Область данного канала. В соответствии с этой настройкой, драйвер запрашивает 2 или 4 байта из указанной области, преобразует их в формат Trace Mode и передает в систему в виде HEX или FLOAT. При этом 4 байта, прочитанные из памяти контроллера как FLOAT, могут рассматриваться далее в системе как число с плавающей точкой (FLOAT) или как целое (HEX). Во втором случае дробная часть будет отброшена. Аналогично, прочитанные как WORD 2 байта могут далее рассматриваться в Trace Mode как целое (HEX) или как число с плавающей точкой (FLOAT), однако дробная часть его всегда будет равна 0. Во избежание ошибок следует задавать класс HEX для данных типа WORD и класс FLOAT для данных типа FLOAT.

Настройка Смещение указывает порядковый номер байта внутри указанной области, который является первым в представлении переменной. При этом могут иметь место пересечения данных.

Как видно из рисунка, изменение значения слова со смещением 10 может повлечь за собой непредвиденное изменение слова со смещением 11. Аналогично и для данных с плавающей точкой, но в этом случае затрагиваются 4 последующих значения. Во избежание ошибок, рекомендуется обращаться к целочисленным данным с четным смещением, а к данным с плавающей точкой – со смещением, кратным 4.

Области Timer, Counter и High Speed Counter являются структурированными. Смещение в этом случае определяет порядковый номер элемента. Элементы не пересекаются. Кроме значения, элемент содержит бит статуса. Для доступа к этому биту используются настройки Timer(Status), Counter(Status) и High Speed Counter(Status). Для High Speed Counters он всегда равен 0.

Смещение задается в HEX-формате;

   Область – область памяти контроллера. Драйвер позволяет получить доступ ко всем существующим областям памяти контроллера: Stage, System Memory, Analog Input, Analog Output, Counter, Timer, High Speed Counter, Discrete Input, Discrete Output, Marker, Variable Memory. Кроме того, любая область памяти, кроме Timer, Counter и High Speed Counter, может рассматриваться как массив целых 2-байтных чисел (WORD) или 4-х байтных чисел с плавающей точкой (FLOAT). Это определяется выбранным параметром Область и не зависит от класса канала (HEX или FLOAT). Данные в областях Timer, Counter хранятся только в целочисленном формате. Данные в области High Speed Counter хранятся как 4-байтные двойные слова, поэтому для получения максимального количества значащих цифр необходимо использовать канал FLOAT. Кроме того, перечисленные области имеют бит статуса, но в области High Speed Counter он не используется, поэтому всегда равен 0. Некоторые области доступны только для чтения, другие – только для записи.

Обращение к неверно настроенному ПЛК, адресация к несуществующим переменным или константам может привести к непредсказуемым сбоям в системе.

В режиме STOP области данных контроллера доступны только для чтения. Для получения возможности записи необходимо перевести ПЛК в режим RUN с помощью переключателя на корпусе или из STEP7 (при этом переключатель должен быть положении TERM).

Любой последовательный порт в каждый момент времени может использоваться только одним приложением. Таким образом, Trace Mode не сможет обмениваться данными с ПЛК при запущенном STEP7.

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

В случае возникновения ошибок рекомендуется включить в конфигураторе опцию Вести журнал событий и проанализировать протокол обмена.