Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 25

Тема: выбор POU

  1. #1

    По умолчанию выбор POU

    Буду очен благодарен если кто-нибудь опишет в каких ситуациях какой POU лучше использовать а в частности вот такая ситуация:
    к мастеру сети подключено несколько слейв устройств, есть код переподключения устройства при потери связи:

    Код:
    PROGRAM PLC_PRG2
    VAR
    	BL: BLINK;
    	te1: BOOL;
    	te2: BOOL;
    	Con: BOOL;
    	Con2: BOOL;
    	sl1: Connect;
    	sl2: Connect;
    	MV110_16D_con: BOOL;
    	SIGE2_con: BOOL;
    	i: INT:=0;
    	J: INT:=0;
    END_VAR
    
    
    
            IF MV110_16D.xError THEN
    	Con:=FALSE;
    	j:=j+1;
    	BL(ENABLE:= TRUE, TIMELOW:= T#5S, TIMEHIGH:= T#100MS, OUT=> );
    	MV110_16D.xReset:=BL.OUT;
    ELSE
    	BL(ENABLE:= FALSE, TIMELOW:= T#5S, TIMEHIGH:= T#100MS, OUT=> );
    	MV110_16D.xReset:=FALSE;
    	Con:=TRUE;
    END_IF
    так как слейв устройств много попробовал выделить этот кусок, в результате
    в функции он перестает работать (но тут кое какие соображения появились почему такое выходит),
    в функциональном блоке перестает работать (а вот тут полная непонятка)
    работает если так в основной программе и пишу про каждое устройство

    PS FB получился такой:

    Код:
    FUNCTION_BLOCK Connect
    VAR_INPUT
    	ModbusSlave: 	IoDrvModbus.ModbusSlaveComPort;
    END_VAR
    VAR_OUTPUT
    	Connect:BOOL;
    END_VAR
    VAR
    	BL: 			BLINK;
    END_VAR
    
    //===================================================================
    IF ModbusSlave.xError THEN
    	Connect:=FALSE;
    	BL(ENABLE:= TRUE, TIMELOW:= T#5S, TIMEHIGH:= T#100MS, OUT=> );
    	ModbusSlave.xReset:=BL.OUT;
    ELSE
    	BL(ENABLE:= FALSE, TIMELOW:= T#5S, TIMEHIGH:= T#100MS, OUT=> );
    	ModbusSlave.xReset:=FALSE;
    	Connect:=TRUE;
    END_IF
    //===================================================================

  2. #2

    По умолчанию

    "так как слейв устройств много попробовал выделить этот кусок"
    Не совсем понятно что вы проделали.

    Можно проще, для каждого слейв устройства нужно использовать такой код(меняете только название Modbus_Slave_COM_Port
    на свои).
    Код:
    IF Modbus_Slave_COM_Port.xError THEN							//Перезапуск подключения по Modbus
    	Blink_01(ENABLE:= TRUE, TIMELOW:= T#1S, TIMEHIGH:= T#10MS);
    	Modbus_Slave_COM_Port.xReset:= Blink_01.OUT;
    END_IF

  3. #3

    По умолчанию

    я не хочу повторять этот код, а хочу проделывать эту операцию путем вызова функции проверки связи, и соответственно вызывать функцию передавая только переменную Modbus_Slave_COM_Port1, Modbus_Slave_COM_Port2 и т.д.

  4. #4

    По умолчанию

    Цитата Сообщение от Мурат Ахриев Посмотреть сообщение
    "так как слейв устройств много попробовал выделить этот кусок"
    Не совсем понятно что вы проделали.

    Можно проще, для каждого слейв устройства нужно использовать такой код(меняете только название Modbus_Slave_COM_Port
    на свои).
    Код:
    IF Modbus_Slave_COM_Port.xError THEN							//Перезапуск подключения по Modbus
    	Blink_01(ENABLE:= TRUE, TIMELOW:= T#1S, TIMEHIGH:= T#10MS);
    	Modbus_Slave_COM_Port.xReset:= Blink_01.OUT;
    END_IF
    Добрый день! Пробовали сделать ресет по этому коду. Почему-то обратно цепляется только один слейв(у нас их три, и прописываем ресет для каждого из них). Как быть в этой ситуации?

  5. #5

    По умолчанию

    Вы знаете причину потери связи? Пожалуйста более подробно опишите вашу систему.

  6. #6

    По умолчанию

    Связь мы обрываем сами(физически), для проверки. Но вот система проверку пройти не может ), так как связь восстанавливается только с одним модулем. Длина линии у нам малая, около 2-х метров.

  7. #7

    По умолчанию

    Имеется ли возможность прислать ваш проект в личные сообщения?

  8. #8

    По умолчанию

    Да, но в форме личного сообщения не вижу возможности добавления вложения, есть видео, картинки, ссылки. Здесь есть, а в личном сообщении нет.

    Код:
    IF MVU8.xError THEN							//Перезапуск подключения по Modbus
    	Blink_mvu(ENABLE:= TRUE, TIMELOW:= T#1000MS, TIMEHIGH:= T#20MS);
    	MVU8.xReset:=Blink_mvu.OUT;
    END_IF
    IF MV110.xError THEN							//Перезапуск подключения по Modbus
    	Blink_mv(ENABLE:= TRUE, TIMELOW:= T#1000MS, TIMEHIGH:= T#20MS);
    	MV110.xReset:=Blink_mv.OUT;
    END_IF
    TIMELOW и TIMEHIGH меняли в различных сочетаниях.

  9. #9

    По умолчанию

    Вы можете выслать мне на почту m.akhriev@owen.ru

  10. #10

    По умолчанию

    Цитата Сообщение от Мурат Ахриев Посмотреть сообщение
    "... Можно проще, для каждого слейв устройства нужно использовать такой код(меняете только название Modbus_Slave_COM_Port на свои).
    Код:
    IF Modbus_Slave_COM_Port.xError THEN			//Перезапуск подключения по Modbus
    	Blink_01(ENABLE:= TRUE, TIMELOW:= T#1S, TIMEHIGH:= T#10MS);
    	Modbus_Slave_COM_Port.xReset:= Blink_01.OUT;
    END_IF
    Доброго дня, извините, вклинюсь в разговор, так как вопрос на близкую тему.
    У меня слейвов четыре. Кстати, все они нормально рестартовались после обрыва линии связи по указанному выше алгоритму. Это я видел и в КДС и по миганию соответствующих индикаторов на слейвах.
    После того, как я изменил алгоритм обмена с модулями, надобность в таком рестарте почему-то отпала. Почему - не знаю, но мне это сейчас не важно, потом разберусь.

    А вопрос мой в другом: - я хотел бы фиксировать в отдельные переменные ошибки связи, но при этом код типа Var1 := Modbus_Slave_COM_Port.xError; и Var2 := Modbus_Slave_COM_Port.byModbusError; не приводит к желаемой фиксации этих ошибок в Var1 и Var2. Почему?

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

Похожие темы

  1. PLC63-Максимальное число POU
    от Smoll в разделе ПЛК63/73
    Ответов: 16
    Последнее сообщение: 15.04.2021, 14:08
  2. Среда програмирования Объекты POU
    от Алексей Александрович в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 17.08.2012, 06:09
  3. Вызов POU на языке LD
    от ZPavel в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 28.02.2012, 00:55
  4. ФБ и POU
    от Анатолий в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 11.08.2009, 16:23
  5. не работает 2-я Pou
    от Дитрих в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 15.01.2009, 09:54

Ваши права

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