Страница 143 из 154 ПерваяПервая ... 4393133141142143144145153 ... ПоследняяПоследняя
Показано с 1,421 по 1,430 из 1537

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

  1. #1421

    По умолчанию

    Цитата Сообщение от ward Посмотреть сообщение
    ANALOG_SENSOR_VALUE.rValue это же обезличенно. А как, допустим, первый канал или третий прочитать? ANALOG_SENSOR_VALUE.rValue это уже какое то неполное выражение без конкретики
    Так будет понятнее?
    2024-11-21_16-32-49.png

    Объявляете переменные с типом данных ANALOG_SENSOR_VALUE, привязываете эти переменные в шаблоне устройства, в коде используете имя_переменной.rValue

  2. #1422

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    Так будет понятнее?
    2024-11-21_16-32-49.png

    Объявляете переменные с типом данных ANALOG_SENSOR_VALUE, привязываете эти переменные в шаблоне устройства, в коде используете имя_переменной.rValue
    Спасибо. Так понятнее. Без действий со стрелкой и номером 2 это возможно? Ну грубо говоря: обратиться ко входу как: MV210_101.Analog_inputs.channel(1).ANALOG_SENSOR_V ALUE.rValue?

  3. #1423

    По умолчанию

    Без пункта 2 ПЛК не знает что у MV210_101 есть какая-либо связь с ANALOG_SENSOR_VALUE

  4. #1424

    По умолчанию

    То есть без объявления переменной невозможно считать будет вход? Никаким способом?

  5. #1425

    По умолчанию

    Цитата Сообщение от ward Посмотреть сообщение
    То есть без объявления переменной невозможно считать будет вход? Никаким способом?
    Можете выбросить шаблон, создать чтение массива из 24 регистров,1 Чтение 24 рег.jpg начиная с адреса 4000. 1 Массив структур.jpg регистры1 Модбас МВ210_101.jpg модуль МВ210-101
    Создать свою структуру Ai из переменной Float и циклического времени.
    Создать массив Ai_Oll AT%IW22 : ARRAY [1..8] OF Ai;
    И обращайтесь к любому каналу как Ai_Oll[1].rValue; Ai_Oll[8].rValue;
    При чём, в соотнесении ничего нет вообще.
    Последний раз редактировалось kondor3000; 21.11.2024 в 19:32.

  6. #1426

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Можете выбросить шаблон, создать чтение массива из 24 регистров, начиная с адреса 4000. 1 Массив структур.jpg регистры1 Модбас МВ210_101.jpg модуль МВ210-101
    Создать свою структуру Ai из переменной Float и циклического времени.
    Создать массив Ai_Oll AT%IW22 : ARRAY [1..8] OF Ai;
    И обращайтесь к любому каналу как Ai_Oll[1].rValue; Ai_Oll[8].rValue;
    При чём, в соотнесении ничего нет вообще.
    Тоже интересно. Спасибо. Но если не знаю адреса (типа AT%IW22), а просто модуль (ip его) и номер канала? Или это уже из фантастики? Интересно просто насколько это возможно

  7. #1427

    По умолчанию

    Цитата Сообщение от ward Посмотреть сообщение
    Тоже интересно. Спасибо. Но если не знаю адреса (типа AT%IW22), а просто модуль (ip его) и номер канала? Или это уже из фантастики? Интересно просто насколько это возможно
    Этот адрес AT%IW22 вы смотрите у себя при создании массива чтения из модуля.

    А просто так, берёте адрес из таблицы и читаете его по IP модуля, но тогда придётся присваивать переменную в соотнесении.
    Например по адресу 4000 читаете 1 канал.
    Последний раз редактировалось kondor3000; 21.11.2024 в 19:48.

  8. #1428

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Этот адрес AT%IW22 вы смотрите у себя при создании массива чтения из модуля.

    А просто так, берёте адрес из таблицы и читаете его по IP модуля, но тогда придётся присваивать переменную в соотнесении.
    Так ну имеем, - адрес регистра 4000, ip 192.168.0.1 и больше ничего. Что в ST написать?). Соотнесением пользоваться нельзя. Это теоретически, интересно возможно ли так
    Последний раз редактировалось ward; 21.11.2024 в 20:20.

  9. #1429

    По умолчанию

    Цитата Сообщение от ward Посмотреть сообщение
    Так ну имеем, - адрес регистра 4000, ip 192.168.0.1 и больше ничего. Что в ST написать?). Соотнесением пользоваться нельзя. Это теоретически, интересно возможно ли так
    Вариант без соотнесения, указание прямого адреса, для 1 переменной или для массива. Типа AT%IW0.
    Массивом будет намного быстрее прочитать модуль, чем ковырять по 1 переменной.
    Последний раз редактировалось kondor3000; 22.11.2024 в 09:28.

  10. #1430

    По умолчанию

    Цитата Сообщение от ward Посмотреть сообщение
    Так ну имеем, - адрес регистра 4000, ip 192.168.0.1 и больше ничего. Что в ST написать?). Соотнесением пользоваться нельзя. Это теоретически, интересно возможно ли так
    Код:
    CASE iState OF
    
    0:	//Открытие соединения
    fbTCPClient(
    	xEnable:=TRUE , 
    	tTimeout:=T#5S , 
    	sIpAddr:='192.168.0.1', 
    	uiPort:=502);
    	
    	IF fbTCPClient.xActive THEN
    		iState		:=		1;
    	END_IF
    	
    	IF fbTCPClient.xError THEN
    		fbTCPClient(xEnable:=FALSE);
    	END_IF
    
    1:
    fbModbus(
    	xExecute:=TRUE , 
    	tTimeout:=T#50MS , 
    	usiRetry:=3 , 
    	hConnection:=fbTCPClient.hConnection , 
    	xIsRtuOverTcpMode:=FALSE , 
    	usiUnitId:=1 , 
    	eFuncCode:=OCL.MB_FC.READ_HOLDING_REGISTERS, 
    	uiDataAddr:=4000 , 
    	uiDataCount:=2 , 
    	pData:=ADR(arWORD) , 
    	szSize:=SIZEOF(arWORD) , 
    	xDone=> , 
    	xBusy=> , 
    	xError=> , 
    	eError=> );
    	
    	IF fbModbus.xDone OR fbModbus.xError THEN
    		fbModbus(xExecute:=FALSE);
    		iState		:=		0;
    		ReadValue1	:=	OCL.WORD2_TO_REAL(wInput1:=arWORD[1] , wInput2:=arWORD[0] , xSwapBytes:=FALSE );
    	END_IF
    END_CASE
    Дальше сами адаптируете по свою непонятную задачу.
    Последний раз редактировалось Николай Суриков; 22.11.2024 в 09:32.

Страница 143 из 154 ПерваяПервая ... 4393133141142143144145153 ... ПоследняяПоследняя

Похожие темы

  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, 13:38

Ваши права

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