День добрый, Заметил очень интересное отношение к клиентам со стороны вашей фирмы, Оборудование заказываю часто, иногда счета для оплаты не приходят пока не напишешь повторно, так же если возникают какие вопросы могут на сообщение даже не ответить, я бы даже сказал и не отвечают., а ведь оборудование вашего заказано на сумму превышающую 100к. Собственно задал я один вопрос Андрею Евгеньевичу и попросил пример готового проекта в котором используется Modbus Slave. И в итоге полная тишина, То что показано в ваших примерах для простых пользователей не понятно, что откуда берется. А внятной документации по вашим контроллерам нету. Вообще суть такова, по rs485 надо передавать данные в gsm шлюз от овена.
Объявление
Свернуть
Пока нет объявлений.
Modbus Slave
Свернуть
X
-
Сообщение от таушканов Посмотреть сообщениепримеры работы с modbus slave есть в sdk в папке примеры\agavamodbus\плк-40\st\, если возникнут вопросы - задавайте. прошу понять, объем вопросов в техподдержку весьма значительный, и иногда не получается отвечать сразу.
Комментарий
-
В примерах ModbusRTUSlave и ModbusTCPSlave для Вашего случая нужно дополнить метод OnReadInputRegisters, который вызывается при получении запроса на чтение функции 4.Последний раз редактировалось Таушканов Константин; 18-12-2018, 12:00 PM.
Комментарий
-
Сообщение от Таушканов Посмотреть сообщениеВ примерах ModbusRTUSlave и ModbusTCPSlave для Вашего случая нужно дополнить метод OnReadInputRegisters, который вызывается при получении запроса на чтение функции 4.
// Порт.
MBRTUSlave.Port := PORT_RS2;
// Скорость.
MBRTUSlave.Baudrate := SYS_BR_38400;
// Чётность.
MBRTUSlave.Parity := SYS_NOPARITY;
// Количество стоп-битов.
MBRTUSlave.StopBits := SYS_ONESTOPBIT;
// Адрес подчинённого устройства.
MBRTUSlave.DeviceId := 10;
а так же Globals в котором есть массив
RegInputBuf: array [ 0 .. REG_INPUT_NREGS - 1 ] of word;
На сколько я в данный момент понимаю этот массив и есть адреса регистров 0-10 которые я должен считывать, соответственно RegInputBuf[1]-RegInputBuf[10] я заполняю произвольными значениями. Теперь беру OPC Сервер настраиваю аналогично скорость порта, контроль четности, 10 адрес устройства, Создаю теги на чтение регистров 04 с адресами 1-10., в ответ получаю следующее:
2018-12-19 09:12:12.6576 TRACE 19-12-2018 09:12:12.657 : Конфигурация "1" загружена
2018-12-19 09:12:12.6576 TRACE 19-12-2018 09:12:12.660 : Сервер запущен
2018-12-19 09:12:12.7006 TRACE 19-12-2018 09:12:12.700 : Порт открыт device: Узел1 port: COM4
2018-12-19 09:12:12.7006 TRACE 19-12-2018 09:12:12.700 : Старт опроса устройства device: Узел1.Устройство1 port: COM4, size: 0, data:[]
2018-12-19 09:12:12.7006 TRACE 19-12-2018 09:12:12.700 : device: Узел1.Устройство1 port: Tx Tx, size: 8, data:[0A 04 00 01 00 05 60 B2 ]
2018-12-19 09:12:13.7013 TRACE 19-12-2018 09:12:13.701 : Нет ответа от устройства device: Узел1.Устройство1 port: Rx Rx, size: 0, data:[]
2018-12-19 09:12:13.7013 TRACE 19-12-2018 09:12:13.701 : Перезапрос после ошибки device: Узел1.Устройство1 port: Tx Tx, size: 8, data:[0A 04 00 01 00 05 60 B2 ]
2018-12-19 09:12:20.9908 TRACE 19-12-2018 09:12:20.990 : Останов сервера...
2018-12-19 09:12:21.7217 TRACE 19-12-2018 09:12:21.721 : Нет ответа от устройства device: Узел1.Устройство1 port: Rx Rx, size: 0, data:[]
2018-12-19 09:12:21.7217 TRACE 19-12-2018 09:12:21.723 : Порт закрыт device: Узел1 port: COM4
2018-12-19 09:12:21.7217 TRACE 19-12-2018 09:12:21.726 : Сервер остановлен
Соответственно то ли я дурак то ли лыжи не едут, или все же должно быть что-то в промежутке между массивом и методом. Простите за много букв.
Комментарий
-
Сообщение от Таушканов Посмотреть сообщениеПопробуйте воспользоваться отладчиком: поставьте точку в начале метода OnReadInputRegisters, и при поступлении соответствующего запроса Вы увидите, что метод реально получает. Далее будет довольно просто проверить код на корректность.1 фотография
Комментарий
-
Сообщение от Пушкарев Андрей Посмотреть сообщениеДля работы с ModbusRTUSlave воспользуйтесь примером из вложения.
Комментарий
Комментарий