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

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

Древовидный режим

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

    По умолчанию

    в общем я на шарпе чуток работал. я собственно работал с tcp modbus. писал сам без библиотек.


    Код:
    
      
            //Сообщение для инициализации чтения чтение регистра функция 3 или 4 (4 функция работает только на чтение проверялось с целыми числами)
                
                ushort startAddress = 0;
                short length = 6;
                short id = 1;
               
                byte[] msg = new byte[12];
    
                byte[] _id = BitConverter.GetBytes((ushort)id);
                msg[0] = _id[1];			    // я так понял 
                msg[1] = _id[0];				// это идентификатор сообщения слейв присылает его обратно в том же виде
                msg[2] = 0;                     // на данный момент не используется по описанию протокола
                msg[3] = 0;                     // на данный момент не используется по описанию протокола
                msg[4] = 0;                     // длинна сообщения протокола модбас т.е то что следует после этого байта 
                msg[5] = 6;			 // длинна сообщения протокола модбас т.е то что следует после этого байта
                msg[6] = 1;					    // адрес слейв как в модбас рту
                msg[7] = 4;				           // код функции 3 или 4 для чтения. 6 код для записи
                byte[] _adr = BitConverter.GetBytes((short)startAddress);
                msg[8] = _adr[1];				// адрес регистра
                msg[9] = _adr[0];				// для чтения
                byte[] _length = BitConverter.GetBytes(length);
                msg[10] = _length[1];			// количество регистров
                msg[11] = _length[0];                     // для чтения
    это справедливо для 3, 4 и 6 функций и только для данных word. для данных dword и float нужно удвоить количество считываемых регистров и записываемых соответственно. 6 функция это запись одного регистра хранения. вместо количества считываемых регистров пишем в регистр

    msg[10] = _length[1]; // данные которые надо записать
    msg[11] = _length[0]; // данные которые надо записать


    Функции множественного чтения записи и чтение записи битов не делал тк не нужно. в ближайшем плане это. писал сам с 0 для своего развития и ради интереса.

    для сериал порта это будет выглядеть практически также

    msg[0] // адрес слейв
    msg[1] // код функции

    byte[] _adr = BitConverter.GetBytes((short)startAddress);
    msg[2] = _adr[1]; // адрес регистра
    msg[3] = _adr[0];
    byte[] _RegisterNum = BitConverter.GetBytes(RegisterNum);
    msg[4] = _RegisterNum[1]; // количество регистров
    msg[5] = _RegisterNum[0]; // для чтения
    byte[] _length = BitConverter.GetBytes(length);
    msg[6] = _length[1]; // длинна сообщения (кажется всего)
    msg[7] = _length[0]; // длинна сообщения
    byte[] _CRC = BitConverter.GetBytes(CRC);
    msg[8] = _CRC[1]; // CRC16
    msg[9] = _CRC[0]; // CRC16 контрольная сумма

    Могу ошибаться написал по памяти))) Дa и еще важный момент старший и младший байт... мой пример работает на плк 100 если не читается нужно поставить native mode или tracert mode. для сериал порта

    И еще. Библиотеки библиотеками но если это не понять то библиотеки эти бесполезны
    Примеров по работе с сериал портом и сокетами валом.

    Если нужно подробнее пишите в личку (на почту сообщение хоть придет. а то я форум не часто читаю)
    За код во вложении сильно не бейте написано за 10 минут но 100% рабочий.

    Это проще чем кажется..
    Вложения Вложения
    Последний раз редактировалось Kostennikov; 20.01.2016 в 16:16.

Похожие темы

  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

Ваши права

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