西門子6ES7954-8LC02-0AA0
產(chǎn)品品牌:siemens/西門子
產(chǎn)品規(guī)格:全新原裝
產(chǎn)品質(zhì)量:質(zhì)量保證
產(chǎn)品價格:價格優(yōu)勢
公司大量現(xiàn)貨?。?!
【同樣的價格、同樣的品牌、給您不一樣的服務(wù)】
上海晨蒞自動化科技有限公司(西門子系統(tǒng)集成商)專業(yè)銷售西門子S7-200/300/400/1200PLC、數(shù)控系統(tǒng)、變頻器、人機界面、觸摸屏、伺服、電機、西門子電纜等,并可提供西門子維修服務(wù),歡迎來電垂詢
聯(lián)系人: 杜浩 (銷售經(jīng)理)
手機 : 18721469298
QQ : 276484128
地址:上海市金山區(qū)楓涇鎮(zhèn)涇波路370號
概述
S7-1200 與 S7-300 之間的以太網(wǎng)通信方式比較多,可以采用ISO on TCP、TCP和 S7 的方式進行通信。在S7-1200 CPU 中采用ISO on TCP和TCP這兩種協(xié)議進行通信所使用的指令是相同的,都使用 T-block ( TSEND_C, TRCV_C, TCON, TDISCON, TSEN, TRCV ) 指令編程。S7-300 CPU一側(cè)如果使用的是CPU集成的PN接口,連接不在STEP7的NetPro中建立連接,而是使用西門子提供的OPEN IE 的方式來實現(xiàn)。
本文主要介紹了如何實現(xiàn)在S7-1200 和S7-300 CPU集成PN口之間的ISO on TCP通信,包括通信的基本步驟、配置及編程等內(nèi)容。具體的實現(xiàn)方法有多種,比如在S7-1200中可以使用不帶連接的通信指令(TCON, TDISCON, TSEN, TRCV),也可以使用帶連接的通信指令(TSEND_C, TRCV_C);在S7-300中可以采用功能塊編程的方式來實現(xiàn),也可以使用Open Communication Wizard工具(OPEN IE向?qū)В┑姆绞絹斫PEN IE的通信。
為了方便理解,本文在S7-1200中使用不帶連接的通信指令TCON, TDISCON, TSEN, TRCV,在S7-300側(cè)通過功能塊編程的方式來實現(xiàn)。
關(guān)于S7-1200和S7-300 OPEN IE通信的文檔可以登錄西門子自動化與驅(qū)動集團網(wǎng)站的下載中心,網(wǎng)址:http://www.ad.siemens.com.cn/download/ ,根據(jù)如表1提供的文檔編號搜索并下載相關(guān)文檔。
文檔編號 | 中文標題 |
A0426 | 西門子 S7-1200 PLC 技術(shù)參考Version 1.5 |
A0416 | S7-1200與S7-300 的以太網(wǎng)TCP 及ISO on TCP通信 |
A0421 | 如何實現(xiàn)兩個S7-1200 CPU之間的以太網(wǎng)通信 |
A0415 | 通過S7協(xié)議實現(xiàn)S7-1200 與S7-300的通信 |
A0414 | S7-1200基本以太網(wǎng)通信使用指南 |
A0284 | 使用西門子PLC集成的PN口實現(xiàn)S5 兼容通信使用入門 |
A0345 | 使用 Open Communication Wizard 建立開放式 ISO on TCP 通信 |
A0346 | 使用 Open Communication Wizard 建立開放式 UDP 通信 |
A0347 | 使用 Open Communication Wizard 建立開放式 TCP 通信 |
A0344 | S7-300和S7-400集成PN口的S7通信 |
A0334 | PN CPU/CP的開放式通訊-Open IE |
表1 下載中心文檔列表
2 軟硬件及所要完成的通信任務(wù)
2.1硬件設(shè)備
實驗的硬件設(shè)備:
1、S7-1200 CPU,CPU1212 AC/DC/RLY(6ES7 212-1BD30-0XB0)
2、S7-300 PN CPU,CPU317-2PN/DP(6ES7 317-2EH13-0AB0 V2.6.7)
3、PC機(帶以太網(wǎng)卡)
4、SCALANCE X216交換機,S7-1200、S7-300和PC通過交換機互連起來
5、TP以太網(wǎng)電纜
2.2 軟件環(huán)境
1、STEP7 Basic V10.5 SP2
2、STEP7 V5.4 SP5
3、通信所需的功能塊,請參見附件提供的例程 ”Sample_1 ( 50 KB ) ” 或參考下載中心文檔:《A0284 使用西門子PLC集成的PN口實現(xiàn)S5 兼容通信使用入門》提供的程序。下載鏈接:80490650
2.3 所要完成的通信任務(wù)
本例中所要完成的通信任務(wù)定義為:
1、 將S7-1200的發(fā)送數(shù)據(jù)塊DB3里的8個字節(jié)數(shù)據(jù)發(fā)送到S7-300的DB3中。
2、 將S7-300 DB3里接收到的8個字節(jié)數(shù)據(jù)再發(fā)送到S7-1200的接收數(shù)據(jù)塊DB4中。
3 S7-1200 CPU的組態(tài)編程
3.1創(chuàng)建新項目
1、打開STEP 7 Basic 軟件并新建項目
在STEP 7 Basic 的 “Portal View”中選擇“Create new project”創(chuàng)建一個新項目,項目名稱為“GS_ISO”。
2、添加硬件并命名PLC
然后進入 “Project view”,在“Project tree” 下雙擊 “Add new device”,在對話框中選擇所使用的S7-1200 CPU(6ES7 212-1BD30-0XB0)添加到機架上,設(shè)備名為 PLC_1,如圖1所示。
圖1 添加新的PLC站
為了編程方便,我們使用 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、為 S7-1200 CPU的PROFINET 通信口分配以太網(wǎng)地址
在 “Device View”中點擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會出現(xiàn)PROFINET 接口的屬性,在 “Ethernet addresses”下分配IP 地址為 192.168.0.2 ,子網(wǎng)掩碼為255.255.255.0,如圖3所示。
圖3為 S7-1200 CPU的PROFINET 接口分配IP地址
3.2調(diào)用并配置通信指令
1、在 PLC_1 的 OB1 中調(diào)用 “TCON”通信指令
進入“Project tree > PLC_1 > Program blocks > OB1” 主程序中,從右側(cè)窗口 “Instructions > Extended Instructions > Communications” 下調(diào)用 “TCON” 指令,并選擇 “Single Instance” 生成背景 DB塊,如圖4所示。
圖4 調(diào)用TCON指令
2、定義PLC_1 的 “TCON” 連接參數(shù)
PLC_1 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“Properties > Configuration > Connection beter”中設(shè)置,如圖5所示。連接參數(shù)說明:
End point
:選擇通信伙伴,這里選擇“unspecified”
Address
:指定通信伙伴S7-300站的IP地址“192.168.0.3”
Connection type
:選擇通信協(xié)議為ISO on TCP
Connection ID
:連接的地址 ID 號,這個 ID 號在后面的編程里會用到
Connection data
:創(chuàng)建連接時,系統(tǒng)會自動生成本地的連接 DB 塊,所有的連 接數(shù)據(jù)都會存在這個 DB 塊中。
:選擇本地 PLC_1作為主動連接,S7-300 CPU作為被動連接
Address details
:設(shè)定 TSAP 地址這里本地設(shè)置成“PLC_1”, TSAP ID自動為“50.4C.43.5F.31”,伙伴方設(shè)置成不設(shè)置TSAP(ASCII),設(shè)置TSAP ID 為“E0.02.50.4C.43.5F.31”。
圖5 “TCON” 指令的連接參數(shù)
3、分配 “TCON” 的塊參數(shù)
在指令下方的屬性窗口“Properties > Configuration > block beter”中設(shè)置,可以根據(jù)需要自己為“TCON” 塊指定相應(yīng)的輸入輸出參數(shù)。指定好參數(shù)的塊,如圖6所示。其中M8.0作為啟動連接的觸發(fā)位,連接ID = 1與連接參數(shù)里面的設(shè)置相同。
圖6 “TCON” 的塊參數(shù)
4、在 PLC_1 的 OB1 中調(diào)用 “TSEND” 發(fā)送通信指令
首先創(chuàng)建一個發(fā)送數(shù)據(jù)塊,通過 “Project tree > PLC_1 > Program blocks > Add new block”,選擇 “Data block” 創(chuàng)建 DB 塊,選擇絕對尋址,點擊“OK”鍵,如圖7所示。
圖7 創(chuàng)建一個發(fā)送數(shù)據(jù)塊DB3
打開創(chuàng)建的發(fā)送數(shù)據(jù)塊,在數(shù)據(jù)塊中定義發(fā)送數(shù)據(jù)區(qū)為 8個字節(jié)的數(shù)組,如圖8所示。
圖8 創(chuàng)建發(fā)送數(shù)據(jù)區(qū)
然后在OB1 中調(diào)用“TSEND”發(fā)送通信指令,并為“TSEND”指定參數(shù)。使用M0.3( 2Hz 的時鐘脈沖)上升沿激活發(fā)送任務(wù),指定發(fā)送數(shù)據(jù)區(qū)為P# DB3.DBX0.0 BYTE 8,連接 ID = 1與連接參數(shù)里面的設(shè)置相同,發(fā)送長度LEN=8。分配好參數(shù)的“TSEND”塊如圖9所示。
圖9 調(diào)用“TSEND”發(fā)送通信塊
5、在 PLC_1 的 OB1 中調(diào)用“TRCV”接收通信指令
同樣,先創(chuàng)建一個接收數(shù)據(jù)塊DB4 ,如圖10所示?!癟RCV”接收通信指令的調(diào)用方法與“TSEND” 發(fā)送通信指令的調(diào)用方法相同,M8.1作為接收指令的使能位,如圖11所示。
圖10創(chuàng)建接收數(shù)據(jù)區(qū)
圖11 調(diào)用“TRCV”接收通信塊
6、在 PLC_1 的 OB1 中調(diào)用 “TDISCON”通信指令
最后,為了斷開通信鏈接,我們需要調(diào)用“TDISCON”通信指令,如圖12所示。
圖12 調(diào)用“TDISCON”通信塊
3.3下載程序
至此,S7-1200側(cè)的組態(tài)和編程都已經(jīng)完成,可以在項目編譯無錯誤后,直接下載到S7-1200 CPU中,并啟動CPU的運行。
4 S7-300 CPU的組態(tài)編程
S7-300帶PN接口的CPU支持ISO on TCP通信功能,通過該集成以太網(wǎng)接口組態(tài)ISO on TCP通信時,只能使用開放式通信專用的功能塊,這些專用的功能塊可以在STEP7 “ 通訊塊”的 “標準庫 ”中找到,如圖13所示。
圖13 S7-300 CPU通信指令庫
庫中提供了下列通信功能塊:
′> FB 65 "TCON",用于建立連接,連接時需要UDT65來提供參數(shù)
> FB 66 "TDISCON",用于終止連接
> FB 63 "TSEND",用于發(fā)送數(shù)據(jù)到S7站點、S5站點、PC站或者第三方設(shè)備
> FB 64 "TRCV" 用于從S7站點、S5站點、PC站或者第三方設(shè)備接收數(shù)據(jù)
要通過CPU 的 集成PN 接口實現(xiàn)開放的ISO on TCP通信,不能在Netpro網(wǎng)絡(luò)組態(tài)中直接建立連接,必須通過程序指定每個連接的參數(shù)。用于通信的FB標準功能塊,請參見附件提供的例程 ”Sample_1 ( 50 KB ) ” 或參考下載中心文檔《A0284 使用西門子PLC集成的PN口實現(xiàn)S5 兼容通信使用入門》提供的例程。下載鏈接:80490650
從附件提供的例程 ”Sample_1 ( 50 KB ) ” 中將把需要的程序塊拷貝到新建的項目中,包括:
> UDT 65 "TCON_PAR",存放用戶通信參數(shù)
> FB420 "SET_ISO_ENDPOINT" ,用于修改UDT65內(nèi)通信對象參數(shù)
> FC21, 被FB420調(diào)用
隨后,使用通信功能塊 FB65 "TCON"、FB66 "TDISCON"、FB63 "TSEND" 和 FB64 "TRCV" 完成程序的編寫。
4.1創(chuàng)建新項目
1、打開STEP7,新建一個項目
2、在項目中插入一個SIMATIC 300的站
3、組態(tài)硬件,插入一個CPU317-2PN/DP的CPU,并為PN接口分配IP地址“192.168.0.3”,如圖14所示。同時,在CPU的“Cycle/Clock Memory”屬性頁中指定MB0為時鐘存儲器,在程序中可以使用M0.3(2Hz 的時鐘脈沖)去自動激活發(fā)送任務(wù),如圖15所示。
圖14為PN接口分配IP地址
圖15設(shè)置時鐘存儲器字節(jié)
4.2編寫通信程序
1、從樣例程序中拷貝通信所需的塊
從附件提供的sample_1 ( 50 KB ) 例程中把需要的FB420、FC21與UDT65程序塊拷貝到新創(chuàng)建的項目中,如圖16所示。
圖 16
2、生成數(shù)據(jù)塊
在程序中創(chuàng)建一個DB塊,塊號不限(本例為DB101),在塊中建立變量DB_VAR,類型為UDT65,如圖17所示。
圖17
3、生成并調(diào)用FB塊
首先生成一個FB塊(本例為FB400),在FB400靜態(tài)變量區(qū)建立一個結(jié)構(gòu)“T_TSAP“,包含如下變量,并為變量分配初始值,如圖18所示。
1) LOC_RACK_SLOT (BYTE)= B#16#2 表示有兩個前導(dǎo)字符 0xE0 (CPU31x-2PN/DP 或者 CPU319-3PN/DP規(guī)定)和 0x02(CPU槽號)
2) LOC_TSAP(STRING14)= 本地用戶定義的ASCII字符'PLC_1' (注意要與S7-1200側(cè)設(shè)置保持一致)。
3) REM_RACK_SLOT(BYTE)= B#16#0 不使用兩個前導(dǎo)符。
4) REM_TSAP (STRING16)= 遠程用戶定義的ASCII字符'PLC_1' (注意要與S7-1200側(cè)設(shè)置保持一致)。
圖18
然后在生成的FB400中調(diào)用FB420,如圖19所示。
圖19
其中參數(shù)的含義如下:
1)ID: 連接ID,與S7-1200里的設(shè)置保持一致
2)DEV_ID:用于本PLC型號(注意不是通信對方)
DEV_ID = B#16#1本PLC型號為 IM151-8 PN/DP CPU
DEV_ID = B#16#2本PLC型號為CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3本PLC型號為CPU319-3PN/DP
DEV_ID = B#16#5本PLC型號為CPU41x-3PN/DP
3)ACTIVE: 主動或是被動建立連接,通信雙方必須一個主動,一個被動,本例中S7-300側(cè)為被動方。
4)T_TSAP: 靜態(tài)變量區(qū)的結(jié)構(gòu)變量,用于ISO ON TCP 通信的TSAP地址
5)IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址,即S7-1200的IP地址192.168.0.2
6)CON_DB: 用UDT65生成的變量,即DB1014、在OB1中調(diào)用發(fā)送和接收功能塊
在OB1中先調(diào)用FB400功能塊,為其指定背景數(shù)據(jù)塊DB400,如圖20所示。
圖20
然后再在OB1中依次調(diào)用通信功能塊FB65、FB64、FB63、FB66。其中發(fā)送和接收功能塊FB64、FB63的數(shù)據(jù)區(qū)都為DB3,建立DB3如圖21所示。關(guān)于塊的使用請參考STEP7的在線幫助或相關(guān)文檔說明。
圖21
FB65 “TCON”,建立連接功能塊,如圖22所示。通過輸入?yún)?shù) "REQ"一個上升沿來建立連接。 “ID” 為連接ID,“CONNECT” 參數(shù)填寫用 UDT65 生成的變量, 連接建立后會一直保持,直到調(diào)用FB66 "TDISCON" 斷開連接、CPU停止或者斷電。其中CONNECT指定為通過UDT65生成的DB塊,即DB101, ID = 1。通過M8.0啟動作業(yè),執(zhí)行連接的建立。
圖22
FB64 “TRCV”,接收功能塊,如圖23所示。"TRECV" EN_R始終為TRUE, ID 填寫連接ID,”DATA” 填寫接收數(shù)據(jù)區(qū),輸出參數(shù) "NDR" 用于表示新的數(shù)據(jù)已經(jīng)收到,輸出參數(shù) "LEN" 表示接收的數(shù)據(jù)長度。本例中連接ID = 1。指定DB3作為接收數(shù)據(jù)塊,接收數(shù)據(jù)的字節(jié)長度為8,接收作業(yè)通過M8.1使能。
圖23
FB63 “TSEND”,發(fā)送功能塊,如圖24所示。連接ID = 1。指定DB3為發(fā)送數(shù)據(jù)塊,發(fā)送字節(jié)長度為8,發(fā)送作業(yè)通過M0.3觸發(fā)。"TSEND" 發(fā)送請求依靠輸入?yún)?shù)"REQ"的上升沿來實現(xiàn),如果“BUSY”位為true時不要觸發(fā)"REQ"。輸出參數(shù) "DONE", "ERROR" 和 "STATUS" 用于評估工作的情況。
圖24
FB66 “TDISCON”,取消連接功能塊,如圖25所示??梢愿鶕?jù)需要取消ID=W#16#1的連接,作業(yè)通過M8.2使能。
圖25
4.3下載程序
S7-300側(cè)的組態(tài)和編程都完成后,直接下載到S7-300 CPU中,并啟動CPU的運行。
5 監(jiān)控通信結(jié)果
對S7-1200和S7-300都組態(tài)和編程后,下載所有組態(tài)及程序并搭建好網(wǎng)絡(luò)后,首先在在S7-1200中將M8.0置位為1,然后再在S7-300中將M8.0置位為1,兩個站的“TCON” 被激活,建立兩個站之間的ISO on TCP連接。
連接正常建立后,即可以進行數(shù)據(jù)的交換。在S7-1200和S7-300站中將 ”TRCV” 功能塊的EN_R置位為1,使能接收,監(jiān)控通信結(jié)果如圖26所示。
通過監(jiān)控結(jié)果可以看到,S7-1200中發(fā)送數(shù)據(jù)塊DB3的8個字節(jié)數(shù)據(jù)被發(fā)送到S7-300站的DB3中,同時,S7-300的DB3中接收到的數(shù)據(jù)又被發(fā)送到S7-1200的接收數(shù)據(jù)塊DB4中。
圖26 在線監(jiān)控通信結(jié)果
描述
對于 SIMATIC S7-1200,從 CPU V2.0固件開始,STEP 7 (TIA-Portal) 提供 T_CONFIG 指令可以通過編程控制 CPU 集成 PROFINET 接口的配置。
圖. 01
可以設(shè)置如下接口配置:
配置數(shù)據(jù)存儲在 "Conf_Data" 結(jié)構(gòu)體數(shù)據(jù)類型中。
圖. 02
以PLC數(shù)據(jù)類型創(chuàng)建 "Conf_Data" 結(jié)構(gòu)體數(shù)據(jù)類型。
它包含系統(tǒng)指定的數(shù)據(jù)類型:
說明
正確使用 T_CONFIG 指令需要注意以下幾點:
序號. | 步驟 |
1 |
CPU 屬性中,在 "Ethernet address" 下,選擇想修改的設(shè)置: 下列設(shè)置可以被改變:
必須選擇"... using a different b".
|
2 |
此外,地址數(shù)據(jù)結(jié)構(gòu) IF_CONF_v4 或 PROFINET 設(shè)備名數(shù)據(jù)結(jié)構(gòu) IF_CONF_NOS 中的參數(shù) "Mode" 必須為值 1 (= 配置數(shù)據(jù)永久有效)。 取決于是否只修改接口地址還是也要修改PROFINET 設(shè)備名,必須設(shè)置 header 數(shù)據(jù)類型 IF_CONF_Header 中的 "SubfieldCount" 參數(shù)值為 "1" 或 "2" (= 結(jié)構(gòu)體中的所有子域) (見圖. 02). |
3 |
對數(shù)據(jù)類型 IP_V4 ,以 "Array of Bytes" 輸入每一個要修改的地址。
|
4 |
以 "Array of Bytes" 方式一個字符一個字符的傳送要修改的 PROFINET 名到 NOS 參數(shù)。 要遵從PROFINET名字的命名規(guī)則(如, 最多240個小寫字符、數(shù)字、連字號、句號). PROFINET 名可以短于 240 字節(jié)但必須大于 2 字節(jié)。 必須根據(jù) "PROFINET 名字長度 + 6"來修改 "Length" 變量。
|
表 01
安全提示
警告
本條目描述的功能和解決方案主要限于實現(xiàn)自動化任務(wù)。此外,如果該系統(tǒng)與工廠其它部分或整個互聯(lián)網(wǎng)有連接,請注意必須采取適當(dāng)?shù)陌踩?措施以遵循相應(yīng)的工業(yè)安全標準。更多信息參見條目ID: 50203404.
下載
學(xué)習(xí) T_CONFIG 指令,可以參考下面的例子項目。
它包含通過操作面板 KTP 600 Basic PN 修改 PROFINET 接口的配置。
當(dāng)T_CONFIG 指令使用時,HMI 通過 "Change connection" 事件與新配置了PROFINET接口的控制器同步建立通訊。
由于 KTP 600 Basic PN 不支持無類別域間路由(CIDR),最后的8位組IP地址只能在C類網(wǎng)絡(luò)中修改。
KTP 600 Basic PN 也可以在沒有硬件時由 STEP 7 V11 模擬。
項目中的 IP 地址如下:
圖. 06
KTP 600 Basic PN 用戶接口包含下列元素:
要進行確認,在 STEP 7 V11 中,可以通過刷新可訪問節(jié)點來檢查 IP 分配,通過"Online & Diagnostics" 模式下的"Assign name"功能來檢查PROFINET設(shè)備名。
S7-1200存儲卡的基本介紹
S7-1200CPU使用的存儲卡為SD卡,存儲卡中可以存儲用戶項目文件,有如下三種功能:
1. 作為CPU的裝載存儲區(qū),用戶項目文件可以僅存儲在卡中,CPU中沒有項目文件,離開存儲卡無法運行。
2. 在有編程器的情況下,作為向多個S7-1200PLC傳送項目文件的介質(zhì)。
3. 忘記密碼時,清除CPU內(nèi)部的項目文件和密碼。
4. 24M卡可以用于更新S7-1200CPU的固件版本
圖1: S7-1200存儲卡
如何插入存儲卡:
將CPU上擋板向下掀開,可以看到右上角有一MC卡槽,將存儲卡缺口向上插入,如下圖所示:
圖2:插入存儲卡
注意:
? 對于S7-1200CPU,存儲卡不是必需的。
? 將存儲卡插到一個處于運行狀態(tài)的CPU上,會造成CPU停機。
? S7-1200 CPU 僅支持由西門子制造商預(yù)先格式化過的存儲卡,即下列訂貨號產(chǎn)品:
訂貨號 |
容量 |
6ES7 954-8LF01-0AA0 |
24MB |
6ES7954-8LC01-0AA0 |
4MB |
6ES7 954-8LB01-0AA0 |
2MB |
表1:存儲卡信息
? 如果使用 WINOOWs 格式化程序?qū)?/span>SIMATIC 存儲卡重新進行格式化,CPU將無法使用該重新格式化的存儲卡。
? 目前S7-1200還無法配合存儲卡實現(xiàn)配方和數(shù)據(jù)歸檔之類的高級功能。
2 存儲卡的工作模式
存儲卡有兩種工作模式:
? 程序卡:存儲卡作為S7-1200 CPU 的裝載存儲區(qū),所有程序和數(shù)據(jù)存儲在卡中,CPU 內(nèi)部集成的存儲區(qū)中沒有項目文件,設(shè)備運行中存儲卡不能被拔出。
? 傳輸卡:用于從存儲卡向CPU傳送項目,傳送完成后必須將存儲卡拔出。CPU可以離開存儲卡獨立運行。
修改存儲卡的工作模式:
在STEP 7 Basic軟件的項目視圖下,點擊左側(cè)”Project View“--->"SIMATIC Card Reader" --->您的讀卡器型號,如下圖所示:
圖3:Project View
右擊存儲卡的盤符(這里是F:),選擇“屬性”,打開下面窗口:
圖4:MC屬性
用戶在“Card type”選擇需要的工作模式,點擊“OK”完成設(shè)定。
3 使用程序卡的不同模式
優(yōu)點:更換CPU時不需要重新下載項目文件。
3.1 裝載用戶項目文件到存儲卡:
? 第一步:按照上面方法將存儲卡設(shè)定到“編程”模式。建議客戶做此操作之前清除存儲卡中的所有文件。
? 第二步:設(shè)置CPU的啟動狀態(tài):在"Project tree"中右擊CPU選擇“屬性”,在“屬性”窗口中點擊“Startup”,此處我們必須選擇“Warm restart-RUN”
圖5: Startup
? 第三步:將CPU斷電。
? 第四步:將存儲卡插到CPU卡槽內(nèi)
? 第五步:將CPU上電
? 第六步:在STEP 7 Basic中點擊下載,將項目文件全部下載到存儲卡中。此時下載是將項目文件(包括用戶程序、硬件組態(tài)和強制值)下載到存儲卡中,而不是CPU內(nèi)部集成的存儲區(qū)中。
完成上述步驟后,CPU可以帶卡正常運行。此時如果將存儲卡拔出,CPU會報錯,"ERROR"紅燈閃爍。
3.2 常見問題:
常見問題1:
為什么插上存儲卡后CPU的“MAINT”燈閃爍,使用STEP 7 Basic下載是提示報錯“The download of the hardware configuration failed (0050 -133 2 2458)”?
回答:
請清除存儲卡中的所有文件,重新使用STEP7 Basic軟件將存儲卡設(shè)置到“編程”模式,然后再重復(fù)上述步驟。請您也檢查存儲卡上的撥碼開關(guān),檢查存儲卡是否處于寫保護模式。
常見問題2:
為什么CPU斷電上電后進入停止狀態(tài),而不進入運行狀態(tài)?
回答:
原因是CPU的啟動方式不是“Warm restart-RUN”,詳細請參考上面“第二步”。
4 使用傳輸卡模式
優(yōu)點:在沒有編程器的情況下,方便快捷地向多個S7-1200PLC拷貝項目文件。
4.1 向處于傳輸模式的存儲卡中裝載項目
? 第一步:按照上面方法將存儲卡設(shè)定到“編程”模式。建議客戶做此操作之前清除存儲卡中的所有文件。
? 第二步:設(shè)置CPU的啟動狀態(tài):在"Project tree"中右擊CPU選擇“屬性”,在“屬性”窗口中點擊“Startup”,此處我們必須選擇“Warm restart-RUN”
? 第三步:直接拖拽PLC設(shè)備到存儲卡盤符
圖6:拖拽
用戶也可以直接將一張已經(jīng)做好的“程序卡”更改為“傳輸卡”。
4.2 從存儲卡復(fù)制項目到S7-1200PLC
? 第一步:將CPU斷電
? 第二步:插卡到CPU卡槽
? 第三步:將CPU上電,用戶會看到CPU的"MAINT"黃燈閃爍
? 第四步:將CPU斷電,將存儲卡拔出
? 第五步:將CPU上電
常見問題:
為什么CPU斷電上電后進入停止狀態(tài),而不進入運行狀態(tài)?
回答:
1. CPU的啟動方式不是“Warm restart-RUN”,詳細請參考上面“第二步”。
2. 檢查第三步,必須拖拽PLC項目到存儲卡盤符,而不是程序塊等其他項目內(nèi)容。下載到存儲卡中的項目文件有可能不完整,例如確實硬件組態(tài)等。
5 使用存儲卡清除密碼
如果客戶忘記了之前設(shè)定到S7-1200的密碼,通過”恢復(fù)出廠設(shè)置“無法清除S7-1200內(nèi)部的程序和密碼,因此唯一的清除方式是使用存儲卡。詳細步驟如下:
1. 將S7-1200設(shè)備斷電
2. 插入一張存儲卡到S7-1200CPU上,存儲卡中的程序不能有密碼保護
3. 將S7-1200設(shè)備上電
S7-1200CPU上電后,會將存儲卡中的程序復(fù)制到內(nèi)部的FLASH寄存器中,即執(zhí)行清除密碼操作。
客戶也可以用相同的方法插入一張全新的或者空白的存儲卡到S7-1200CPU,設(shè)備上電后,S7-1200CPU會將內(nèi)部存儲區(qū)的程序轉(zhuǎn)移到存儲卡中,拔下存儲卡后,S7-1200CPU內(nèi)部將不在有用戶程序,即實現(xiàn)了清除密碼。存儲卡中的內(nèi)容可以使用讀卡器清除。
注意:不要格式化存儲卡
6 使用24M存儲卡更新S7-1200CPU的固件版本
S7-1200的固件版本可以從西門子官*網(wǎng)站下載:http://support.automation.siemens.com/WW/view/cn 。用戶可以使用西門子網(wǎng)站右上方的搜索引擎在“Download”分類中搜索“S7-1200 firmware”。
注意:
1. 不同訂貨號的S7-1200CPU的固件文件不相同,下載地址也不相同。用戶在下載和更新固件之前請核對產(chǎn)品訂貨號。
2. 2M存儲卡不能用于CPU固件升級。
3. 固件升級前CPU內(nèi)部存儲的項目文件(程序塊、硬件組態(tài)等)不受影響,不會被清除。
4. 如果存儲卡中的固件文件訂貨號與實際CPU的訂貨號不一致,即使執(zhí)行了下列步驟,CPU的原固件版本也不會改變。
更新CPU的固件具體步驟如下:
? 第一步:使用電腦通過讀卡器清除存儲卡中內(nèi)容。注意:不要格式化存儲卡!
? 第二步:從西門子官*網(wǎng)站下載最新版本的固件文件。下載并解壓縮,用戶可以得到一個“S7_JOB.SYS”文件和“FWUOPDATE.S7S”文件夾。
? 第三步:將“S7_JOB.SYS”文件和“FWUOPDATE.S7S”文件夾拷貝到存儲卡中。
? 第四步:將存儲卡插到CPU1200卡槽中。此時CPU會停止,“MAINT”指示燈閃爍。
? 第五步:將CPU斷電上電。CPU的“RUN/STOP”指示燈紅綠交替閃爍說明固件正在被更新中。“RUN/STOP”指示燈亮,“MAINT”指示燈閃爍說明固件更新已經(jīng)結(jié)束。
? 第六步:拔出存儲卡
? 第七步:再次將CPU斷電上電
本文介紹了通過OPEN IE的方式實現(xiàn)S7-1200與SIMOTION D410PN之間的TCP通信的方法,包括通信的基本配置、組態(tài)和編程等內(nèi)容。S7-1200實現(xiàn)TCP通訊的指令有兩種,一是不帶連接的指令(TCON,TDISCON,TSEND,TRCV),另一種是帶連接的指令(T RCV_C,TSEND_C);SIMOTON包含的通信指令包括tcpOpenClient,tcpOpenServe r,tcpSend,tcpReceive,tcpCloseSever,tcpCloseConnection。
本文選用S7-1200不帶連接的指令TCON,TDISCON,TSEND,TRCV,實現(xiàn)與D410 PN的通訊。
設(shè)備 |
訂貨號 |
版本 |
CPU 1214C DC/DC/DC |
6ES7214-1AE30-0XB0 |
V2.2 |
D410PN |
6AU1410-0AB00-0AA0 |
Version B, FW V4.2 |
SCANLANCE X208 |
6GK5208-0BA10-2AA3 |
V3.1 |
表1 測試所采用的硬件列表
§ TIA Portal V11 SP2
§ SCOUT V4.2.1
2.3 通訊參數(shù)設(shè)置
硬件連接配置
圖1 硬件連接示意圖
CPU 1214C和D410PN本身都帶有集成PN口,可以直接使用。
IP 地址設(shè)置(子網(wǎng)掩碼均為255.255.255.0):
DEVICE |
IP Address |
CPU 1214C |
192.168.0.4 |
D410DP |
192.168.0.2 |
PC |
192.168.0.10 |
表2 IP地址設(shè)置
打開TIA Portal軟件,新建一個項目,在“添加新設(shè)備”中選擇所需的硬件及版本,如圖2所示。
圖2 選擇設(shè)備和版本
打開設(shè)備視圖,設(shè)置設(shè)備“屬性”下的以太網(wǎng)地址為192.168.0.4,子網(wǎng)掩碼為255. 255.255.0。見圖3。
圖3 設(shè)置以太網(wǎng)地址
在設(shè)備視圖的屬性窗口中設(shè)置時鐘存儲器,將時鐘存儲器的地址設(shè)置為MB20,并使用其中的M20.5位,0和1信號以1Hz頻率切換,用來循環(huán)激活發(fā)送任務(wù),見圖4。
圖4 時鐘存儲器設(shè)置
打開SCOUT軟件,新建一個項目,設(shè)置PG/PC接口為電腦的以太網(wǎng)卡,雙擊“INSERT SIMOTION DEVICE”后,選擇相應(yīng)版本的D410PN插入,并打開硬件組態(tài)畫面,在其中設(shè)置PN口的以太網(wǎng)地址和子網(wǎng)掩碼,見圖5。
圖5 組態(tài)D410PN地址
TCON,TDISCON,TSEND,TRCV等指令均可以在右側(cè)指令中的“通信—〉開放式用戶通信”找到。本文中所有通訊指令均在background 中執(zhí)行。
S7-1200在本文中作為Server,通訊開始前先激活TCON指令來建立服務(wù)器端口,并等待Client的建立連接請求,一旦通信連接成功建立,此時“REQ”就不再起作用,若想重新建立連接需先調(diào)用“TDISCON”斷開連接,再從新激活“TCON”重新建立連接。
圖6 調(diào)用TCON
“REQ”:激活TCON功能。
“ID”:設(shè)置所建立連接的ID,以后的TSEND、TRCV、TDISCON均使用此ID。
“CONNECT”:連接配置DB,在配置完TCON參數(shù)后自動生成。
“Done”:建立連接任務(wù)完成后置1。
“BUSY”:建立連接任務(wù)執(zhí)行中置1。
“ERROR”為1時,在STATUS中顯示錯誤代碼,“ERROR”為0時,在STATUS中顯示指令執(zhí)行狀態(tài)代碼。
當(dāng)連接建立成功后,通過程序段2可以將“opensever”置0。
在調(diào)用TCON指令時系統(tǒng)會要求設(shè)置連接參數(shù),見圖7。
圖7 TCON連接參數(shù)設(shè)置
“伙伴”:選擇未指定。
“地址”:設(shè)置與S7-1200通訊的SIMOTION的地址。
“連接類型”:選擇TCP。
“連接ID”: 發(fā)送、接收和連接斷開所使用的ID。
“連接數(shù)據(jù)”:設(shè)置新建或使用已有的連接DB。
“主動建立連接”:選擇主動建立連接的一方為客戶端,另一方為服務(wù)器。
“端口”:設(shè)置本地和伙伴的端口號,在SIMOTION的指令中會用到這里。
設(shè)置TCON參數(shù)時要先選擇“連接數(shù)據(jù)”中的“新建”,建立一個新的Connection DB,然后再填寫各個參數(shù)。
在通訊成功建立后,激活TSEND,TRCV指令(將發(fā)送指令的“REQ”端置1,將接收指令的“EN_R”置1),用來發(fā)送和接受數(shù)據(jù)。
圖8 TSEND連接參數(shù)設(shè)置
圖9 TRCV連接參數(shù)設(shè)置
注意:
(1) 在建立“DATA”中要插入的發(fā)送數(shù)據(jù)和接受數(shù)據(jù)DB時,其塊訪問的方式必須是“標準-與S7-300/400兼容”,否則在激活該指令時會報錯,見圖10。
(2) TSEND與TRCV的“ID”必須與TCON中設(shè)置的相同,而此“ID”與SIMOTION中的“ID”未必相同。
(3) TRCV在接收數(shù)據(jù)成功后,“NDR”會自動置1,且“RCVD_LEN”會顯示接收到的數(shù)據(jù)長度。
圖10 數(shù)據(jù) DB建立
若要斷開當(dāng)前連接,則調(diào)用TDISCON。成功斷開連接后,根據(jù)程序段6,“dis con”位會被重新置0。
圖11 TDISCON連接參數(shù)設(shè)置
SIMOTION的通信指令可以在Command library中的“Communication->Data transfer”目錄下找到。通信程序塊“TCP”放在background中運行。
tcpOpenClient指令,該指令用來在simotion 側(cè)激活客戶端端口,并向服務(wù)器發(fā)送連接請求,若請求成功,則建立連接,并返回連接ID。該指令需使用上跳沿單次觸發(fā),此函數(shù)只調(diào)用一次,得到連接ID后應(yīng)停止調(diào)用。
圖12 tcpOpenClient指令參數(shù)設(shè)置
“port”:設(shè)置simotion本地端口號。
“severAddress”:設(shè)置通訊服務(wù)器(S7-1200)地址(192.168.0.4)。
“serverport”:設(shè)置服務(wù)器(S7-1200)端口號,必須與S7-1200組態(tài)中設(shè)置的相同。
“nextCommand”:
IMMEDIATELY:命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行。
WHEN_COMMAND_DONE:命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,異步執(zhí)行。
本文中將程序放在simotion的background中執(zhí)行,因此若使用WHEN_COMMAND_DONE模式,有可能在該命令執(zhí)行時間過長情況下導(dǎo)致background執(zhí)行超時,系統(tǒng)報錯停機。
“OUT”:函數(shù)調(diào)用返回信息,包括執(zhí)行狀態(tài)和返回的連接ID,后面的發(fā)送和接收指令均使用該ID。數(shù)據(jù)類型為結(jié)構(gòu)體(StructRetTcpOpenClient),參考表3。
結(jié)構(gòu) |
名稱 |
數(shù)據(jù)類型 |
functionResult |
狀態(tài)信息,查看 連接是否建立 |
DINT |
connectionId |
連接號 |
DINT |
表3 TcpOpenClient返回值結(jié)
TcpSend指令用于發(fā)送數(shù)據(jù),與S7-1200的接收指令相對應(yīng),可循環(huán)調(diào)用。
圖13 TcpSend參數(shù)設(shè)置
“ConnectionId” :使用tcpOpenClient返回的ID。
“nextCommand”:
IMMEDIATELY:命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行。
WHEN_COMMAND_DONE:命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,異步執(zhí)行。
本文中將程序放在simotion的background中執(zhí)行,因此若使用WHEN_COMMAND_DONE模式,有可能在該命令執(zhí)行時間過長情況下導(dǎo)致background執(zhí)行超時,系統(tǒng)報錯停機。
“DataLength”:發(fā)送數(shù)據(jù)的字節(jié)長度,本例為8,發(fā)送數(shù)據(jù)區(qū)的前8個字節(jié)。
“Data”:發(fā)送數(shù)據(jù)區(qū),數(shù)據(jù)類型為數(shù)組,ARRAY[0..4095] OF BYTE。
“OUT”:輸出通信狀態(tài)。
注意:SIMOTION的發(fā)送區(qū)(接收區(qū))與PLC的接收區(qū)(發(fā)送區(qū))數(shù)據(jù)長度必須一致。
TcpReceive指令用于發(fā)送數(shù)據(jù),與S7-1200的接收指令相對應(yīng),可循環(huán)調(diào)用。
圖14 TcpReceive參數(shù)設(shè)置
“ConnectionId” :使用tcpOpenClient返回的ID。
“nextCommand”:
IMMEDIATELY:命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行。
WHEN_COMMAND_DONE:命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,異步執(zhí)行。
本文中將程序放在simotion的background中執(zhí)行,因此若使用WHEN_COMMAND_DONE模式,有可能在該命令執(zhí)行時間過長情況下導(dǎo)致background執(zhí)行超時,系統(tǒng)報錯停機。
“receivevarible”:接收數(shù)據(jù)區(qū),數(shù)據(jù)類型為數(shù)組,ARRAY[0..4095] OF BYTE。
“OUT”:調(diào)用函數(shù)返回信息,包括調(diào)用狀態(tài)和接收的字節(jié)數(shù)量。數(shù)據(jù)類型為結(jié)構(gòu)體(StructRetTcpReceive),參考表4。
結(jié)構(gòu) |
名稱 |
數(shù)據(jù)類型 |
functionResult |
接收狀態(tài)信息 |
DINT |
dataLength |
接收字節(jié)長度 |
UDINT |
表4 TcpReceive返回值結(jié)構(gòu)
本例中使用的程序可以在“S7-1200.zip (1350 KB) ( 1350 KB )”和“D410.zip (1597 KB) ( 1597 KB ) ”這兩個壓縮包中找到。
首先在S7-1200側(cè)激活建立連接的指令“TCON”,等待SIMOTION側(cè)的連接請求,接著在SIMOTION側(cè)激活打開客戶端指令“TcpOpenClient”,發(fā)送建立連接的請求。請求成功后,“TcpOpenClient”的返回值結(jié)構(gòu)中的functionResult會顯示“0”,同時在connec tionId中會返回ID(此ID與PLC中設(shè)置的ID未必一致)。
之后分別使能PLC側(cè)和SIMOTION側(cè)的發(fā)送接收指令,開始數(shù)據(jù)傳送。
SIMOTION側(cè)WATCH TABLE監(jiān)控結(jié)果:
圖15 SIMOTION側(cè)接收和發(fā)送的數(shù)據(jù)
PLC側(cè)監(jiān)控表的監(jiān)控結(jié)果:
圖16 PLC側(cè)接收和發(fā)送的數(shù)據(jù)