Приложение для управления устройством по modbus RTU - C#

Узнай цену своей работы

Формулировка задачи:

Необходимо написать приложение для управления девайсом по modbus RTU. функция чтения 0х03, записи - 0х06 и 0х10. Не могу найти примеры как работать с modbus и в частности работы с этими функциями. Если есть у кого исходники или готовые проекты, ссылки где что почитать - поделитесь пожалуйста...

Решение задачи: «Приложение для управления устройством по modbus RTU»

textual
Листинг программы
 public class TModBus
    {
        List<byte> buff;
        public const ushort myPolinom = 0xA001;
 
        public TModBus()
        {
            buff = new List<byte>();
        }
 
        public byte[] getFirmCommand(byte com, byte[] data, byte adr)
        {
            ushort crcMdb;
            buff.Clear();
            buff.Add(adr);
            buff.Add(0x42);
            buff.Add(com);
            if (data != null)
                for (int i = 0; i < data.Length; i++)
                    buff.Add(data[i]);
            crcMdb = getCrc(buff.ToArray());
            buff.Add((byte)(crcMdb & 0xFF));
            buff.Add((byte)((crcMdb >> 8) & 0xFF));
            return buff.ToArray();
        }
 
        ushort getCrc(byte[] mdbBuf)
        {
            ushort crc;
            byte tmpB;
            crc = 0xFFFF;
            for (int i = 0; i < mdbBuf.Length; i++)
            {
                tmpB = mdbBuf[i];
                for (int j = 0; j < 8; j++)
                {
                    crc = (ushort)(crc ^ (tmpB & 1));
                    if ((crc & 1) != 0)
                        crc = (ushort)((crc >> 1) ^ myPolinom);
                    else
                        crc = (ushort)(crc >> 1);
                    tmpB = (byte)(tmpB >> 1);
                }
            }
            return crc;
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы