16-ти и 32-х битные переменные в одном массиве. |
Ответить |
Автор | |
Новичок Присоединился: 19 Февраль 2017 Online Status: Offline Публикации: 9 |
Опубликовано: 03 Март 2017 11:52 |
Есть-ли в Кодесис возможность объявит массив, для заполнения переменными разной длины? т.е. чтобы значения типов REAL, WORD, DWORD хранились в одном массиве.
|
|
Участник Присоединился: 29 Май 2014 Online Status: Offline Публикации: 85 |
|
А пользовательская структура не подходит?
|
|
Антон Соколов
|
|
Новичок Присоединился: 19 Февраль 2017 Online Status: Offline Публикации: 9 |
|
Мне нужен такой массив для передачи данных через NIM742. В программе я организовал всё по аналогии с примером, из пакета адаптации Фаствел, и всё работало, пока не потребовалось передавать значения из переменных разных типов. Разве структура подойдёт для этого?
Не думаю, что случай уникальный. Кто как реализует такой обмен? СРМ713 (сервер) <-> панель ИП230 (клиент)
|
|
Новичок Присоединился: 19 Февраль 2017 Online Status: Offline Публикации: 9 |
|
Тут такая штука. после того, как я разобрался с массивами - выяснилось, переменные типа DWORD не передаются по модбас. все остальные работают на чтение и запись. в итоге оставил передачу только 2-х регистровых значений: в программе переменные заполняются, значения в них меняются, но при опросе - все адреса содержат нули.
вот так выглядит передача данных из массива по регистрам: PROGRAM MB_SERVER_PRG VAR ....... MBSlaveImage : ARRAY [0..1] OF MB_RTU_SIMPLE_SLAVE_DATA_DESCR := (*(eType := MBS_holding_REGISTER, wItemsCount:=82, wMbOffset:=0 ),*) (eType := MBS_input_REGISTER, wItemsCount:=30, wMbOffset:=0 ), (eType := MBS_Coil, wItemsCount:=2, wMbOffset:=0 ); END_VAR ------------------------------------------------------------------------------------------------------------------- IF finit THEN (*MBSlaveImage[0].DataAddr := ADR(awSlaveRegisters[0]);*) MBSlaveImage[0].DataAddr := ADR(awSlaveRegistersD[0]); MBSlaveImage[1].DataAddr := ADR(abySlaveCoils[0]); END_IF ...............
|
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |