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

Тема: ПЛК 110 IP адрес в Codesys

  1. #1

    По умолчанию ПЛК 110 IP адрес в Codesys

    Добрый день.
    Имеется группа ПЛК 110, единократно у них заданы IP адреса.
    Подскажите, можно ли как-то програмно узнать IP, чтобы обработать его в алгоритмах?
    Может быть с помощью библиотек.

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

    По умолчанию

    прочитать файл, который лежит в ПЛК. смотрите документацию, и даже примеры вроде были.

  3. #3

    По умолчанию

    Может быть кому пригодится, получилось как то так:
    С буфером не понял, иногда по размеру переполнение.
    Не стал упрощать для частного случая.

    Код:
    PROGRAM pReadAddr
    VAR
    	state:BYTE:=0;
    	handle:DWORD:=0;
    	res: ASYNC_RET_VALUE;
    	result:DWORD;
    	bufin:STRING(15);
    	counter: DWORD;
    	pos:WORD:=27;
    	i: BYTE;
    	IP: ARRAY [1..4] OF WORD;
    END_VAR


    Код:
    CASE state OF
    
    	0:
    	res:=OwenFileOpenAsync('local_addres.dat','r',ADR(handle));
    	IF res=ASYNC_WORKING THEN
    		state:=1;
    	END_IF
    
    	1:
    	res:=OwenFileOpenAsync('local_addres.dat','r',ADR(handle));
    	IF res=ASYNC_DONE THEN
    		IF handle<>0 THEN
    			state:=2;
    		ELSE
    			state:=0;
    		END_IF
    	ELSIF res<0 THEN
    		state:=0;
    	END_IF
    
    	2:
    	res:=OwenFileSetPosAsync(handle,pos,ADR(result));
    	IF res=ASYNC_WORKING THEN
    		state:=3;
    	ELSE
    		state:=6;
    	END_IF
    
    	3:
    	res:=OwenFileSetPosAsync(handle,pos,ADR(result));
    	IF res=ASYNC_DONE THEN
    			state:=4;
    	ELSIF res<0 THEN
    		state:=6;
    	END_IF
    
    	4:
    	res:=OwenFileReadAsync(handle,ADR(bufin),SIZEOF(bufin),ADR(result));
    	IF res=ASYNC_WORKING THEN
    		state:=5;
    	ELSE
    		state:=6;
    	END_IF
    
    	5:
    	res:=OwenFileReadAsync(handle,ADR(bufin),SIZEOF(bufin),ADR(result));
    	IF res=ASYNC_DONE THEN
    		IF result>=0 THEN
    			state:=6;
    			counter:=counter+1;
    		ELSE
    			state:=6;
    		END_IF
    	ELSIF res<0 THEN
    		state:=6;
    	END_IF
    
    	6:
    	res:=OwenFileCloseAsync(handle,ADR(result));
    	IF res=ASYNC_WORKING THEN
    		state:=7;
    	ELSE
    		state:=0;
    	END_IF
    
    
    
    	7:
    	res:=OwenFileCloseAsync(handle,ADR(result));
    	IF res=ASYNC_DONE THEN
    		IF result=0 THEN
    
    			state:=8;
    		ELSE
    			state:=8;
    		END_IF
    	ELSIF res<0 THEN
    		state:=8;
    	END_IF
    
    	8:
    	FOR i:=1 TO 4 BY 1 DO
       	 	IP[i]:= STRING_TO_WORD(CONCAT('16#',LEFT(bufin,2)));
        		bufin:=DELETE(bufin,3,1);
    	END_FOR;
    	state:=9;
    ELSE
    	state:=9;
    END_CASE

Похожие темы

  1. MAC адрес ПЛК
    от sergeykrylov в разделе ПЛК1хх [М02]
    Ответов: 16
    Последнее сообщение: 31.07.2023, 13:53
  2. ПВ 210 зеркальный Mac-адрес
    от Андрей_СПб в разделе ПВ210
    Ответов: 3
    Последнее сообщение: 23.12.2022, 16:14
  3. Адрес ПЛК
    от KIB52 в разделе ПЛК (среда MasterSCADA 4D)
    Ответов: 1
    Последнее сообщение: 29.04.2022, 13:47
  4. Адрес счетчика ПЧВ
    от Alges в разделе Среда программирования OWEN Logic
    Ответов: 4
    Последнее сообщение: 31.12.2020, 20:03
  5. mac-адрес
    от Stenvel в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 22.05.2009, 08:53

Метки этой темы

Ваши права

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