Skip to content

Commit 8bfdcdc

Browse files
Write Operations for Client example
1 parent a6669de commit 8bfdcdc

File tree

11 files changed

+721
-288
lines changed

11 files changed

+721
-288
lines changed

EasyModbusClientExample/EasyModbusClientExample.csproj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,5 +88,23 @@
8888
<ItemGroup>
8989
<None Include="Resources\PLCLoggerCompact.jpg" />
9090
</ItemGroup>
91+
<ItemGroup>
92+
<None Include="Resources\arrow_2.png" />
93+
</ItemGroup>
94+
<ItemGroup>
95+
<None Include="Resources\arrow_1.png" />
96+
</ItemGroup>
97+
<ItemGroup>
98+
<None Include="Resources\arrow_left.png" />
99+
</ItemGroup>
100+
<ItemGroup>
101+
<None Include="Resources\circle_delete.png" />
102+
</ItemGroup>
103+
<ItemGroup>
104+
<None Include="Resources\circle_delete1.png" />
105+
</ItemGroup>
106+
<ItemGroup>
107+
<None Include="Resources\circle_minus.png" />
108+
</ItemGroup>
91109
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
92110
</Project>

EasyModbusClientExample/MainForm.Designer.cs

Lines changed: 453 additions & 274 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

EasyModbusClientExample/MainForm.cs

Lines changed: 159 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,5 +218,163 @@ void TxtSlaveAddressInputTextChanged(object sender, EventArgs e)
218218
{
219219
modbusClient.UnitIdentifier = byte.Parse(txtSlaveAddressInput.Text);
220220
}
221-
}
221+
222+
bool listBoxPrepareCoils = false;
223+
private void btnPrepareCoils_Click(object sender, EventArgs e)
224+
{
225+
if (!listBoxPrepareCoils)
226+
{
227+
lsbAnswerFromServer.Items.Clear();
228+
}
229+
listBoxPrepareCoils = true;
230+
listBoxPrepareRegisters = false;
231+
lsbAnswerFromServer.Items.Add(txtCoilValue.Text);
232+
233+
}
234+
bool listBoxPrepareRegisters = false;
235+
private void button1_Click(object sender, EventArgs e)
236+
{
237+
if (!listBoxPrepareRegisters)
238+
{
239+
lsbAnswerFromServer.Items.Clear();
240+
}
241+
listBoxPrepareRegisters = true;
242+
listBoxPrepareCoils = false;
243+
lsbAnswerFromServer.Items.Add(int.Parse(txtRegisterValue.Text));
244+
}
245+
246+
private void btnWriteSingleCoil_Click(object sender, EventArgs e)
247+
{
248+
try
249+
{
250+
if (!modbusClient.Connected)
251+
{
252+
modbusClient.IPAddress = txtIpAddressInput.Text;
253+
modbusClient.Port = int.Parse(txtPortInput.Text);
254+
modbusClient.Connect();
255+
}
256+
257+
bool coilsToSend = false;
258+
259+
coilsToSend = bool.Parse(lsbAnswerFromServer.Items[0].ToString());
260+
261+
262+
modbusClient.WriteSingleCoil(int.Parse(txtStartingAddressInput.Text) - 1, coilsToSend);
263+
}
264+
catch (Exception exc)
265+
{
266+
MessageBox.Show(exc.Message, "Exception writing values to Server", MessageBoxButtons.OK, MessageBoxIcon.Error);
267+
}
268+
}
269+
270+
private void btnWriteSingleRegister_Click(object sender, EventArgs e)
271+
{
272+
try
273+
{
274+
if (!modbusClient.Connected)
275+
{
276+
modbusClient.IPAddress = txtIpAddressInput.Text;
277+
modbusClient.Port = int.Parse(txtPortInput.Text);
278+
modbusClient.Connect();
279+
}
280+
281+
int registerToSend = 0;
282+
283+
registerToSend = int.Parse(lsbAnswerFromServer.Items[0].ToString());
284+
285+
286+
modbusClient.WriteSingleRegister(int.Parse(txtStartingAddressInput.Text) - 1, registerToSend);
287+
}
288+
catch (Exception exc)
289+
{
290+
MessageBox.Show(exc.Message, "Exception writing values to Server", MessageBoxButtons.OK, MessageBoxIcon.Error);
291+
}
292+
}
293+
294+
private void btnWriteMultipleCoils_Click(object sender, EventArgs e)
295+
{
296+
try
297+
{
298+
if (!modbusClient.Connected)
299+
{
300+
modbusClient.IPAddress = txtIpAddressInput.Text;
301+
modbusClient.Port = int.Parse(txtPortInput.Text);
302+
modbusClient.Connect();
303+
}
304+
305+
bool[] coilsToSend = new bool[lsbAnswerFromServer.Items.Count];
306+
307+
for (int i = 0; i < lsbAnswerFromServer.Items.Count; i++)
308+
{
309+
310+
coilsToSend[i] = bool.Parse(lsbAnswerFromServer.Items[i].ToString());
311+
}
312+
313+
314+
modbusClient.WriteMultipleCoils(int.Parse(txtStartingAddressInput.Text) - 1, coilsToSend);
315+
}
316+
catch (Exception exc)
317+
{
318+
MessageBox.Show(exc.Message, "Exception writing values to Server", MessageBoxButtons.OK, MessageBoxIcon.Error);
319+
}
320+
}
321+
322+
private void btnWriteMultipleRegisters_Click(object sender, EventArgs e)
323+
{
324+
try
325+
{
326+
if (!modbusClient.Connected)
327+
{
328+
modbusClient.IPAddress = txtIpAddressInput.Text;
329+
modbusClient.Port = int.Parse(txtPortInput.Text);
330+
modbusClient.Connect();
331+
}
332+
333+
int[] registersToSend = new int[lsbAnswerFromServer.Items.Count];
334+
335+
for (int i = 0; i < lsbAnswerFromServer.Items.Count; i++)
336+
{
337+
338+
registersToSend[i] = int.Parse(lsbAnswerFromServer.Items[i].ToString());
339+
}
340+
341+
342+
modbusClient.WriteMultipleRegisters(int.Parse(txtStartingAddressInput.Text) - 1, registersToSend);
343+
}
344+
catch (Exception exc)
345+
{
346+
MessageBox.Show(exc.Message, "Exception writing values to Server", MessageBoxButtons.OK, MessageBoxIcon.Error);
347+
}
348+
}
349+
350+
private void lsbAnswerFromServer_DoubleClick(object sender, EventArgs e)
351+
{
352+
int rowindex = lsbAnswerFromServer.SelectedIndex;
353+
354+
355+
356+
357+
358+
}
359+
360+
private void txtCoilValue_DoubleClick(object sender, EventArgs e)
361+
{
362+
if (txtCoilValue.Text.Equals("FALSE"))
363+
txtCoilValue.Text = "TRUE";
364+
else
365+
txtCoilValue.Text = "FALSE";
366+
}
367+
368+
private void btnClear_Click(object sender, EventArgs e)
369+
{
370+
lsbAnswerFromServer.Items.Clear();
371+
}
372+
373+
private void button2_Click(object sender, EventArgs e)
374+
{
375+
int rowindex = lsbAnswerFromServer.SelectedIndex;
376+
if(rowindex >= 0)
377+
lsbAnswerFromServer.Items.RemoveAt(rowindex);
378+
}
379+
}
222380
}

EasyModbusClientExample/Properties/Resources.Designer.cs

Lines changed: 73 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

EasyModbusClientExample/Properties/Resources.resx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,25 @@
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120120
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121+
<data name="arrow_2" type="System.Resources.ResXFileRef, System.Windows.Forms">
122+
<value>..\Resources\arrow_2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123+
</data>
121124
<data name="PLCLoggerCompact" type="System.Resources.ResXFileRef, System.Windows.Forms">
122125
<value>..\Resources\PLCLoggerCompact.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123126
</data>
127+
<data name="circle_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
128+
<value>..\Resources\circle_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
129+
</data>
130+
<data name="circle_delete1" type="System.Resources.ResXFileRef, System.Windows.Forms">
131+
<value>..\Resources\circle_delete1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
132+
</data>
133+
<data name="arrow_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
134+
<value>..\Resources\arrow_1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
135+
</data>
136+
<data name="arrow_left" type="System.Resources.ResXFileRef, System.Windows.Forms">
137+
<value>..\Resources\arrow_left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
138+
</data>
139+
<data name="circle_minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
140+
<value>..\Resources\circle_minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
141+
</data>
124142
</root>
1.22 KB
Loading
1.22 KB
Loading
1.35 KB
Loading
2.14 KB
Loading
1.5 KB
Loading

0 commit comments

Comments
 (0)