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

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

  1. #1

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

    Здравствуйте, решил попробовать на СПК107 библиотеку Modbus для опроса модулей по документу:http://ftp.owen.ru/index.html/CoDeSy...dbus_v.1.0.pdf
    Но в разделе описания ФБ появляется ошибка:
    Безымянный.png
    А библиотека вроде установлена:
    Безымянный.png
    Подскажите где туплю, заранее СПС.

  2. #2

  3. #3

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Попробуйте так:

    Код:
    Settings_COM2: ComSerice.SysCom.COM_SETTINGS;
    все ок, спс, но не понял этого прикола, почему тогда в методичке не так?????

  4. #4

  5. #5

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Опечатка. Поправим при ревизии.
    СПС, а еще тут не подскажите где косячу, тот же документ (стр.119) вроде все сделал как в документе но значение реал не верно:
    Безымянный.png
    Безымянный.png

    Код:
    Код:
    / [1] настраиваем COM-порт
    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 Step:=2;END_IF
    	1:	Enable:=TRUE;
    	    MV110_8aAdr5(
    	                    Enable:= Enable, 
    	                    Mode:= MB_RTU, 
    	                    DevAddr:= 5, 
    	                    FirstAddr:= 2, 
    	                    Quantity:= 4, 
    	                    ComHandle:= ComServiceCOM2.Handle, 
    	                    TimeOut:= TimeOut, 
    	                    Buffer:= Buffer, 
    	                    Complete=> Complete, 
    	                    Exception=> ErrorMV110_8aAdr5, 
    	                    ByteCnt=> DataSize);
    	    IF Complete  (*если установлен признак завершения операции, то *)
               THEN
    	           IF ErrorMV110_8aAdr5=0 
                      THEN 
                          _2WORD_TO_REAL.Bytes[3]:=Buffer[8];
    					  _2WORD_TO_REAL.Bytes[2]:=Buffer[9];
    					  _2WORD_TO_REAL.Bytes[1]:=Buffer[10];
    					  _2WORD_TO_REAL.Bytes[0]:=Buffer[11];
    					  real1:=_2WORD_TO_REAL.Real_Value;
                   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
                   Enable:=FALSE;
    	           Step:=2; (*переходим к выполнению следующего ФБ*)
             END_IF
    	2:   Step:=0;
    Конфигуратором подключался к модулю - сигнал от датчика есть...
    Последний раз редактировалось a_gricaj; 26.12.2016 в 01:41.

  6. #6

    По умолчанию

    Разобрался, подскажите за какое время опросится модуль МВ110-8a(все 8 входов) на скорости 9600?? У меня долго - 4-5сек - меняется значение...., правда это датчик температуры...
    Последний раз редактировалось a_gricaj; 26.12.2016 в 02:30.

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,247

    По умолчанию

    Цитата Сообщение от a_gricaj Посмотреть сообщение
    Разобрался, подскажите за какое время опросится модуль МВ110-8a(все 8 входов) на скорости 9600?? У меня долго - 4-5сек - меняется значение...., правда это датчик температуры...
    См. РЭ на модуль, страницы 7-8.

  8. #8

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    См. РЭ на модуль, страницы 7-8.
    спс, получается 5 сек это нормально...

  9. #9
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    829

    По умолчанию

    Цитата Сообщение от a_gricaj Посмотреть сообщение
    спс, получается 5 сек это нормально...
    От того чем опрашивать (ПЛК или СПК) не важно: http://www.owen.ru/forum/showthread.php?t=25519

    Другое дело, что сам модуль МВ110-8А обновляет свои данные медленно.

  10. #10

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    От того чем опрашивать (ПЛК или СПК) не важно: http://www.owen.ru/forum/showthread.php?t=25519

    Другое дело, что сам модуль МВ110-8А обновляет свои данные медленно.
    СПС, еще вопрос:

    подключил к СПК107 два модуля МВ110-8А и один МВ110-224.2АС
    написал код:

    Код:
    // [1] настраиваем COM-порт
    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 Step:=2;END_IF
    	1:	Enable:=TRUE;
    	    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
                   Enable:=FALSE;
    	           Step:=2; (*переходим к выполнению следующего ФБ*)
             END_IF
    	
        2:  IF MV110_8ABoks2 THEN Step:=3; ELSE Step:=4;END_IF
    	3:	Enable:=TRUE;
    	    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
                   Enable:=FALSE;
    	           Step:=4; (*переходим к выполнению следующего ФБ*)
             END_IF
    	
        4:  IF MV110_2AC THEN Step:=5; ELSE Step:=6;END_IF
    	5:	Enable:=TRUE;
    	    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
                   Enable:=FALSE;
    	           Step:=6; (*переходим к выполнению следующего ФБ*)
             END_IF
    	6:   Step:=0;	
    	     Enable:=FALSE;
    	END_CASE
    END_IF
    В итоге имею ситуацию когда один МВ110-8А или два вместе МВ110-8А опрашиваются все ок, один МВ110-224.2АС - опрашивается все ок, но если к опросу МВ110-224.2АС добавить хотя бы один МВ110-8А, то МВ110-224.2АС зависает (в онлайне выдает ошибку 255 - тайм аут), и его заставить можно работать только сбросом питания. Подобная ситуация у меня была с модулем МВ110-6у (только тогда он всю сеть садил - вылечилось новой прошивкой модуля) - поможет ли новая прошивка модуля МВ110-224.2АС (сейчас 1.05), и правильно ли у меня все в коде?
    Схема собрана на столе, сеть собрана витой парой (длина на более 1 м), терминальные резисторы стоят....
    Последний раз редактировалось a_gricaj; 27.12.2016 в 13:43.

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

Похожие темы

  1. Ошибка библиотеки IoDrvModbusBase
    от Андрей Плеханов в разделе СПК2хх
    Ответов: 25
    Последнее сообщение: 30.04.2020, 08:11
  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

Ваши права

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