IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> C# 运用开放协议连接拧紧枪控制器(马头) -> 正文阅读

[网络协议]C# 运用开放协议连接拧紧枪控制器(马头)

?以下为简单通讯测试源码,只提供参考

            TcpClient tcpClient = new TcpClient();
            tcpClient.Connect("127.0.0.1", 4545);//端口默认4545
            {
                //建立通讯
                var command = "00200001000000000000" + (char)0;
                byte[] commandbyte = Encoding.Default.GetBytes(command);
                tcpClient.Client.Send(commandbyte, SocketFlags.None);

                byte[] byteCommand = new byte[1024];
                int icommand= tcpClient.Client.Receive(byteCommand);
                var outputCommandValue = System.Text.Encoding.ASCII.GetString(byteCommand,0,icommand);
                Console.WriteLine(outputCommandValue);
            }

            {
                //发送心跳
                var heart = "00209999000000000000" + (char)0;
                byte[] heartData = Encoding.Default.GetBytes(heart);
                tcpClient.Client.Send(heartData);

                byte[] byteheart = new byte[1024];
                var iheartdata=tcpClient.Client.Receive(byteheart);
                string outputHeartValue = System.Text.Encoding.ASCII.GetString(byteheart,0,iheartdata);
                Console.WriteLine(outputHeartValue);
            }

            {
                //发送订阅拧紧数据
                var tightening = "00200060000000000000" + (char)0;
                byte[] tighteningbyte = Encoding.Default.GetBytes(tightening);
                tcpClient.Client.Send(tighteningbyte);

                byte[] bytesTightening = new byte[1024];
                var itightening=tcpClient.Client.Receive(bytesTightening);
                var outputTighteningValue = System.Text.Encoding.ASCII.GetString(bytesTightening,0,itightening);
                Console.WriteLine(outputTighteningValue);
            }

tcp 建立建立连接后,需要发送开始通讯指令(和S7等私有协议一样,连接后有两次通讯握手,拧紧控制器只有一次),拧紧控制器未收到通讯指令15秒后会强制断开连接。

开始通讯指令代码

00200001000000000000+(char)0;

拧紧控制器确认收到开始指令后回回复允许通讯指令(回复指令为测试指令,每把控制器可能略有差异,主要构成部分,由消息长度0000? 指令代码0000 以及后续信息为主,以下回复报文不准确只作为解读参考)

如下:

0057代表报文长度,0002代表功能码

如上《开始通讯报文指令》组成结构一致? 0020? ?0001,拼接时一定要注意长度是否满足规范,否则将无法通讯,马头控制器通讯报文结尾需要NUL 为标示符

拧紧控制器允许通讯指令

00570002001 ? ? ? ? 010000020003 ? ? ? ? ? ? ? ? ? ? ? ? ?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:30:49  更:2022-03-21 21:35:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:44:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码