Приложение для управления устройством по 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д