国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

樹莓派Linux跨平臺免授權(quán)CNC數(shù)控數(shù)據(jù)采集協(xié)議,TCP協(xié)議包,支持(fanuc、三菱、西門子、海德漢、馬扎克、兄弟、哈斯、廣數(shù)、凱恩帝KND、華中)數(shù)控跨平臺,支持網(wǎng)關(guān)Linux

這篇具有很好參考價值的文章主要介紹了樹莓派Linux跨平臺免授權(quán)CNC數(shù)控數(shù)據(jù)采集協(xié)議,TCP協(xié)議包,支持(fanuc、三菱、西門子、海德漢、馬扎克、兄弟、哈斯、廣數(shù)、凱恩帝KND、華中)數(shù)控跨平臺,支持網(wǎng)關(guān)Linux。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

市面上的數(shù)控基本都支持了跨平臺通訊,下面以三菱為列講解跨平臺協(xié)議如何通訊,無需任何DLL,適配任何開發(fā)語言,純Socket通訊

先上采集圖?

cnc協(xié)議,Fanuc數(shù)據(jù)采集,西門子數(shù)控數(shù)據(jù)采集,三菱CNC數(shù)據(jù)采集,java,開發(fā)語言,c#,TCP,協(xié)議

代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 三菱TCP
{
    public partial class Form1 : Form
    {
        public static Socket TcpSocket;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
         

        }

        private void btnVer_Click(object sender, EventArgs e)
        {
           
        }
        //TcpSocket.Send(SendCommand.伺服名稱);


        //    byte[] Data = ReceiveData();



        //byte[] Data2 = new byte[] { 0x10 };



        //string s = Encoding.Default.GetString(Data.Skip(28).Take(1).ToArray()).Replace("\0", string.Empty);

        public   byte[] ReceiveData()
        {
            byte[] b = new byte[1024];
            int n = TcpSocket.Receive(b);
            byte[] DATA = b.Take(n).ToArray();

            textBox1.Text = BitConverter.ToString(DATA).Replace("-","");;
            return DATA;






        }
     
        public string timeconvert(string time)
        {
            time= time.PadLeft(6,'0');

            if (time.Length > 6)
            {

                return time.Substring(0, time.Length-4)+":" + time.Substring(time.Length - 4, 2) + ":" + time.Substring(time.Length - 6, 2);
            }
            else
            {
                return time.Substring(0, 2) + ":" + time.Substring(2, 2) + ":" + time.Substring(4, 2);
            }


        }
      
     
        private void button12_Click(object sender, EventArgs e)
        {
            TcpSocket.Send(SendCommand.程序內(nèi)容);
            byte[] Data = ReceiveData();
            程序內(nèi)容.Text = Encoding.Default.GetString(Data.Skip(22).ToArray()).Replace("\0", string.Empty);

        }

        private void button13_Click(object sender, EventArgs e)
        {
            TcpSocket.Send(SendCommand.當(dāng)前刀具號);
            byte[] Data = ReceiveData();
            int time = BitConverter.ToInt32(Data.Skip(22).Take(4).ToArray(), 0);
            當(dāng)前刀具號.Text = time.ToString();
        }

        private void button14_Click(object sender, EventArgs e)
        {
            TcpSocket.Send(SendCommand.主軸設(shè)定);
            byte[] Data = ReceiveData();
            int time = BitConverter.ToInt32(Data.Skip(22).Take(4).ToArray(), 0);
            主軸轉(zhuǎn)速設(shè)定.Text = time.ToString();
        
        }

        private void button15_Click(object sender, EventArgs e)
        {
            TcpSocket.Send(SendCommand.進(jìn)給速度設(shè)定);
            byte[] Data = ReceiveData();
            
            進(jìn)給速度設(shè)定.Text = BitConverter.ToDouble(Data.Skip(22).Take(8).ToArray(), 0).ToString();

        }

        private void button16_Click(object sender, EventArgs e)
        {
            TcpSocket.Send(SendCommand.進(jìn)給速度實際值);
            byte[] Data = ReceiveData();
            進(jìn)給速度實際值.Text = BitConverter.ToDouble(Data.Skip(44).Take(8).ToArray(), 0).ToString(); ;
        }

    

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                TcpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                TcpSocket.ReceiveTimeout = 1000;
                TcpSocket.Connect(txt_ip.Text, int.Parse(txt_port.Text));
                if (TcpSocket.Connected)
                {
                    MessageBox.Show("ok");
                }

            }
            catch (Exception ex)
            {

            }
        }

        private void button19_Click(object sender, EventArgs e)
        {
           
            TcpSocket.Send(SendCommand.主軸倍率);
            byte[] Data = ReceiveData();
  
            主軸倍率.Text = Data.Last().ToString();

        }

        private void button20_Click(object sender, EventArgs e)
        {
            TcpSocket.Send(SendCommand.進(jìn)給倍率);
            byte[] Data = ReceiveData();

            進(jìn)給倍率.Text = Data.Last().ToString();
        }

        private void button21_Click(object sender, EventArgs e)
        {

            TcpSocket.Send(SendCommand.CNC類型);
            byte[] Data = ReceiveData();
            CNC類型.Text = Encoding.Default.GetString(Data.Skip(22).Take(22).ToArray()).Replace("\0", string.Empty);
             

        }

        private void button22_Click(object sender, EventArgs e)
        {
            TcpSocket.Send(SendCommand.加工件數(shù));
            byte[] Data = ReceiveData();
            int time = BitConverter.ToInt32(Data.Skip(22).Take(4).ToArray(), 0);
            加工件數(shù).Text = time.ToString();
            
        }

       

        private void button23_Click(object sender, EventArgs e)
        {
            增益.Text = 讀取伺服監(jiān)控(0x01);
        }

        private void button24_Click(object sender, EventArgs e)
        {
            跟蹤延遲.Text = 讀取伺服監(jiān)控(0x02);
        }

      

        private void timer1_Tick(object sender, EventArgs e)
        {
            foreach (Control c in this.Controls)
            {
            
                Control c1 = c as Button;
                if (c1 != null)
                {
                    if (c1.Name != "button1"&& c1.Name != "button25")
                    {
                        ((Button)c1).PerformClick();

                    }
              
                }
            }
        }

        private void button25_Click_1(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }

      
    }
}

?文章來源地址http://www.zghlxwxcb.cn/news/detail-596308.html

到了這里,關(guān)于樹莓派Linux跨平臺免授權(quán)CNC數(shù)控數(shù)據(jù)采集協(xié)議,TCP協(xié)議包,支持(fanuc、三菱、西門子、海德漢、馬扎克、兄弟、哈斯、廣數(shù)、凱恩帝KND、華中)數(shù)控跨平臺,支持網(wǎng)關(guān)Linux的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包