SIMATIC S7-1200小型可編程控制器充分滿足中小型自動(dòng)化的系統(tǒng)需求,。在研發(fā)過程中充分考慮了系統(tǒng)、控制器,、人機(jī)界面和軟件的無縫整合和高效協(xié)調(diào)的需求,。SIMATIC S7-1200 系列的問世,標(biāo)志著西門子在原有產(chǎn)品系列基礎(chǔ)上拓展了產(chǎn)品版圖,,代表了未來小型可編程控制器的發(fā)展方向,,西門子也將一如既往開拓創(chuàng)新,引領(lǐng)自動(dòng)化潮流,。
西門子S7-1200 緊湊型PLC在當(dāng)前的市場(chǎng)中有著廣泛的應(yīng)用,,由于其性價(jià)比高,所以常被用作小型自動(dòng)化控制設(shè)備的控制器,,這也使得它經(jīng)常與第三方的設(shè)備(掃描槍,、打印機(jī)等設(shè)備進(jìn)行通訊。因?yàn)闆]有第三方的設(shè)備,,這里就以超級(jí)終端為例介紹自由口通訊,。
1.控制系統(tǒng)原理

2.硬件需求
S7-1200 PLC目前有3種類型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU,。
3)S7-1214C CPU,。
這三種類型的CPU都可以連接三個(gè)串口通信模版,。
3.軟件需求
1) 編程軟件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)
4.組態(tài)
我們通過下述的實(shí)際操作來介紹如何在Step7 Basic V10.5 中組態(tài)S7-1214C 和超級(jí)終端通信,。
點(diǎn)擊桌面上的“Totally Integrated Automation Portal V10”圖標(biāo),打開如下圖:

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

點(diǎn)擊門戶視圖左下角的“Project View”切換到項(xiàng)目視圖下,,如下圖:

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

插入CPU后,,點(diǎn)擊CPU左邊的空槽,,在右邊的“Catalog ”里找到“Communication”下的RS232模塊,拖拽或雙擊此模塊,,這樣就把串口模塊插入到硬件配置里,,接下來就需要配置此RS232模塊硬件接口參數(shù),選擇RS232模塊,,在其下方會(huì)出現(xiàn)該模塊的硬件屬性配置窗口,, 在屬性窗口里有兩個(gè)選項(xiàng),一個(gè)是“general”,;一個(gè)是“RS232 interface”,。在“General”里包括了此模塊的“項(xiàng)目信息”和“訂貨信息”;而在“RS232 interface”里包括“項(xiàng)目信息”,、“端口的配置”,、“發(fā)送信息的配置”、“接收信息的配置”和“硬件識(shí)別號(hào)”,。在這里我們選擇“RS232 interface”,,在“端口”配置的選項(xiàng)里,進(jìn)行端口的參數(shù)配置,,
波特率為:9600 ,;
校驗(yàn)方式:無 ;
數(shù)據(jù)位為:8 ,;
停止位: 1,;
硬件流控制:無;
等待時(shí)間: 1ms
此時(shí)確認(rèn)一下“硬件識(shí)別號(hào)”為11,。到這里我們就完成了硬件的組態(tài),,接下來需要編寫串口通訊程序,在這里我們實(shí)現(xiàn)兩個(gè)功能:
一,、 S7-1200 發(fā)送數(shù)據(jù)給超級(jí)終端,;
二、 超級(jí)終端發(fā)送數(shù)據(jù)給S7-1200
對(duì)于第一個(gè)功能:S7-1200發(fā)送數(shù)據(jù)給超級(jí)終端,,實(shí)際上是S7-1200是數(shù)據(jù)的發(fā)送方,,超級(jí)終端是數(shù)據(jù)的接收方,對(duì)于S7-1200需要編寫發(fā)送程序;而對(duì)于超級(jí)終端來說,,只要打開超級(jí)終端程序,,配置硬件接口參數(shù)與前面S7-1200的端口參數(shù)一致即可。
下面的步驟將具體介紹此功能實(shí)現(xiàn)的步驟:
①,、在PLC中編寫發(fā)送程序,。在項(xiàng)目管理視圖下雙擊“Device”下的程序塊下的Main(OB1),打開OB1,,在主程序中調(diào)用SEND_PTP功能塊
要對(duì)SEND_PTP賦值參數(shù),,首先需要?jiǎng)?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)”
插入背景DB后,,再插入發(fā)送緩沖DB塊,,重復(fù)上面的步驟,只是在選擇DB類型為“Global DB”,,并去掉“Symbolic access only”選項(xiàng)的勾(這樣可以對(duì)該DB塊進(jìn)行直接地址訪問),,并取名該DB塊為DB_SEND_BUFF。建好這兩個(gè)DB塊后,,雙擊打開DB_SEND_BUFF預(yù)先定義好要發(fā)送的數(shù)據(jù),。
定義完發(fā)送緩沖區(qū)后,接下來就可以對(duì)SEND_PTP賦值參數(shù),,賦值參數(shù),。
在上面的編程塊里需要注意的是,在指定發(fā)送緩沖區(qū)時(shí),。字符的開始地址是從第二個(gè)字節(jié),,而不是零字節(jié)開始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,,原因是由于S7-1200對(duì)字符串的存放的格式造成的,,S7-1200對(duì)字符串的前兩個(gè)字節(jié)的定義第一字節(jié)是最大的字符長(zhǎng)度,第二個(gè)字節(jié)是實(shí)際的字符長(zhǎng)度,。接下來才是存放實(shí)際字符,。
上面就完成了程序的編寫,對(duì)項(xiàng)目進(jìn)行編譯,;右擊PLC_1項(xiàng)目在彈出的菜單里選擇“Complies ALL”選項(xiàng),,這樣就對(duì)硬件與軟件進(jìn)行編譯,編譯且沒有錯(cuò)誤后就可以下載程序到PLC中,,同樣右擊PLC_1項(xiàng)目,,在彈出的菜單選擇“Download to Device”。
②,、用串口交叉線連接S7-1200的串口與計(jì)算機(jī)的串口,,打開計(jì)算機(jī)的超級(jí)終端程序,并設(shè)置硬件端口參數(shù),。
③,、打開OB1功能塊在線監(jiān)控程序,在變量監(jiān)控表里強(qiáng)制M0.0為1,,觸發(fā)數(shù)據(jù)的發(fā)送,,此時(shí)在超級(jí)終端就會(huì)接收到發(fā)送的數(shù)據(jù)。
對(duì)于第二個(gè)功能:超級(jí)終端發(fā)送數(shù)據(jù)給S7-1200,,實(shí)際上是S7-1200是數(shù)據(jù)的接收方,,超級(jí)終端是數(shù)據(jù)的發(fā)送方,對(duì)于S7-1200需要編寫接收程序,;而對(duì)于超級(jí)終端來說,,只要打開超級(jí)終端程序,配置硬件接口參數(shù)與前面S7-1200的端口參數(shù)一致,,在界面上輸入發(fā)送內(nèi)容即可,。
下面的步驟將具體介紹此功能實(shí)現(xiàn)的步驟:
①、在PLC中編寫發(fā)送程序,。在項(xiàng)目管理視圖下雙擊“Device”下的程序塊下的Main(OB1),,打開OB1,在主程序中調(diào)用RCV_PTP功能塊如下圖所示:(注:RCV_PTP在指令庫(kù)下的擴(kuò)展指令中通訊指令下)
要對(duì)RCV_PTP賦值參數(shù),,首先需要?jiǎng)?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”選項(xiàng)的勾(這樣可以對(duì)該DB塊進(jìn)行直接地址訪問),,并取名該DB塊為DB_RCV_BUFF,。建好這兩個(gè)DB塊后,雙擊打開DB_RCV_BUFF定義接收緩沖區(qū)數(shù)據(jù)的類型,。
定義完接收緩沖區(qū)后,,接下來就可以對(duì)RCV_PTP賦值參數(shù),賦值參數(shù)后如下圖:

在上面的編程塊里需要注意的是,,在指定接收緩沖區(qū)時(shí),。字符的開始地址是從第二個(gè)字節(jié),,而不是零字節(jié)開始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,,原因是由于S7-1200對(duì)字符串的存放的格式造成的,,S7-1200對(duì)字符串的前兩個(gè)字節(jié)的定義第一字節(jié)是最大的字符長(zhǎng)度,第二個(gè)字節(jié)是實(shí)際的字符長(zhǎng)度,。接下來才是存放實(shí)際字符,。
上面就完成了程序的編寫,對(duì)項(xiàng)目進(jìn)行編譯,;右擊PLC_1項(xiàng)目在彈出的菜單里選擇“Complies ALL”選項(xiàng),,這樣就對(duì)硬件與軟件進(jìn)行編譯。
編譯且沒有錯(cuò)誤后就可以下載程序到PLC中,,同樣右擊PLC_1項(xiàng)目,,在彈出的菜單選擇“Download to Device”。
②,、用串口交叉線連接S7-1200的串口與計(jì)算機(jī)的串口,,打開計(jì)算機(jī)的超級(jí)終端程序,并設(shè)置硬件端口參數(shù),。
在桌面上新建文本文件,,打開此文本文件在里面輸入“gfdcba”。
③,、打開變量監(jiān)控表,,強(qiáng)制M0.0,使能接收,。然后,, 在超級(jí)終端里,選擇菜單“Transfer”下的“Send Text file”,,在打開的窗口里找到桌面 上的文本文件,。
打開DB_RCV_BUFF數(shù)據(jù)塊,在線查看接收到的數(shù)據(jù),。
通過上面的例子實(shí)現(xiàn)了簡(jiǎn)單的應(yīng)用,,在實(shí)際的應(yīng)用過程中,需要按第三方設(shè)備的協(xié)議進(jìn)行編寫S7-1200的程序,。