This is topic Связь с WAGO 750841 in forum Редактор проекта TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/32/t/000523.html

Posted by justme (Участник № / Member № 5527) on :
 
Планируется снимать данные с WAGO-I/O-System EthernetTCP/IP 750-841 по Modbus TCP. Каков алгоритм действий?
Создать в приемниках/источниках группу MODBUS -> создать компоненты типа Rin_Word(4), задать им адрес, канал, тип протокола, формат, ip-адрес -> привязать каналы к этим компонентам?
Дело в том что в этом контроллере адреса modbus начинаются с 312289-... и 412289-...
Будут ли например значение 312289 соответствовать заданному в Rin_Word "каналу" 0x00 ? Или будет нужно делать всё иначе? Реального контроллера и модульной системы ввода/вывода в данный момент нет.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Алгоритм формирования компонентов обмена в проекте верный.
Утверждать что-либо определенное по отображению системы адресов переменных в контроллере на стандарт MODBUS мы не можем.
Надо изучать документацию или консультироваться у поставщика.
 
Posted by justme (Участник № / Member № 5527) on :
 
нашел некоторую информацию..
Переменные программы контроллера в адресах Modbus 312289-... и 412289-... соответствуют виртуальным переменным контроллера %MW0 ... %MW12287 в энергонезависимой памяти с доступом чтение/запись.

Первая цифра в адресе, к адресу регистра вовсе не относится, а определяет код области памяти и соответствующие функции, которые используются для доступа к ней.
Для чтения области "3..." нужно использовать функцию 4, и наоборот, для области "4..." функцию 3.

Данные с контроллера можно будет получить в регистрах с адресами 12289 ... 24575 или в HEX 0x3001 ... 0x5FFF

Всё так?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Видимо, так.
 
Posted by Alex210271 (Участник № / Member № 4421) on :
 
Если Вам нужно считывать не переменные из программы в контроллере а просто входы модулей и управлять выходами модулей подключенных к WAGO 750-841, то адреса будут начинатться с 0. Например, считываем данные с WAGO 750-430. 8-канальный модуль дискретного ввода: используем в группе MODBUS Rin_Byte(2) с параметрами № порта - 0, Адрес - 1, канал - 0, протокол - TCP/IP, направление - input, формат - дискрет, ну и ip адрес конечно. в этом случае в привязанный канал нех16 передаются сразу все 8 входов и 8 входов следующего аналогичного модуля ввода. Я обычно использую только восемь первых бит а для второго такого же модуля пишу еще один источник с каналом 0х8 что бы не путаться с какого модуля снимаю инфу. И так далее для каждого модуля. Модули вывода нумеруются опять начиная с 0, то есть если вы указали направление output, то с нулевым каналом будет первый дискретный выход. Аналоговые также начиная с 0, только другие Rin и WWord. Отличие только если вы хотите перечитать модули вывода там будет Rout и смещение адресов в поле канал 0х200.
 
Posted by dlesnikov (Участник № / Member № 4358) on :
 
WAGO 750-841 - свободно-программируемый контроллер, поэтому нужно узнавать у того, кто туда заливал программу, из каких регистров что считывать. Например, мне не удобно считывать сразу с регистров, связанных с модулями вв/выв., а использовать другие регистры, данные в которых формируются программой контроллера (данные с модулей вв/выв. сначала проходят программную обработку в контроллере, например избавление от дребезга, перевод одних физ. величин в другие и т.д.).
Использовать 750-841 для прямого обращения к модулям - это "из пушки по воробьям". Для этого есть простые "тупые" баскаплеры, типа 750-342.
А регистры %MW0...%MW12287, как вы правильно заметили относятся к энергонезависимой памяти и их содержимое формирует исключительно внутренняя программа контроллера.
 
Posted by LSR (Участник № / Member № 6485) on :
 
Добрый день,
Спасибо за информацию по регистрам!
Пробую считывать данные - успешно, а вот записывать нет.

Modbus TCP
Создал в приемниках/источниках группу MODBUS -> создал компонент типа Rin_Float(4), настроил адресс слейва, регистр, TCP, input, аналог, ip-адрес -> создал канал Float, Input -> создал ГЭ с выводом информации. Все работает.
При создании компонента на запись Rout_Float(3), в настройка аналогия, output -> канал Output
Данные в %MW0 не записываются.

Modbus RTU вообще не работает, создаю com port, в переменной меняю протокол Modbus, добавляю номер порта, удаляю Ip адресс. нет эффекта.
На USB/RS-485 Moxa моргает TxD. Как понимаю порт открыт и запрос уходит, ответа нет.

ПЛК WAGO 750-881 Ethernet, модуль 750-652 RS-485
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Для записи на использовать функцию Modbus W_Float(16).
Следует учесть также замечание в предыдущем посте
"А регистры %MW0...%MW12287, как вы правильно заметили относятся к энергонезависимой памяти и их содержимое формирует исключительно внутренняя программа контроллера. "
Возможно, в регистр %MW0 осуществить запись извне нельзя?

2. Для проверки обмена по Modbus RTU надо задать в файле конфигурирования запуска узла *.cnf ключ
DEBUGON=F0000200
В профайлерном протоколе должна быть информация об инициализации заданного Вами COM-порта и транзакциях обмена.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2