CODESYS форум

Добро пожаловать на официальный форум CODESYS
Deutsche Version English version russian version 
Текущее время: Пн апр 24, 2017 8:00 pm

Часовой пояс: UTC+01:00




Начать новую тему  Ответить на тему  [ 3 сообщения ] 
Автор Сообщение
 Заголовок сообщения: Большие массивы регистров
СообщениеДобавлено: Ср фев 22, 2012 6:43 pm 
Не в сети

Зарегистрирован: Вс авг 14, 2011 8:27 am
Сообщения: 13
Создал массив регистров на 10000 элементов. При попытке обращения к элементам массива получаю следующую ошибку:

[ERROR] 10KRegs: C0032: Невозможно конвертировать тип 'DINT' в тип 'WORD'

Массив объявляю следующим образом: aOutRegs AT%QW0: ARRAY[0..9999] OF WORD;


Вернуться к началу
 Заголовок сообщения: Re: Большие массивы регистров
СообщениеДобавлено: Чт фев 23, 2012 7:39 am 
Не в сети

Зарегистрирован: Вс авг 14, 2011 8:27 am
Сообщения: 13
ZRomik писал(а):
Создал массив регистров на 10000 элементов. При попытке обращения к элементам массива получаю следующую ошибку:

[ERROR] 10KRegs: C0032: Невозможно конвертировать тип 'DINT' в тип 'WORD'

Массив объявляю следующим образом: aOutRegs AT%QW0: ARRAY[0..9999] OF WORD;


После некоторых раздумий изменил код:

***
PROGRAM PLC_PRG
VAR
wCnt: WORD;
aOutRegs: ARRAY[0..9999] OF WORD;
wReg AT%QW0: WORD;
END_VAR
wCnt := wCnt + 1;
aOutRegs[5892] := wCnt;
aOutRegs[9999] := wCnt;
www := SIZEOF(aOutRegs);

SysMemCpy(ADR(wReg), ADR(aOutRegs), www);
***

К элементам простого массива могу обращаться. Выходные регистры изменяются. Но вот настораживает использование функций работы с памятью.


Вернуться к началу
 Заголовок сообщения: Re: Большие массивы регистров
СообщениеДобавлено: Пт май 25, 2012 10:42 am 
Не в сети

Зарегистрирован: Вт фев 07, 2012 11:31 am
Сообщения: 13
DINT в два раза длиннее WORD поэтому, вероятно, ругается когда пробуете переменную DINT загнать в регистр WORD.

Например:
dn: DINT;
w: WORD;

dn := w; - прохляет.
w := dn; - будет ругаться.
w := DINT_TO_WORD( dn ); - прохляет, но с вытекающими последствиями.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 3 сообщения ] 

Часовой пояс: UTC+01:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB