Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > ПЛК и микроконтроллеры
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

16-ти и 32-х битные переменные в одном массиве.

 Ответить Ответить
Автор
Сообщение
NachRad Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 19 Февраль 2017
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - NachRad Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: 16-ти и 32-х битные переменные в одном массиве.
    Опубликовано: 03 Март 2017 11:52
Есть-ли в Кодесис возможность объявит массив, для заполнения переменными разной длины? т.е. чтобы значения типов REAL, WORD, DWORD хранились в одном массиве.
Наверх
Антон Соколов Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 29 Май 2014
Online Status: Offline
Публикации: 85
Свойства публикации Свойства публикации   Ответить, цитируя автора - Антон Соколов Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Март 2017 12:03
А пользовательская структура не подходит?
Антон Соколов
Наверх
NachRad Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 19 Февраль 2017
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - NachRad Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Март 2017 13:20
Мне нужен такой массив для передачи данных через NIM742. В программе я организовал всё по аналогии с примером, из пакета адаптации Фаствел, и всё работало, пока не потребовалось передавать значения из переменных разных типов. Разве структура подойдёт для этого? 
Не думаю, что случай уникальный. Кто как реализует такой обмен? СРМ713 (сервер) <-> панель ИП230 (клиент)
Наверх
NachRad Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 19 Февраль 2017
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - NachRad Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 06 Март 2017 10:40
Тут такая штука. после того, как я разобрался с массивами - выяснилось, переменные типа 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
...............
Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz