Показано с 1 по 10 из 10

Тема: Подключение плк и нескольких устройств на занятый 485

  1. #1

    По умолчанию Подключение плк и нескольких устройств на занятый 485

    Добрый день. Прошу прощения, если не там разместил тему, надеюсь модераторы это исправят.

    Имеется СП307 (мастер), плк150ИМ (слейв), пчв (слейв). Необходимо подключится к расходомеру Взлет Профи Эм.
    Что будет, если интерфейс rs485 на нем уже будет занят? Есть ли возможность все таки подключиться по модбас, переведя все устройства в слейв и из программы производить опрос своих устройств?
    Или как лучше организовать связь?

    Прошу пнуть в нужном направлении.

  2. #2

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    есть
    Вау! Потрясающе... Спасибо, Валенок.

  3. #3

    По умолчанию

    Снова прошу помощи.
    На данный момент существует: СП307 (мастер), ПЛК150 (слейв), модуль вывода МУ110-8Р (слейв). Приборы перечислены в порядке подключения.
    ПЛК с панелью общаются через конфигурацию ПЛК, где прописан Модбас (слейв). При этом, если пробую писать в модуль из плк с помощью библиотеки Модбас.либ отваливается связь панели с ПЛК, что в принципе логично, вроде.
    Не логично то, что она не восстанавливается после.
    Код:
    IF port_opened=0 THEN
    		Settings.Port:=com_num;               (*номер COM-порта*)
    		Settings.dwBaudRate:=115200;    (*скорость*)
    		Settings.byParity:=0;
    		Settings.dwTimeout:=0;
    		Settings.byStopBits:=0;
    		Settings.dwBufferSize:=0;
    		Settings.dwScan:=0;
    
    	COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=OPEN_TSK);
    
    IF COM_SERVICE1.ready THEN
    	port_opened:=2;
    END_IF
    END_IF
    
    IF port_opened=2 THEN (*Удачно проинициализировали*)
    
    	Buffer[1] := 16#E8;
    	Buffer[0] := 3;
    
    	send2_modbus(
    		Enable:= enabl,			(* разрешение работы блока *)
    		Mode:=MB_ASCII ,		(*режим передачи*)
    		DevAddr:=16 , 				(*адрес*)
    		FirstAddr:= 1, 				(*номер регистра*)
    		Quantity:= 1,   				(*количество записываемых регистров*)
    		ComHandle:=Settings.Port ,(*номер сом-порта*)
    		TimeOut:=TimeOut ,		(*таймаут T#50ms*)
    		Buffer:=Buffer ,			(* буфер данных *)
    		Complete=>cmpl ,		(* скопировать признак завершения операции *)
    		Exception=>err ,			(* скопировать регистр ошибок *)
    		RegCnt=> DataSize);		(*кол-во считанных байтов *)
    	(*если установлен признак завершения операции, то *)
    
    
    END_IF
    IF cmpl AND port_opened=2 THEN
    	enabl := FALSE;
    	port_opened:=3;
    	COM_SERVICE1(Task:=CLOSE_TSK);
    END_IF
    
    IF  err <> 0 THEN
     	enabl := FALSE;
    END_IF
    Предполагал, что вызов COM_SERVICE1(Task:=CLOSE_TSK) должен приводить к закрытию экземпляра устройства и связь между ПЛК и панелью должна восстановиться.
    Странно, что закрытие компорта происходит вот так SysComClose(Settings.Port), когда функции должен передаваться открытый хендл, а не порт. Исправил это, но результата нет.

    По сути вопрос тот же, что и в заголовке темы и в первом посте. Есть устройство мастер, есть два устройства слейв. Слейвы хочу коммутировать с помощью библиотеки, но отваливается связь с мастером. Что я делаю не так? Как правильно?

    PS. Сейчас попробую перекинуть ПЛК в конец цепочки подключения (если предположить, что во время опроса модуля он является мастером, то на данный момент он подключен звездой), сообщу о результате, но не думаю что поможет.

  4. #4
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,658

    По умолчанию

    с какого перепуга у вас 2 мастера сети ?

  5. #5

    По умолчанию

    У меня нет двух мастеров в сети. Мастером у меня является панель. ПЛК является слейвом, но из него я пытаюсь писать в модуль с помощью библиотеки.
    После переподключения ПЛК в конец цепочки вообще все перестало работать.

  6. #6
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от mf_ Посмотреть сообщение
    У меня нет двух мастеров в сети. Мастером у меня является панель.
    Потрясающее заявление.
    А как же это
    ПЛК является слейвом, но из него я пытаюсь писать в модуль с помощью библиотеки.
    Хоть с помощью библиотеки, хоть через конфигурацию но в этот момент ПЛК становится мастером, вторым!
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Потрясающее заявление.
    А как же это

    Хоть с помощью библиотеки, хоть через конфигурацию но в этот момент ПЛК становится мастером, вторым!
    Тогда я не понимаю ответа, касающегося подключения к занятому порту и работы с ним.
    Цитата Сообщение от Валенок Посмотреть сообщение
    есть

    Подключиться по модбас, переведя все устройства в слейв. Из программы производить опрос своих устройств
    В существующей сети, наверняка есть мастер, таким образом получается, что несмотря на то, что все дополнительно подключенные устройства будут слейвами, все равно не получится работать с ними через библиотеку, т.к. на этот момент будет отваливаться мастер существующей сети?

    Дополнительные вопросы.
    Как мне перестать быть мастером сети?
    Почему этого не происходит при вызове COM_SERVICE1(Task:=CLOSE_TSK)?
    Почему закрытие компорта не приводит к установке в FALSE значений .Ready, .Opened, .Enable?
    Почему в библиотеке закрытие порта происходит (не происходит) через параметр порта, а не хендла?
    Последний раз редактировалось mf_; 22.06.2017 в 14:26. Причина: дополнительные вопросы

  8. #8
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от mf_ Посмотреть сообщение
    Тогда я не понимаю ответа, касающегося подключения к занятому порту и работы с ним.

    В существующей сети, наверняка есть мастер, таким образом получается, что несмотря на то, что все дополнительно подключенные устройства будут слейвами, все равно не получится работать с ними через библиотеку, т.к. на этот момент будет отваливаться мастер существующей сети?

    Дополнительные вопросы.
    Как мне перестать быть мастером сети?
    Почему этого не происходит при вызове COM_SERVICE1(Task:=CLOSE_TSK)?
    Почему закрытие компорта не приводит к установке в FALSE значений .Ready, .Opened, .Enable?
    Почему в библиотеке закрытие порта происходит (не происходит) через параметр порта, а не хендла?
    Перестаньте изобретать велосипед.
    Есть несколько вариантов
    1. Панель (мастер) подключить к порту RS232 ПЛК и сделать в нем слейв для обмена с панелью. RS485 оставить для связи ПЛК с модулем, в ПЛК сделать мастер для порта RS485. Если нужно с панели управлять выходами модуля, то в программе ПЛК просто копировать переменные из слейва в соответствующие переменные мастера
    2. Если панель с буквой -Р, то можно подключать панель(мастер) по Ethernet, соответственно слейв в ПЛК делать для порта Ethernet.
    3. Сделать ПЛК мастером, а панель сделать слейвом.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #9

    По умолчанию

    Спасибо, petera! Конечно же, все Ваши варианты решают проблему, но все дело в том, что эта проблема была создана искуственно для проверки возможности подключить к своей сети прибор (Взлет Профи Эм) уже подключенный по rs485 к чужой сети, после того, как я услышал от Валенка положительный ответ.
    Теперь, получается, что это сделать невозможно без изменения конфигурации остальных приборов в чужой сети.

    Ну и вопросы по работе с библиотекой модбас.либ остаются в силе...

  10. #10
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,658

    По умолчанию

    со своим уставом в чужой монастырь (это про чужую сеть)... тут только из чужой сети отдавать данные вашему слейву, если это
    возможно...
    С учетом выше сказанного у вас даже 3 мастера сети получилось.
    СПК, ПЛК и мастер чужой сети. Со своими можно разрулить как написал Petera, с чужим только договариваться с разработчиками.
    Вдруг например там опрос через OPC сервер и к нему можно прицеппиться или как выше написал вам настроят переброс параметров для вашего слейва...
    Последний раз редактировалось melky; 22.06.2017 в 16:37.

Похожие темы

  1. Опрос нескольких устройств по modbus
    от gias67 в разделе Сетевые технологии
    Ответов: 5
    Последнее сообщение: 26.11.2018, 15:48
  2. подключение нескольких ТРМ
    от Денис 86 в разделе Сервисное ПО
    Ответов: 35
    Последнее сообщение: 21.09.2012, 12:27
  3. Подключение нескольких ТРМ-148 к ПК
    от Invisible_Kid в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 13.08.2012, 10:57
  4. подключение нескольких си-8
    от OlegO в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 13.05.2010, 15:49
  5. подключение нескольких устройств к плк100
    от Денис_NTS в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 15.10.2009, 11:50

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •