C#语言 Socket发送数据帧,控制机器运行状态

weixin_47256859 2020-12-29 03:05:12
公司需要做一个上位机,WPF C#语言 Socket发送数据帧,控制机器运行状态,交给我的任务,摸了好几天了,找不到相关的资料,求各位大佬帮忙看看

Socket定时发送可以,就是不知道参照这些数据发送什么内容,有没有做过类似的大佬请教一下
...全文
6258 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
白衣如花 2020-12-29
  • 打赏
  • 举报
回复
byte[] data = new byte[27]; // 截图只能看到第27字节,具体多少字节就定义多长数字
data[0] = 20;
data[1] = 0; // 这两个是报文头
data[2] = I * 1000 / 256;
data[3] = I * 1000 % 256; // I是槽电流
data[4] = U * 100 / 256;
data[5] = U * 100 % 256; // U是槽电压
data[6] = R * 1000 / 256;
data[7] = R * 1000 % 256; // R 是槽电阻
data[8] = R1 * 1000 / 256;
data[9] = R1 * 1000 % 256; // R1 是滤波电阻
data[10] = R2 * 1000 / 256;
data[11] = R2 * 1000 % 256; // R2 是平滑电阻
data[12] = 下斜状态;
data[13] = 控制状态;
data[14] = 下斜距离 * 1000 / 256;
data[15] = 下斜距离 * 1000 % 256;
// 剩下的基本和以上一制,按excel的要求来。注意数组下标n对应第n+1字节
weixin_47256859 2020-12-29
  • 打赏
  • 举报
回复
引用 1 楼 白衣如花 的回复:
一个字节就是8位,00000000-11111111取值范围为0-255,正好对应C#的byte 所以多少个字节,你就可以定义一个byte[Length]数组 如图所示:起始帧 byte[0] = 20; byte[1] = 0; 槽电流是 I = (byte[2] * 256 + byte[3]) / 1000,所以byte[2] = I * 1000 / 256 byte[3] = I * 1000 % 256 其他的依次类推 可能你不能一次性让所有数据都取正确的值,需要和嵌入式系统的开发人员一起调试,看看数据是否发送正确
对这块完全不了解,所以能不能把byte数组定义 赋值 写完整些,有个小案例好理解些 感谢感谢!!!
白衣如花 2020-12-29
  • 打赏
  • 举报
回复
一个字节就是8位,00000000-11111111取值范围为0-255,正好对应C#的byte

所以多少个字节,你就可以定义一个byte[Length]数组

如图所示:起始帧 byte[0] = 20; byte[1] = 0;

槽电流是 I = (byte[2] * 256 + byte[3]) / 1000,所以byte[2] = I * 1000 / 256 byte[3] = I * 1000 % 256

其他的依次类推

可能你不能一次性让所有数据都取正确的值,需要和嵌入式系统的开发人员一起调试,看看数据是否发送正确

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧