一、
1.网上很多modbus类库,封装的方法,大多只获取返回的数据,而不是完整的报文,有时使用不便。
2.大多类库“读取”有返回值,而“写”时没有返回值,不好判断!不好做其他操作!
3.这是通过类库dsapi,实现简单!在此感谢!
二、
/// 【获取读数据命令,返回命令帧】
public void SetWriteFrame(string slave_Addr, string R_CMD, string startAddr, string data_reg, string byte_Data, string change_Data)
{
.....
#region 功能码变更触发事件
/// <summary>
/// 功能码变更触发事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// >4:写
if (cb_Function.SelectedIndex < 4)
{
btn_Read.IsEnabled = true;
btn_Write.IsEnabled = false;
//此时字节数和变更数是禁止的
tb_ByteData.IsEnabled = false;
tb_ChangeData.IsEnabled = false;
tb_SlaveAddr.IsEnabled = true;
tb_StartAddr.IsEnabled = true;
tb_RegData.IsEnabled = true;
}
//4,5:写 从站+功能码+起始+变更数据+crc
else if ((cb_Function.SelectedIndex == 4) || (cb_Function.SelectedIndex == 5))
{
btn_Read.IsEnabled = false;
btn_Write.IsEnabled = true;
//此时字节数和寄存器数是禁止的
tb_ByteData.IsEnabled = false;
tb_ChangeData.IsEnabled = true;
tb_RegData.IsEnabled = false;
}
......
//委托事件,在主线程中创建的控件,在子线程中读取设置控件的属性会出现异常,使用Invoke方法可以解决
this.Dispatcher.Invoke(new Action(() => { functionCode = content; functionOder = cb_Function.SelectedIndex; }));
}
#endregion
#region 写日志文件
public static void WriteLog(string strLog)
{
string sFilePath = Directory.GetCurrentDirectory().ToString() + "\\log\\" + DateTime.Now.ToString("yyyyMMdd");
string sFileName = "log" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".txt";
sFileName = sFilePath + "\\" + sFileName; //文件的绝对路径
if (!Directory.Exists(sFilePath))//验证路径是否存在
{
//不存在则创建
Directory.CreateDirectory(sFilePath);
}
FileStream fs;
StreamWriter sw;
if (File.Exists(sFileName))
//验证文件是否存在,有则追加,无则创建
{
fs = new FileStream(sFileName, FileMode.Append, FileAccess.Write);
}
else
{
fs = new FileStream(sFileName, FileMode.Create, FileAccess.Write);
}
sw = new StreamWriter(fs);
// sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + " --- " + strLog);
sw.WriteLine(strLog);
sw.Close();
fs.Close();
}
#endregion
``
![发送](https://img-blog.csdnimg.cn/b07dc24378e64ee69a1e0c1a1addf672.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZmVuZ2Rhb2thbmhhaXF1,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
***需要这个文档说明和软件的请联系 QQ752670829***