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

Wago Intouch и Modbus TCP

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


Присоединился: 15 Март 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 112
Свойства публикации Свойства публикации   Ответить, цитируя автора - Voronenkov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Wago Intouch и Modbus TCP
    Опубликовано: 17 Январь 2006 22:24
Первоначально опубликовано Petrov

Первоначально опубликовано Voronenkov

На фоне остальных алгоритмов - это пустяк.

Не соглашусь. На фоне этого "пустяка" потеряются остальные алгоритмы. :)

Да не вопрос. несколько строк в цикле и никаких нагромождений

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


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

Посмотрим на современный процессор. Прост наружи, но если взглянуть на "транзисторную схему" начинки, то может вызвать только восхищение или шок. Так устроен мир.

 

Делаем один раз функциональный блок с двумя входами: стартовый адрес и количество слов.

И далее таскаем его по своим проектам. И не вспоминаем что там внутри, оно просто работает по умолчанию

 

Как вариант - каждый раз мудрим в скаде с регистрами.

 

Но это все лирика.

 

А если по факту.

Есть ModbusTCP регистр 40257 (скада не важна)

Есть 750-842 (841).

Хотим писать и читать. Как быть? Ваше предложение.

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

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Январь 2006 04:01

Видимо, забираю я все свои слова обратно? :(

 

 

VAR  varPLC_3 AT %IW256:INT; END_VAR;

А потом делать вместо varPLC_3:=varPLC_x, на что ругается компилятор, что-то типа %IW256:=PLC_x.

Как, интересно, это сам кодесус делает? Ведь у него все в ажуре. Если помостреть его .sym файл, то адреса внутренних вообще типа 48080дес, где-то в конце адресов ввода-вывода модбаса.

Ну а тэги лишние здесь совсем не помогут - они в разных ProccessImage.

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

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Январь 2006 16:04

Иногда полезно бывает почитать описание.  Хотя бы до страницы 78, где приведена красивая табличка, откуда что можно читать по модбасу и куда что можно писать. Из чего следует:

PROGRAM PLC_PRG
VAR
 WRITE: WORD;
 READ: WORD;
END_VAR

IF %IX5.0 = TRUE THEN
 %MW0 := WRITE;  (* WRITE 0x43000 /12289 dec/ *)
END_IF
READ := %MW0;   (* READ 0x43000 /12289 dec/ *)

Указанный HOLDING REGISTER 0x43000, разумеется, доступен как на запись, так и на чтение. Да ещё и сохраняет свое состояние при отключении питания.

Инженер-системотехник
+7 (916) 477 3925
Наверх
Valerik Смотреть выпадающим
Участник
Участник


Присоединился: 13 Апрель 2004
Online Status: Offline
Публикации: 58
Свойства публикации Свойства публикации   Ответить, цитируя автора - Valerik Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Январь 2006 17:08

Ну описание то читаем, иногда. С этими переменными(retain) проблем нет. Но что ж теперь определять все переменные нужные для скады в энергонезавимой области?

Возможно не понял пример, но можно наверно просто определить переменную как:

A AT %MW0: INT;

и работать с ней?

Просто проект уже есть и работает через OPC сервер. Захотелось перевести его на Модбас драйвер (желательно малой кровью). С модбасом столкнулся впервые отсюда и вопросы. Я так понимаю что все эти %IW256 и %Q256 считаются как бы удаленными входами\выходами контроллера?

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


Присоединился: 15 Март 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 112
Свойства публикации Свойства публикации   Ответить, цитируя автора - Voronenkov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Январь 2006 17:22
Первоначально опубликовано Максим Ананских

Иногда полезно бывает почитать описание.  Хотя бы до страницы 78, где приведена красивая табличка, откуда что можно читать по модбасу и куда что можно писать. Из чего следует:

PROGRAM PLC_PRG
VAR
 WRITE: WORD;
 READ: WORD;
END_VAR

IF %IX5.0 = TRUE THEN
 %MW0 := WRITE;  (* WRITE 0x43000 /12289 dec/ *)
END_IF
READ := %MW0;   (* READ 0x43000 /12289 dec/ *)

Указанный HOLDING REGISTER 0x43000, разумеется, доступен как на запись, так и на чтение. Да ещё и сохраняет свое состояние при отключении питания.

 

Вариант.  А с 750-842 что делать?

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


Присоединился: 13 Апрель 2004
Online Status: Offline
Публикации: 58
Свойства публикации Свойства публикации   Ответить, цитируя автора - Valerik Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Январь 2006 16:47

спасибо всем за ответы, еще вопросик:

При передаче по модбасу строковой переменной :

Пример

A AT %MW0:STRING;

A:='TEST';

На выходе скады имеем 'ETTS', причем используя и драйвер и OPC сервер Modbus TCP.

Т.е Wago(или Сodesy) хранит строки в регистре не так как прописано для модбаса? Есть ли выход, кроме как самому преобразовывать?

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

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Январь 2006 12:57

Первоначально опубликовано Valerik

На выходе скады имеем 'ETTS', причем используя и драйвер и OPC сервер Modbus TCP.

Формат передачи строк протоколом Modbus не определен. Скорее всего, строка передается так, как располагается в памяти. Поэтому, уважающие себя OPC серверы умеют переставлять байты в слове.

Инженер-системотехник
+7 (916) 477 3925
Наверх
 Ответить Ответить Страница  <123

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

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