首页 > 编程语言 >模拟C#与PLC Modbus TCP通讯,报文解析

模拟C#与PLC Modbus TCP通讯,报文解析

时间:2024-12-10 14:46:29浏览次数:3  
标签:byteDatas string C# TCP Modbus textBox1 ToString data AppendText

 

  

    private void button1_Click(object sender, EventArgs e)
        {
            TcpClient client = new TcpClient("192.168.200.84", 4198); // 替换为服务器IP和端口
            NetworkStream stream = client.GetStream();
            try
            {
                // 十六进制数据
                string hexData = "010308d40002865300";

                // 将十六进制数据转换为字节数组
                byte[] data = ConvertHexStringToByteArray(hexData);

                // 发送数据
                stream.Write(data, 0, data.Length);

                // 接收响应
                data = new byte[1024];
                int bytes = stream.Read(data, 0, data.Length);
                string response = Encoding.Unicode.GetString(data, 0, bytes);

                byte[] byteDatas = Encoding.Unicode.GetBytes(response);

                string hexString = BitConverter.ToString(byteDatas).Replace("-"," ");

                textBox1.AppendText($"接收: { hexString}");
                textBox1.AppendText("\r\n");

                string hexValue = byteDatas[5].ToString("X2") + byteDatas[6].ToString("X2"); // 十六进制数作为字符串
                int result = Convert.ToInt32(hexValue, 16); // 转换为十进制

                textBox1.AppendText($"解析: { result}");
                textBox1.AppendText("\r\n");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                // 清理资源
                client.Close();
            }
        }

 

MODBUS TCP注意点

主机和从机、服务端和客户端

MODBUS请求响应模型

【在modbus协议中】

主机发送modbus请求,从机根据请求内容向主机返回响应。在modbus协议中,主机总是主动方,从机总是被动方。

标签:byteDatas,string,C#,TCP,Modbus,textBox1,ToString,data,AppendText
From: https://www.cnblogs.com/lijunzaizi/p/18597315

相关文章

  • 阿里巴巴全彩版“SpringCloudAlibaba 学习笔记”开源
    SpringCloudAlibaba为什么会出现?SpringCloudNetflix项目进入维护模式,SpringCloudNetflix将不再开发新的组件,我们知道SpringCloud版本迭代算是比较快的,因而出现了很多中岛的ISSUE都来不及Fix就又推另一个Release了。进入维护模式意思就是目前已知以后一段时......
  • 驾驶证OCR识别API接口有哪些好处?
    在当今数字化快速发展的时代,各种先进的技术不断涌现,为我们的生活和工作带来了极大的便利。其中,驾驶证OCR识别API接口就是一项非常实用且具有广泛应用场景的技术创新。本文将详细介绍驾驶证OCR识别API接口的好处。驾驶证OCR识别API接口具有多方面的好处,主要包括以......
  • 驾驶证OCR识别API接口有哪些应用场景?
    在当今数字化快速发展的时代,各种先进的技术不断涌现,为我们的生活和工作带来了极大的便利。其中,驾驶证OCR识别API接口就是一项非常实用且具有广泛应用场景的技术创新。以下是驾驶证OCR识别API接口常见的一些应用场景:一、交通管理部门车辆管理业务:在车辆注册、年检、......
  • C语言期末考试——常见考题(模拟考)
    目录一、填空题(每空2分,共20 分)二、选择题(每题2分,共26分)三、编程题(第1题6分,其余题目每题10分)!!!需要答案的可以私信,因为是拿给学生上课做模拟,不能把答案写到文章一、填空题(每空2分,共20 分)c语言是一种结构化的程序设计语言,它具有______、______、______三种基本结构。......
  • shell编程9 重定向操作和不同脚本的互相调用 (泷羽sec)
    声明学习视频来自B站UP主泷羽sec,如涉及侵泷羽sec权马上删除文章。笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负这节课旨在扩大自己在网络安全方面的知识面,了解网络安全领域的见闻,了解学习哪些知识对于我们渗透......
  • 中国30米逐年植被净初级生产力(NPP)数据集(1982年至今CASA模型)
        摘要:植被净初级生产力(NetPrimaryProductivity,NPP)是指绿色植物在单位面积、单位时间内所累积的有机物数量,表现为光合作用固定的有机碳中扣除植物本身呼吸消耗的部分。它不仅表征植物活动的重要变量,而且是判定生态系统碳汇和调节生态过程的主要因子,构建长时间序列......
  • 鸿蒙 Next 中 Provide 和 Consume 的用法总结
    一、概述在鸿蒙Next中,@Provide和@Consume装饰器用于在祖先组件与后代组件之间实现双向数据同步,适用于状态数据在多个层级之间传递的场景,摆脱了父子组件间命名参数传递机制的束缚。从APIversion9开始,这两个装饰器支持在ArkTS卡片中使用,从APIversion11开始,支持在元服务中使用。......
  • [LeetCode] 1524. Number of Sub-arrays With Odd Sum
    Givenanarrayofintegersarr,returnthenumberofsubarrayswithanoddsum.Sincetheanswercanbeverylarge,returnitmodulo109+7.Example1:Input:arr=[1,3,5]Output:4Explanation:Allsubarraysare[[1],[1,3],[1,3,5],[3],[3,5],[5]]Allsu......
  • EHOME视频平台EasyCVR萤石设备视频接入平台无法启动是什么原因?
    在现代安防监控系统中,EasyCVR视频汇聚平台因其强大的兼容性和灵活的拓展性而广受用户青睐。然而,系统运行过程中可能会遇到各种问题,比如无法启动的情况。本文将详细描述一个具体的案例,并针对该案例进行讲解。以下是详细的排查过程和解决方案。EasyCVR无法启动的原因排查用户反馈......
  • 论文写完还没完!如何在ChatGPT的帮助下高效完成审稿
    审稿是论文发表或提交前的重要环节,涉及对内容完整性、逻辑性、创新性、语言表达等多个方面的评估。合理使用ChatGPT,可以使审稿过程更系统、更高效。今天分享的内容是使用ChatGPT完成论文审稿的详细步骤和操作示例,助您轻松完成高质量的审稿任务。一键完成论文初稿,请关注底部微......