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

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端

這篇具有很好參考價值的文章主要介紹了C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?1、客戶端選擇

客戶端可以是一個程序或一個設(shè)備,這里我以C#WINFORM程序來實現(xiàn)客戶機(jī)與PLC的Modbustcp服務(wù)器通信,開發(fā)環(huán)境是VS2019,.NET Framework版本是4.7.2

2、創(chuàng)建winform程序

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?創(chuàng)建類庫

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

編寫C#各種類的轉(zhuǎn)換庫,該庫由我提供,不用操心,文章最后提供。

項目引入這個類庫?

?

3、引入Nmodbus4協(xié)議

找到項目,找到引用,右鍵“管理nuget程序”,在下面對話框操作

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?4、界面布局如下:

布局中用到的是下拉框combobox,文本框textbox,按鈕button,標(biāo)簽label

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?這個IP地址和端口號是與這里對應(yīng)

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

5、窗體定義兩個變量,并引入對應(yīng)的命令空間

? ? ? ? ModbusIpMaster master = null;//modbus對象
? ? ? ? TcpClient tcpClient = null;//tcp客戶端對象

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

6、連接按鈕代碼

 private void btnOpen_Click(object sender, EventArgs e)
        {
            string ip = txtIPAddress.Text.Trim();
            bool t = IsIP(ip);
            if (t)
            {
                try
                {
                    int port = int.Parse(txtPort.Text.Trim());
                    tcpClient = new TcpClient();
                    tcpClient.Connect(ip, port);//連接到主機(jī)
                    master = ModbusIpMaster.CreateIp(tcpClient);//Ip 主站
                    master.Transport.ReadTimeout = 1000;//讀超時
                    master.Transport.WriteTimeout = 1000;//寫超時
                    master.Transport.Retries = 3;//嘗試重復(fù)連接次數(shù)
                    master.Transport.WaitToRetryMilliseconds = 200;//嘗試重復(fù)連接間隔
                    lblMessage.Text = "連接成功!";
                    btnOpen.Enabled = false;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("連接失敗," + ex.Message);
                }
            }
            else
            {
                MessageBox.Show("無效的ip地址!");
            }
        }

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?7、讀取的代碼--ushort類型

本例子中只用到了讀取保存寄存器這個功能碼,即ReadHoldingRegisters(從站地址,開始地址,寄存器數(shù)量)

  /// <summary>
        /// 讀取
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void myread_Click(object sender, EventArgs e)
        {
            //由于NModbus4讀取到寄存器的數(shù)據(jù)都是ushort類型
            //功能碼
            string readType = cboReadTypes.Text.Trim();
            //從站地址
            byte slaveAddr = byte.Parse(txtRSlaveId.Text.Trim());
            //開始地址
            ushort startAddr = ushort.Parse(txtRStartAddress.Text.Trim());
            //讀取數(shù)量
            ushort readCount = ushort.Parse(txtRCount.Text.Trim());
            switch (readType)
            {
                case "讀線圈":
                    bool[] blVals = master.ReadCoils(slaveAddr, startAddr, readCount);
                    txtReadDatas1.Text = string.Join(",", blVals.Select(b => b ? "1" : "0"));
                    break;
                case "讀輸入線圈":
                    bool[] blInputVals = master.ReadInputs(slaveAddr, startAddr, readCount);
                    txtReadDatas1.Text = string.Join(",", blInputVals.Select(b => b ? "1" : "0"));
                    break;
                case "讀保持寄存器":
                    //情況1:ushort到ushort類型:即讀取無符號的整數(shù),如23,89,處理方法是:原封不動
                    //ushort[] uDatas = master.ReadHoldingRegisters(slaveAddr, startAddr, readCount);
                    //txtReadDatas.Text = string.Join(",", uDatas);

                    //功能碼
                    string dataType = cmddatatype.Text.Trim();
                    switch (dataType)
                    {
                        case "ushort":
                            //利用token循環(huán)讀取
                            ushortctsRead = new CancellationTokenSource();
                            Task.Run(new Action(() =>
                            {
                                ReadUshortFromPLC(slaveAddr, startAddr, readCount);
                            }), ushortctsRead.Token);
                            break;
                        case "short":
                            //利用token循環(huán)讀取
                            shortctsRead = new CancellationTokenSource();
                            Task.Run(new Action(() =>
                            {
                                ReadShortFromPLC(slaveAddr, startAddr, readCount);
                            }), shortctsRead.Token);
                            break;
                        case "float":
                            //利用token循環(huán)讀取
                            floatctsRead = new CancellationTokenSource();
                            Task.Run(new Action(() =>
                            {
                                ReadFloatFromPLC(slaveAddr, startAddr, readCount);
                            }), floatctsRead.Token);
                            break;
                    }  
                    break;
                case "讀輸入寄存器":
                    ushort[] uDatas1 = master.ReadInputRegisters(slaveAddr, startAddr, readCount);
                    txtReadDatas1.Text = string.Join(",", uDatas1);
                    break;
            }
        }

這里要注意,

NModbus4讀取到寄存器的數(shù)據(jù)都是ushort類型

NModbus4讀取到寄存器的數(shù)據(jù)都是ushort類型

代碼中用到ReadUshortFromPLC方法,ReadShortFromPLC方法,ReadFloatFromPLC方法在本文最后鏈接都會提供

運(yùn)行程序,連接成功,讀取數(shù)據(jù)

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?注意這里,從站地址一般都是1,除非你改了,開始地址是0,表示寄存器的起始地址,數(shù)量是3,表示讀取3個寄存器數(shù)量,也就是前面3個變量,m1-speed,m1-duaror,m1-level

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?這里為什么數(shù)量不能是4,因為第4個變量是real,它占2個寄存器,即占4個字節(jié),它不是ushort類型,這里地址也不能是%DB3.DBW4這種寫法,這不是S7協(xié)議讀取變量,是MODBUS讀取寄存器,兩者不一樣的,別糊涂了,各位長老。

8、讀取的代碼--float類型

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?很多人搞不清楚這個開始地址和數(shù)量,這個開始地址是Modbus的地址,Modbus地址編號從0開始,因此8個變量的地址就是0,1,2,3,4,5,6,7,數(shù)量是指要讀取的寄存器個數(shù),word占一個,real占2個,這里很難理解,比較繞比較暈,一個是PLC地址,一個是MODBUS地址

我們要讀的溫度是第3個寄存器,它是real類型,占2個寄存器數(shù)量

如果要讀取“摩頭2溫度”,怎么讀了?

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp?

?大家想想,為什么開始地址是8?

9、寫入的代碼--ushort類型

 /// <summary>
        /// 寫入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnWrite_Click(object sender, EventArgs e)
        {
            //功能碼
            string writeType = cboWriteTypes.Text.Trim();
            //從站地址
            byte slaveAddr = byte.Parse(txtWSlaveId.Text.Trim());
            //開始地址
            ushort startAddr = ushort.Parse(txtWStartAddress.Text.Trim());
            //數(shù)量
            //實際數(shù)量
            string objWriteVals = "";
            string dataType = cmddatatype2.Text.Trim();
            switch (dataType)
            {
                case "ushort":
                    objWriteVals = txtWriteDatas1.Text.Trim();
                    break;
                case "short":
                    objWriteVals = txtWriteDatas2.Text.Trim();
                    break;
                case "float":
                    objWriteVals = txtWriteDatas3.Text.Trim();
                    break;
            }
            ushort writeCount = ushort.Parse(txtWCount.Text.Trim()); 
            ushort objWCount = (ushort)objWriteVals.Split(',').Length;
            //實際數(shù)量與要求數(shù)量不一致,不允許操作
            if (writeCount != objWCount)
            {
                MessageBox.Show("寫入值的數(shù)量不正確!");
                return;
            }
            string vals = objWriteVals;
            switch (writeType)
            {
                case "寫單線圈":
                    bool blVal = vals == "1" ? true : false;
                    try
                    {
                        master.WriteSingleCoil(slaveAddr, startAddr, blVal);
                        MessageBox.Show("【單線圈】寫入成功!");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    break;
                case "寫單保持寄存器":
                    ushort uVal01 = ushort.Parse(vals);
                    try
                    {
                        master.WriteSingleRegister(slaveAddr, startAddr, uVal01);
                        MessageBox.Show("【單保持寄存器】寫入成功!");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    break;
                case "寫多線圈":
                    bool[] blVals = vals.Split(',').Select(s => s == "1" ? true : false).ToArray();//bool數(shù)組
                    try
                    {
                        master.WriteMultipleCoils(slaveAddr, startAddr, blVals);
                        MessageBox.Show("【多線圈】寫入成功!");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    break;
                case "寫多保持寄存器":
                    try
                    {
                        //功能碼
                        //string dataType = cmddatatype2.Text.Trim();
                        switch (dataType)
                        {
                            case "ushort":
                                情況1:寫入無符號的整數(shù),即寫入ushort數(shù)據(jù),如寫入33,44
                                ushort[] uVals01 = vals.Split(',').Select(s => ushort.Parse(s)).ToArray();
                                master.WriteMultipleRegisters(startAddr, uVals01);
                                break;
                            case "short":
                                //情況2:寫入有符號的整數(shù),即寫入short數(shù)據(jù),如寫入-133,-65,98等,處理方法是:short[]=>byte[]=>ushort[],情況2包括了情況1 
                                short[] uVals02 = vals.Split(',').Select(s => short.Parse(s)).ToArray();
                                byte[] y2 = ByteArrayLib.GetByteArrayFromShortArray(uVals02);
                                ushort[] ushorts2 = UShortLib.GetUShortArrayFromByteArray(y2);
                                master.WriteMultipleRegisters(startAddr, ushorts2);
                                MessageBox.Show("【short類型數(shù)據(jù)】寫入成功!");
                                break;
                            case "float":
                                //情況3:寫入有符號的小數(shù),即寫入float數(shù)據(jù),如寫入-6.3,-2.65,56.893,51,-465等,處理方法是:float[]=>byte[]=>ushort[],情況3包括了情況2和情況1 
                                float[] uVals03 = vals.Split(',').Select(s => float.Parse(s)).ToArray();
                                byte[] y3 = ByteArrayLib.GetByteArrayFromFloatArray(uVals03);
                                ushort[] ushorts3 = UShortLib.GetUShortArrayFromByteArray(y3);
                                master.WriteMultipleRegisters(startAddr, ushorts3);
                                MessageBox.Show("【float類型數(shù)據(jù)】寫入成功!");
                                break;
                        }



                        情況2:寫入有符號的整數(shù),即寫入short數(shù)據(jù),如寫入-133,-65,98等,處理方法是:short[]=>byte[]=>ushort[],情況2包括了情況1 
                        //short[] uVals02 = vals.Split(',').Select(s => short.Parse(s)).ToArray();
                        //byte[] y = ByteArrayLib.GetByteArrayFromShortArray(uVals02);
                        //ushort[] ushorts = UShortLib.GetUShortArrayFromByteArray(y);
                        //master.WriteMultipleRegisters(slaveAddr, startAddr, ushorts);

                        情況3:寫入有符號的小數(shù),即寫入float數(shù)據(jù),如寫入-6.3,-2.65,56.893,51,-465等,處理方法是:float[]=>byte[]=>ushort[],情況3包括了情況2和情況1 
                        //float[] uVals02 = vals.Split(',').Select(s => float.Parse(s)).ToArray();
                        //byte[] y = ByteArrayLib.GetByteArrayFromFloatArray(uVals02);
                        //ushort[] ushorts = UShortLib.GetUShortArrayFromByteArray(y);
                        //master.WriteMultipleRegisters(slaveAddr, startAddr, ushorts);

                        MessageBox.Show("【多保持寄存器】寫入成功!");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    break;
            }
        }

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?寫入成功,同時讀取的也是剛才寫的值,在博途的監(jiān)控表中看到

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

10、寫入的代碼--float類型

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

寫入負(fù)數(shù)

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

?我們向“摩頭2溫度”這個寄存器寫入數(shù)據(jù)

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

再看博途中的數(shù)據(jù)

?C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

11、小結(jié)

客戶端創(chuàng)建tcp client對象,然后modbus利用tcp對象創(chuàng)建modbus通信,然后通過不同數(shù)據(jù)類型讀寫PLC數(shù)據(jù),成功了

代碼鏈接:

鏈接:https://pan.baidu.com/s/1aCqv3eSX-7SXAdGtrGNpTw?
提取碼:kyqo??

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp

C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端,C#上位機(jī)開發(fā)筆記,c#,服務(wù)器,開發(fā)語言,tcp client,modbus tcp文章來源地址http://www.zghlxwxcb.cn/news/detail-668001.html

到了這里,關(guān)于C#與西門子PLC1500的ModbusTcp服務(wù)器通信4--搭建ModbusTcp客戶端的文章就介紹完了。如果您還想了解更多內(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ù)器費(fèi)用

相關(guān)文章

  • C#通過ModbusTcp協(xié)議讀寫西門子PLC中的浮點數(shù)

    C#通過ModbusTcp協(xié)議讀寫西門子PLC中的浮點數(shù)

    MODBUS/TCP是簡單的、中立廠商的用于管理和控制自動化設(shè)備的MODBUS系列通訊協(xié)議的派生產(chǎn)品,顯而易見,它覆蓋了使用TCP/IP協(xié)議的“Intranet”和“Internet”環(huán)境中MODBUS報文的用途。協(xié)議的最通用用途是為諸如PLC,I/O模塊,以及連接其它簡單域總線或I/O模塊的網(wǎng)關(guān)服務(wù)的。 Modbus

    2024年02月09日
    瀏覽(58)
  • 編寫C#程序?qū)崿F(xiàn)和西門子1500PLC進(jìn)行Modbus Tcp通訊仿真

    編寫C#程序?qū)崿F(xiàn)和西門子1500PLC進(jìn)行Modbus Tcp通訊仿真

    前言 本文章的主題是介紹Modbus Tcp通訊仿真,其中C#編寫的程序充當(dāng)客戶端(Client),西門子1500PLC充當(dāng)?shù)姆?wù)器端(Server),有關(guān)Modbus Tcp協(xié)議的具體內(nèi)容在此也不再贅述,大家可以自行閱讀官方文檔。 注:在實現(xiàn)其基本功能的條件下,本文的代碼編寫以及軟件配置均簡化。

    2024年02月11日
    瀏覽(84)
  • 西門子PLC1500大型程序fanuc機(jī)器人焊裝 包括1臺 西門子1500PLC程序

    西門子PLC1500大型程序fanuc機(jī)器人焊裝 包括1臺 西門子1500PLC程序

    西門子PLC1500大型程序fanuc機(jī)器人焊裝 包括1臺 西門子1500PLC程序,2臺觸摸屏TP1500程序? 9個智能遠(yuǎn)程終端ET200SP Profinet連接? 15個Festo智能模塊Profinet通訊? 10臺Fanuc發(fā)那科機(jī)器人Profinet通訊? 3臺G120變頻器Profinet通訊? 2臺智能電能管理儀表PAC3200? 4個GRAPH順控程序? 圖爾克RFID總線模

    2024年01月18日
    瀏覽(35)
  • 西門子大型程序fanuc機(jī)器人焊裝 包括1臺 西門子1500PLC程序,2臺觸摸屏TP1500程序

    西門子大型程序fanuc機(jī)器人焊裝 包括1臺 西門子1500PLC程序,2臺觸摸屏TP1500程序

    西門子大型程序fanuc機(jī)器人焊裝? 包括1臺 西門子1500PLC程序,2臺觸摸屏TP1500程序,9個智能遠(yuǎn)程終端ET200SP Profinet連接 15個Festo智能模塊Profinet通訊 10臺Fanuc發(fā)那科機(jī)器人Profinet通訊 3臺G120變頻器Profinet通訊 2臺智能電能管理儀表PAC3200 4個GRAPH順控程序 圖爾克RFID總線模組通訊 和ME

    2024年02月02日
    瀏覽(21)
  • 西門子PLC S7-1500系列CPU與西門子PLC S7-300系列的通訊模塊CP343-1進(jìn)行TCP通訊的方法

    西門子PLC S7-1500系列是西門子新一代PLC產(chǎn)品,它通過多方面的創(chuàng)新,為用戶提供了更高性價比的產(chǎn)品,提高了用戶的工程實施效率。西門子PLC S7-1500為用戶在自動化控制系統(tǒng)中提供了更高的運(yùn)行能力,而且簡單易用,節(jié)省了大量的系統(tǒng)開發(fā)時間,西門子PLC?S7-1500系列有很強(qiáng)的通

    2023年04月08日
    瀏覽(29)
  • 使用IOT-Tree Server連接西門子PLC S7-300/1200/1500

    使用IOT-Tree Server連接西門子PLC S7-300/1200/1500

    IOT-Tree Server是個開源物聯(lián)網(wǎng)軟件,可以作為組態(tài)軟件成為自動化系統(tǒng)的上位軟件。她提供了接入、數(shù)據(jù)組織管理、控制邏輯和人機(jī)交互多個方面的功能。從版本0.99開始,IOT-Tree Server新增了西門子以太網(wǎng)驅(qū)動,能夠通過以太網(wǎng)的方式直接訪問S7-300/1200/1500. S7-200 smart好像也支持

    2024年02月03日
    瀏覽(39)
  • 西門子S7-1200F或1500F系列安全PLC的組態(tài)步驟和基礎(chǔ)編程(一)

    西門子S7-1200F或1500F系列安全PLC的組態(tài)步驟和基礎(chǔ)編程(一)

    第一部分:組態(tài)配置 具體步驟可參考以下內(nèi)容 : 如下圖所示,新建一個項目后,添加一個安全型PLC,這里以1516F-3 PN/DP為例進(jìn)行說明, 如下圖所示,添加CPU完成后,可以看到左側(cè)的項目樹中比普通的PLC多了幾個選項和模塊, 如下圖所示,我們選中該CPU后進(jìn)入屬性畫面,在“

    2024年02月06日
    瀏覽(73)
  • 使用瀏覽器訪問西門子S7-1200PLC_Web服務(wù)器設(shè)置

    使用瀏覽器訪問西門子S7-1200PLC_Web服務(wù)器設(shè)置

    平常都是用觸摸屏或者上位機(jī)監(jiān)控在線查看PLC的數(shù)據(jù),在西門子S7-1200中,可以使用博途配置web服務(wù)器,通過瀏覽器進(jìn)行登錄,訪問PLC的運(yùn)行狀態(tài)及需要監(jiān)控的數(shù)據(jù)信息。 打開博途,新建一個項目,選擇一個常用的PLC型號,進(jìn)入編程界面,上述步驟不再贅述;右擊mian,點擊屬

    2024年02月16日
    瀏覽(43)
  • C#和西門子PLC使用Udp通信

    C#和西門子PLC使用Udp通信

    目錄 一、PLC程序工程創(chuàng)建 1、硬件配置 2、程序編程 3、添加監(jiān)控表 二、C#程序工程創(chuàng)建 1、界面UI 2、代碼編寫 (1)創(chuàng)建本地Udp (2)讀PLC的線程函數(shù) (3)定時器 (4)上位機(jī)寫寄存器操作 (5)StringToByte()方法封裝 (6)窗口關(guān)閉 3、C#和PLC測試 (1)C#上位機(jī)寫操作1 (2)C#上位

    2024年02月04日
    瀏覽(27)
  • C#上位機(jī)與西門子PLC數(shù)據(jù)交互

    C#上位機(jī)與西門子PLC數(shù)據(jù)交互

    拉了換一個簡單的界面 我新建了一個DB數(shù)據(jù)塊【DB1】,右鍵【DB1】,點擊【屬性】項,【優(yōu)化的塊訪問】默認(rèn)是勾選,要想顯示數(shù)據(jù)塊中地址偏移量,需要把【優(yōu)化的塊訪問】勾選取消 1、右鍵項目名,選擇圖中【管理NuGet程序包】 2、在搜索框輸入【S7netplus】,我安裝的是第

    2024年02月13日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包