SIEMENS 長沙豪乾智能科技有限公司
公司帶來銷售的產(chǎn)品全部由西門子直接提供,所有產(chǎn)品保證絕對原裝,每個產(chǎn)品都可以到西門子長沙辦事處去查驗。
我們出售的產(chǎn)品按照西門子質(zhì)保進(jìn)行保修,(保修期為一年)《選擇長沙豪乾,是您最明智的決定》。想了解更多內(nèi)容,請來電,我將為您一一解答。
工作( Q Q ):254598303 136 8731 7079(微信同步)
聯(lián)系人 :張 柏 / )
公司理念:
是專業(yè)從事工業(yè)自動化產(chǎn)品銷售和系統(tǒng)集成的高新技術(shù)企業(yè)。在西門子工控領(lǐng)域,公司以精益求精的經(jīng)營理念,從產(chǎn)品、方案到服務(wù),致力于塑造一個“行業(yè)專家”品牌,以實現(xiàn)可持續(xù)的發(fā)展。
S7-1200 CPU通過ETHERNET 與S7-1200 CPU 通信的方式
S7-1200 與 S7-1200 之間的以太網(wǎng)通信可以通過 TCP 或 ISO on TCP 協(xié)議來實現(xiàn),使用的通信指令是在雙方 CPU 調(diào)用 T-block (TSEND_C, TRCV_C, TCON, TDISCON, TSEN, TRCV) 指令來實現(xiàn)。通信方式為雙邊通信,因此 TSEND 和 TRCV 必須成對出現(xiàn)。
硬件和軟件需求及所完成的通信任務(wù)
硬件:
① S7-1200 CPU
② PC (帶以太網(wǎng)卡)
③ TP電纜(以太網(wǎng)電纜)
軟件:
STEP7 V11 or Higher
所完成的通信任務(wù):
① 將PLC_1 的通信數(shù)據(jù)區(qū) DB3 塊中的 100 個字節(jié)的數(shù)據(jù)發(fā)送到 PLC_2 的接收數(shù)據(jù)區(qū) DB4 塊中。
② 將PLC_2 的通信數(shù)據(jù)區(qū) DB3 塊中的 100 個字節(jié)的數(shù)據(jù)發(fā)送到 PLC_1 的接收數(shù)據(jù)區(qū) DB4 塊中。
通信的編程,連接參數(shù)及通信參數(shù)的配置
1. 打開 STEP7 v11 軟件并新建項目
在 STEP7 v11的 “Portal View” 中選擇 “Create new project” 創(chuàng)建一個新項目
2. 添加硬件并命名PLC
然后進(jìn)入 “Project view”,在“Project tree” 下雙擊 “Add new device”,在對話框中選擇所使用的S7-1200 CPU添加到機(jī)架上,命名為 PLC_1,如圖1.所示。
同樣方法再添加通信伙伴的S7-1200 CPU ,命名為 PLC_2。
![](http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/PROFINETnew/S71200_S71200/S71200_S71200PIC/Add%20new%20device.gif)
圖1. 添加新設(shè)備
為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下:
在 “Project tree” > “PLC_1” > “Device configuration” 中,選中 CPU ,然后在下面的屬性窗口中,“Properties” > “System and clock memory” 下,將系統(tǒng)位定義在MB1,時鐘位定義在MB0,如圖2.所示。
時鐘位我們主要使用 M0.3,它是以2Hz 的速率在0和1之間切換的一個位,可以使用它去自動激活發(fā)送任務(wù)。
圖2. 系統(tǒng)位與時鐘位
3. 為 PROFINET 通信口分配以太網(wǎng)地址
在 “Device View”中點擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會出現(xiàn)PROFINET 接口的屬性,在 “Ethernet addresses” 下分配IP 地址為 192.168.0.1 ,子網(wǎng)掩碼為255.255.255.0,如圖3. 所示。
![](http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/PROFINETnew/S71200_S71200/S71200_S71200PIC/Assign%20IP%20address.gif)
圖3. 分配IP 地址
同樣方法,在同一個項目里添加另一個新設(shè)備S7-1200 CPU 并為其分配 IP 地址為192.168.0.2
4. 創(chuàng)建 CPU之間的邏輯網(wǎng)絡(luò)連接
在項目樹 “Project tree”>“Devices & Networks” >“Networks view” 視圖下,創(chuàng)建兩個設(shè)備的連接。用鼠標(biāo)點中 PLC_1 上的PROFINET通信口的綠色小方框,然后拖拽出一條線,到另外一個PLC_2 上的PROFINET通信口上,松開鼠標(biāo),連接就建立起來了,如圖4.所示。
![](http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/PROFINETnew/S71200_S71200/S71200_S71200PIC/logic_connection.gif)
圖4. 建立兩個 CPU的邏輯連接
在 PLC_1 中調(diào)用并配置“TCON”、“TSEND”、“TRCV” 通信指令
1.在 PLC_1 的 OB1 中調(diào)用“TCON” 通信指令
① 在第一個 CPU 中調(diào)用發(fā)送通信指令,進(jìn)入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,從右側(cè)窗口 “Instructions” > “Communications” > “OPEN User Communications”下調(diào)用 “TCON” 指令,創(chuàng)建連接,如圖1.所示。
![](http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/PROFINETnew/S71200_S71200/PLC_1%E7%BC%96%E7%A8%8BPIC/tcon%20assign%20para.gif)
圖1. 調(diào)用“TCON”通信指令
② 創(chuàng)建DB2 分配連接參數(shù),見圖2所示
圖2. 創(chuàng)建連接數(shù)據(jù)塊 DB2(Con_DB)
③ 定義PLC_1的 “TCON”連接參數(shù)
PLC_1 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“Properties”> “Configuration”>“Connection parameter”中設(shè)置,如圖3.所示。
圖3. 定義 TCON 連接參數(shù)
連接參數(shù)說明:
End point
|
:可以通過點擊選擇按鈕選擇伙伴 CPU :PLC_2
|
Connection type
|
:選擇通信協(xié)議為 TCP(也可以選擇 ISO on TCP 或UDP協(xié)議)
|
Connection ID
|
:連接的地址 ID 號,這個 ID 號在后面的編程里會用到
|
Connection data
|
:創(chuàng)建連接時,生成的Con_DB塊。見圖2所示
|
Active connection setup
|
:選擇本地 PLC_1作為主動連接
|
Address details
|
:定義通信伙伴方的端口號為:2000;如果選用的是 ISO on TCP 協(xié)議,則需要設(shè)定的TSAP 地址(ASCII 形式),本地 PLC_1可以設(shè)置成“PLC1”,伙伴方 PLC_2 可以設(shè)置成“PLC2”。
|
2.定義 PLC_1 的“TSEND”發(fā)送通信塊接口參數(shù)
① 調(diào)用 “TSEND” 在OB1內(nèi)調(diào)用 發(fā)送100個字節(jié)數(shù)據(jù)到PLC2中
進(jìn)入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,從右側(cè)窗口 “Instructions” > “Communications” > “OPEN User Communications”下調(diào)用 “TSEND” 指令,,如圖4.所示。
![](http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/PROFINETnew/S71200_S71200/PLC_1%E7%BC%96%E7%A8%8BPIC/Tsend%20call.gif)
圖4. 調(diào)用 TSEND
② 創(chuàng)建并定義PLC_1的發(fā)送數(shù)據(jù)區(qū) DB 塊。
通過“Project tree”>“PLC_1”>“Program blocks”>“Add new block”,選擇“Data block” 創(chuàng)建 DB 塊,選擇絕對尋址,點擊“OK”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 100個字節(jié)的數(shù)組,如圖4.及圖5.所示。
![](http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/PROFINETnew/S71200_S71200/PLC_1%E7%BC%96%E7%A8%8BPIC/Creat%20TSENDC_Data.gif)
圖5. 創(chuàng)建發(fā)送數(shù)據(jù)區(qū) DB 塊
注意:對于雙邊編程通信的 CPU ,如果通信數(shù)據(jù)區(qū)使用 DB 塊,既可以將 DB 塊定義成符號尋址,也可以定義成絕對尋址。使用指針尋址方式,必須創(chuàng)建絕對尋址的 DB 塊。
圖6. 定義發(fā)送數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組 圖 PLC1_TSENDC_DATA
③ 定義 PLC_1 的“TSEND”發(fā)送通信塊接口參數(shù),如圖7.所示。
![](http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/PROFINETnew/S71200_S71200/PLC_1%E7%BC%96%E7%A8%8BPIC/TSEND%20program.gif)
圖7. 定義 TSEND 接口參數(shù)
參數(shù)說明:
輸入接口參數(shù):
REQ
|
:= M0.3
|
// 使用 2Hz 的時鐘脈沖,上升沿激活發(fā)送任務(wù)
|
ID
|
: = 1
|
//創(chuàng)建連接ID
|
LEN
|
:= 100
|
//發(fā)送數(shù)據(jù)長度
|
DATA
|
:= P#DB3.DBX0.0 BYTE 100
|
// 發(fā)送數(shù)據(jù)區(qū)的數(shù)據(jù),使用指針尋址時,DB塊要選用絕對尋址
|
輸出接口參數(shù):
DONE
|
:= M300.0
|
//任務(wù)執(zhí)行完成并且沒有錯誤,該位置 1
|
BUSY
|
:= M300.1
|
// 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
|
ERROR
|
:= M300.2
|
//通信過程中有錯誤發(fā)生,該位置 1
|
STATUS
|
:= MW302
|
//有錯誤發(fā)生時,會顯示錯位信息號
|
3.在 PLC_1 的OB1中調(diào)用接收指令T_CV 并配置基本參數(shù)
為了實現(xiàn) PLC_1 接收來自 PLC_2 的數(shù)據(jù),則在 PLC_1 中調(diào)用接收指令T_RCV 并配置基本參數(shù)。
① 創(chuàng)建并定義PLC_1的接收數(shù)據(jù)區(qū) DB 塊。
通過“Project tree”>“PLC_1”>“Program blocks”>“Add new block”,選擇“Data block” 創(chuàng)建 DB 塊,選擇絕對尋址,點擊“OK”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 100個字節(jié)的數(shù)組,如圖7.及圖8.所示。
![](http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/PROFINETnew/S71200_S71200/PLC_1%E7%BC%96%E7%A8%8BPIC/Rcv_DB.gif)
圖8. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊
注意:對于雙邊編程通信的 CPU ,如果通信數(shù)據(jù)區(qū)使用 DB 塊,既可以將 DB 塊定義成符號尋址,也可以定義成絕對尋址。使用指針尋址方式,必須創(chuàng)建絕對尋址的 DB 塊。
圖9. 定義接收數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組
② 調(diào)用 “TRCV” 在OB1內(nèi)調(diào)用
進(jìn)入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,從右側(cè)窗口 “Instructions” > “Communications” > “OPEN User Communications”下調(diào)用 “TRCV” 指令,配置接口參數(shù),,如圖10.所示。
![](http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/PROFINETnew/S71200_S71200/PLC_1%E7%BC%96%E7%A8%8BPIC/PLC1_TRCV_Block%20parameter.gif)
圖10. 調(diào)用 TRCV 指令并配置接口參數(shù)
參數(shù)說明:
輸入接口參數(shù):
EN_R
|
:= TRUE
|
// 準(zhǔn)備好接收數(shù)據(jù)
|
ID
|
:= 1
|
// 連接號,使用的是 TCON 的連接參數(shù)中 ID號
|
LEN
|
:= 100
|
// 接收數(shù)據(jù)長度為 100 個字節(jié)
|
DATA
|
:= P#DB4.DBX0.0 BYTE 100
|
// 接收數(shù)據(jù)區(qū)的地址
|
輸出接口參數(shù):
NDR
|
:= M310.0
|
// 該位為 1,接收任務(wù)成功完成
|
BUSY
|
:= M310.1
|
// 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
|
ERROR
|
:= M310.2
|
// 通信過程中有錯誤發(fā)生,該位置 1
|
STATUS
|
:= MW312
|
// 有錯誤發(fā)生時,會顯示錯誤信息號
|
RCVD_LEN
|
:= MW314
|
// 實際接收數(shù)據(jù)的字節(jié)數(shù)
|
注意:LEN設(shè)置為 65535 可以接收變長數(shù)據(jù)。