Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 29 из 29

Тема: Подскажите где ошибка в использовании библиотеки Modbus

  1. #21

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    начните с 4 мс и добавляйте по одной пока связь не появится. Можно еще вместо паузы записать что нибудь не существенное, потом вернутся к чтению, тоже помогает
    Добавление таймера (задержка 1 секунда) ситуацию не изменило:
    Код:
    IF ComServiceCOM2.Ready THEN 
    	
    	CASE Step OF
        
        0:  IF MV110_8ABoks1 THEN Step:=1; ELSE Step:=2;END_IF
    	1:	TON(IN:= Step=1, PT:=T#1000MS , Q=> Enable, ET=> );
    	    MV110_8aAdr5(
    	                    Enable:= Enable, 
    	                    Mode:= MB_RTU, 
    	                    DevAddr:= 5, 
    	                    FirstAddr:= 0, 
    	                    Quantity:= 47, 
    	                    ComHandle:= ComServiceCOM2.Handle, 
    	                    TimeOut:= TimeOut, 
    	                    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 Step:=4;END_IF
    	3:	TON(IN:= Step=3, PT:=T#1000MS , Q=> Enable, ET=> );
    	    MV110_8aAdr6(
    	                    Enable:= Enable, 
    	                    Mode:= MB_RTU, 
    	                    DevAddr:= 6, 
    	                    FirstAddr:= 0, 
    	                    Quantity:= 47, 
    	                    ComHandle:= ComServiceCOM2.Handle, 
    	                    TimeOut:= TimeOut, 
    	                    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
    	
        4:  IF MV110_2AC THEN Step:=5; ELSE Step:=6;END_IF
    	5:	TON(IN:= Step=5, PT:=T#1000MS , Q=> Enable, ET=> );        
    	    MV110_8acAdr7(
    	                    Enable:= Enable, 
    	                    Mode:= MB_RTU, 
    	                    DevAddr:= 100, 
    	                    FirstAddr:= 264, 
    	                    Quantity:= 6, 
    	                    ComHandle:= ComServiceCOM2.Handle, 
    	                    TimeOut:= TimeOut, 
    	                    Buffer:= Buffer, 
    	                    Complete=> Complete, 
    	                    Exception=> ErrorMV110_2acAdr7, 
    	                    ByteCnt=> DataSize);
    	    IF Complete  (*если установлен признак завершения операции, то *)
               THEN
    	           IF ErrorMV110_2acAdr7=0 THEN BufferDataM3AI:=Buffer;END_IF
    	           IF ErrorMV110_2acAdr7<>0 AND AlarmMV110_2acAdr7=FALSE THEN AmountMV110_8acAdr7:=AmountMV110_8acAdr7+1; ELSE AmountMV110_8acAdr7:=0;END_IF
                   IF AmountMV110_8acAdr7>SetAmount THEN AlarmMV110_2acAdr7:=TRUE;END_IF
                   MV110_8acAdr7(Enable:= FALSE, Buffer:=Buffer);
    			   TON(IN:=FALSE);
    	           Step:=6; (*переходим к выполнению следующего ФБ*)
             END_IF
    	6:   Step:=0;	
    	     Enable:=FALSE;
    	END_CASE
    END_IF
    Варианты кончились....., осталась только прошивка модуля......
    Последний раз редактировалось a_gricaj; 27.12.2016 в 15:56.

  2. #22

  3. #23

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Еще вариант - у модуля 2АС последняя прошивка - 1.07. Уточните у техподдержки - возможно, в ней были как раз внесены изменения в обмене по RS.
    СПС, так и сделаю.

  4. #24

    По умолчанию

    К двум 8А добавлено один 6У, один 16ДН, один 16р - все опрашиваются, а 2ас в зависает подлец))), прошивка СПК результата не дала, 2 ас пока не перепрошивал на вер. 1.07...

    Если конфигурация 6У+16р+16ДН+2АС - все ок - отсюда вывод 8а и 2 АС мешают друг другу...
    Последний раз редактировалось a_gricaj; 28.12.2016 в 02:15.

  5. #25

    По умолчанию

    Цитата Сообщение от a_gricaj Посмотреть сообщение
    2 ас пока не перепрошивал на вер. 1.07...
    Необходимо прошить. Взять прошивку можно здесь: http://www.owen.ru/soft/32494142

  6. #26

    По умолчанию

    Цитата Сообщение от Евгений Багаев Посмотреть сообщение
    Необходимо прошить. Взять прошивку можно здесь: http://www.owen.ru/soft/32494142
    Быстро работаете), вчера еще не было...

  7. #27

    По умолчанию

    Прошил, 2 АС на прошивку 1.07 - модуль перестал вообще опрашиватся.... ОРС-сервером опрашивается без проблем....
    Также к своей схеме добавил 8р , МДВВ и частотник ОВЕН - опрашиваются отлично.
    Частотник LENZE SMD работать отказался, вроде с него слово статуса читаю и записываю слово управления, заданную частоту и команду разблокирования но работать он не хочет.
    Может кто сможет подсказать:
    читаю слово статуса с регистра №26 -имею "13"
    слово управления пишу в регистр №1
    задание частоты в регистр №40
    в регистр №48 пишу "0" для разблокирования привода - но статус все равно "13"
    В чем тут еще может быть проблема??

  8. #28

    По умолчанию

    Цитата Сообщение от a_gricaj Посмотреть сообщение
    Прошил, 2 АС на прошивку 1.07 - модуль перестал вообще опрашиватся.... ОРС-сервером опрашивается без проблем....
    Также к своей схеме добавил 8р , МДВВ и частотник ОВЕН - опрашиваются отлично.
    Частотник LENZE SMD работать отказался, вроде с него слово статуса читаю и записываю слово управления, заданную частоту и команду разблокирования но работать он не хочет.
    Может кто сможет подсказать:
    читаю слово статуса с регистра №26 -имею "13"
    слово управления пишу в регистр №1
    задание частоты в регистр №40
    в регистр №48 пишу "0" для разблокирования привода - но статус все равно "13"
    В чем тут еще может быть проблема??
    С LENZE разобрался, но при наладке вылез прикол ПЧВ+8а с 48 регистрами (ПЧВ уходил в ручной СТОП) - пришлось делить запрос, в общем осталась проблема 2ас и наверное ноги растут тоже от 8а....(модуль вернут -попробую)

  9. #29

    По умолчанию

    Чтобы закрыть тему: 2АС заработал, отсюда вывод, что проблема с опросом проявляется при опросе 8А(48 регистров). Всем СПС.

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. Ошибка библиотеки IoDrvModbusBase
    от Андрей Плеханов в разделе СПК2хх
    Ответов: 26
    Последнее сообщение: 05.02.2024, 09:46
  2. Ответов: 13
    Последнее сообщение: 10.02.2020, 13:34
  3. Таймаут при использовании ModBus.lib
    от Vasily777 в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 23.10.2016, 15:32
  4. Ответов: 7
    Последнее сообщение: 14.07.2016, 16:24
  5. Ошибка библиотеки ПЧВ
    от GTS в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 25.11.2015, 08:27

Ваши права

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