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

Тема: C# NModbus4+ПЛК63

  1. #21
    Пользователь
    Регистрация
    02.03.2015
    Адрес
    г. Алексеевка
    Сообщений
    64

    По умолчанию

    Код:
    _serialPort = new SerialPort();
     _serialPort.PortName = SetPortName("COM6");
     _serialPort.BaudRate = SetPortBaudRate(9600);
     _serialPort.Parity = SetPortParity(Parity.None);
     _serialPort.DataBits = SetPortDataBits(8);
     _serialPort.StopBits = SetPortStopBits(StopBits.One);
     _serialPort.ReadTimeout = 500;
     _serialPort.WriteTimeout = 500;
     _serialPort.Open();
                if (! _serialPort.IsOpen)
                    MessageBox.Show("Порт не открыт");
                else 
                  var mbus = ModbusSerialMaster.CreateRtu(port);
                  short i:=0 // это будет адрес регистра
                  while (i < 10000) // количство запросов для теста. 
                  {
                     if (i= mbus.ReadHoldingRegisters(1, i, 1)) /// или как там в библиотеке прицесли к целочисленному значению
                     MessageBox.Show(i);
                     i++;
                   }
    вот как то так адаптируйте код сами для перебора я условно написал трудно с паскаля резко перейти на с# я зам его не так давно изучать стал т.к. другой альтернативы нет.
    Надеюсь мысль уловили


    Сейчас только пришло в голову. а адрес регистра может не 1 а 40001 быть для 2 - 40002 и так же далее по аналогии
    Последний раз редактировалось Kostennikov; 22.01.2016 в 16:36.

  2. #22

    По умолчанию

    так у меня на функции mbus.ReadHoldingRegisters(0, 1, 1) прога повисает

  3. #23
    Пользователь
    Регистрация
    02.03.2015
    Адрес
    г. Алексеевка
    Сообщений
    64

    По умолчанию

    Цитата Сообщение от fillpackart Посмотреть сообщение
    так у меня на функции mbus.ReadHoldingRegisters(0, 1, 1) прога повисает
    должно быть mbus.ReadHoldingRegisters(1, 1, 1)

    первая 1 это адрес слейв у плк я так понял он 1
    вторая 1 это адрес регистра
    третья 1 это количество регистров

    в цикле надо увеличивать 2 единичку.
    т.е.

    mbus.ReadHoldingRegisters(1, i, 1)
    i увеличивается в цикле

    поправил пред мой комент

    еще раз напоминаю я с библиотекой NMobbus не работал. где указывается какой параметр в запросе полностью на ваших плечах. я стараюсь идею подкинуть. пробуйте спрашивайте конкретно. ошибку открытия порта обрабатываете? может порт не открывается. и это не будет работать если плк работает с другой программой.
    и да она зависнет на какойто момент она же в цикле))) на какое время я не могу сказать. но пока цикл не кончится будет висеть
    Последний раз редактировалось Kostennikov; 22.01.2016 в 16:41.

  4. #24

    По умолчанию

    пока пробую вот так:
    var mbus = ModbusSerialMaster.CreateRtu(port);
    label1.Text = "log:\n";
    for (ushort i = 1; i < 50000; i++)
    {
    try
    {
    MessageBox.Show((mbus.ReadHoldingRegisters(1, i, 1)[1]).ToString());
    label1.Text += "try #" + i + " succes!!!\n";
    MessageBox.Show("Yes!");
    }
    catch { label1.Text += "try #"+i+" failed\n"; }
    }

  5. #25
    Пользователь
    Регистрация
    02.03.2015
    Адрес
    г. Алексеевка
    Сообщений
    64

    По умолчанию

    можно попробывать от 1 до 100 и от 40000 до 40100. Хотя кто их знает как они там слейв делали... Хоть напиши потом что вышло?

  6. #26
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от fillpackart Посмотреть сообщение
    Те, чья прога с нами работать отказываются. Карты регистров нет. Я, честно говоря, даже не понимаю, что это такое. Адрес ПЛК 1. Функции все из библиотеки NModbus перебрал, в нелепой попытке прочитать с устройства хоть что-нибудь. А рассказываю я вам всё, что знаю сам, просто я почти ничего не знаю, в этом то вся и проблема. Спасибо вам кстати большое за то, что помогаете.
    я правильно понимаю, что Вы о плк63 говорите? Если да, тогда вот ссыль http://www.owen.ru/uploads/rp_plk63.73.pdf где в таблице А есть номера регистров, вторая и третья колонки, простой перебор от нуля не один раз будет уходить в таймаут
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #27

    По умолчанию

    Так, вроде получилось, ПЛК начал что-то отвечать. Я правда не понимаю, что, но это уже дело техники) Спасибо вам за помощь! Кст, что означает параметр "количество регистров"?

  8. #28
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от fillpackart Посмотреть сообщение
    Так, вроде получилось, ПЛК начал что-то отвечать. Я правда не понимаю, что, но это уже дело техники) Спасибо вам за помощь! Кст, что означает параметр "количество регистров"?
    за один раз прочитать несколько, чтоб сэкономить время например
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #29
    Пользователь
    Регистрация
    02.03.2015
    Адрес
    г. Алексеевка
    Сообщений
    64

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    я правильно понимаю, что Вы о плк63 говорите? Если да, тогда вот ссыль http://www.owen.ru/uploads/rp_plk63.73.pdf где в таблице А есть номера регистров, вторая и третья колонки, простой перебор от нуля не один раз будет уходить в таймаут
    Так надо эти таймауты выдержать. По опыту плк иногда в перезагрузку уходит. но если между запросами таймаут поставить или читать 100% известный регистр после неудачи то такого не будет. Я так понял счетчик ошибок после успешного чтения обнуляется или как там в плк задумано. Да долго зато надежно.

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

Похожие темы

  1. ПЛК63
    от Andrew82 в разделе ПЛК63/73
    Ответов: 6
    Последнее сообщение: 19.10.2015, 14:44
  2. Help!!! ПЛК63
    от Makar в разделе ПЛК63/73
    Ответов: 23
    Последнее сообщение: 25.05.2015, 17:06
  3. ПЛК63-L
    от CheeryNick в разделе Сервисное ПО
    Ответов: 1
    Последнее сообщение: 31.01.2011, 09:57
  4. плк63
    от morcegolamer в разделе ПЛК63/73
    Ответов: 2
    Последнее сообщение: 08.05.2010, 00:53

Ваши права

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