C# 中Nmoubus4多范围读写寄存器数据

感情迁移 提交于 2019-11-29 17:57:03

一、测试样式

二、读写范围函数(一次最多取125个地址)

 public  void ModbusSerialRtuMasterWriteRegisters()
        {
            using (TcpClient tcp_wg = new TcpClient(wg_ip, Convert.ToInt32(wg_port)))
            {
                //slaveId地址,默认1
                byte slaveId = Convert.ToByte(this.txt_slave.Text);
                //读取开始地址
                ushort startAddress = Convert.ToUInt16(this.txt_start.Text);
               
                //读取数据范围,可以多范围数据读取
                ushort number = Convert.ToUInt16(this.txt_number.Text);

                //写入起始地址,此函数同时可读写,同时进行,先写后读
                ushort writeAddress = Convert.ToUInt16(this.txt_write_start.Text);
                //写入数据内容,实例写入三个数据
                ushort[] registers = new ushort[] { 5, 2, 3 };

                //创建TCP通讯
                my_wg = ModbusIpMaster.CreateIp(tcp_wg);
                
                //单独进行写函数
                //my_wg.WriteMultipleRegisters(slaveId, startAddress, registers);

                //进行读写操作
                ushort[] inputs= my_wg.ReadWriteMultipleRegisters(slaveId, startAddress, number, writeAddress, registers);

                //对读取数据进行遍历
                for (int i = 0; i < number; i++)
                {
                    this.txt_result.Text += inputs[i];
                }
            }
        }

三、使用Modbus工具slave做为客户端

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!