通過S7-1200與第三方設(shè)備實現(xiàn)自由口通信
西門子S7-1200緊湊型PLC在當(dāng)前的市場中廣泛使用的,由于其性價比高,所以常被采用小型自動化控制設(shè)備的控制器,這也是經(jīng)常與第三方的設(shè)備(掃描槍) ,打印機等設(shè)備進(jìn)行通訊。因為沒有第三方的設(shè)備,這里就以超級終端引入了自由口通訊。
博途工控人微信群:15961872327
博途工控人微信群:15961872327
01
控制系統(tǒng)原理

(圖1:控制系統(tǒng)原理)
02
硬件需求
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)
03
軟件需求
1)編程軟件Step7 Basic V10.5(6ES7 822-0AA0-0YA0)
04
布局
我們通過按照慣例的實際操作來介紹如何在Step7 Basic V10.5中配置S7-1214C和超級終端通信。
點擊桌面上的“ Totalally Integrated Automation Portal V10”圖標(biāo),如下圖:

(圖2:新建S7 -1200項目)
首先需要選擇“創(chuàng)建新項目”選項,然后在“項目名稱:”里輸入PTP;在“路徑:”中,將項目的存儲路徑設(shè)置為“ C:\”;單擊“創(chuàng)建”,這樣就創(chuàng)建了一個文件PTP的新項目。創(chuàng)建后的窗口如下圖所示:

(圖3:新建項目后)
點擊門戶預(yù)覽左下角的“ Project View”切換到項目預(yù)覽下,如下圖:

(圖4:切換到項目)
切換到項目后,在“設(shè)備”標(biāo)簽下,單擊“添加新設(shè)備”,在彈出的菜單中輸入設(shè)備名稱“ PLC_1”,并在設(shè)備列表中選擇CPU的類型。選擇后如下圖:

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

(圖6:RS232接口配置)
此時確認(rèn)一下“硬件識別號”為11。然后,完成了硬件的配置,接下來需要編寫串行通訊程序,在這里我們實現(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中編寫程序,然后在主菜單(OB1)上,在OB1,在主程序中調(diào)用SEND_PTP功能塊,如圖所示:(SEND_PTP)在指令庫下一個的擴展指令中通訊指令下一個)

(圖7:調(diào)用發(fā)送功能塊)
要對SEND_PTP賦值參數(shù),首先需要創(chuàng)建SEND_PTP的背景數(shù)據(jù)塊和發(fā)送緩沖數(shù)據(jù)塊,雙擊“設(shè)備”->“ PLC_1” ————>“程序塊” ————“添加新塊”, DB_Send_PTP,選擇DB塊,在類型后選擇“ SEND_PTP(SFB113)”

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

(圖9:在接收范圍內(nèi)中接收到的數(shù)據(jù))
定義完發(fā)送上下文之后,接下來就可以對SEND_PTP賦值參數(shù),賦值參數(shù)后如下圖:

(圖10:發(fā)送編程)
字符的開始地址是從第二個字節(jié),而不是零字節(jié)開始,即是P#DB2.DBX2.0 Byte10而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200對串行的放置的格式造成的,S7-1200對串行的前兩個字節(jié)的定義的第一字節(jié)是最大的字符長度,第二個字節(jié)是實際的字符長度接下來才是存放實際字符如下圖:

(圖11:字符串存儲格式)
上面就完成了一個程序的編寫,對項目進(jìn)行編譯;右擊PLC_1項目在放置的菜單項中選擇“ Complies ALL”選項,這樣就對硬件與軟件進(jìn)行了編譯,如下圖:

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

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

(圖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中編寫程序,然后在主菜單(OB1)上,在OB1,在主程序中稱其為RCV_PTP功能塊,如下圖所示:(注:RCV_PTP在指令庫下一個的擴展指令中通訊指令下一個)

(圖15:調(diào)用發(fā)送功能塊)
要對RCV_PTP賦值參數(shù),首先需要創(chuàng)建RCV_PTP的背景數(shù)據(jù)塊和發(fā)送緩沖數(shù)據(jù)塊,雙擊“設(shè)備”->“ PLC_1” ————>“程序塊”-“添加新塊”, DB_RCV_PTP,選擇DB塊,在類型后選擇“ RCV_PTP(SFB114)”

(圖16:創(chuàng)建接收功能塊的背景數(shù)據(jù)塊)
插入背景DB后,再插入接收緩沖DB塊,重復(fù)上面的步驟,只是在選擇DB類型為“ Global DB”,并去掉“ Symbolic access only”(選擇符號訪問)選項勾(這樣可以將該DB塊進(jìn)行直接訪問),建好這兩個DB塊后,,雙擊:DB_RCV_BUFF定義為接收數(shù)據(jù)的數(shù)據(jù)類型,如下圖所示:

(圖17:定義接收范圍)
定義完接收機后端后,接下來就可以對RCV_PTP賦值參數(shù),賦值參數(shù)后如下圖:

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

(圖19:字符串存儲格式)
上面就完成了一個程序的編寫,對項目進(jìn)行編譯;右擊PLC_1項目在放置的菜單項中選擇“ Complies ALL”選項,這樣就對硬件與軟件進(jìn)行了編譯,如下圖:

(圖20:編譯項目)
編譯且沒有錯誤后就可以下載程序到PLC中,同樣右擊PLC_1項目,在彈出的菜單選擇“下載到設(shè)備”。
②,用串口交叉線連接S7-1200的串口與計算機的串口,打開計算機的超級終端程序,并設(shè)置硬件擴展參數(shù)如下圖:
(圖21:超級終端的擴展設(shè)置)
在桌面上新建的文本文件,此文本文件在里面輸入“ gfdcba”,如下圖:
(圖22:在文本文件下輸入要發(fā)送的字符串)
③:變量監(jiān)控表,強制M0.0,使能接收。然后,在超級終端里,選擇菜單“傳輸”下一個的“發(fā)送文本文件”,在桌面上找到一個文本文件。
(圖23:通過超級終端發(fā)送數(shù)據(jù))
DB_RCV_BUFF數(shù)據(jù)塊,在線查看接收到的數(shù)據(jù),如下圖:
(圖24:接收接收機中接收到的數(shù)據(jù))
通過上面的示例實現(xiàn)一個簡單的應(yīng)用,在實際的應(yīng)用過程中,需要按第三方設(shè)備的協(xié)議進(jìn)行編寫S7-1200的程序。