0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過S7-1200與第三方設(shè)備實現(xiàn)自由口通信

機器人及PLC自動化應(yīng)用 ? 來源:機器人及PLC自動化應(yīng)用 ? 2023-02-14 15:11 ? 次閱讀

-西門子S7-1200 緊湊型PLC在當(dāng)前的市場中有著廣泛的應(yīng)用,由于其性價比高,所以常被用作小型自動化控制設(shè)備的控制器,這也使得它經(jīng)常與第三方的設(shè)備(掃描槍、打印機等設(shè)備進(jìn)行通訊。因為沒有第三方的設(shè)備,這里就以超級終端為例介紹自由口通訊。

1.控制系統(tǒng)原理

78f7dc1e-ac35-11ed-bfe3-dac502259ad0.png

圖1:控制系統(tǒng)原理

2.硬件需求
S7-1200 PLC目前有3種類型的CPU
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
這三種類型的CPU都可以連接三個串口通信模版。
本例中使用的PLC硬件為:
1)PM1207電源 ( 6EP1 332-1SH71 )
2) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
3) CM1241 RS232 ( 6ES7 241 -1AH30 -0XB0 )

3.軟件需求

1) 編程軟件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)

4.組態(tài)

我們通過下述的實際操作來介紹如何在Step7 Basic V10.5 中組態(tài)S7-1214C 和超級終端通信。

點擊桌面上的“Totally Integrated Automation Portal V10”圖標(biāo),打開如下圖:

79544e54-ac35-11ed-bfe3-dac502259ad0.png

圖2:新建S7 -1200項目

首先需要選擇“Create new project”選項,然后在“Project name:”里輸入PTP;在“Path:”修改項目的存儲路徑為“C:”;點擊“Create”,這樣就創(chuàng)建了一個文件PTP的新項目。創(chuàng)建后的窗口如下圖所示:

7986f034-ac35-11ed-bfe3-dac502259ad0.png

圖3:新建項目后

點擊門戶視圖左下角的“Project View”切換到項目視圖下,如下圖:

79b9a31c-ac35-11ed-bfe3-dac502259ad0.png

圖4:切換到項目視圖

打開后,在“Devices”標(biāo)簽下,點擊“Add new device”,在彈出的菜單中輸入設(shè)備名“PLC_1”并在設(shè)備列表里選擇CPU的類型。選擇后如下圖:

79f65c3a-ac35-11ed-bfe3-dac502259ad0.png

圖5:PLC硬件組態(tài)

插入CPU后,點擊CPU左邊的空槽,在右邊的“Catalog ”里找到“Communication”下的RS232模塊,拖拽或雙擊此模塊,這樣就把串口模塊插入到硬件配置里,接下來就需要配置此RS232模塊硬件接口參數(shù),選擇RS232模塊,在其下方會出現(xiàn)該模塊的硬件屬性配置窗口, 在屬性窗口里有兩個選項,一個是“general”;一個是“RS232 interface”。在“General”里包括了此模塊的“項目信息”和“訂貨信息”;而在“RS232 interface”里包括“項目信息”、“端口的配置”、“發(fā)送信息的配置”、“接收信息的配置”和“硬件識別號”。在這里我們選擇“RS232 interface”,在“端口”配置的選項里,進(jìn)行端口的參數(shù)配置,
波特率為:9600 ;
校驗方式:無 ;
數(shù)據(jù)位為:8 ;
停止位:1;
硬件流控制:無;
等待時間:1ms
設(shè)置參數(shù)如下圖:

7a246a80-ac35-11ed-bfe3-dac502259ad0.png

圖6:RS232接口配置

此時確認(rèn)一下“硬件識別號”為11。

此時,完成了硬件的組態(tài),接下來需要編寫串口通訊程序,在這里我們實現(xiàn)兩個功能:
一、 S7-1200 發(fā)送數(shù)據(jù)給超級終端;
二、 超級終端發(fā)送數(shù)據(jù)給S7-1200

對于第一個功能:S7-1200發(fā)送數(shù)據(jù)給超級終端,實際上是S7-1200是數(shù)據(jù)的發(fā)送方,超級終端是數(shù)據(jù)的接收方,對于S7-1200需要編寫發(fā)送程序;而對于超級終端來說,只要打開超級終端程序,配置硬件接口參數(shù)與前面S7-1200的端口參數(shù)一只即可。

下面的步驟將具體介紹此功能實現(xiàn)的步驟:

①、在PLC中編寫發(fā)送程序。在項目管理視圖下雙擊“Device”下的程序塊下的Main(OB1),打開OB1,在主程序中調(diào)用SEND_PTP功能塊如下圖所示:(注:SEND_PTP在指令庫下的擴(kuò)展指令中通訊指令下)

7a5246ee-ac35-11ed-bfe3-dac502259ad0.png

圖7:調(diào)用發(fā)送功能塊

要對SEND_PTP賦值參數(shù),首先需要創(chuàng)建SEND_PTP的背景數(shù)據(jù)塊和發(fā)送緩沖數(shù)據(jù)塊 ,雙擊“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在彈出的串口命名DB_Send_PTP,選擇DB塊,在Type后選擇“SEND_PTP(SFB113)”

7a84aa76-ac35-11ed-bfe3-dac502259ad0.png

圖8:創(chuàng)建發(fā)送功能塊的背景數(shù)據(jù)塊

插入背景DB后,再插入發(fā)送緩沖DB塊,重復(fù)上面的步驟,只是在選擇DB類型為“Global DB”,并去掉“Symbolic access only”選項勾(這樣可以對該DB塊進(jìn)行直接地址訪問),并取名該DB塊為DB_SEND_BUFF。建好這兩個DB塊后,雙擊打開DB_SEND_BUFF預(yù)先定義好要發(fā)送的數(shù)據(jù),如下圖所示:

7aafac76-ac35-11ed-bfe3-dac502259ad0.png

圖9:在接收緩沖區(qū)中接收到的數(shù)據(jù)

定義完發(fā)送緩沖區(qū)后,接下來就可以對SEND_PTP賦值參數(shù),賦值參數(shù)后如下圖:

7ad96d9a-ac35-11ed-bfe3-dac502259ad0.png


圖10:發(fā)送編程

在上面的編程塊里需要注意的是,在指定發(fā)送緩沖區(qū)時。字符的開始地址是從第二個字節(jié),而不是零字節(jié)開始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200對字符串的存放的格式造成的,S7-1200對字符串的前兩個字節(jié)的定義第一字節(jié)是最大的字符長度,第二個字節(jié)是實際的字符長度。接下來才是存放實際字符。

上面就完成了程序的編寫,對項目進(jìn)行編譯;右擊PLC_1項目在彈出的菜單里選擇“Complies ALL”選項,這樣就對硬件與軟件進(jìn)行編譯,如下圖:

7b02bfba-ac35-11ed-bfe3-dac502259ad0.png

圖12:編譯項目

編譯且沒有錯誤后就可以下載程序到PLC中,同樣右擊PLC_1項目,在彈出的菜單選擇“Download to Device”。
②、用串口交叉線連接S7-1200的串口與計算機的串口,打開計算機的超級終端程序,并設(shè)置硬件端口參數(shù)如下圖:

7b2ce54c-ac35-11ed-bfe3-dac502259ad0.png

圖13:超級終端的端口設(shè)置

③、打開OB1功能塊在線監(jiān)控程序,在變量監(jiān)控表里強制M0.0為1,觸發(fā)數(shù)據(jù)的發(fā)送,此時在超級終端就會接收到發(fā)送的數(shù)據(jù),如下圖:

7b7a84fa-ac35-11ed-bfe3-dac502259ad0.png

圖14:在超級終端監(jiān)控發(fā)送來的數(shù)據(jù)

對于第二個功能:超級終端發(fā)送數(shù)據(jù)給S7-1200,實際上是S7-1200是數(shù)據(jù)的接收方,超級終端是數(shù)據(jù)的發(fā)送方,對于S7-1200需要編寫接收程序;而對于超級終端來說,只要打開超級終端程序,配置硬件接口參數(shù)與前面S7-1200的端口參數(shù)一致,在界面上輸入發(fā)送內(nèi)容即可。

下面的步驟將具體介紹此功能實現(xiàn)的步驟:

①、在PLC中編寫發(fā)送程序。在項目管理視圖下雙擊“Device”下的程序塊下的Main(OB1),打開OB1,在主程序中調(diào)用RCV_PTP功能塊如下圖所示:(注:RCV_PTP在指令庫下的擴(kuò)展指令中通訊指令下)

7bae373c-ac35-11ed-bfe3-dac502259ad0.png

圖15:調(diào)用發(fā)送功能塊

要對RCV_PTP賦值參數(shù),首先需要創(chuàng)建RCV_PTP的背景數(shù)據(jù)塊和發(fā)送緩沖數(shù)據(jù)塊 ,雙擊“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在彈出的串口命名DB_RCV_PTP,選擇DB塊,在Type后選擇“RCV_PTP(SFB114)”

插入背景DB后,再插入接收緩沖DB塊,重復(fù)上面的步驟,只是在選擇DB類型為“Global DB”,并去掉“Symbolic access only”選項勾(這樣可以對該DB塊進(jìn)行直接地址訪問),并取名該DB塊為DB_RCV_BUFF。建好這兩個DB塊后,雙擊打開DB_RCV_BUFF定義接收緩沖區(qū)數(shù)據(jù)的類型,如下圖所示:

7bf309ac-ac35-11ed-bfe3-dac502259ad0.png


圖17:定義接收緩沖區(qū)

定義完接收緩沖區(qū)后,接下來就可以對RCV_PTP賦值參數(shù),賦值參數(shù)后如下圖:

7c25cbe4-ac35-11ed-bfe3-dac502259ad0.png



圖18:接收編程

在上面的編程塊里需要注意的是,在指定接收緩沖區(qū)時。字符的開始地址是從第二個字節(jié),而不是零字節(jié)開始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200對字符串的存放的格式造成的,S7-1200對字符串的前兩個字節(jié)的定義第一字節(jié)是最大的字符長度,第二個字節(jié)是實際的字符長度。接下來才是存放實際字符。

上面就完成了程序的編寫,對項目進(jìn)行編譯;右擊PLC_1項目在彈出的菜單里選擇“Complies ALL”選項,這樣就對硬件與軟件進(jìn)行編譯,如下圖:

7c58ca08-ac35-11ed-bfe3-dac502259ad0.png

圖20:編譯項目

編譯且沒有錯誤后就可以下載程序到PLC中,同樣右擊PLC_1項目,在彈出的菜單選擇“Download to Device”。
②、用串口交叉線連接S7-1200的串口與計算機的串口,打開計算機的超級終端程序,并設(shè)置硬件端口參數(shù)如下圖:

7cab3a0e-ac35-11ed-bfe3-dac502259ad0.png

圖21:超級終端的端口設(shè)置

在桌面上新建文本文件,打開此文本文件在里面輸入“gfdcba”,如下圖:

7cecb646-ac35-11ed-bfe3-dac502259ad0.png


圖22:在文本文件下輸入要發(fā)送的字符串

③、打開變量監(jiān)控表,強制M0.0,使能接收。然后, 在超級終端里,選擇菜單“Transfer”下的“Send Text file”,在打開的窗口里找到桌面 上的文本文件。

7d28de00-ac35-11ed-bfe3-dac502259ad0.png


圖23:通過超級終端發(fā)送數(shù)據(jù)

打開DB_RCV_BUFF數(shù)據(jù)塊,在線查看接收到的數(shù)據(jù),如下圖:

7d659156-ac35-11ed-bfe3-dac502259ad0.png


圖23:接收緩沖區(qū)中接收到的數(shù)據(jù)

通過上面的例子實現(xiàn)了簡單的應(yīng)用,在實際的應(yīng)用過程中,需要按第三方設(shè)備的協(xié)議進(jìn)行編寫S7-1200的程序。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15874

    瀏覽量

    175326
  • plc
    plc
    +關(guān)注

    關(guān)注

    5001

    文章

    12935

    瀏覽量

    459181
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    5875

    瀏覽量

    135304
  • 西門子
    +關(guān)注

    關(guān)注

    93

    文章

    2958

    瀏覽量

    114811
  • S7-1200
    +關(guān)注

    關(guān)注

    11

    文章

    331

    瀏覽量

    17701

原文標(biāo)題:如何通過S7-1200與第三方設(shè)備實現(xiàn)自由口通信

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何通過西門子S7-1200緊湊型PLC實現(xiàn)自由通訊

    西門子S7-1200 緊湊型PLC在當(dāng)前的市場中有著廣泛的應(yīng)用,由于其性價比高,所以常被用作小型自動化控制設(shè)備的控制器,這也使得它經(jīng)常與第三方設(shè)備(掃描槍、打印機等
    發(fā)表于 07-06 11:29 ?2982次閱讀

    在計算機與第三方設(shè)備通信時,常用的計算機編碼

    在計算機與第三方設(shè)備通信時,常用的計算機編碼
    發(fā)表于 07-10 13:06

    第三方dll調(diào)用問題?。?!

    第三方dll,沒有.h,labview怎么實現(xiàn)調(diào)用,dll可以用VS打開,類庫說明也有
    發(fā)表于 05-11 09:14

    LabVIEW與第三方軟件交互問題

    現(xiàn)在做一個軟件,就是通過LabVIEW去與第三方軟件進(jìn)行交互操作!已經(jīng)通過百度找到了利用user32.dll調(diào)用FindWindowA與PostMessage去實現(xiàn)對計算器,找了多方資
    發(fā)表于 12-26 17:13

    請問第三方平臺授權(quán)如何實現(xiàn)

    第三方平臺授權(quán)如何實現(xiàn)
    發(fā)表于 11-10 07:27

    頭文件中包含第三方文件

    macrocmake如果源文件(例如 CPP)中包含第三方頭文件,但是頭文件(例如 hpp)中不包含該第三方文件頭,采用 PRIVATE。如果源文件和頭文件中都包含該第三方文件頭,采用 PUBLIC
    發(fā)表于 08-18 08:10

    基于S7-1200設(shè)備與網(wǎng)絡(luò)組態(tài)

    本文檔內(nèi)容介紹了基于S7-1200設(shè)備與網(wǎng)絡(luò)組態(tài),以及S7-1200的概要及功能。
    發(fā)表于 09-25 18:14 ?28次下載
    基于<b class='flag-5'>S7-1200</b>的<b class='flag-5'>設(shè)備</b>與網(wǎng)絡(luò)組態(tài)

    S7-1200與PROFINET的通信

    S7-1200 CPU 本體上集成了一個PROFINET 通信口,支持以太網(wǎng)和基于TCP/IP 的通信標(biāo)準(zhǔn)。使用這個通信口可以實現(xiàn)
    發(fā)表于 09-29 18:58 ?38次下載
    <b class='flag-5'>S7-1200</b>與PROFINET的<b class='flag-5'>通信</b>

    怎樣才能實現(xiàn)S7-1500與第三方自動化系統(tǒng)的數(shù)據(jù)交換?

    要將S7-1500自動化系統(tǒng)作為PROFIBUS DP從站接入到第三方自動化系統(tǒng)的DP主站系統(tǒng)中,必須使用CM 1542-5或CP 1542-5并設(shè)置PROFIBUS 相關(guān)參數(shù),才能實現(xiàn)S7
    的頭像 發(fā)表于 07-27 09:16 ?5297次閱讀
    怎樣才能<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>S7</b>-1500與<b class='flag-5'>第三方</b>自動化系統(tǒng)的數(shù)據(jù)交換?

    關(guān)于S7-1200S7-1200之間UDP的通信與仿真

    S7-1200S7-1200 之間的以太網(wǎng)通信可以通過 UDP 協(xié)議來實現(xiàn),使用的通信指令
    的頭像 發(fā)表于 04-22 09:14 ?5261次閱讀
    關(guān)于<b class='flag-5'>S7-1200</b>和<b class='flag-5'>S7-1200</b>之間UDP的<b class='flag-5'>通信</b>與仿真

    如何通過S7-1200第三方設(shè)備實現(xiàn)自由通信

    如何通過S7-1200第三方設(shè)備實現(xiàn)自由
    發(fā)表于 04-25 11:18 ?15次下載

    S7-1200S7-300 PN之間的以太網(wǎng)通信方法

    S7-1200S7-300 PN 之間的以太網(wǎng)通信可以通過 UDP 協(xié)議來實現(xiàn),使用的
    的頭像 發(fā)表于 04-11 09:44 ?6701次閱讀

    如何通過S7-1200第三方設(shè)備實現(xiàn)自由通信

    首先需要選擇“Create new project”選項,然后在“Project name:”里輸入PTP;在“Path:”修改項目的存儲路徑為“C:”;點擊“Create”,這樣就創(chuàng)建了一個文件PTP的新項目。創(chuàng)建后的窗口如下圖所示:
    的頭像 發(fā)表于 08-02 11:34 ?1542次閱讀

    S7-1200S7-300 CP342-5的DP的主從通信

    使用 S7-1200S7-300 用 CP342-5 進(jìn)行主從通信,這里S7-1200 的 CM1243-5 做為主站,將 CP342-5 做從站。
    的頭像 發(fā)表于 02-13 09:32 ?1462次閱讀

    西門子S7-1200第三方設(shè)備自由通信詳解

    西門子S7-1200 緊湊型PLC在當(dāng)前的市場中有著廣泛的應(yīng)用,由于其性價比高,所以常被用作小型自動化控制設(shè)備的控制器,這也使得它經(jīng)常與第三方設(shè)備掃描槍、打印機等
    的頭像 發(fā)表于 07-24 15:39 ?7350次閱讀
    西門子<b class='flag-5'>S7-1200</b>與<b class='flag-5'>第三方</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>自由</b><b class='flag-5'>口</b><b class='flag-5'>通信</b>詳解