реализация протокола MODBUS на платформе PSoC Очень часто появляется необходимость в создании устройств, поддерживающих протокол MODBUS.
Поэтому на этой странице я выложу несколько примеров устройств, которые мне пришлось создать.
Для создания своих устройств я использовал следующие материалы (автор Sam Walsh, 2014):
https://github.com/funcooker/Modbus-Slave-for-PSoC4
https://github.com/EmbeddedSam/PSoC-4-Compass-Sensor http://samselectronicsprojects.blogspot.co.uk/p/about.html
1. Начнем с проекта slave устройства на базе USBUART.
Это наиболее простое в реализации устройство.
Здесь данные передаются внутри пакета, размером до 64 байт .
Это дает простоту реализации, но ограничивает в объеме данных пределами одного пакета.
Обычно этого размера вполне достаточно, поэтому я не искал решений по обходу этого ограничения.
Краткое описание проекта:
Поддерживаемые команды:
- 0x01: чтение статуса Coils (дискретных выходных битов)
- 0x02: чтение статуса дискретных входов
- 0x03: *чтение значения выходных/внутренних регистров. - 0x04: *чтение значения входных регистров - 0x05: запись выходного/внутреннего бита (Coil).
- 0x06: *запись внутреннего регистра.
- 0x0F: запись нескольких выходных/внутренних битов (Coils).
- 0x10: запись нескольких внутренних регистров.
* - присутствует обработчик ошибок (проверка регистров на наличие ( количество) )
Для тестирования своих устроиств я использовал Hercules SETUP utility и программу Modbus Tester 2.0.5 от Vadim A. Abramov Но это уже - кому что нравится.
Проект для PSoC5LP (hardware: CY8CKIT-059 PSoC 5LP Software: PSoC Creator 3.3 ): USB_Modbus.zip
2. Проект для PSoC 4
Функции MODBUS - те же что и в предыдущем примере. Количество регистров ограничено объемом памяти устройства. Аппаратная реализация: - для обнаружения конца пакета используется подсчет импульсов SysTick Timer - интерфейс с мастером - RS-485.
Проект для PSoC4 (hardware: CY8CKIT - 042 PSoC4 Software: PSoC Creator 3.3 ) : PSoC 4ModbusSlave.cywrk.zip
3. Проект для PSoC 5LP
Отличие от предыдущего проекта - немного другая настройка WDT и SysTick таймеров у PSoC5LP
Проект для PSoC5LP (hardware: CY8CKIT - 042 PSoC4CY8CKIT-059 PSoC 5LP Software: PSoC Creator 3.3 ) : PSoC5LP_ModbusSlave.zip
|
|
|