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

Codesys

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


Присоединился: 14 Март 2012
Online Status: Offline
Публикации: 16
Свойства публикации Свойства публикации   Ответить, цитируя автора - VL_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Codesys
    Опубликовано: 11 Ноябрь 2012 14:19
Вопрос новичка по Codesys :

Есть массив:  
M: array  [0..1] of word
в его регистрах содержится число типа REAL;

Есть переменная:
R1:REAL;

Как правильно присвоить содержимое массива переменной R1?





Наверх
alfa2 Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 10 Март 2011
Online Status: Offline
Публикации: 39
Свойства публикации Свойства публикации   Ответить, цитируя автора - alfa2 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Ноябрь 2012 10:14
CopyMemory
Наверх
VL_ Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Март 2012
Online Status: Offline
Публикации: 16
Свойства публикации Свойства публикации   Ответить, цитируя автора - VL_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Ноябрь 2012 14:05
А можно поподробнее, если не трудно
Наверх
alfa2 Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 10 Март 2011
Online Status: Offline
Публикации: 39
Свойства публикации Свойства публикации   Ответить, цитируя автора - alfa2 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 16 Ноябрь 2012 13:36
Функция виндовая
3 атрибута
(откуда ,куда ,скока байт)
Для примеров есть google
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Ноябрь 2012 11:10

Функция копирования памяти есть и в самой CoDeSys, но вот непонятно - зачем значение REAL держать в массиве WORD  ?!?!

С уважением, SAN

Наверх
VL_ Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Март 2012
Online Status: Offline
Публикации: 16
Свойства публикации Свойства публикации   Ответить, цитируя автора - VL_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Ноябрь 2012 15:53
например два регистра MODBUS, в них число с плавающей точкой
нужно преобразовать  в REAL
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 29 Ноябрь 2012 04:11
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
Наверх
VL_ Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Март 2012
Online Status: Offline
Публикации: 16
Свойства публикации Свойства публикации   Ответить, цитируя автора - VL_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 30 Ноябрь 2012 17:06
Именно так всегда и делал, но  иногда использование указателей вешает Ваго 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
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 01 Декабрь 2012 10:43
Ошибки здесь не вижу. Этот код вызывает зависание контроллера?

С проблемой зависания контроллера из-за использования указателей я не сталкивался. Но опыт подсказывает, что причиной всяких неполадок при использовании указателей обычно бывает собственная невнимательность. Указатели, кроме прочего, позволяют легко допустить ошибку с непредсказуемыми последствиями. Поэтому кусок кода, использующий указатели, необходимо хорошо протестировать и спрятать в отдельную процедуру.
Инженер-системотехник
+7 (916) 477 3925
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 08 Декабрь 2012 14:26

Во первых - почему массив  of wordof word ?!  если число RealReal.  По короткому кусочку нельзя ничего сказать, но несоответствие типов - уже нехорошее начало, где-то как-то компилятор не так сыграет (хотя и не выдаст ошибку) тем более через указатели, а о времени выполнения и говорить нечего !  Самые распространенные зависания с реалами - деление на ноль

С уважением, SAN

Наверх
 Ответить Ответить Страница  12>

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

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