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