Страница 14 из 152 ПерваяПервая ... 412131415162464114 ... ПоследняяПоследняя
Показано с 131 по 140 из 1670

Тема: CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,714

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    Вот архив, поправьте пожалуйста мои ошибки. Делал в СП5.
    У вас в проект подтянулась устаревшая версия библиотеки Mx110Assistant. В вашем случаем функция будет называться MB_110_8A_StatusToString.

  2. #2
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,620

    По умолчанию

    А всё остальное как, нормально? Поправьте и выложите пожалуйста.
    Интересует правильность формирования значений входов.
    Последний раз редактировалось Эдуард_Н; 01.09.2016 в 08:33.

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

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    А всё остальное как, нормально? Поправьте и выложите пожалуйста.
    Интересует правильность формирования значений входов.
    К сожалению, у меня сейчас нет возможности "править и выкладывать" - но я могу проконсультировать вас по skype.

    В целом, пробежавшись по проекту, вижу две явных ошибки:

    1. По дискретным модулям - входы 1-8 лежат в 1 байте, 9-16 - в нулевом (у вас же - наоборот).
    2. С аналоговым модулем что-то странное, вы считываете 1 канал и потом пытаетесь получить данные по 3 каналам.

    Нет, библиотека Mx110Assistant существует только для CODESYS 3.5.

  4. #4
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,620

    По умолчанию

    Подскажите, а в КДС2 тоже есть библиотека Mx110Assistant?

  5. #5
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,620

    По умолчанию

    2. С аналоговым модулем что-то странное, вы считываете 1 канал и потом пытаетесь получить данные по 3 каналам.
    Какие данные надо поправить, что бы получилось нормально?

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

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    Какие данные надо поправить, что бы получилось нормально?
    Вы можете для ФБ MB_RD_HOLD_REGS задать FirstAddr:=0, Quantity:=48.

    Соответственно, в буфере ответа окажутся 96 (от 0 до 95) байт.

    Значение с плавающей точкой для канала 1 будет лежать в 8-11 байте, для канала 2 - в 20-23 байте и т.д.

  7. #7
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    967

    По умолчанию

    Делаю опрос частотника через бибку, вроде и опрос идет но значения все одинаковые, понимаю что где-то скосячил , но не вижу ошибку:
    ComConn1(enable:=TRUE,PortNum:=3,PortBaudrate:=192 00,PortParity:=0,PortStopBits:=1,PortByteSize:=8,
    Port_Mode:=2(*0-rs232*),Port_ModeOn:=FALSE,Port_CloseOn:=FALSE,Han dle=>id_port,Done=>port_ok,ErrCode=>er_com1);
    CASE step OF
    0://Опрос регистра статуса
    MRhR(Enable:=port_ok,Mode:=MB_RTU,DevAddr:=48,Firs tAddr:=RegAddr1,
    Quantity:=1,ComHandle:=id_port,TimeOut:=T#100MS,Bu ffer:=bufferATV,Complete=>ok_op,
    Exception=>er_op,ByteCnt=>);
    IF ok_op AND er_op=0 THEN
    ptr_x:=ADR(status);
    ptr_x^:=BufferATV[1];
    ptr_x:=ptr_x+1;
    ptr_x^:=BufferATV[0];
    MRIR(Enable:=FALSE,Buffer:=buffer1);step:=1;
    ELSE MRIR(Enable:=FALSE,Buffer:=buffer1);error_opr:=MRI R.Exception;step:=1;
    END_IF
    1://Опрос регистра тока
    MRIR(Enable:=port_ok,Mode:=MB_RTU,DevAddr:=48,Firs tAddr:=RegAddr2,
    Quantity:=1,ComHandle:=id_port,TimeOut:=T#100MS,Bu ffer:=bufferATV,Complete=>ok_op,
    Exception=>er_op,ByteCnt=>);
    IF ok_op AND er_op=0 THEN
    Bytes_word1.mas_byte[1]:=BufferATV[0];
    Bytes_word1.mas_byte[0]:=BufferATV[1];
    tok:=Bytes_word1.var_word;
    MRIR(Enable:=FALSE,Buffer:=buffer1);step:=2;
    ELSE MRIR(Enable:=FALSE,Buffer:=buffer1);error_opr:=MRI R.Exception;step:=2;
    END_IF
    2://Опрос регистра напряжения
    MRIR(Enable:=ComConn1.Done,Mode:=MB_RTU,DevAddr:=4 8,FirstAddr:=RegAddr3,
    Quantity:=1,ComHandle:=id_port,TimeOut:=T#100MS,Bu ffer:=bufferATV,Complete=>ok_op,
    Exception=>er_op,ByteCnt=>);
    IF ok_op AND er_op=0 THEN
    Bytes_word1.mas_byte[1]:=BufferATV[0];
    Bytes_word1.mas_byte[0]:=BufferATV[1];
    volt:=Bytes_word1.var_word;
    MRIR(Enable:=FALSE,Buffer:=buffer1);step:=3;
    ELSE MRIR(Enable:=FALSE,Buffer:=buffer1);error_opr:=MRI R.Exception;step:=3;
    END_IF
    3://Опрос регистра наработки
    MRIR(Enable:=ComConn1.Done,Mode:=MB_RTU,DevAddr:=4 8,FirstAddr:=RegAddr4,
    Quantity:=1,ComHandle:=id_port,TimeOut:=T#100MS,Bu ffer:=bufferATV,Complete=>ok_op,
    Exception=>er_op,ByteCnt=>);
    IF ok_op AND er_op=0 THEN
    Bytes_word1.mas_byte[1]:=BufferATV[1];
    Bytes_word1.mas_byte[0]:=BufferATV[0];
    narabot:=Bytes_word1.var_word;
    MRIR(Enable:=FALSE,Buffer:=buffer1);step:=4;
    ELSE MRIR(Enable:=FALSE,Buffer:=buffer1);error_opr:=MRI R.Exception;step:=4;
    END_IF
    4://Запись в регистр частоты
    write1:=fregensy;
    MWSR(Enable:=ComConn1.Done,Mode:=MB_RTU,DevAddr:=8 ,RegAddr:=16#219A,
    Value:=write1,ComHandle:=id_port,TimeOut:=T#100MS, Complete=>ok_wr,Exception=>);
    IF ok_wr THEN
    MWSR(Enable:=FALSE,value:=0);step:=5;
    ELSE MWSR(Enable:=FALSE,value:=0);error_wr:=MWSR.Except ion;step:=5;
    END_IF
    5://Запись в регистр частоты
    write1:=stat_in;
    MWSR(Enable:=ComConn1.Done,Mode:=MB_RTU,DevAddr:=8 ,RegAddr:=16#2135,
    Value:=write1,ComHandle:=id_port,TimeOut:=T#100MS, Complete=>ok_wr,Exception=>);
    IF ok_wr THEN
    MWSR(Enable:=FALSE,value:=0);step:=0;
    ELSE MWSR(Enable:=FALSE,value:=0);error_wr:=MWSR.Except ion;step:=0;
    END_IF
    END_CASE

  8. #8
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    967

    По умолчанию

    да какой то мертвый сезон 2 день

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

    По умолчанию

    СТР. 123 РИС 6.18, ОПРОС ТО ВРОДЕ И ИДЕТ НО ЛЕЗЕТ ХРЕНЬ ВСЯКАЯ И ПРИ ЧЕМ ОДИНАКОВАЯ ПО ВСЕМ РЕГИСТРАМ

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

    По умолчанию

    Цитата Сообщение от жекон Посмотреть сообщение
    СТР. 123 РИС 6.18, ОПРОС ТО ВРОДЕ И ИДЕТ НО ЛЕЗЕТ ХРЕНЬ ВСЯКАЯ И ПРИ ЧЕМ ОДИНАКОВАЯ ПО ВСЕМ РЕГИСТРАМ
    Это позволяет предположить, что ПЧВ отвечает на запрос сообщением об ошибке. Вы уверены, что опрашиваете корректные регистры и корректной функцией?

Страница 14 из 152 ПерваяПервая ... 412131415162464114 ... ПоследняяПоследняя

Похожие темы

  1. Настройка ПР200, управление 3-мя устройствами через RS-485
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 15.05.2017, 16:45
  2. СП3ХХ Пример настройка обмена с ПЛК на CODESYS 2.3
    от Denis_Kay в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 02.03.2017, 15:12
  3. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  4. Универсальная функция для обмена с устройствами OwenIO и всеми любимый LabView.
    от Алексей Крагель в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 30.05.2014, 13:38

Ваши права

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