Страница 87 из 120 ПерваяПервая ... 3777858687888997 ... ПоследняяПоследняя
Показано с 861 по 870 из 1312

Тема: CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Подскажите, для управления ПЧ AFD-E есть шаблон в котором управление происходит по отправке командного слова и подтверждающий Бит записи
    01.png
    хочу повторить код запроса без шаблона, часть кода есть - это отправка самого командного слова
    Код:
    VAR
       ...
       fbKnopTrig: R_TRIG;
    END_VAR
    
    
    // Проверка привода на готовность
    fbComControl1
    (
    	xEnable     := TRUE,
    	udiComPort  := 5,
    	udiBaudrate := 9600,
    	udiByteSize := 8,
    	eParity     := OCL.COM_PARITY.NONE,
    	eStopBit    := OCL.COM_STOPBIT.ONE
    );
    
    IF fbComControl1.xActive THEN
    	
            fbKnopTrig(CLK := xKnop);
    
    	IF fbKnopTrig.Q THEN
    	   eState := 20;
    	END_IF
    	
    	CASE eState OF
    
                     0: // ожидание команды
    		
    		10: // Опрос состояния AFD-E
    				
    		20: // запуск AFD-E
    		
                    wCmdWord := 22;
    		fbMbSerialRequest.xExecute 	:= TRUE;
    		fbMbSerialRequest.hCom		:= fbComControl1.hCom;
    		fbMbSerialRequest.xIsAsciiMode	:= FALSE;
    		fbMbSerialRequest.usiSlaveId 	:= 15; 		                       // адрес слейва
    		fbMbSerialRequest.eFuncCode	:= OCL.MB_FC.WRITE_SINGLE_REGISTER;    // функция
    		fbMbSerialRequest.uiDataAddr 	:= 4864; 		               // адрес начального запроса
    		fbMbSerialRequest.uiDataCount	:= 1; 		                       // число регистров
    		fbMbSerialRequest.pData	        := ADR(wCmdWord);
    		fbMbSerialRequest.szSize	:= SIZEOF(wCmdWord);
    
                    fbMbSerialRequest();
    
    		// fbMbSerialRequest.xError	:= xError;
    		// fbMbSerialRequest.eError	:= wError;
    		
    				
    		IF fbMbSerialRequest.xDone OR fbMbSerialRequest.xError THEN
    			
    			fbMbSerialRequest(xExecute := FALSE);
                            eState := 0;
    			
    		END_IF
    		
    	END_CASE
    
    END_IF
    а вот куда записывать бит не понятно
    В тех поддержу обращался, но там не поняли что надо и сбросили файл в котором они тестировали подключение.

    02.png03.png04.png

  2. #2

  3. #3

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Аналогом бита записи шаблона является вход xExecute в fbMbSerialRequest.
    В вашем коде аналогом этого бита является xKnop.
    В тех поддержке написали что регистр 4864 всегда должен быть в значении 22
    Т.Е. надо сделать зацикливание в программе я правильно понимаю?
    Код:
    IF fbMbSerialRequest.xDone OR fbMbSerialRequest.xError THEN
    			
    	fbMbSerialRequest(xExecute := FALSE);
            eState := 20;
    			
    END_IF

  4. #4

  5. #5

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Я не вижу причин делать "зацикливание в программе".
    Не могли бы Вы объяснить как правильнее написать?

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

    По умолчанию

    Цитата Сообщение от sco-scorpion Посмотреть сообщение
    Не могли бы Вы объяснить как правильнее написать?
    Напомните, пожалуйста, почему вы решили использовать библиотеку, а не настроить опрос через шаблон?

  7. #7

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от sco-scorpion Посмотреть сообщение
    Изучить опрос через библиотеку. В реальном проекте буду использовать шаблон если не будет никаких неожиданностей.
    С помощью шаблона у вас получилось для ПЧВ организовать требуемое поведение?

  9. #9

    По умолчанию

    С чем может быть связан ErrorCode 60 - RESPONSE_CRC_FAIL? Ошибка возникает при попытке записи в удаленное устройство данных длинной свыше 30, для чтения и записи используется блок OCL.MB_SerialRequest, eFuncCode - OCL.MB_FC.WRITE_MULTIPLE_REGISTERS.
    Различные варианты Tameout пробовал выставлять. В какую сторону стоит копать? Не хотелось бы разбивать данные на две записи, тем более набора данных длиной свыше 50 не планируется.

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

    По умолчанию

    Цитата Сообщение от knoppix Посмотреть сообщение
    С чем может быть связан ErrorCode 60 - RESPONSE_CRC_FAIL? Ошибка возникает при попытке записи в удаленное устройство данных длинной свыше 30, для чтения и записи используется блок OCL.MB_SerialRequest, eFuncCode - OCL.MB_FC.WRITE_MULTIPLE_REGISTERS.
    Различные варианты Tameout пробовал выставлять. В какую сторону стоит копать? Не хотелось бы разбивать данные на две записи, тем более набора данных длиной свыше 50 не планируется.
    Добрый день.
    Какое у вас время цикла задачи MainTask?

Страница 87 из 120 ПерваяПервая ... 3777858687888997 ... ПоследняяПоследняя

Похожие темы

  1. Настройка ПР200, управление 3-мя устройствами через RS-485
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 15.05.2017, 16:45
  2. СП3ХХ Пример настройка обмена с ПЛК на CODESYS 2.3
    от Denis_Kay в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 02.03.2017, 15:12
  3. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  4. Универсальная функция для обмена с устройствами OwenIO и всеми любимый LabView.
    от Алексей Крагель в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 30.05.2014, 14:38

Ваши права

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