Страница 5 из 7 ПерваяПервая ... 34567 ПоследняяПоследняя
Показано с 41 по 50 из 70

Тема: Конфигурация ПЛК-Modbus (slave)- как запихнуть более 860 регистров??

  1. #41

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ЗЫ и не забывайте такой аспект, что в конфигураторе модбас является сохраняемым в энергонезависимой памяти, следовательно при каждом выключении плк, будет происходить запись на флеш этих данных, тут и от более малого количества происходят сбои, так что делайте выводы
    Значит получается, по любому нужно уходить от конфигуратора, но блин я вообще немогу понять как подступится к вашему примеру....

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

    По умолчанию

    В PLC_PRG отсекайте все лишнее, оставте только работу модбаса. Структуру данных, которую он отправляет заполняйте в ручную в режиме онлайн, чтоб пока привыкнуть к этому виду, скачайте билдер от вейнтека и запустите эмулятор онлайновый, в качестве контроллера выберите модбас зеро и галку поставте работать по UDP. Если нет желания то вот набор можно скачать от производителя КДС http://www.owen.ru/forum/showthread....l=1#post102798, открывал сокеты я по этим примерам, что UDP, что TCP,для ТСР будет всё тоже самое что касается модбас, измениться только открытие/закрытие сокета и отправка/чтение
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  3. #43

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    В PLC_PRG отсекайте все лишнее, оставте только работу модбаса. Структуру данных, которую он отправляет заполняйте в ручную в режиме онлайн, чтоб пока привыкнуть к этому виду, скачайте билдер от вейнтека и запустите эмулятор онлайновый, в качестве контроллера выберите модбас зеро и галку поставте работать по UDP. Если нет желания то вот набор можно скачать от производителя КДС http://www.owen.ru/forum/showthread....l=1#post102798, открывал сокеты я по этим примерам, что UDP, что TCP,для ТСР будет всё тоже самое что касается модбас, измениться только открытие/закрытие сокета и отправка/чтение
    спс большое

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

    По умолчанию

    да пока не зачто, если возникнут проблемы выкладывайте проект с тестированием слейва, подскажу что не так
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  5. #45

    По умолчанию

    Цитата Сообщение от Евгений Дударев Посмотреть сообщение
    Тестовая прошивка для ПЛК110-30 М02, о которой писал Владислав Филоненко.
    А для ПЛК110-60[М02] выложите пожалуйста (если готова)

  6. #46

    По умолчанию

    К сожалению, Владислав передал в группу технической поддержки версию на 110-30. Тогда завтра попрошу его выложить на 110-60.

  7. #47

    По умолчанию

    Прошу использовать прошивку 0.3.62
    Вложения Вложения

  8. #48

    По умолчанию

    Большое спасибо! Надо только имя файла переименовать, а то при выполнении команды UpdateCore браузер скажет, что прошивка не найдена
    Только у меня возник ряд вопросов в добавок к уже имеющимся. Посмотрите пожалуйста - http://www.owen.ru/forum/showthread....780#post223780
    Последний раз редактировалось DmitriiAnyushin; 14.10.2016 в 13:50.

  9. #49

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    да пока не зачто, если возникнут проблемы выкладывайте проект с тестированием слейва, подскажу что не так
    Здравствуйте, не стал создавать новую тему, а решил продолжить свою старую так как, в принципе название подходит.

    Начал делать новый проект: таже связка ПЛК110+ОРСсервер(Инсат)+МастерСкада. Уж очень не хочется в ручную вбивать 600-700 регистров в конфигураторе и решил разобраться с бибкой SysLibSockets.
    Подогнали мне пример:
    раздел описания:
    Код:
    FUNCTION_BLOCK SENSOR
    VAR CONSTANT
    
    	TIMEOUT_TIME	: TIME	:= T#5S ;				
    	POLLING_TIME	: TIME	:= T#10S ;			
    	TRUST_TIME	: TIME	:= T#15S ;			
    
    END_VAR
    
    VAR_INPUT
    
    	IP1		: DWORD := 16#0A000665;	
    	IP2		: DWORD ;						
    
    END_VAR
    
    VAR_OUTPUT
    
    	SKY		: UINT ;						
    	SUN		: UINT ;						
    	TRUST	: BOOL ;					
    
    END_VAR
    
    VAR
    
    	STATE		: INT := 0 ;						
    
    	TIMEOUT_TIMER	: TON ;							
    	TRUST_TIMER	: TOF ;						
    
    	SOCKET		: DINT :=SOCKET_INVALID ;	
    	SADR			: SOCKADDRESS ;			
    
    	REQUEST		: ARRAY [0..11] OF BYTE := 5(0) , 6 , 1 , 3 , 0 , 0 , 0 , 2 ;
    	ANSWER		: ARRAY [0..12] OF BYTE ;
    
    	_IP2			: BOOL ;						
    
    END_VAR
    код FB:
    Код:
    IF IP1 <> 0 THEN		
    
    	CASE STATE OF
    
    		0:
    
    			SOCKET := SysSockCreate ( SOCKET_AF_INET , SOCKET_STREAM , SOCKET_IPPROTO_TCP ) ;
    
    			IF SOCKET <> SOCKET_INVALID THEN
    
    				STATE := 1 ;
                               ELSE STATE:=4;
    			END_IF
    
    			TIMEOUT_TIMER ( IN := TRUE , PT := TIMEOUT_TIME ) ;
    
    		1:
    
    			SADR.sin_addr	:=  IP1;(*SEL ( _IP2 AND ( IP2 <> 0 ) , IP1 , IP2 ) ;*)
    			SADR.sin_family	:= SOCKET_AF_INET ;
    			SADR.sin_port	:= 502 ;
    
    			SysSockConnect ( SOCKET , ADR ( SADR ) , SIZEOF ( SADR ) ) ;
    	
    			STATE := 2 ;
    	
    		2:	
    	
    			IF SysSockSend ( SOCKET , ADR ( REQUEST ) , SIZEOF ( REQUEST ) , 0 ) = SIZEOF ( REQUEST ) THEN
    
    				STATE := 3 ;
    	
    			ELSE
    
    				TIMEOUT_TIMER ( IN := TRUE ) ;
    	
    			END_IF
    	
    		3:
    	
    			IF SysSockRecv ( SOCKET , ADR ( ANSWER ) , SIZEOF ( ANSWER ) , 0 ) <> 0 THEN
    	
    				IF ( ANSWER [ 0 ] = REQUEST [ 0 ] ) AND ( ANSWER [ 1 ] = REQUEST [ 1 ] ) THEN		
    
    					SKY	:= WORD_OF_BYTE ( ANSWER [ 9 ] , ANSWER [ 10 ] ) ;
    					SUN	:= WORD_OF_BYTE ( ANSWER [ 11 ] , ANSWER [ 12 ] ) ;
    
    					TRUST_TIMER ( IN := TRUE ) ;	
    
    					_IP2 := FALSE ;					
    
    				END_IF
    
    				STATE := 4 ;
    
    			ELSE
    	
    				TIMEOUT_TIMER ( IN := TRUE ) ;
    	
    			END_IF
    
    		4:	
    
    			SysSockClose ( SOCKET ) ;
    
    			SOCKET := SOCKET_INVALID ;
    
    			IF REQUEST [ 1 ] = BYTE#16#FF THEN		
    
    				REQUEST [ 0 ] := REQUEST [ 0 ] + 1 ;
    
    			END_IF
    
    			REQUEST [ 1 ] := REQUEST [ 1 ] + 1 ;	
    
    			STATE := SEL ( TIMEOUT_TIMER.Q , 5 , 0 ) ;	
    
    			TIMEOUT_TIMER ( IN := FALSE ) ;			
    
    		5:	
    
    			TIMEOUT_TIMER ( IN := TRUE , PT := POLLING_TIME ) ;
    
    			IF TIMEOUT_TIMER.Q THEN
    
    				TIMEOUT_TIMER ( IN := FALSE ) ;	
    
    				STATE := 0 ;							
    
    			END_IF
    
    	END_CASE
    
    	IF TIMEOUT_TIMER.Q THEN	
    
    		STATE := 4 ;					
    
    		_IP2 := NOT _IP2 ;			
    
    	END_IF
    
    ELSIF SOCKET <> SOCKET_INVALID THEN
    
    	SysSockClose ( SOCKET ) ;				
    
    	SOCKET := SOCKET_INVALID ;				
    
    	STATE := 0 ;									
    
    END_IF
    
    TRUST_TIMER ( IN := FALSE , PT := TRUST_TIME ) ;	
    
    TRUST := TRUST_TIMER.Q ;
    И появились вопросы:
    1. ІР-адрес 10.0.6.101 будет 16#0A000665. Правильно???
    2. Если этот код не переходит на 3 шаг кейса, значит нет ответа от ПК с OPC-cервером(в моем случае это 10.0.6.101)??????
    3. На третьем шаге (если правильно понял)идет чтение переменных, а как тогда записать значение переменной в OPC-сервер?????
    4. Вообще насколько этот код подходит для ПЛК110+ОРСсервер(Инсат), может нужно что-то переделать?????

    Сразу извиняюсь за тупые вопросы - это мое первое знакомство с SysLibSockets....
    Последний раз редактировалось a_gricaj; 07.02.2017 в 01:23.

  10. #50

    По умолчанию

    Никто не может подсказать????

Страница 5 из 7 ПерваяПервая ... 34567 ПоследняяПоследняя

Похожие темы

  1. Адресация регистров Modbus-RTU, ПЛК(Slave)
    от Лёша в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 03.07.2019, 08:02
  2. ПЛК63, modbus slave, адреса регистров
    от monteg в разделе ПЛК63/73
    Ответов: 43
    Последнее сообщение: 19.06.2017, 08:46
  3. Проблема с созданием регистров ModBus(Slave) ПЛК 150
    от SDSE92 в разделе Помощь Разработчикам
    Ответов: 4
    Последнее сообщение: 08.06.2016, 13:37
  4. СП270 Slave. Чтение и запись регистров PFW
    от petera в разделе Панели оператора (HMI)
    Ответов: 4
    Последнее сообщение: 02.05.2015, 18:36
  5. ПЛК 110-32M slave, libmodbus TCP, ошибка чтения регистров: Bad file descriptor
    от SerJK в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 22.04.2014, 12:12

Ваши права

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