1. Генерация стека протоколов
Для создания стека протоколов см. https://blog.csdn.net/g360250466/article/details/129847081.
Несколько ключевых полей:
1. Аппаратное обеспечение
EL9800_HW, установлен на 1, измените на основе этого
CONTROLLER_16BIT, установлен в 0
CONTROLLER_32BIT, установлено в 1
_IPC24, установлен на 0
2、Application
EL9800_APPLICATION, установлено в 0
APPLICATION_FILE, я исправил #include "MyApplication.h"
3. Создайте упрощенную версию Excel.
Вход типа uint16 и выход.
4. Упрощенное создание стека протоколов.
Имя файла el9800hw не было изменено, и в этом файле содержатся другие аппаратные модификации, такие как spi, таймер и т. д.
Все файлы, созданные MyApplication, необходимо отправить на главную станцию EtherCAT. Используйте TWinCAT3 в качестве главной станции и поместите ее в E:\twincat3\3.1\Config\Io\EtherCAT. Обратите внимание на каталог установки.
2. Трансплантация стека протоколов
Настройка spi, таймера и т.п. не поясняется.
Структура организации кода:
В функции main() MyApplication.c,
Здесь инициализируются HW_Init(), инициализация аппаратной платформы, spi, таймер, GPIO и т. д.
1、APPL_OutputMapping и APPL_InputMapping
APPL_OutputMapping может получать данные, записанные главной станцией. Эта программа трансплантации передает выходные данные главной станции на вход.
void APPL_OutputMapping(UINT16* pData)
{
DO0x7000.Do1 = *pData;
}
void APPL_InputMapping(UINT16* pData)
{
*pData = DO0x7000.Do1;
}
Определение DO0x7000 находится в MyApplicationObjects.
PROTO TOBJ7000 DO0x7000
typedef struct OBJ_STRUCT_PACKED_START {
UINT16 u16SubIndex0;
UINT16 Do1; /* Subindex1 - do1 */
} OBJ_STRUCT_PACKED_END
TOBJ7000;
2、APPL_Application
Никакой код не был добавлен.
3. Отладка после компиляции
После пересадки и компиляции основная станция не может стать ОП.
1, OBJ_DWORD_ALIGN и OBJ_WORD_ALIGN.
Измените это на это:
2、ConfigData
05020300000000000000
Если это не было изменено сначала, Online никогда не мог перейти в состояние OP и всегда находился в состоянии Init. Позже я начал поиск в Google и нашел поле ConfigData, изменил его на то, которое поставляется с платой, и все было в порядке. Это не сработает, если я изменю его позже.
В основном по этим двум пунктам.
3. Дисплей эффектов
Другие дальнейшие тесты необходимо будет выполнить позже.