CANOpen один и тот же объект сопоставлен с несколькими TPDO

У меня есть ведомое устройство с несколькими TPDO (4) для отправки определенных данных датчика. Каждый TPDO имеет около 4 байтов данных, и я хочу вставить «счетчик» во фрейм, чтобы указать, что данные не устарели. Я планирую создать для этого объектную запись и сопоставить ее с каждым PDO как 5-й байт. Разрешено ли это стандартом CANOpen и, следовательно, это вообще хорошая идея?

PS: я не отправляю все 8 байтов в 1 TPDO, потому что 4 байта в 1 TPDO связаны друг с другом.


person embedcrazy    schedule 18.08.2020    source источник


Ответы (1)


Да, разрешено отображать (под) объект на несколько PDO или даже несколько раз на один и тот же PDO. При использовании фиктивных сопоставлений в RPDO это на самом деле довольно распространено.

Будет ли вставка счетчика хорошей идеей, зависит от того, чего вы пытаетесь достичь. Какую проблему вы пытаетесь обнаружить и как вы хотите ее решить?

Если вы хотите проверить, жив ли и здоров, используйте сердцебиение. Если вы хотите проверить, не пропустили ли вы PDO, есть другие способы. Для PDO, управляемых SYNC, вы можете установить флаг для каждого PDO при его получении, а в SYNC проверьте, получили ли вы их все, прежде чем сбрасывать флаги. Для управляемых событиями PDO вы можете использовать таймер событий в RPDO, чтобы генерировать ошибку, если PDO не прибыл в течение определенного времени.

Вставка счетчика поможет вам определить, сколько PDO вы пропустили. Но вопрос в том, что вы можете сделать с этой информацией? Последний PDO, даже если он устарел, обычно остается лучшим предположением для значения на принимающей стороне.

person Jos Seldenthuis    schedule 19.08.2020
comment
Спасибо за ответ и ценим ваш совет относительно техники флага. Приложение предназначено для критически важной системы безопасности, где данные, которые я отправляю, используются для приведения в действие определенного устройства (не могут быть подробно описаны из-за конфиденциальности и т. Д.), А мастер CANOpen должен иметь возможность обнаруживать `` устаревшие '' данные в случае, если мое устройство . Такие проблемы, как регистры с защелкой. Мы только начинаем мозговой штурм, поэтому приветствуются любые идеи. - person embedcrazy; 19.08.2020