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

wago 750-816 фокусы

 Ответить Ответить
Автор
Сообщение
kiran Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 03 Август 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 149
Свойства публикации Свойства публикации   Ответить, цитируя автора - kiran Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: wago 750-816 фокусы
    Опубликовано: 09 Сентябрь 2005 18:06

Добрый день

Хочу поделится своим опытом (пока не очень большим) разработки программы для указанного контроллера в комплекте с модулем последовательного порта 750-650/003-000, и возникавшими в процессе чудесми.

Начать с того что что адреса четырех входных и четырех выходных байтов модуля подключенного к контроллеру не только не начинаются с %QB0 и %IB2 как указанно в конфигураторе, но и расположены не по порядку. Например для тогоже модуля но в контроллере 750-819 контрольный байт и три байта выходных данных расположены по адресам  %QB0-%QB3, а в контроллере 750-816 они раскиданы следующим образом

controlByte AT %QB2
outputByte0 AT %QB3
outputByte1 AT %QB6
outputByte2 AT %QB7

тоже самое и со адресами входных байтов. Но это еще не все. Я стал работать непосредственно с битами controlByte объявив соответствующую переменную, например

trControlFlag AT %QX2.0: BOOL;

и сталкнулся с тем что изменения битов не приводят к соответствующим изменениям в controlByte. тоесть:

controlByte     := 16#00;
trControlFlag   := true;

после этого controlByte по прежнему равен 16#00. Долго играясь с памятью я обнаружил что trControlFlag нужно указать на другой адрес а именно:

trControlFlag AT %QX1.0: BOOL

и после этого

controlByte     := 16#00;
trControlFlag   := true; (* controlByte = 16#01; *)

при этом в контроллере 750-819 таких фокусов не возникает все как положено:

controlByte AT %QB0 : byte;
trControlFlag AT %QX0.0: BOOL;

controlByte     := 16#00;
trControlFlag   := true; (* controlByte = 16#01; *)

в связи с этим у меня естественно возникающий вопрос "ПОЧЕМУ??!!!!!" Может кто нибудь просвятить меня на этот счет? Программу на данный момент почти закончил. Однако как в анекдоте "неприятный осадок остался".

И еще один вопрос. Может буду я не очень точен в терминологии. Цикл работы контроллера построен так что сначала работает ОС потом работает один цикл программы потом снова ОС. Если я в программе изменил значение какого либо адреса например дискретного выхода (то есть изменил состояние бита отвечающего за этот выход) то сам дискретный выход примет соответствующее этому биту состояние только после выхода из программы и то может быт даже не в текущем цикле а в следующем или через два.
В связи с этим вопрос, есть ли какие либо методы которые обеспечивают фактическое изменение состояния модулей при изменении соответствующих им переменных не выходя из программы? Или необходимо отлавливать эти изменения при выполнении следующих циклов программы по любому?

Наверх
Mikle Смотреть выпадающим
Prosoft.ru
Prosoft.ru


Присоединился: 03 Июнь 2003
Online Status: Offline
Публикации: 77
Свойства публикации Свойства публикации   Ответить, цитируя автора - Mikle Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 09 Сентябрь 2005 18:34
Добрый день
К сожалению однозначно ответить Вам на вопрос по адресам нельзя, т.к. недостаточно информации. Состав контроллера может быть важен. Например, если у вас установлены
750-819
750-454 - 2ai
750-650 RS232
750-600
то адреса будут соответственно,
750-454
_ _ _ AT %IW0: WORD;
_ _ _ AT %IW1: WORD;
750-650
_ _ _ AT %IW2: WORD;
_ _ _ AT %IW3: WORD;
_ _ _ AT %QW0: WORD;
_ _ _ AT %QW1: WORD;

Если поменять местами
750-650
_ _ _ AT %IW0: WORD;
_ _ _ AT %IW1: WORD;
_ _ _ AT %QW0: WORD;
_ _ _ AT %QW1: WORD;
750-454
_ _ _ AT %IW2: WORD;
_ _ _ AT %IW3: WORD;


Вышлите мне по почте точный состав контроллера
zai@spb.prosoft.ru
Приношу извинения за возможную задержку - выставка на следующей неделе, могу тормозить
Наверх
kiran Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 03 Август 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 149
Свойства публикации Свойства публикации   Ответить, цитируя автора - kiran Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 09 Сентябрь 2005 18:47

Комплектация простая

750-816

750-650/003-000

750-600.

все

 

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


Присоединился: 15 Март 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 112
Свойства публикации Свойства публикации   Ответить, цитируя автора - Voronenkov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 10 Сентябрь 2005 00:08

Dr. kiran !

Не могу безучастно созерцать этот вандализм.

 

Mikle спросил у Вас не состав, а последовательность!

Поймите разницу и проблемы исчезнут.

Vladimir Voronenkov
"Первая Миля", Authorized ICONICS Systems Integrator
Наверх
kiran Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 03 Август 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 149
Свойства публикации Свойства публикации   Ответить, цитируя автора - kiran Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Сентябрь 2005 10:30

Уважаемый Voronenkov.

Не вижу никакого вандализма, и если Вы не в курсе системы WAGO I/O то объясняю что модуль 750-816 - это контроллер, 750-650/003-000 - RS-232 порт, 750-600 - оконечный модуль. Так что даже если бы я перечислил их в другом порядке собрать их можно только в одном единственном. А если Вы придираетесь к словам то это уже другой вопрос.

Наверх
Mikle Смотреть выпадающим
Prosoft.ru
Prosoft.ru


Присоединился: 03 Июнь 2003
Online Status: Offline
Публикации: 77
Свойства публикации Свойства публикации   Ответить, цитируя автора - Mikle Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Сентябрь 2005 10:31
все точно в соответствии с документацией - у ВАГО адресное пространство модулей ввода-вывода не зависит от типа контроллера
Вы имеете под модуль 7 бит управления (qx0.0 - qx0.6) и 7 бит статуса (ix0.0 - ix0.6) и по три байта для input и output, соответственно (%ib1(%qb1) - %ib3(%qb3))
Наверх
kiran Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 03 Август 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 149
Свойства публикации Свойства публикации   Ответить, цитируя автора - kiran Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Сентябрь 2005 10:53

Это я в курсе, и про статус с управлением и про три байта данных. У меня программа работает. Меня интересует ответ на вопрос почему такая нестыковка адресов в 750-816

controlByte AT %QB: BYTE
trControlFlag AT %QX1.0: BOOL

controlByte     := 16#00;
trControlFlag   := true; (* controlByte = 16#01; *)

тогда как в 750-819 все по человечески:

controlByte AT %QB0: BYTE
trControlFlag AT %QX0.0: BOOL

controlByte     := 16#00;
trControlFlag   := true; (* controlByte = 16#01; *)

и ответ на второй вопрос указанный в моем порвом сообщении.

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

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

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