Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: СПК107 Программное изменение ID-адреса COM-порта в режиме Slave

  1. #1

    По умолчанию СПК107 Программное изменение ID-адреса COM-порта в режиме Slave

    Добрый день! Есть задача программного задания/изменения ID-адреса порта COM2, настроенного в режиме Slave. Проблема в том, что устройства с СПК107 устанавливаются на очень удаленные объекты и включаются о общую сеть Modbus с другими устройствами, адреса которых заранее неизвестны. Существует ли возможность программного изменения адреса COM-порта, или он жестко программируется в CodeSys?

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,134

    По умолчанию

    Цитата Сообщение от vlalys Посмотреть сообщение
    Добрый день! Есть задача программного задания/изменения ID-адреса порта COM2, настроенного в режиме Slave. Проблема в том, что устройства с СПК107 устанавливаются на очень удаленные объекты и включаются о общую сеть Modbus с другими устройствами, адреса которых заранее неизвестны. Существует ли возможность программного изменения адреса COM-порта, или он жестко программируется в CodeSys?
    Добрый день. Используйте библиотеку Modbus Slave - в ней поддержан нужный вам функционал.

  3. #3

    По умолчанию

    А можно поподробнее? Какой функциональный блок (или блоки) этой библиотеки используются? Переменную адреса устройства (DevAddr) я увидел только в блоке MB_SLAVE. Там она присутствует как входная переменная обращения к порту.

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,134

    По умолчанию

    Цитата Сообщение от vlalys Посмотреть сообщение
    А можно поподробнее? Какой функциональный блок (или блоки) этой библиотеки используются? Переменную адреса устройства (DevAddr) я увидел только в блоке MB_SLAVE. Там она присутствует как входная переменная обращения к порту.
    Пример работы с библиотекой приведен в этом документе:
    http://ftp.owen.ru/index.html/CoDeSy...dbus_v.1.0.pdf

    Все верно, блок MB_SLAVE реализует слэйв, DevAddr - это его ID. В процессе работы останавливайте блок (Enable:=FALSE), изменяйте значение DevAdrr и запускайте блок заново.

  5. #5

    По умолчанию

    Спасибо! Буду пробовать.

  6. #6

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Пример работы с библиотекой приведен в этом документе:
    http://ftp.owen.ru/index.html/CoDeSy...dbus_v.1.0.pdf

    Все верно, блок MB_SLAVE реализует слэйв, DevAddr - это его ID. В процессе работы останавливайте блок (Enable:=FALSE), изменяйте значение DevAdrr и запускайте блок заново.
    Здравствуйте, Евгений! Так и не получилось у меня разобраться, что-то я недопонимаю - в блоке MB_SLAVE нет бита останова/запуска. Т.е. я должен отключить порт битом Enable, задать в MB_SLAVE новое значение адреса, а затем снова подключить порт? Если возможно, листинг бы программы изменения адреса.

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,134

    По умолчанию

    Т.е. я должен отключить порт битом Enable, задать в MB_SLAVE новое значение адреса, а затем снова подключить порт?
    Все верно, только при этом вы работаете не с портом, а со слэйвом. Попробуйте это сделать, если не получится - я подготовлю видео.

  8. #8

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Все верно, только при этом вы работаете не с портом, а со слэйвом. Попробуйте это сделать, если не получится - я подготовлю видео.
    Я извиняюсь за свою глупость, но так и не разобрался с этим вопросом. Может мы о разном говорим? Мне надо программно изменять не адрес внешнего устройства, подключенного к порту, а ID-адрес COM-порта в режиме Slave для его опроса внешним Мастером. Picture.png

  9. #9
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,134

    По умолчанию

    Цитата Сообщение от vlalys Посмотреть сообщение
    Я извиняюсь за свою глупость, но так и не разобрался с этим вопросом. Может мы о разном говорим? Мне надо программно изменять не адрес внешнего устройства, подключенного к порту, а ID-адрес COM-порта в режиме Slave для его опроса внешним Мастером. Picture.png
    Мы говорим об одном и том же. Постараюсь завтра подготовить видео.

  10. #10
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,134

    По умолчанию

    Как и обещал, на коленке сделал видео:


    листинг примера:

    Код:
    PROGRAM PLC_PRG
    VAR
    	stCom_Settings: 	ComSerice.SysCom.COM_Settings;
    	stCom_SettingsEx: 	ComSerice.SysCom.COM_SettingsEx;
    	fbComService: 		COM_SERVICE;
    	fbModbusSlave:	    MB_SLAVE;
    	
    	bySlaveID:			BYTE;
    	awSlaveBuffer:		ARRAY [0..31] OF WORD;
    	xSlaveEnable:		BOOL;
    END_VAR
    
    
    
    stCom_Settings.sPort		:=	2;
    stCom_Settings.byStopBits	:=	1;
    stCom_Settings.byParity		:=	0;
    stCom_Settings.ulBaudrate	:=	115200;
    
    
    stCom_SettingsEx.byByteSize	:=  8;
    
    fbComService
    	(
    		Enable		:= 	TRUE, 
    		Settings	:= 	stCom_Settings, 
    		sets_ex		:= 	stCom_Setting**** 
    		Task		:=  ComSerice.COM_TSK.OPEN_TSK, 
    		Ready=> , 
    		handle=> 
    	);
    	
    
    IF xSlaveEnable AND fbComService.Ready THEN
    	
    	fbModbusSlave
    		(
    			ComHandle	:= fbComService.handle, 
    			DevAddr		:= bySlaveID, 
    			pBuffer		:= ADR(awSlaveBuffer), 
    			BufSize		:= SIZEOF(awSlaveBuffer), 
    			NewData=> , 
    			Error=> 
    		);
    		
    END_IF

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 20.06.2016, 18:07
  2. Ответов: 0
    Последнее сообщение: 13.01.2016, 12:00
  3. СПК107 в режиме Slave
    от Toshix в разделе Наши проекты
    Ответов: 9
    Последнее сообщение: 29.04.2015, 14:08
  4. Ответов: 2
    Последнее сообщение: 21.11.2013, 22:21
  5. Программное изменение настроек RS-485
    от botanik в разделе ПЛК1хх
    Ответов: 13
    Последнее сообщение: 31.08.2009, 18:54

Ваши права

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