Вложений: 5
Проверьте пожалуйста, правильно ли я настроил подключение к датчику?
Приветствую, уважаемые коллеги! :)
Думаю, что вопрос несложный для экспертов.
Я новичок в CoDeSys и мало с ним знаком. Мне поставили задачу подключить датчик Modbus slave через интерфейс RS-485 к контроллеру Овен ПЛК 150.
Датчик:
- Modbus slave;
- Node id = 2;
- Скорость подключения 57600;
- Фрейм RTU.
Для начала я решил попробовать прочитать серийный номер датчика, который расположен по адресу 40001, считывающийся по команде 0x03 и имеющий длину в 1 байт.
Я решил сконфигурировать входы/выходы следующим образом:
1. Добавил Modbus (Master).
2. Настроил связь по RS-485:
- назначил Node id = 1;
- скорость 57600;
- фрейм RTU.
3. Добавил Universal Mudbus device:
- Node id = 2;
- ModuleSlaveAddress = 2.
(Насколько я понял из документации, здесь нужно указать тип сети Serial для RS-485 и Modbus node id).
4. Добавил '8 bit input module':
- Node id = 2;
- Register address = 40001 (адрес серийного номера датчика);
- Command = 0x03 (из документации к датчику).
5. Дал названия каналам: байт sn и биты sn1..8.
Во время выполнения смотрю глобальные переменные: пусто. Хотя, при подключении датчика через переходник к USB, поставляемый к комплекте, всё работает. Серийный номер датчика 29.
В переменных Modbus (Master) следующая информация:
Last address: 2
Last error: 0x81.
Как я понимаю, контроллер пытается считать какой-то дискретный выход датчика, возможно для каких-то действий инициализации, но это у него не получается.
Итак вопрос: правильно ли я настроил подключение с датчиком в CoDeSys (при условии, что физически всё подключено правильно)? Подскажите, что можно подкорректировать?
P.S. прилагаю скриншоты к тексту.