2016-12-05 22 views
0

Теперь я изучаю и разрабатываю клиент CANopen с стеком python, и я изо всех сил пытаюсь выяснить, как общаться с подчиненным Modbus через шлюз.Как клиент CANopen взаимодействует с ведомым устройством Modbus через шлюз CANopen/Modbus?

Поскольку адрес шлюза находится в словаре объектов CANopen, а Gateway имеет адреса ввода/вывода Modbus Slaves, как указать адрес входа в Modbus?

Как я вижу, CANopen использует идентификатор узла, чтобы выбрать сервер и адрес, чтобы выбрать свойство для чтения/записи, но в этом случае мне нужно идти дальше и указывать ввод.

только для того, чтобы быть ясным. Я нахожусь в фазе «изучения». У меня нет шлюза CANopen/Modbus.

С уважением.

ответ

0

Это будет задача шлюза, которую нужно исправить. Нет общего ответа, и нет стандарта для того, как работают такие шлюзы. Шлюзы имеют какое-то программное обеспечение, которое позволяет вам сопоставлять данные между двумя полевыми шинами. В этом случае я предполагаю, что это будет либо конкретный CANopen PDO, либо конкретный идентификатор CAN, который вы указываете на адрес Modbus.

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

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