设为首页 加入收藏

TOP

C#ModBus Tcp的学习及Master的实现(二)
2019-09-17 18:24:14 】 浏览:46
Tags:C#ModBus Tcp 学习 Master 实现
oils(slaveAddress, startAddress, numberOfPoints);
71 72 for (int i = 0; i < coilsBuffer.Length; i++) 73 { 74 SetMsg(coilsBuffer[i] + ""); 75 } 76 break; 77 case "02 Read DisCrete Inputs"://读取输入线圈/离散量线圈 78 SetReadParameters(); 79 80 coilsBuffer = master.ReadInputs(slaveAddress, startAddress, numberOfPoints); 81 for (int i = 0; i < coilsBuffer.Length; i++) 82 { 83 SetMsg(coilsBuffer[i] + ""); 84 } 85 break; 86 case "03 Read Holding Registers"://读取保持寄存器 87 SetReadParameters(); 88 registerBuffer = master.ReadHoldingRegisters(slaveAddress, startAddress, numberOfPoints); 89 for (int i = 0; i < registerBuffer.Length; i++) 90 { 91 SetMsg(registerBuffer[i] + ""); 92 } 93 break; 94 case "04 Read Input Registers"://读取输入寄存器 95 SetReadParameters(); 96 registerBuffer = master.ReadInputRegisters(slaveAddress, startAddress, numberOfPoints); 97 for (int i = 0; i < registerBuffer.Length; i++) 98 { 99 SetMsg(registerBuffer[i] + ""); 100 } 101 break; 102 case "05 Write Single Coil"://写单个线圈 103 SetWriteParametes(); 104 await master.WriteSingleCoilAsync(slaveAddress, startAddress, coilsBuffer[0]); 105 break; 106 case "06 Write Single Registers"://写单个输入线圈/离散量线圈 107 SetWriteParametes(); 108 await master.WriteSingleRegisterAsync(slaveAddress, startAddress, registerBuffer[0]); 109 break; 110 case "0F Write Multiple Coils"://写一组线圈 111 SetWriteParametes(); 112 await master.WriteMultipleCoilsAsync(slaveAddress, startAddress, coilsBuffer); 113 break; 114 case "10 Write Multiple Registers"://写一组保持寄存器 115 SetWriteParametes(); 116 await master.WriteMultipleRegistersAsync(slaveAddress, startAddress, registerBuffer); 117 break; 118 default: 119 break; 120 } 121 122 } 123 else 124 { 125 MessageBox.Show("请选择功能码!"); 126 } 127 master.Dispose(); 128 } 129 catch (Exception ex) 130 { 131 132 MessageBox.Show(ex.Message); 133 } 134 } 135 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 136 { 137 if (comboBox1.SelectedIndex >= 4) 138 { 139 groupBox2.Enabled = true; 140 groupBox1.Enabled = false; 141 } 142 else 143 { 144 groupBox1.Enabled = true; 145 groupBox2.Enabled = false; 146 } 147 comboBox1.Invoke(new Action(() => { functionCode = comboBox1.SelectedItem.ToString(); })); 148 } 149 150 /// <summary> 151 /// 初始化读参数 152 /// </summary> 153 private void SetReadParameters() 154 { 155 if (txt_startAddr1.Text == "" || txt_slave1.Text == "" || txt_length.Text == "") 156 { 157 MessageBox.Show("请填写读参数!"); 158 } 159 else 160 { 161 slaveAddress = byte.Parse(txt_slave1.Text); 162 startAddress = ushort.Parse(txt_startAddr1.Text); 163 numberOfPoints = ushort.Parse(txt_length.Text); 164 } 165 } 166 /// <summary> 167 /// 初始化写参数 168 /// </summary> 169 private void SetWriteParametes() 170 { 171 if (txt_startAddr2.Text == "" || txt_slave2.Text == "" || txt_data.Text == "") 172 { 173 MessageBox.Show("请填写写参数!"); 174 } 175 else 176 { 177 slaveAddress = byte.Parse(txt_slave2.Text); 178 startAddress = ush
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇VS 快捷键使用 下一篇datatable与实体类之间相互转化的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目