Просмотр полной версии : Контроллер + модули Modbus
Пытаюсь подружить систему (контроллер + модули) и OPC-сервер. Контроллер с модулями (диммеры, реле и т.д.) работают в сети RS-485 по протоколу Modbus. OPC-сервер работает на Win-машине по протоколу Modbus TCP. Соединение с контроллером прописал без проблем, по ID=1 контроллер подключился, настроил тэги - всё работает. Далее пытаюсь подключить остальные модули в сети, но не удаётся... Каждый модуль в сети имеет свой индивидуальный адрес, к примеру диммер - 18. Прописываю в OPC-сервер Device2, указываю ID=18, далее конфигурирую тэги. Запускаю - всё, что касается Device1 (ID=1) работает нормально, напротив тэгов Device2 (ID=18) написано BAD, хотя с помощью Modbus Poll могу по адресу 18 записать в регистр значение - диммер реагирует...
Данные из листа описания по диммеру:
Регистры, функции (чтение 3, запись 16) Holding Registers
Адрес_____Доступ__________Описание
1_______чтение/запись______Задержка переключения кратная 1мс, максимальное время 1 минута (60000)
2_______чтение/запись______Значение яркости (0-100%)
Как прицепить модули к OPC-серверу?...
SCADAMaster
05.02.2016, 20:15
Контроллер с модулями (диммеры, реле и т.д.) работают в сети RS-485 по протоколу Modbus. OPC-сервер работает на Win-машине по протоколу Modbus TCP.
У вас Modbus TCP и RS-485 - как такое может быть?
Что тут удивительного? Контроллер соединён с модулями по 485, у него есть порт Ethernet, и комп, на котором установлен OPC-сервер общается с контроллером
по протоколу Modbus TCP. Вроде верно я понимаю взаимодействие в сети?
_Mikhail
05.02.2016, 23:35
Что тут удивительного? Контроллер соединён с модулями по 485, у него есть порт Ethernet, и комп, на котором установлен OPC-сервер общается с контроллером
по протоколу Modbus TCP. Вроде верно я понимаю взаимодействие в сети?
Нет не верно, по протоколу Modbus TCP идет подключение ПК к ПЛК, в свою очередь ПЛК связан с модулями по 485 и это абсолютно другая сеть, никак не связанная с Modbus TCP.
Так вроде бы я так и написал, может неверно мысль выразил... Хорошо, так у ПК с OPC-сервером есть возможность получать данные и производить запись в модули, которые подключены к ПЛК по 485?
_Mikhail
06.02.2016, 00:01
Так вроде бы я так и написал, может неверно мысль выразил... Хорошо, так у ПК с OPC-сервером есть возможность получать данные и производить запись в модули, которые подключены к ПЛК по 485?
В сети Modbus TCP всего одно опрашиваемое устройство - ПЛК с адресом 1. Модули находятся в другой сети со своей адресацией, никак не связанной с Modbus TCP. Надо создать промежуточные переменные в ПЛК, которые будет опрашивать ПК и которые будут связаны с переменными из модулей
В сети Надо создать промежуточные переменные в ПЛК, которые будет опрашивать ПК и которые будут связаны с переменными из модулей
Вот это поворот!!! Я, правда, уже начал догадываться об этом, но надеялся что если у ПЛК адрес 1, а у модулей 2,3,4 и т.д., то можно к ним подключиться аналогичным способом... Интересно, у производителя ПЛК есть "куцее" приложение для Android-устройств - я в нём тупо прописываю адрес 18, регистр 40002, значение 100 и у меня модуль (диммер) включает свет а так же есть "ползунок" - могу выставить яркость. Это тоже происходит посредством контроллера или напрямую с диммером?
В сети Надо создать промежуточные переменные в ПЛК, которые будет опрашивать ПК и которые будут связаны с переменными из модулей
Стоп! А какже такой момент. Есть программа для ПК Modbus Poll. В ней я настроил подключение к ПЛК по Modbus TCP, при опросе ПЛК использую адрес 1, но если выбираю функцию записи (06), выставляю адрес 18 и адрес регистра 1 (т.е. он 2), величину 100 - свет включается, величину 0 - свет выключается. Т.е., получается, я посредством Modbus TCP управляю модулем, подключенным к ПЛК по 485?
_Mikhail
06.02.2016, 00:28
Я не могу видеть что и как вы подключаете и опрашиваете. Вам объяснили что Modbus ТСР и Modbus 485 - это разные сети в которых свои адресации.
Я понял что это разные сети, но у ПЛК есть подключение к Ethernet сети (он имеет свой IP-адрес). Из программы Modbus Poll я могу управлять как ПЛК, так и модулями - причём адресация совпадает с адресацией ПЛК (он работает в 485 сети по протоколу Modbus). Как эту адресацию реализовать в OPC-сервере для дальнейшего использования в MasterSCADA?
SCADAMaster
06.02.2016, 07:44
Что у вас за контроллер?
Он способен работать в режиме конвертера Modbus TCP - Modbus RTU?
Вообще если ваша задача подключить сеть RS-485 в сеть Ethernet, то для этого есть устройства проще. В частности Moxa Nport:
http://insat.ru/products/?category=1122
Они могут создавать виртуальный СОМ порт или работать в режиме TCP Server Mode - оба этих режима в ОРС сервере поддержаны.
Что у вас за контроллер?
Он способен работать в режиме конвертера Modbus TCP - Modbus RTU?
Контроллер Spider 2.3 - вот техническое описание (http://www.insyte.ru/upload/iblock/aea/tekhnicheskoe-opisanie-spider2.3.pdf) - но в описании насчёт конвертера не заявлено, тем не менее я могу находясь в локальной сети, с помощью программы Modbus Poll, указав IP-адрес контроллера и порядковый номер компонента, управлять компонентами сети контроллера (Modbus RTU). Т.е. получается есть конвертер? Как этот успех перенести в OPC-сервер? Мне не удаётся подключить компоненты 485 сети по аналогии с Modbus Poll...
Контроллер Spider 2.3 - вот техническое описание (http://www.insyte.ru/upload/iblock/aea/tekhnicheskoe-opisanie-spider2.3.pdf) - но в описании насчёт конвертера не заявлено, тем не менее я могу находясь в локальной сети, с помощью программы Modbus Poll, указав IP-адрес контроллера и порядковый номер компонента, управлять компонентами сети контроллера (Modbus RTU). Т.е. получается есть конвертер? Как этот успех перенести в OPC-сервер? Мне не удаётся подключить компоненты 485 сети по аналогии с Modbus Poll...
Тебе надо написать простенькую программу для ПЛК SPIDER на языке С.
Тебе надо написать простенькую программу для ПЛК SPIDER на языке С.
Подскажите, что нужно описать в программе? Имеется в виду передача значений переменных в модули через переменные контроллера?
Кстати, попробовал во время работы OPC-сервера внести в соответсвующий тэг диммера (несмотря на то, что он BAD) значение 100... и чудо, но свет включился... Т.е. наплевать на BAD - трансляция работает... теперь бы с чтением регистров определиться...
Интересно, что после передачи, тэг на некоторое время становится ОК, а потом опять BAD.
Вообщем получилось передать значение в модуль (диммер) из MasterScada. Управлять модулями могу, но считывать значения регистров из модулей пока не получается... но если использовать переменные контроллера - то без проблем.
SCADAMaster
06.02.2016, 18:53
А Modbus Poll нормально опрашивает?
Приложите логи обмена из Modbus Poll и Modbus OPC сервера.
А Modbus Poll нормально опрашивает?
Приложите логи обмена из Modbus Poll и Modbus OPC сервера.
Нет, с Modbus Poll тоже не удаётся опросить. Лог OPC не нашёл, а лог Modbus Poll - там сначала идёт опрос переменных контроллера (там где OK), когда подходит очередь к опросу модуля (диммера) - пишет time out.
SCADAMaster
07.02.2016, 11:12
Если и через другие Modbus программы не удается опросить, значит что-то нужно в контроллере настроить.
Ну или сменить на Nport.
Если и через другие Modbus программы не удается опросить, значит что-то нужно в контроллере настроить.
Ну или сменить на Nport.
Меня смущает эта фраза в описании контроллера:
Управление сторонней периферией: RS485/RS232, гальваническая развязка 1500В (только передача, полностью настраиваемый)
В понедельник попробую уточнить у производителя...
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot