Показано с 1 по 10 из 30

Тема: Маленький вопрос по Modbus

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

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

    По умолчанию

    Для сравнения
    СПК107:
    ОпросСПК107.jpg
    ПЛК110(правда сигнал подгулявший):
    ОпросПЛК110.JPG
    ОРС-сервер:
    Опрос ОРСсервером.JPG
    Последний раз редактировалось a_gricaj; 17.01.2017 в 13:43.

  2. #2

    По умолчанию

    Цитата Сообщение от a_gricaj Посмотреть сообщение
    Для сравнения
    СПК107:
    ОпросСПК107.jpg
    ПЛК110(правда сигнал подгулявший):
    ОпросПЛК110.JPG
    ОРС-сервер:
    Опрос ОРСсервером.JPG
    Скрины сетевых настроек СПК будут выложены-то?
    А то, в принципе, при "правильном" подходе можно и минутные паузы получать, в чем проблема-то.
    Последний раз редактировалось Rake Runner; 17.01.2017 в 14:16.

  3. #3

    По умолчанию

    Один из вариантов:

    Код:
    SettingsCOM2.sPort:=2;
    SettingsCOM2.byStopBits:=1;
    SettingsCOM2.byParity:=0;
    SettingsCOM2.ulBaudrate:=9600;
    SettingsCOM2.ulTimeout:=0;
    SettingsCOM2.ulBufferSize:=0;
    SettingsEXCOM2.byByteSize:=8;
    
    // [2] открываем COM-порт
    ComServiceCOM2(
                     Enable:=TRUE,
                     Settings:=SettingsCOM2,
                     Sets_Ex:=SettingsEXCOM2,
                     Task:=OPEN_TSK);
    				 
    //ОПРОС				 
    IF ComServiceCOM2.Ready THEN 
    	
    	CASE Step OF
        
        0:  IF MV110_8ABoks1 THEN Step:=1; ELSE ErrorMV110_8aAdr5:=0;Step:=2;END_IF
    	1:	TON(IN:= Step=1, PT:=T#1MS , Q=> Enable, ET=> );
    	    MV110_8aAdr5(
    	                    Enable:= Enable, 
    	                    Mode:= MB_RTU, 
    	                    DevAddr:= 10, 
    	                    FirstAddr:= 0, 
    	                    Quantity:= 35, 
    	                    ComHandle:= ComServiceCOM2.Handle, 
    	                    TimeOut:= T#100MS, 
    	                    Buffer:= Buffer, 
    	                    Complete=> Complete, 
    	                    Exception=> ErrorMV110_8aAdr5, 
    	                    ByteCnt=> DataSize);
    	    IF Complete  (*если установлен признак завершения операции, то *)
               THEN
    	           IF ErrorMV110_8aAdr5=0 THEN BufferDataM1AI:=Buffer;END_IF
    	           IF ErrorMV110_8aAdr5<>0 AND AlarmMV110_8aAdr5=FALSE THEN AmountMV110_8aAdr5:=AmountMV110_8aAdr5+1; ELSE AmountMV110_8aAdr5:=0;END_IF
                   IF AmountMV110_8aAdr5>SetAmount THEN AlarmMV110_8aAdr5:=TRUE;END_IF
                   MV110_8aAdr5(Enable:= FALSE, Buffer:=Buffer);
    			   TON(IN:=FALSE);
    	           Step:=2; (*переходим к выполнению следующего ФБ*)
             END_IF
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
        2:  IF MV110_8ABoks2 THEN Step:=3; ELSE ErrorMV110_8aAdr6:=0;Step:=4;END_IF
    	3:	TON(IN:= Step=3, PT:=T#1MS , Q=> Enable, ET=> );
    	    MV110_8aAdr6(
    	                    Enable:= Enable, 
    	                    Mode:= MB_RTU, 
    	                    DevAddr:= 30, 
    	                    FirstAddr:= 0, 
    	                    Quantity:= 35, 
    	                    ComHandle:= ComServiceCOM2.Handle, 
    	                    TimeOut:= T#100MS, 
    	                    Buffer:= Buffer, 
    	                    Complete=> Complete, 
    	                    Exception=> ErrorMV110_8aAdr6, 
    	                    ByteCnt=> DataSize);
    	    IF Complete  (*если установлен признак завершения операции, то *)
               THEN
    	           IF ErrorMV110_8aAdr6=0 THEN BufferDataM2AI:=Buffer;END_IF
    	           IF ErrorMV110_8aAdr6<>0 AND AlarmMV110_8aAdr6=FALSE THEN AmountMV110_8aAdr6:=AmountMV110_8aAdr6+1; ELSE AmountMV110_8aAdr6:=0;END_IF
                   IF AmountMV110_8aAdr6>SetAmount THEN AlarmMV110_8aAdr6:=TRUE;END_IF
                   MV110_8aAdr6(Enable:= FALSE, Buffer:=Buffer);
    			   TON(IN:=FALSE);
    	           Step:=4; (*переходим к выполнению следующего ФБ*)
             END_IF
    
    и так далее......

Похожие темы

  1. Вопрос по библиотеке Modbus.lib
    от a_gricaj в разделе ПЛК1хх
    Ответов: 75
    Последнее сообщение: 13.08.2018, 11:18
  2. Переход с Siemens LOGO и маленький вопрос по работе с экранами
    от sadux в разделе Среда программирования OWEN Logic
    Ответов: 5
    Последнее сообщение: 13.01.2017, 09:47
  3. Вопрос по Modbus RTU?
    от Radic71 в разделе Трёп (Курилка)
    Ответов: 2
    Последнее сообщение: 15.10.2013, 15:13
  4. Вопрос по MODBUS RTU
    от Alex_lav в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 20.11.2007, 15:23

Ваши права

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