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

codesys, как поле структуры провязять к адресу

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


Присоединился: 05 Ноябрь 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - amandra Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: codesys, как поле структуры провязять к адресу
    Опубликовано: 30 Сентябрь 2010 21:45

создал структуру в кодесис

TYPE Tgate :
STRUCT
state : BYTE;
switch : BOOL;
c_open : BOOL;
c_close : BOOL;
pos : REAL;
END_STRUCT
END_TYPE

объявил переменные этой структуры

gate1 : Tgate;

gate2 : Tgate;

 Но теперь нужно привязать gate1.state, gate2.state к адресу внутренней памяти. Как это сделать?

привязка ведь осуществляется при объявлении:

test_param AT %MD0 : REAL;

как быть в моем случае?

Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2010 12:34
К адресу можно привязать только всю структуру целиком, например:

gate1 AT %MB0: Tgate;

Что, в общем, вполне логично.
Инженер-системотехник
+7 (916) 477 3925
Наверх
amandra Смотреть выпадающим
Новичок
Новичок


Присоединился: 05 Ноябрь 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - amandra Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2010 13:17

спасибо

а если некоторые поля структуры привязываются на физические входы или выходы, как быть в этом случае? 

Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Октябрь 2010 01:48
Никак. Так просто не бывает.
Поля структуры расположены в памяти по соседним адресам. Нельзя одно поле разместить в одном месте, а другое в другом.
Инженер-системотехник
+7 (916) 477 3925
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Октябрь 2010 06:57
Более сложные способы организации памяти, в том числе и прямая адресация может быть реализована в функциональном блоке. (аналог класса)
Наверх
amandra Смотреть выпадающим
Новичок
Новичок


Присоединился: 05 Ноябрь 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - amandra Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Октябрь 2010 10:20
спасибо, буду думать
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


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

а если некоторые поля структуры привязываются на физические входы или выходы, как быть в этом случае? 

Как правило (не считая очень простейших систем) программа не работает напрямую с входами/выходами. Сперва идет блок чтения всех без разбора входов в буфер, потом обработка, и в конце - запись всех (без разбора) выходных данных из выходного буфера на сами выхода. В такой классической схеме вопросов с "привязкой" нет

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

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


Присоединился: 05 Ноябрь 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - amandra Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 06 Октябрь 2010 16:06

я решил сделать так...

экземплер структуру привяжу к адресу памяти (эту переменную нужно тянуть по modbus дальше), а в поля этой переменной в отдельном модуле буду перезаписывать физические входы и выходы.

другого решения для себя не нашел

Наверх
 Ответить Ответить

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

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