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

WAGO 750-841 и OPC

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


Присоединился: 03 Сентябрь 2011
Online Status: Offline
Публикации: 22
Свойства публикации Свойства публикации   Ответить, цитируя автора - min Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: WAGO 750-841 и OPC
    Опубликовано: 07 Сентябрь 2011 12:37
Верхняя граница задана потому, что у меня это константа
VAR CONSTANT
    BinOutNum:INT:=2;
    BinInNum:INT:=2;
    AnaOutNum:INT:=4;
END_VAR
А %IW256 это начало модбасовского буфера. Я через него обмениваюсь с пограммой контроллера.

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

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 07 Сентябрь 2011 13:33

Пользовать буфер Modbus нет необходимости. Он сам синхронизируется с имиджем

причем если вы не используете конфигуратор или работаете в режиме назначения модуля (приоритет по записи PLC - значение по умолчанию) то приоритет по записи имеет диапазон 0-255 если стоит fielbus1 то диапазон 256-255. Но в итоге это одни и те же данные. Выходы либо пишутся по modbus либо из POU

Если вы используете константу для объявления массива, то моя запись от вашей ничем не отличается. Переопределить массив все равно будет нельзя.

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

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 07 Сентябрь 2011 14:00
Вы видели эти регистры MODBUS?
Адрес регистра 0x2031  (MODBUS-адрес 408242, длина до 65 слов)
Значение  Описание подсоединенных модулей ввода-вывода
Доступ  на чтение модулей 65 ... 128
Описание  Длина 1-64 слов
Через регистр 0x2031 может быть определена конфигурация узла. При
этом в виде списка поочередно выдаются номера артикулов модулей
ввода-вывода или контроллера (без заглавных "750"). Каждое
обозначение представляется в виде одного слова. Поскольку номера
артикулов дискретных модулей ввода-вывода не могут быть считаны,
дискретный модуль представляется в кодированном виде.
Отдельные биты при этом имеют следующие значения:
Двоичный разряд 0  ->  входной модуль
Двоичный разряд 1  ->  выходной модуль
Двоичные разряды 2-7  ->  не используются
Двоичные разряды 8-14  ->  размер модуля в битах
Двоичный разряд 15  ->  идентификация дискретного модуля
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 07 Сентябрь 2011 14:01
Адрес регистра 0x2030  (MODBUS-адрес 408241, длина до 65 слов)
Значение  Описание подсоединенных модулей ввода-вывода
Доступ  на чтение модулей 0 ... 64
Описание  Длина 1-65 слов
Через регистр 0x2030 может быть определена конфигурация узла. При
этом в виде списка поочередно выдаются номера артикулов модулей
ввода-вывода или контроллера (без заглавных "750"). Каждое
обозначение представляется в виде одного слова. Поскольку номера
артикулов дискретных модулей ввода-вывода не могут быть считаны,
дискретный модуль представляется в кодированном виде.
Отдельные биты при этом имеют следующие значения:
Двоичный разряд 0  ->  входной модуль
Двоичный разряд 1  ->  выходной модуль
Двоичные разряды 2-7  ->  не используются
Двоичные разряды 8-14  ->  размер модуля в битах
Двоичный разряд 15  ->  идентификация дискретного модуля
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 07 Сентябрь 2011 14:02
Адрес регистра 0x2032  (MODBUS-адрес 408243, длина до 65 слов)
Значение  Описание подсоединенных модулей ввода-вывода
Доступ  на чтение модулей 129 ... 192
Описание  Длина 1-64 слов
Через регистр 0x2032 может быть определена конфигурация узла. При
этом в виде списка поочередно выдаются номера артикулов модулей
ввода-вывода или контроллера (без заглавных "750"). Каждое
обозначение представляется в виде одного слова. Поскольку номера
артикулов дискретных модулей ввода-вывода не могут быть считаны,
дискретный модуль представляется в кодированном виде.
Отдельные биты при этом имеют следующие значения:
Двоичный разряд 0  ->  входной модуль
Двоичный разряд 1  ->  выходной модуль
Двоичные разряды 2-7  ->  не используются
Двоичные разряды 8-14  ->  размер модуля в битах
Двоичный разряд 15  ->  идентификация дискретного модуля
 
Адрес регистра 0x2033  (MODBUS-адрес 408244, длина до 65 слов)
Значение  Описание подсоединенных модулей ввода-вывода
Доступ  на чтение модулей 193 ... 255
Описание  Длина 1-63 слова
Через регистр 0x2033 может быть определена конфигурация узла. При
этом в виде списка поочередно выдаются номера артикулов модулей
ввода-вывода или контроллера (без заглавных "750"). Каждое
обозначение представляется в виде одного слова. Поскольку номера
артикулов дискретных модулей ввода-вывода не могут быть считаны,
дискретный модуль представляется в кодированном виде.
Отдельные биты при этом имеют следующие значения:
Двоичный разряд 0  ->  входной модуль
Двоичный разряд 1  ->  выходной модуль
Двоичные разряды 2-7  ->  не используются
Двоичные разряды 8-14  ->  размер модуля в битах
Двоичный разряд 15  ->  идентификация дискретного модуля
Наверх
min Смотреть выпадающим
Новичок
Новичок


Присоединился: 03 Сентябрь 2011
Online Status: Offline
Публикации: 22
Свойства публикации Свойства публикации   Ответить, цитируя автора - min Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 07 Сентябрь 2011 15:35
Первоначально опубликовано Dismay

Пользовать буфер Modbus нет необходимости. Он сам синхронизируется с имиджем

причем если вы не используете конфигуратор или работаете в режиме назначения модуля (приоритет по записи PLC - значение по умолчанию) то приоритет по записи имеет диапазон 0-255 если стоит fielbus1 то диапазон 256-255. Но в итоге это одни и те же данные. Выходы либо пишутся по modbus либо из POU

Если вы используете константу для объявления массива, то моя запись от вашей ничем не отличается. Переопределить массив все равно будет нельзя.


Как это нет необходимости использовать буфер Modbus??? Пока я туда ничего не положу, то там ничего и не будет! Это легко достигается комментированием строчки в коде.
Я так понимаю, что в режиме fieldbus мне не нужна никакая программа, а я могу читать и писать из modbus-а с нулевых адресов попадая прямо в аппаратные входы и выходы.
В режиме же PLC я туда modbus-ом ничего записать и прочитать не могу, так как программа PLC там работает с аппаратурой, а обмен через modbus я делаю начиная с 256-ого слова.

Если я использую константу то я определяю её в одном месте, а использую в многих.
Хотел бы я писать:

VAR CONSTANT
    Modbus:INT:=256;
END_VAR

DIM AT %QWModbus:ARRAY[1..BinInNum] OF WORD;
но так к сожалению нельзя.
Наверх
min Смотреть выпадающим
Новичок
Новичок


Присоединился: 03 Сентябрь 2011
Online Status: Offline
Публикации: 22
Свойства публикации Свойства публикации   Ответить, цитируя автора - min Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 07 Сентябрь 2011 15:39
Первоначально опубликовано Dismay

Вы видели эти регистры MODBUS?
Адрес регистра 0x2031  (MODBUS-адрес 408242, длина до 65 слов)
....

Мне гораздо больше нравятся 0x1022...0x1025, но ни те ни другие я не могу прочитать из программы, а делать это через modbus незачем.
А может их как то можно из программы прочитать?
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Сентябрь 2011 20:57
Уважаемые господа, разрешите и мне вставить свои пять копеек.

Выяснить конфигурацию модулей контроллера можно с помощью функций библиотеки mod_com.lib, которая устанавливается вместе с таргетом.
Инженер-системотехник
+7 (916) 477 3925
Наверх
gggg Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 24 Декабрь 2004
Online Status: Offline
Публикации: 321
Свойства публикации Свойства публикации   Ответить, цитируя автора - gggg Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 05 Октябрь 2011 06:32
Максим Кинь пожалуйста свой электронный адрес или загляни в аську потерял твои контакты, а личку тебе не позволяют чето отправить, извините за личный оффф топик здесь
Наверх
min Смотреть выпадающим
Новичок
Новичок


Присоединился: 03 Сентябрь 2011
Online Status: Offline
Публикации: 22
Свойства публикации Свойства публикации   Ответить, цитируя автора - min Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 05 Ноябрь 2011 01:09
Первоначально опубликовано Максим Ананских

Уважаемые господа, разрешите и мне вставить свои пять копеек.

Выяснить конфигурацию модулей контроллера можно с помощью функций библиотеки mod_com.lib, которая устанавливается вместе с таргетом.

Вот на первый взгляд мне подходит PI_INFORMATION, но не понятно, как её использовать.
Я её пытался вставить так:
PROGRAM PLC_PRG
VAR
      pi:PI_INFORMATION;
END_VAR
но там одни нули?

Наверх
 Ответить Ответить Страница  <1 3456>

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

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