被modbus的指令搞蒙了

那该多好啊!!! 那该多好啊!!! 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

网上看MODBUS RTU的指令,第二位就写功能码,如
写寄存器0为1:
主机发送:01 06 00 00 00 01 48 0A
从机返回:01 06 00 00 00 01 48 0a

可是我在网上下了一个MODBUS TCP的源码,他在第8位才写功能码,如

        private byte[] CreateWriteHeader(ushort id, ushort startAddress, ushort numData, ushort numBytes, byte function)
        {
            byte[] data = new byte[numBytes + 11];

            byte[] _id = BitConverter.GetBytes((short)id);
            data[0] = _id[0];                // Slave id high byte
            data[1] = _id[1];                // Slave id low byte+
            byte[] _size = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)(5 + numBytes)));
            data[4] = _size[0];                // Complete message size in bytes
            data[5] = _size[1];                // Complete message size in bytes
            data[6] = 0;                    // Slave address
            data[7] = function;                // Function code
            byte[] _adr = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)startAddress));
            data[8] = _adr[0];                // Start address
            data[9] = _adr[1];                // Start address
            if (function >= fctWriteMultipleCoils)
            {
          

这下我被搞蒙了,难道是二个不同的MODBUS吗,可这二个都 是MODBUS tcp啊

...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
那该多好啊!!!
C# 111,129 成员 642,540 内容