Здравствуйте!
Решил разобраться как организовать передачу данных по RS-485 на контроллере АГАВА ПЛК-40.07 W.
Используемое оборудование:
1. АГАВА ПЛК-40.07 W с таргет-файлом 3.5.10.0 с корневой файловой системой 2020.2;
2. Компьютер с ОС Windows 10 и программами Modbus Poll Master 9.4.0 и Modbus Poll Slave 7.3.0;
3. Преобразователь USB-RS485 модели ARC-485;
4. Среда программирования Codesys 3.5 SP14 Patch 3;
Настройки передачи:
1. Порт 1;
2. Скорость обмена 9600;
3. Паритета нет;
4. Стоповый бит 1;
5. Номер устройства в сети 1;
6. Количество запрашиваемых регистров 10;
7. Начальный адрес 1.
Полученные результаты:
1. Компьютер с программой Modbus Poll Master 9.4.0 и контроллер АГАВА ПЛК-40.07 W с проектом ModbusRTUSlave:
1) Практически все примеры режима RTUSlave в SDK (в независимости от версии), кроме ModbusRTUSlave_ (расположенной в SDK 10.7), являются не рабочими, так как в программе RTUSlave :
а) в условии bFirstCycle не хватает строки: xEnable:=TRUE;
или
б) в строке: MBRTUSlave (xEnable=xEnable, xError=>xError, resIEC=>result); - нужно заменить xEnable=xEnable на xEnable=TRUE
2)Практически во всех примерах режима RTUSlave в SDK (в независимости от версии), кроме ModbusRTUSlave_ (расположенной в SDK 10.7), отсутствует визуализация (что, мне как начинающему (студенту), сильно усложняет понимание работы RS в данном контроллере), поэтому модифицировал пример, в пределах своих знаний, (с русскими комментариями и визуализацией) для считывания Holding и/или Input регистров ПЛК. (хотел прикрепить файл проекта, однако форум выдал, что нельзя)
2. Компьютер с программой Modbus Poll Slave 7.3.0 и контроллер АГАВА ПЛК-40.07 TV/WV с проектом ModbusRTUMaster:
1) Так же как и ModbusRTUSlave, везде отсутствует визуализация и мало пояснений о работе примера программы;
2) Непонятно:
а) В какие переменные считываются данные из регистров подчиненного устройства?
б) Где и какая переменная задает время опроса и время задержки между опросами?
3) при использование проектов RTUReadHoldRegSync и RTUReadHoldRegAsync:
1) Программа большую часть времени находится в режиме ошибки (MODE_ERROR), хотя по преобразователю интерфейса видно, что прием и передача происходит (RX и TX мигают с частотой соответствующей 1 с);
2) Непонятно в какую переменную считываются данные из Holding регистра подчиненного устройства?
Пожалуйста помогите разобраться как организовать работу контроллера АГАВА ПЛК-40 по RS-485 в режиме Master.
Решил разобраться как организовать передачу данных по RS-485 на контроллере АГАВА ПЛК-40.07 W.
Используемое оборудование:
1. АГАВА ПЛК-40.07 W с таргет-файлом 3.5.10.0 с корневой файловой системой 2020.2;
2. Компьютер с ОС Windows 10 и программами Modbus Poll Master 9.4.0 и Modbus Poll Slave 7.3.0;
3. Преобразователь USB-RS485 модели ARC-485;
4. Среда программирования Codesys 3.5 SP14 Patch 3;
Настройки передачи:
1. Порт 1;
2. Скорость обмена 9600;
3. Паритета нет;
4. Стоповый бит 1;
5. Номер устройства в сети 1;
6. Количество запрашиваемых регистров 10;
7. Начальный адрес 1.
Полученные результаты:
1. Компьютер с программой Modbus Poll Master 9.4.0 и контроллер АГАВА ПЛК-40.07 W с проектом ModbusRTUSlave:
1) Практически все примеры режима RTUSlave в SDK (в независимости от версии), кроме ModbusRTUSlave_ (расположенной в SDK 10.7), являются не рабочими, так как в программе RTUSlave :
а) в условии bFirstCycle не хватает строки: xEnable:=TRUE;
или
б) в строке: MBRTUSlave (xEnable=xEnable, xError=>xError, resIEC=>result); - нужно заменить xEnable=xEnable на xEnable=TRUE
2)Практически во всех примерах режима RTUSlave в SDK (в независимости от версии), кроме ModbusRTUSlave_ (расположенной в SDK 10.7), отсутствует визуализация (что, мне как начинающему (студенту), сильно усложняет понимание работы RS в данном контроллере), поэтому модифицировал пример, в пределах своих знаний, (с русскими комментариями и визуализацией) для считывания Holding и/или Input регистров ПЛК. (хотел прикрепить файл проекта, однако форум выдал, что нельзя)
2. Компьютер с программой Modbus Poll Slave 7.3.0 и контроллер АГАВА ПЛК-40.07 TV/WV с проектом ModbusRTUMaster:
1) Так же как и ModbusRTUSlave, везде отсутствует визуализация и мало пояснений о работе примера программы;
2) Непонятно:
а) В какие переменные считываются данные из регистров подчиненного устройства?
б) Где и какая переменная задает время опроса и время задержки между опросами?
3) при использование проектов RTUReadHoldRegSync и RTUReadHoldRegAsync:
1) Программа большую часть времени находится в режиме ошибки (MODE_ERROR), хотя по преобразователю интерфейса видно, что прием и передача происходит (RX и TX мигают с частотой соответствующей 1 с);
2) Непонятно в какую переменную считываются данные из Holding регистра подчиненного устройства?
Пожалуйста помогите разобраться как организовать работу контроллера АГАВА ПЛК-40 по RS-485 в режиме Master.
Комментарий