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                          

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值