BP-PLC + Modbus RTU

BP-PLC и Modbus RTU

 Для начала немного теории для быстрого и простого ознакомления: Просто о Modbus RTU с подробным описанием и примерами


 Для настройки Modbus в BP-PLC необходимо скачать и установить специальную программу конфигуратор. Конфигуратор для BP-PLC 464 
 Распакуйте архив в папку где находятся программы FX-Developer и оболочка окружение. Подключите BP-PLC к USB вашего компьютера или ноутбука, аналогично как при использовании FX-Developer. Запустите файл Config462
Заглавная страница конфигуратора
Подключение конфигуратора к BP-PLC
На данный момент действительна следующая распиновка таблетки для BP-PLC Demo Firmware:

Y0 PA7 Y1 PB0 Y2 PB1 Y3 PB11 Y4 PA0 Y5 PA4 Y6 PA5 Y7 PA6


X0 PA15 X1 PB3 X2 PB4 X3 PB5 X4 PB9 X5 PB8 X6 PB7 X7 PB6


UART1 RX -PA10 TX -PA9 DE(RS485) -PA8


UART2 RX -PA3 TX -PA2 DE(RS485) -PA1


Onewire BUS - PB10 Обязателен резистор подтяжки 4к7 на Vcc


Вкладка HW Config
 Hardware ID1, Hardware ID2, Hardware ID3 – уникальные номера идентификаторов контроллера.  Для их чтения необходимо нажать кнопку Read from PLC hardware ID number.	
 
Вкладка UART1 UART2
 Опция Modbus master – при активации программа переключает соответствующий UART1 или UART2 в режим мастера сети modbus RTU.
 Опция Modbus slave – при активации программа переключает соответствующий UART1 или UART2 в режим слейва сети modbus RTU.
 Опция Not use – при активации программа деактивирует соответствующий UART1 или UART2.
 Speed setting – здесь в виде выпадающего списка можно выбрать скорости обмена данными. Поддерживаются следующие значения: 9600,19200,38400,57600,115200,187500,256000,500000 кбит/сек.
 Parity setting – здесь можно выбрать значения чётности. Поддерживаются следующие значения: Odd,Even,None.
 Write to PLC – запись конфигурации соответствующего UART1 или UART2 в контроллер. Тут надо учесть, что если вы изменили режим работы UART, например, из режима слейв в режим мастера, то вам будет необходимо перезапустить контроллер  путём нажатия кнопки Reset или переподключения  общего питания.
 Upload from PLC – считывание текущей конфигурации из контроллера. После нажатия этой кнопки программа считает полностью конфигурацию соответствующего UART1 или UART2 и соответственно настройкам изменит внешний вид закладки.
Вкладка UART1 Modbus Master
 Add slave – используется для добавления и настройки запроса  данных мастером. 
 Modify slave – используется для изменения и настройки существующего запроса данных мастером. Для редактирования вам необходимо выделить необходимую строку и нажать на эту кнопку. Откроется диалог, который будет содержать все данные для редактирования.
 Delete slave – используется для удаления запроса данных мастером.
 Slot – номер запроса данных.
 Address – адрес слейва, для которого адресован данный запрос мастера.
 Num word – количество слов или битов в запросе мастера. 
 Address slave – адрес слова или бита в адресном пространстве слейва, с которого начинается чтение или запись мастером.
 Address master – адрес слова или бита в адресном пространстве мастера, с которого начинается чтение или запись мастером.
 Function – функция modbus RTU. Поддерживается запись или чтение битов из области M0-M3072, запись или чтение слов из области D0-D8000.  В случае применения устройства, отличного от нашего контроллера, соответственно можно работать с 3072 битами катушек и с 8000 регистрами хранения.	
 Timeout,ms – время, в течении которого мастер будет ждать ответа от слейва. Время считается контроллером от начала запроса, то есть тайм-аут учитывает  длительность самого запроса.	
 Для добавления запроса мастера нажмите на кнопку Add slave
Вкладка Add Slave показана следующая конфигурация – адрес слейва 3, из него будет прочитано 100 регистров, начиная с 0 адреса и помещено в блок регистров мастера со смещением 0 и с таймаутом 100 мсек.
 Slave number – номер слейва в конфигурации. Изменяется автоматически. 
 Slave modbus address – адрес слейва в сети modbus RTU.
 Function type – тип функции modbus RTU. Может принимать значения: Read coils, Read holding register, Write multiply register, Write coils.	
 Word/Coil number to read/write –slave part  - количество регистров или двоичных значений для чтения из слейва или для записи в слейв.
 Slave address point start read/write – адрес в области памяти регистров или двоичных значений для чтения или записи.Адрес принадлежит слейву.
 Master address to place Word/Coil fro slave - адрес в области памяти регистров или двоичных значений для чтения или записи.Адрес принадлежит мастеру.
 Timeout,ms – время ожидания ответа от слейва. В это время включен также и сам запрос.




Внимание !!!
 Все адреса проходят двойную проверку, чтобы не загрузить в контроллер неправильные значения. И поэтому есть ограничения для значений:
 Адрес слейва не может быть больше 248.
 Количество регистров при записи не может быть больше 123, при чтении не более 125.
 Количество двоичных значений( катушек) не может превышать 255.
 Адрес в блоке регистров  слейва или мастера не может быть больше 7999.
 Адрес в блоке катушек( двоичных значений) не может быть более 3071.
 Тайм-аут не может быть более 65535 мсек.