Codesys |
Ответить | Страница 12> |
Автор | |
Новичок Присоединился: 14 Март 2012 Online Status: Offline Публикации: 16 |
Опубликовано: 11 Ноябрь 2012 14:19 |
Вопрос новичка по Codesys :
Есть массив: M: array [0..1] of word в его регистрах содержится число типа REAL; Есть переменная: R1:REAL; Как правильно присвоить содержимое массива переменной R1? |
|
Участник Присоединился: 10 Март 2011 Online Status: Offline Публикации: 39 |
|
CopyMemory
|
|
Новичок Присоединился: 14 Март 2012 Online Status: Offline Публикации: 16 |
|
А можно поподробнее, если не трудно
|
|
Участник Присоединился: 10 Март 2011 Online Status: Offline Публикации: 39 |
|
Функция виндовая
3 атрибута (откуда ,куда ,скока байт) Для примеров есть google |
|
Действительный член Присоединился: 08 Март 2006 Категория: Russian Federation Online Status: Offline Публикации: 440 |
|
Функция копирования памяти есть и в самой CoDeSys, но вот непонятно - зачем значение REAL держать в массиве WORD ?!?! С уважением, SAN |
|
Новичок Присоединился: 14 Март 2012 Online Status: Offline Публикации: 16 |
|
например два регистра MODBUS, в них число с плавающей точкой
нужно преобразовать в REAL |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
|
FUNCTION DWORD_AS_REAL : REAL
VAR_INPUT IN: DWORD; END_VAR VAR pt: POINTER TO REAL; END_VAR pt := ADR(IN); DWORD_AS_REAL := pt^; Аналогичная функция в библиотеке Oscat называется DW_TO_REAL. Ну а как модифицировать её для двух WORD, сами догадаетесь? |
|
Инженер-системотехник
+7 (916) 477 3925 |
|
Новичок Присоединился: 14 Март 2012 Online Status: Offline Публикации: 16 |
|
Именно так всегда и делал, но иногда использование указателей вешает Ваго 841, с чем связано не знаю. Или тут есть ошибка?
Var M: array [0..1] of word R1:REAL; pt: POINTER TO REAL; end_var pt:=ADR(M[0]); R1:=pt^; |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
|
Ошибки здесь не вижу. Этот код вызывает зависание контроллера?
С проблемой зависания контроллера из-за использования указателей я не сталкивался. Но опыт подсказывает, что причиной всяких неполадок при использовании указателей обычно бывает собственная невнимательность. Указатели, кроме прочего, позволяют легко допустить ошибку с непредсказуемыми последствиями. Поэтому кусок кода, использующий указатели, необходимо хорошо протестировать и спрятать в отдельную процедуру. |
|
Инженер-системотехник
+7 (916) 477 3925 |
|
Действительный член Присоединился: 08 Март 2006 Категория: Russian Federation Online Status: Offline Публикации: 440 |
|
Во первых - почему массив of wordof word ?! если число RealReal. По короткому кусочку нельзя ничего сказать, но несоответствие типов - уже нехорошее начало, где-то как-то компилятор не так сыграет (хотя и не выдаст ошибку) тем более через указатели, а о времени выполнения и говорить нечего ! Самые распространенные зависания с реалами - деление на ноль С уважением, SAN |
|
Ответить | Страница 12> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |