<< Click to Display Table of Contents >> Navigation: Библиотеки контроллеров > Руководство по работе с контроллерами ABAK > Подключение устройств по протоколам > Специализированные протоколы и модули ABAK > ABAK CANOPEN > Особенности записи по PDO |
Запись по PDO производится целым пакетом, т.е. 8 байт. При этом на одном COB_ID может быть несколько параметров.
Например, в модуле AO АБАК используется 8 каналов, разбитых по 4 канала на два COD - 0x200 и 0x300. Т.е. канал AO1-AO4 находятся на COB 0x200.
Чтобы при записи одного параметра не происходило затирание значение соседних параметров, реализован следующий алгоритм.
Если канал имеет тип доступа ReadWrite и идет опрос чтения по PDO, то делается следующее. В момент поступления запроса записи, последний пакет, принятый по PDO, сохраняется и на него накладываются байты нового записываемого значения. После чего сформированный пакет отправляется в модуль. В этом варианте исключены любые случайные сбрасывания других значений. Естественно, что последовательность значений в PDO на прием и на запись должны совпадать. Данный вариант наиболее предпочтительный.
Если записываемый параметр не читается по PDO, то делается следующее. При старте массив отправляемых байт (8 байт) заполняется нулями. При записи значений происходит замещение нулей, байтами записанного значения. После чего сформированный пакет отправляется в контроллер. Если записывается несколько значений за цикл опроса, то сперва они все записываются в массив и потом записываются одним сформированным пакетом.
Если произойдет перезагрузка исполнительной системы, то сохраненный набор байт PDO сбросится и при записи могут быть обнулены значения. Это необходимо учитывать и использовать восстановление при рестарте - чтобы выходы поступили все необходимые значения для записи в контроллер.
Также можно включить периодическую запись в контроллер – это делается в настройке протокола Способ записи категории Задача.