西門子S7-1200PLC與第三方設備自由口通信
發布日期:
2023-06-25

SIMATIC S7-1200小型可編程控製器充分滿足中小型自動化的係統需求。在研發過程中充分考慮了係統、控製器、人機界麵和軟件的無縫整合和高效協調的需求。SIMATIC S7-1200 係列的問世,標誌著西門子在原有產(chan) 品係列基礎上拓展了產(chan) 品版圖,代表了未來小型可編程控製器的發展方向,西門子也將一如既往開拓創新,引領自動化潮流。

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

1.控製係統原理

西門子S7-1200PLC與(yu) 第三方設備自由口通信

2.硬件需求

S7-1200 PLC目前有3種類型的CPU:

1)S7-1211C CPU。

2)S7-1212C CPU。

3)S7-1214C CPU。

這三種類型的CPU都可以連接三個(ge) 串口通信模版。

3.軟件需求

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

4.組態

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

點擊桌麵上的“Totally Integrated Automation Portal V10”圖標,打開如下圖:

西門子S7-1200PLC與(yu) 第三方設備自由口通信

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

西門子S7-1200PLC與(yu) 第三方設備自由口通信

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

西門子S7-1200PLC與(yu) 第三方設備自由口通信

打開後,在“Devices”標簽下,點擊“Add new device”,在彈出的菜單中輸入設備名“PLC_1”並在設備列表裏選擇CPU的類型。選擇後如下圖:

西門子S7-1200PLC與(yu) 第三方設備自由口通信

插入CPU後,點擊CPU左邊的空槽,在右邊的“Catalog ”裏找到“Communication”下的RS232模塊,拖拽或雙擊此模塊,這樣就把串口模塊插入到硬件配置裏,接下來就需要配置此RS232模塊硬件接口參數,選擇RS232模塊,在其下方會(hui) 出現該模塊的硬件屬性配置窗口, 在屬性窗口裏有兩(liang) 個(ge) 選項,一個(ge) 是“general”;一個(ge) 是“RS232 interface”。在“General”裏包括了此模塊的“項目信息”和“訂貨信息”;而在“RS232 interface”裏包括“項目信息”、“端口的配置”、“發送信息的配置”、“接收信息的配置”和“硬件識別號”。在這裏我們(men) 選擇“RS232 interface”,在“端口”配置的選項裏,進行端口的參數配置,

波特率為(wei) :9600 ;

校驗方式:無 ;

數據位為(wei) :8 ;

停止位: 1;

硬件流控製:無;

等待時間: 1ms

此時確認一下“硬件識別號”為(wei) 11。到這裏我們(men) 就完成了硬件的組態,接下來需要編寫(xie) 串口通訊程序,在這裏我們(men) 實現兩(liang) 個(ge) 功能:

一、 S7-1200 發送數據給超級終端;

二、 超級終端發送數據給S7-1200

對於(yu) 第一個(ge) 功能:S7-1200發送數據給超級終端,實際上是S7-1200是數據的發送方,超級終端是數據的接收方,對於(yu) S7-1200需要編寫(xie) 發送程序;而對於(yu) 超級終端來說,隻要打開超級終端程序,配置硬件接口參數與(yu) 前麵S7-1200的端口參數一致即可。

下麵的步驟將具體(ti) 介紹此功能實現的步驟:

①、在PLC中編寫(xie) 發送程序。在項目管理視圖下雙擊“Device”下的程序塊下的Main(OB1),打開OB1,在主程序中調用SEND_PTP功能塊

要對SEND_PTP賦值參數,首先需要創建SEND_PTP的背景數據塊和發送緩衝(chong) 數據塊 ,雙擊“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在彈出的串口命名DB_Send_PTP,選擇DB塊,在Type後選擇“SEND_PTP(SFB113)”

插入背景DB後,再插入發送緩衝(chong) DB塊,重複上麵的步驟,隻是在選擇DB類型為(wei) “Global DB”,並去掉“Symbolic access only”選項的勾(這樣可以對該DB塊進行直接地址訪問),並取名該DB塊為(wei) DB_SEND_BUFF。建好這兩(liang) 個(ge) DB塊後,雙擊打開DB_SEND_BUFF預先定義(yi) 好要發送的數據。

定義(yi) 完發送緩衝(chong) 區後,接下來就可以對SEND_PTP賦值參數,賦值參數。

在上麵的編程塊裏需要注意的是,在指定發送緩衝(chong) 區時。字符的開始地址是從(cong) 第二個(ge) 字節,而不是零字節開始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,原因是由於(yu) S7-1200對字符串的存放的格式造成的,S7-1200對字符串的前兩(liang) 個(ge) 字節的定義(yi) 第一字節是最大的字符長度,第二個(ge) 字節是實際的字符長度。接下來才是存放實際字符。

上麵就完成了程序的編寫(xie) ,對項目進行編譯;右擊PLC_1項目在彈出的菜單裏選擇“Complies ALL”選項,這樣就對硬件與(yu) 軟件進行編譯,編譯且沒有錯誤後就可以下載程序到PLC中,同樣右擊PLC_1項目,在彈出的菜單選擇“Download to Device”。

②、用串口交叉線連接S7-1200的串口與(yu) 計算機的串口,打開計算機的超級終端程序,並設置硬件端口參數。

③、打開OB1功能塊在線監控程序,在變量監控表裏強製M0.0為(wei) 1,觸發數據的發送,此時在超級終端就會(hui) 接收到發送的數據。

對於(yu) 第二個(ge) 功能:超級終端發送數據給S7-1200,實際上是S7-1200是數據的接收方,超級終端是數據的發送方,對於(yu) S7-1200需要編寫(xie) 接收程序;而對於(yu) 超級終端來說,隻要打開超級終端程序,配置硬件接口參數與(yu) 前麵S7-1200的端口參數一致,在界麵上輸入發送內(nei) 容即可。

下麵的步驟將具體(ti) 介紹此功能實現的步驟:

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

要對RCV_PTP賦值參數,首先需要創建RCV_PTP的背景數據塊和發送緩衝(chong) 數據塊 ,雙擊“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在彈出的串口命名DB_RCV_PTP,選擇DB塊,在Type後選擇“RCV_PTP(SFB114)”

插入背景DB後,再插入接收緩衝(chong) DB塊,重複上麵的步驟,隻是在選擇DB類型為(wei) “Global DB”,並去掉“Symbolic access only”選項的勾(這樣可以對該DB塊進行直接地址訪問),並取名該DB塊為(wei) DB_RCV_BUFF。建好這兩(liang) 個(ge) DB塊後,雙擊打開DB_RCV_BUFF定義(yi) 接收緩衝(chong) 區數據的類型。

定義(yi) 完接收緩衝(chong) 區後,接下來就可以對RCV_PTP賦值參數,賦值參數後如下圖:

西門子S7-1200PLC與(yu) 第三方設備自由口通信

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

上麵就完成了程序的編寫(xie) ,對項目進行編譯;右擊PLC_1項目在彈出的菜單裏選擇“Complies ALL”選項,這樣就對硬件與(yu) 軟件進行編譯。

編譯且沒有錯誤後就可以下載程序到PLC中,同樣右擊PLC_1項目,在彈出的菜單選擇“Download to Device”。

②、用串口交叉線連接S7-1200的串口與(yu) 計算機的串口,打開計算機的超級終端程序,並設置硬件端口參數。

在桌麵上新建文本文件,打開此文本文件在裏麵輸入“gfdcba”。

③、打開變量監控表,強製M0.0,使能接收。然後, 在超級終端裏,選擇菜單“Transfer”下的“Send Text file”,在打開的窗口裏找到桌麵 上的文本文件。

打開DB_RCV_BUFF數據塊,在線查看接收到的數據。

通過上麵的例子實現了簡單的應用,在實際的應用過程中,需要按第三方設備的協議進行編寫(xie) S7-1200的程序。

聲明:部分內(nei) 容來源於(yu) 網絡,如侵權請後台留言聯係刪除。