西門(mén)子6ES7 368-3BC51-0AA0西門(mén)子6ES7 368-3BC51-0AA0
我公司經(jīng)營(yíng)西門(mén)子*現(xiàn)貨PLC;S7-200S7-300 S7-400S7-1200觸摸屏,變頻器,6FC,6SNS120 V10 V60 V80伺服數(shù)控備件:原裝進(jìn)口電機(jī)(1LA7、1LG4、1LA9、1LE1),國(guó)產(chǎn)電機(jī)(1LG0,1LE0)大型電(1LA8,1LA4,1PQ8)伺服電(1PH,1PM,1FT,1FK,1FS)西門(mén)子保內(nèi)全新原裝產(chǎn)品‘質(zhì)保一年。歡迎致電咨詢
上海戈辰自動(dòng)化科技有限公司(西門(mén)子代理商) | |
全國(guó)直銷: | 張柏 (同步) |
: | |
騰訊咨詢: | 254598303 |
(SIEMENS-ABB) 誠(chéng)信的人,走遍天下有朋友;虛偽的人,踏破鐵鞋無(wú)知己。 |
公司優(yōu)勢(shì)產(chǎn)品; PLC 、觸摸屏、變頻器、電纜及通訊卡、數(shù)控系統(tǒng)、 網(wǎng)絡(luò)接頭、伺服驅(qū)動(dòng)、 凡在公司采購(gòu)西門(mén)子產(chǎn)品,均可質(zhì)保一年,假一罰S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET網(wǎng)絡(luò)的一種優(yōu)化的通信協(xié)議,主要用于S7300/400PLC之間的通信。SIMATIC S7- PN CPU包含一個(gè)集成的 PROFINET 接口,該接口除了具有 PROFINET I/O功能,還可以進(jìn)行基于以太網(wǎng)的S7通信。SIMATIC S7- PN CPU支持無(wú)確認(rèn)數(shù)據(jù)交換、確認(rèn)數(shù)據(jù)交換和單邊訪問(wèn)功能。功能塊的調(diào)用如圖1、圖2所示。
塊 S7-400 | 塊 S7-300 | 描述 | 簡(jiǎn)要描述 |
SFB 8 | FB 8 | 用于發(fā)送 | 無(wú)確認(rèn)的快速數(shù)據(jù)交換,發(fā)送數(shù)據(jù)后無(wú)對(duì)方接收確認(rèn)。 |
SFB 9 | FB 9 | 用于接收 | |
SFB 12 | FB 12 | 用于發(fā)送 | 確認(rèn)數(shù)據(jù)交換,發(fā)送數(shù)據(jù)后有對(duì)方接收確認(rèn)。 |
SFB 13 | FB 13 | 用于接收 | |
SFB 14 | FB 14 | 讀數(shù)據(jù) | 單邊編程讀訪問(wèn)。 |
SFB 15 | FB 15 | 寫(xiě)數(shù)據(jù) | 單邊編程寫(xiě)訪問(wèn)。 |
表1
圖1
圖2
要通過(guò) S7-PN CPU 的 集成PROFINET 接口實(shí)現(xiàn)S7 通信,需要在硬件組態(tài)中建立連接。
2. 硬件及網(wǎng)絡(luò)組態(tài)
CPU采用兩個(gè)315-2PN/DP,使用以太網(wǎng)進(jìn)行通信。
在STEP7中創(chuàng)建一個(gè)新項(xiàng)目,項(xiàng)目名稱為PN S7。插入兩個(gè)S7-300站,在硬件組態(tài)中,分別插入CPU 315-2 PN/DP。如圖3所示。
圖3
新建以太網(wǎng),打開(kāi)“NetPro”設(shè)置網(wǎng)絡(luò)參數(shù),選中CPU,在連接列表中建立新的連接。如圖4所示。
圖4
然后雙擊該連接,設(shè)置連接屬性。在“General”屬性中塊參數(shù)ID = 1,這個(gè)參數(shù)即是下面程序中的參數(shù)“ID”。在SIMATIC 315PN-1中激活“Establish an active connection”,作為Client端,SIMATIC 315PN-2作為Server 端。
3. 軟件編程
3.1. 無(wú)確認(rèn)數(shù)據(jù)交換
SFB/FB 8 "USEND" 向類型為“URCV”的遠(yuǎn)程伙伴SFB/FB發(fā)送數(shù)據(jù)。執(zhí)行發(fā)送過(guò)程而不需要和SFB/FB伙伴進(jìn)行協(xié)調(diào)。也就是說(shuō),在進(jìn)行數(shù)據(jù)傳送時(shí)不需要伙伴SFB/FB進(jìn)行確認(rèn)。
S7-300:在REQ的上升沿處發(fā)送數(shù)據(jù)。在REQ的每個(gè)上升沿處傳送參數(shù)R_ID、
ID和SD_1。在每個(gè)作業(yè)結(jié)束之后,可以給R_ID、ID和SD_1參數(shù)分配新數(shù)值。
S7-400:在控制輸入REQ的上升沿處發(fā)送數(shù)據(jù)。通過(guò)參數(shù)SD_1到SD_4來(lái)指向要
發(fā)送的數(shù)據(jù),但并非都需要用到所有四個(gè)發(fā)送參數(shù)。
然而,必須確保參數(shù)SD_1到SD_4/SD_1和RD_1到RD_4/RD_1 (在相應(yīng)通訊伙
伴SFB/FB "URCV" 上)所定義的區(qū)域在以下幾個(gè)方面保持*:
• ®編號(hào)
• ®長(zhǎng)度
• ®數(shù)據(jù)類型
參數(shù)R_ID必須在兩個(gè)SFB中*相同。如果傳送成功完成,則通過(guò)狀態(tài)參數(shù)DONE來(lái)表示,此時(shí)其邏輯數(shù)值為1。
SFB/FB 9 "URCV" 從類型為“USEND”的遠(yuǎn)程伙伴SFB/FB中異步接收數(shù)據(jù),并
把接收到的數(shù)據(jù)復(fù)制到組態(tài)的接收區(qū)域內(nèi)。
當(dāng)程序塊準(zhǔn)備好接收數(shù)據(jù)時(shí),EN_R輸入處的邏輯值為1??梢酝ㄟ^(guò)EN_R=0來(lái)取
消一個(gè)已激活的作業(yè)。
S7-300:在EN_R的每個(gè)上升沿處應(yīng)用參數(shù)R_ID、ID和RD_1。在每個(gè)作業(yè)結(jié)束
之后,可以給R_ID、ID和RD_1參數(shù)分配新數(shù)值。
S7-400:通過(guò)參數(shù)RD_1到RD_4來(lái)指向接收數(shù)據(jù)區(qū)。
必須確保參數(shù)RD_i/RD_1和SD_i/SD_1 (在相應(yīng)通訊伙伴SFB/FB "USEND"
上)所定義的區(qū)域在以下幾個(gè)方面保持*:
•® 編號(hào)
• ®長(zhǎng)度
• ®數(shù)據(jù)類型。
通過(guò)NDR狀態(tài)參數(shù)邏輯數(shù)值為1來(lái)指示已經(jīng)成功完成復(fù)制處理過(guò)程。參數(shù)R_ID必須在兩個(gè)SFB/FB上*相同。
打開(kāi)SIMATIC 315PN-1的OB1,在OB1中依次調(diào)用FB8,F(xiàn)B9如圖5、圖6所示:
圖5
程序中的參數(shù)說(shuō)明見(jiàn)表2
參數(shù) | 描述 | 數(shù)據(jù)類型 | 存儲(chǔ)區(qū) | 描述 |
REQ | INPUT | BOOL | I、Q、M、D、L | 上升沿觸發(fā)工作 |
ID | INPUT | WORD | M、D、常數(shù) | 連接ID |
R_ID | INPUT | DWORD | I、Q、M、D、L、常數(shù) | 連接號(hào),相同連接號(hào)的功能塊互相對(duì)應(yīng)發(fā)送/接收數(shù)據(jù) |
DONE | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),發(fā)送完成 |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),有故障發(fā)生 |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 狀態(tài)代碼 |
S7-300: SD_1 S7-400: SD_i (1 ≤ i ≤ 4) | IN_OUT | ANY | M、D、T、Z I、Q、M、D、T、C | 發(fā)送數(shù)據(jù)區(qū) |
表2 FB8參數(shù)說(shuō)明
圖6
程序中的參數(shù)說(shuō)明見(jiàn)表3
參數(shù) | 參數(shù) | 數(shù)據(jù)類型 | 存儲(chǔ)區(qū) | 描述 |
EN_R | INPUT | BOOL | I、Q、M、D、L、常數(shù) | 為1時(shí),準(zhǔn)備接收 |
ID | INPUT | WORD | M、D、常數(shù) | 連接ID |
R_ID | INPUT | DWORD | I、Q、M、D、L、常數(shù) | 連接號(hào),相同連接號(hào)的功能塊互相對(duì)應(yīng)發(fā)送/接收數(shù)據(jù) |
NDR | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),接收完成 |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),有故障發(fā)生 |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 狀態(tài)代碼 |
S7-300: RD_1 S7-400: RD_i (1 ≤ i ≤ 4) | IN_OUT | ANY | M、D、T、Z I、Q、M、D、T、Z | 接收數(shù)據(jù)區(qū) |
表3 FB9參數(shù)說(shuō)明
同樣,在SIMATIC 315PN-2的OB1中,調(diào)用FB8/FB9。通信雙方的“R_ID”均設(shè)為0。將SIMATIC 315PN-1的MB100-MB109賦值B#16#02,在SIMATIC 315PN-2中,將FB9的“EN_R”置1,然后在SIMATIC 315PN-1中,將FB8中“REQ”設(shè)置上升沿信號(hào),此時(shí)SIMATIC 315PN-2的MB110-MB119接收到B#16#02。如圖7所示。
圖7
同理,將SIMATIC 315PN-2 的MB100-MB109賦值為B#16#03,SIMATIC 315PN-1的MB110-MB119接收到B#16#03。如圖8所示。
圖8
3.2. 確認(rèn)數(shù)據(jù)交換
SFB/FB 12 "BSEND" 向類型為“BRCV”的遠(yuǎn)程伙伴SFB/FB發(fā)送數(shù)據(jù)。通過(guò)這種
類型的數(shù)據(jù)傳送,更多的數(shù)據(jù)可以在通訊伙伴之間傳輸,*其它用于組態(tài)的
S7連接的通訊SFB/FB所能傳輸?shù)臄?shù)據(jù)量,通過(guò)集成PN口的S7-400和S7-300是65534字節(jié)。
要發(fā)送的數(shù)據(jù)區(qū)是分段的。各個(gè)分段單獨(dú)發(fā)送給通訊伙伴。通訊伙伴在接收到zui后
一個(gè)分段時(shí)對(duì)此分段進(jìn)行確認(rèn),該過(guò)程與相應(yīng)SFB/FB "BRCV" 的調(diào)用無(wú)關(guān)。在調(diào)用塊之后,當(dāng)在控制輸入REQ上有上升沿時(shí),發(fā)送作業(yè)被激活。發(fā)送用戶存儲(chǔ)區(qū)中的數(shù)據(jù)與處理用戶程序是異步執(zhí)行的。
由SD_1起始地址和要發(fā)送數(shù)據(jù)的zui大長(zhǎng)度。可以通過(guò)LEN來(lái)確定數(shù)據(jù)域的作業(yè)長(zhǎng)度。在這種情況下,LEN替換SD_1的長(zhǎng)度區(qū)域。參數(shù)R_ID必須在相應(yīng)的兩個(gè)SFB/FB上*相同。如果在控制輸入R處有上升沿,則當(dāng)前數(shù)據(jù)傳送將被取消。如果傳送成功完成,則通過(guò)將狀態(tài)參數(shù)DONE的數(shù)值設(shè)置為1來(lái)進(jìn)行指示。如果狀態(tài)參數(shù)DONE或ERROR的數(shù)值為1,則在前一個(gè)發(fā)送處理結(jié)束之前,不能處理新的發(fā)送作業(yè)。
SFB/FB 13 "BRCV" 接收來(lái)自類型為“BSEND”的遠(yuǎn)程伙伴SFB/FB的數(shù)據(jù)。在收
到每個(gè)數(shù)據(jù)段后,向伙伴SFB/FB發(fā)送一個(gè)確認(rèn)幀,同時(shí)更新LEN參數(shù)。在塊調(diào)用完畢,并且在控制輸入EN_R數(shù)值為1之后,塊準(zhǔn)備接收數(shù)據(jù)??梢酝ㄟ^(guò)EN_R=0來(lái)取消一個(gè)已激活的作業(yè)。
由RD_1起始地址和接收區(qū)的zui大長(zhǎng)度。由LEN指示已接收數(shù)據(jù)域的長(zhǎng)度。
從用戶存儲(chǔ)區(qū)中接收數(shù)據(jù)與處理用戶程序是異步執(zhí)行的。參數(shù)R_ID必須在相應(yīng)的兩個(gè)SFB/FB上*相同。通過(guò)狀態(tài)參數(shù)NDR的數(shù)值為1來(lái)指示所有數(shù)據(jù)段的無(wú)錯(cuò)接收。接收到的數(shù)據(jù)保持不變,直到通過(guò)EN_R=1來(lái)重新調(diào)用SFB/FB 13為止。如果在數(shù)據(jù)的異步接收期間調(diào)用塊,則將引發(fā)一個(gè)警告,該警告通過(guò)STATUS參數(shù)輸出;如果當(dāng)控制輸入EN_R數(shù)值為0時(shí)進(jìn)行調(diào)用,則接收將被終止,并且SFB/FB將返回到它的初始狀態(tài)。
打開(kāi)SIMATIC 315PN-1的OB1,在OB1中依次調(diào)用FB12,F(xiàn)B13如圖9、圖10所示:
圖9
程序中的參數(shù)說(shuō)明見(jiàn)表4
參數(shù) | 描述 | 數(shù)據(jù)類型 | 存儲(chǔ)區(qū) | 描述 |
REQ | INPUT | BOOL | I、Q、M、D、L | 上升沿觸發(fā)工作 |
R | INPUT | BOOL | I、Q、M、D、L、常數(shù) | 復(fù)位,終止數(shù)據(jù)交換 |
ID | INPUT | WORD | M、D、常數(shù) | 連接ID |
R_ID | INPUT | DWORD | I、Q、M、D、L、常數(shù) | 連接號(hào),相同連接號(hào)的功能塊互相對(duì)應(yīng)發(fā)送/接收數(shù)據(jù) |
DONE | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),發(fā)送完成 |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),有故障發(fā)生 |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 狀態(tài)代碼 |
SD_1 | IN_OUT | ANY | S7-300:M、DS7-400:I、Q、M、D、T、Z | 發(fā)送數(shù)據(jù)區(qū) |
LEN | IN_OUT | WORD | I、Q、M、D、L | 發(fā)送數(shù)據(jù)的長(zhǎng)度 |
表4 FB12參數(shù)說(shuō)明
圖10
程序中的參數(shù)說(shuō)明見(jiàn)表5
參數(shù) | 描述 | 數(shù)據(jù)類型 | 存儲(chǔ)區(qū) | 描述 |
EN_R | INPUT | BOOL | I、Q、M、D、L、常數(shù) | 為1時(shí),準(zhǔn)備接收 |
ID | INPUT | WORD | M、D、常數(shù) | 連接ID |
R_ID | INPUT | DWORD | I、Q、M、D、L、常數(shù) | 連接號(hào),相同連接號(hào)的功能塊互相對(duì)應(yīng)發(fā)送/接收數(shù)據(jù) |
NDR | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),接收完成 |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),有故障發(fā)生 |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 狀態(tài)代碼 |
RD_1 | IN_OUT | ANY | S7-300:M、DS7-400:I、 Q、M、D、T、C | 接收數(shù)據(jù)區(qū) |
LEN | IN_OUT | WORD | I、Q、M、D、L | 接收到的數(shù)據(jù)長(zhǎng)度 |
表5 FB13參數(shù)說(shuō)明
同樣,在SIMATIC 315PN-2的OB1中,調(diào)用FB12/FB13。通信雙方的R_ID設(shè)為0,LEN設(shè)為10,將SIMATIC 315PN-1的MB120-MB129賦值B#16#04,在SIMATIC 315PN-2中,將FB13的“EN_R”置1,然后在SIMATIC 315PN-1中,將FB12中“REQ”設(shè)置上升沿信號(hào),此時(shí)SIMATIC 315PN-2的MB130-MB139接收到B#16#04。如圖11所示。
圖11
同理,將SIMATIC 315PN-2 的MB120-MB129賦值為B#16#05,SIMATIC 315PN-1的MB130-MB139接收到B#16#05。如圖12所示。
圖12
3.3. 單邊訪問(wèn)
可以通過(guò)SFB/FB 14 "GET",從遠(yuǎn)程CPU中讀取數(shù)據(jù)。
S7-300:在REQ的上升沿處讀取數(shù)據(jù)。在REQ的每個(gè)上升沿處傳送參數(shù)ID、ADDR_1和RD_1。在每個(gè)作業(yè)結(jié)束之后,可以分配新數(shù)值給ID、ADDR_1和RD_1參數(shù)。
S7-400:在控制輸入REQ的上升沿處啟動(dòng)SFB。在此過(guò)程中,將要讀取的區(qū)域的相關(guān)指針(ADDR_i)發(fā)送到伙伴CPU。遠(yuǎn)程伙伴返回此數(shù)據(jù)。在下一個(gè)SFB/FB調(diào)用處,已接收的數(shù)據(jù)被復(fù)制到組態(tài)的接收區(qū)(RD_i)中。必須要確保通過(guò)參數(shù)ADDR_i和RD_i定義的區(qū)域在長(zhǎng)度和數(shù)據(jù)類型方面要相互匹配。
通過(guò)狀態(tài)參數(shù)NDR數(shù)值為1來(lái)指示此作業(yè)已完成。只有在前一個(gè)作業(yè)已經(jīng)完成之后,才能重新激活讀作業(yè)。遠(yuǎn)程CPU可以處于RUN或STOP工作狀態(tài)。如果正在讀取數(shù)據(jù)時(shí)發(fā)生訪問(wèn)故障,或如果數(shù)據(jù)類型檢查過(guò)程中出錯(cuò),則出錯(cuò)和警告信息將通過(guò)ERROR和STATUS輸出表示。
通過(guò)使用SFB/FB 15 "PUT",可以將數(shù)據(jù)寫(xiě)入到遠(yuǎn)程CPU。
S7-300:在REQ的上升沿處發(fā)送數(shù)據(jù)。在REQ的每個(gè)上升沿處傳送參數(shù)ID、ADDR_1和SD_1。在每個(gè)作業(yè)結(jié)束之后,可以給ID、ADDR_1和SD_1參數(shù)分配新數(shù)值。
S7-400:在控制輸入REQ的上升沿處啟動(dòng)SFB。在此過(guò)程中,將指向要寫(xiě)入數(shù)據(jù)的區(qū)域(ADDR_i)的指針和數(shù)據(jù)(SD_i)發(fā)送到伙伴CPU。 遠(yuǎn)程伙伴將所需要的數(shù)據(jù)保存在隨數(shù)據(jù)一起提供的地址下面,并返回一個(gè)執(zhí)行確認(rèn)。必須要確保通過(guò)參數(shù)ADDR_i和SD_i定義的區(qū)域在編號(hào)、長(zhǎng)度和數(shù)據(jù)類型方面相互匹配。
如果沒(méi)有產(chǎn)生任何錯(cuò)誤,則在下一個(gè)SFB/FB調(diào)用時(shí),通過(guò)狀態(tài)參數(shù)DONE來(lái)指示,其數(shù)值為1。只有在zui后一個(gè)作業(yè)完成之后,才能再次激活寫(xiě)作業(yè)。遠(yuǎn)程CPU可以處于RUN或STOP模式。如果正在寫(xiě)入數(shù)據(jù)時(shí)發(fā)生訪問(wèn)故障,或如果執(zhí)行檢查過(guò)程中出錯(cuò),則出錯(cuò)和警告信息將通過(guò)ERROR和STATUS輸出表示。
打開(kāi)SIMATIC 315PN-1的OB1,在OB1中依次調(diào)用FB14,F(xiàn)B15如圖13、圖14所示:
圖13
參數(shù) | 描述 | 數(shù)據(jù)類型 | 存儲(chǔ)區(qū) | 描述 |
REQ | INPUT | BOOL | I、Q、M、D、L | 上升沿觸發(fā)調(diào)用功能塊 |
ID | INPUT | WORD | M、D、常數(shù) | 地址參數(shù)ID |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 接收到新數(shù)據(jù) |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 故障代碼 |
S7-300: ADDR_1 S7-400: ADDR_i (1 ≤ i ≤ 4) | IN_OUT | ANY | M、D I、Q、M、D、 T、C | 從通信對(duì)方的數(shù)據(jù)地址中讀取數(shù)據(jù) |
S7-300: RD_1 S7-400: RD_i (1 ≤ i ≤ 4) | IN_OUT | ANY | S7-300:M、D S7-400 I、Q、 M、D、T、C | 本站接收數(shù)據(jù)地址 |
表6 FB14參數(shù)說(shuō)明
圖14
參數(shù) | 描述 | 數(shù)據(jù)類型 | 存儲(chǔ)區(qū) | 描述 |
REQ | INPUT | BOOL | I、Q、M、D、L | 上升沿觸發(fā)調(diào)用功能塊 |
ID | INPUT | WORD | M、D、常數(shù) | 地址參數(shù) |
DONE | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),發(fā)送完成 |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 為1時(shí),有故障發(fā)生 |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 故障代碼 |
S7-300: ADDR_1 S7-400: ADDR_i (1 ≤ i ≤ 4) | IN_OUT | ANY | M、D I、Q、M、D、 T、C | 通信對(duì)方的數(shù)據(jù)接收地址 |
S7-300: SD_1 S7-400: SD_i (1 ≤ i ≤ 4) | IN_OUT | ANY | S7-300:M、D S7-400 I、Q、 M、D、T、C | 本站發(fā)送數(shù)據(jù)地址 |
表7 FB15參數(shù)說(shuō)明
同樣,在SIMATIC 315PN-2的OB1中,調(diào)用FB14/FB15。將SIMATIC 315PN-2的MB140-MB149賦值B#16#06,在SIMATIC 315PN-1中,將FB14的“REQ”置上升沿信號(hào),此時(shí)SIMATIC 315PN-1的MB150-MB159接收到B#16#06。如圖15所示。
圖15
將SIMATIC 315PN-1的MB140-MB149賦值B#16#08,在SIMATIC 315PN-2中,將FB14的“REQ”置上升沿信號(hào),此時(shí)SIMATIC 315PN-2的MB150-MB159接收到B#16#08。如圖16所示。
圖16
將SIMATIC 315PN-1的MB170-MB179賦值B#16#07,將FB15的“REQ”置上升沿信號(hào),此時(shí)SIMATIC 315PN-2的MB160-MB169接收到B#16#07。如圖17所示。
圖17
將SIMATIC 315PN-2的MB170-MB179賦值B#16#11,將FB15的“REQ”置上升沿信號(hào),此時(shí)SIMATIC 315PN-1的MB160-MB169接收到B#16#11。如圖18所示。
圖18
4. 常見(jiàn)問(wèn)題
• ®兩個(gè)S7-300PN CPU之間建立S7連接可有哪些通信方式?
答:可以有確認(rèn)連接、非確認(rèn)連接、單邊通信
• ®使用FB8/9時(shí),數(shù)據(jù)已發(fā)送,程序塊沒(méi)有錯(cuò)誤顯示,但是沒(méi)收到任何數(shù)據(jù)?
答:發(fā)送區(qū)與接收緩沖區(qū)長(zhǎng)度不*。
• ®使用FB12/13時(shí),發(fā)送區(qū)與接收緩沖區(qū)長(zhǎng)度是否必須*?
答:發(fā)送區(qū)的大小只要不超過(guò)接收緩沖區(qū)就可以。
• ®FB12發(fā)送數(shù)據(jù)時(shí),發(fā)送數(shù)據(jù)的長(zhǎng)度由哪個(gè)參數(shù)決定?
答:發(fā)送長(zhǎng)度由LEN決定。但發(fā)送數(shù)據(jù)的起始地址和zui大長(zhǎng)度由SD_1決定。
1、MM440的DP通訊功能簡(jiǎn)介
MM440變頻器既支持和主站的周期性數(shù)據(jù)通訊,也支持和主站的非周期性數(shù)據(jù)通訊,即S7-300可以使用功能塊SFC14/SFC15讀取和修改MM440參數(shù)值,調(diào)用一次可以讀取或者修改一個(gè)參數(shù)。同時(shí)也可以使用功能塊SFC58/SFC59或者SFB52/SFB53讀取和修改MM440參數(shù)值,一次zui多可以讀取或者修改39個(gè)參數(shù)。
2、MM440周期性數(shù)據(jù)通訊的報(bào)文說(shuō)明
MM440周期性數(shù)據(jù)通訊報(bào)文有效 數(shù)據(jù)區(qū)域由兩部分構(gòu)成,即PKW區(qū)(參數(shù)識(shí)別ID-數(shù)值區(qū))和PZD區(qū)(過(guò)程數(shù)據(jù)),見(jiàn)表1。PKW區(qū)zui多占用4個(gè)字,即PKE(參數(shù)標(biāo)識(shí)符值:占用一個(gè)字)、IND(參數(shù)的下標(biāo):占用一個(gè)字)、PWE1和PWE2(參數(shù)數(shù)值:共占用兩個(gè)字)。S7-300使用功能塊SFC14/SFC15讀取和修改參數(shù)需要占用4個(gè)PKW,即調(diào)用一次功能塊可以修改一個(gè)參數(shù)。PKW區(qū)的說(shuō)明見(jiàn)表2。下面分別介紹一下PKW區(qū)的四個(gè)字。
表1
表2
(1)*個(gè)字PKE:參數(shù)識(shí)別標(biāo)識(shí)ID,見(jiàn)表3。西門(mén)子6ES7361-3CA01-0AA0
表3
參數(shù)識(shí)別標(biāo)記ID(PKE)總是一個(gè)16位的值,位0~10(PNU)包括所請(qǐng)求的參數(shù)號(hào)碼,位11(SPM)用于參數(shù)變更報(bào)告的觸發(fā)位,位12~15(AK)包括任務(wù)識(shí)別標(biāo)記ID(見(jiàn)表4)和應(yīng)答識(shí)別標(biāo)記ID(見(jiàn)表5)。
表4
表5
(2)第二個(gè)字IND:參數(shù)的下標(biāo)
完整的參數(shù)號(hào)碼是由基本參數(shù)號(hào)碼和下標(biāo)(PNU頁(yè)號(hào))中的位12-15產(chǎn)生,見(jiàn)表6。因?yàn)镸M440參數(shù)號(hào)碼沒(méi)有超過(guò)4000,所以在讀取和修改參數(shù)號(hào)為2000到3999時(shí)位15-12中必須為1。
表6
(3)第三個(gè)字PWE1和第四個(gè)字PWE2:參數(shù)數(shù)值,見(jiàn)表7。
總是以雙字(32位)來(lái)傳送參數(shù)值(PWE)。在PPO報(bào)文中,僅一個(gè)參數(shù)值能被傳送。由PWE1(高位有效字:第三個(gè)字)和PWE2(低位有效字:第四個(gè)字)組成一個(gè)32位參數(shù)值。用PWE2(低位有效字:第四個(gè)字)傳送一個(gè)16位參數(shù)值,這種情況下,必須在PROFIBUS-DP主站中,設(shè)定PWE1(高位有效字:第三個(gè)字)為零。
表7
- 位0到15(PWE2):用于16位參數(shù)的參數(shù)值或用于32位參數(shù)的低位部分。
- 位16到31(PWE1):用于等于零的1位參數(shù)或用于32位參數(shù)的高位部分。
3、MM440非周期性數(shù)據(jù)通訊的報(bào)文說(shuō)明
MM440支持非周期通訊方式,即擴(kuò)展的PROFIBUS DP(DPV1)功能,一次zui多可以傳送240個(gè)字節(jié),傳輸數(shù)據(jù)塊的內(nèi)容應(yīng)遵照 PROFIdrive Profile, version 4.0(with data block 47 (DS47))非周期參數(shù)通道結(jié)構(gòu)。它包括參數(shù)請(qǐng)求和參數(shù)應(yīng)答兩部分。
(1)參數(shù)請(qǐng)求包括請(qǐng)求標(biāo)題、參數(shù)地址和參數(shù)值,見(jiàn)表8。
項(xiàng)目 | 數(shù)據(jù)類型 | 數(shù)值 | 注釋 |
請(qǐng)求參考 | 無(wú)符號(hào)8 位數(shù) | 0x01 … 0xFF | 每一次新的請(qǐng)求主站改變“請(qǐng)求參考“,從站在其應(yīng)答時(shí)鏡像“請(qǐng)求參考“ |
請(qǐng)求ID | 無(wú)符號(hào)8位數(shù) | 0x01 | 讀請(qǐng)求 |
0x02 | 寫(xiě)請(qǐng)求 | ||
設(shè)備ID | 無(wú)符號(hào)8位數(shù) | 0x00 … 0xFF | 對(duì)于多個(gè)驅(qū)動(dòng)單元設(shè)定相應(yīng)設(shè)備ID |
參數(shù)數(shù)量 | 無(wú)符號(hào)8位數(shù) | 0x01 … 0x27 | …39,對(duì)于請(qǐng)求多個(gè)參數(shù)時(shí)的參數(shù)數(shù)量,=1為請(qǐng)求一個(gè)參數(shù) |
屬性 | 無(wú)符號(hào)8位數(shù) | 0x10 | 數(shù)值型 |
0x20 | 描述型 | ||
0x30 | 文本型(不可能) | ||
元素?cái)?shù)量 | 無(wú)符號(hào)8位數(shù) | 0x00 | 特定功能 |
0x01 … 0x75 | No. 1 … 117,數(shù)組數(shù)量 | ||
參數(shù)值 | 無(wú)符號(hào)16位數(shù) | 0x0001 … 0xFFFF | No. 1 … 65535 |
下標(biāo) | 無(wú)符號(hào)16位數(shù) | 0x0001 … 0xFFFF | No. 1 … 65535 |
格式 | 無(wú)符號(hào)8位數(shù) | 0x02 | 8位整形數(shù) |
0x03 | 16位整形數(shù) | ||
0x04 | 32位整形數(shù) | ||
0x05 | 無(wú)符號(hào)8位數(shù) | ||
0x06 | 無(wú)符號(hào)16位數(shù) | ||
0x07 | 無(wú)符號(hào)32位數(shù) | ||
0x08 | 浮點(diǎn)數(shù) | ||
Other values | 見(jiàn) PROFIdrive Profile | ||
0x40 | 0 | ||
0x41 | 字節(jié) | ||
0x42 | 字 | ||
0x43 | 雙字 | ||
0x44 | 錯(cuò)誤 | ||
數(shù)值號(hào) | 無(wú)符號(hào)8位數(shù) | 0x00 … 0xEA | 0..234 |
數(shù)值 | 無(wú)符號(hào)16位數(shù) | 0x0000 … 0x00FF | 讀或?qū)懙膮?shù)值 |
表8
(2)參數(shù)應(yīng)答描述見(jiàn)表9:
錯(cuò)誤值 | 含義 | 注釋 |
0X00 | 無(wú)效的參數(shù)號(hào) | 獲取不存在的參數(shù) |
0X01 | 參數(shù)值不能被改變 | 修改了一個(gè)不允許修改的參數(shù) |
0X02 | 超出上下限 | 修改的數(shù)值超限 |
0X03 | 無(wú)效的下標(biāo) | 獲取不存在的下標(biāo) |
0X04 | 沒(méi)有數(shù)組 | 用下標(biāo)獲取不存在下標(biāo)的參數(shù) |
0X05 | 數(shù)據(jù)類型不正確 | |
0X06 | 無(wú)效的設(shè)定操作(參數(shù)只能設(shè)定為0) | |
0X07 | 描述的元素不能被修改 | 修改了不能被修改的元素 |
0X09 | 沒(méi)有描述的數(shù)據(jù) | 獲取不存在的參數(shù) |
0X0B | 沒(méi)有操作權(quán)限 | |
0X0F | 下一個(gè)數(shù)組不存在 | 獲取下一個(gè)不存在的數(shù)組 |
0X11 | 變頻器運(yùn)行時(shí)不能執(zhí)行請(qǐng)求任務(wù) | |
0X14 | 無(wú)效數(shù)值 | |
0X15 | 應(yīng)答長(zhǎng)度太長(zhǎng) | 當(dāng)前的應(yīng)答長(zhǎng)度超出zui大傳輸長(zhǎng)度 |
0X16 | 無(wú)效的參數(shù)地址 | |
0X17 | 無(wú)效的數(shù)據(jù)格式 | |
0X18 | 數(shù)據(jù)數(shù)量不* | |
0X19 | 驅(qū)動(dòng)裝置不存在 | |
0X20 | 文字類型的參數(shù)不能被改變 |
表9
4、硬件組態(tài)和站地址設(shè)置
本例中主站選用的是CPU319F-3 PN/DP,版本為V2.6,從站MM440的DP地址為5,MM440的版本為V2.09,選擇的報(bào)文結(jié)構(gòu)是PPO1,即含有4個(gè)PKW和2個(gè)PZD,見(jiàn)圖1。也可以選擇其他報(bào)文類型,只要含有4個(gè)PKW就可以,見(jiàn)圖2。本例中PKW的地址范圍是256~263,PZD的地址范圍是264~267。
圖1 圖2
5、周期性DP通訊讀取和修改參數(shù)例程
首先在主程序OB塊中調(diào)用SFC14(讀取參數(shù))和SFC15(修改參數(shù)),功能塊中LADDR為W#16#100,實(shí)際就是PKW的起始地址,DB1.DBB 0開(kāi)始的8個(gè)字節(jié)是讀到的值,DB1.DBB 24開(kāi)始的8個(gè)字節(jié)是需要修改的參數(shù)值,見(jiàn)圖3。M20.0為使能位,同時(shí)需要建一個(gè)DB1塊。因?yàn)閰?shù)2000以下和2000以上的報(bào)文中IND不同,本文則以實(shí)例分別介紹如何讀取和修改MM440的單字、雙字和浮點(diǎn)數(shù)的三種參數(shù)類型。
圖3
修改和讀取2000以上參數(shù)方法:在下面的圖中上部紅色框中為實(shí)際修改后的值,由功能塊SFC14讀回來(lái),下部紅色框中為希望修改參數(shù)值的報(bào)文。
(1) 單字:修改參數(shù)P2010[1]為6,見(jiàn)圖4。
修改參數(shù)請(qǐng)求報(bào)文
PKE=DB1.DBW 24=200A
IND=DB1.DBW 26=0180
PWE1=DB1.DBW 28=0000
PWE2=DB1.DBW 30=0006
實(shí)際應(yīng)答報(bào)文
PKE=DB1.DBW 0=100A
IND=DB1.DBW 2=0180
PWE1=DB1.DBW 4=0
PWE2=DB1.DBW 6=6
圖4
(2) 雙字:修改參數(shù)P2200[1]為1,見(jiàn)圖5。
修改參數(shù)請(qǐng)求報(bào)文
PKE=DB1.DBW 24=80C8
IND=DB1.DBW 26=0180
PWE1=DB1.DBW 28=0001
PWE2=DB1.DBW 30=0000
實(shí)際應(yīng)答報(bào)文
PKE=DB1.DBW 0=50C8
IND=DB1.DBW 2=0180
PWE1=DB1.DBW 4=0001
PWE2=DB1.DBW 6=0000
圖5
(3) 浮點(diǎn)數(shù):修改參數(shù)P2240[1]為40.0,見(jiàn)圖6。
修改參數(shù)請(qǐng)求報(bào)文
PKE=DB1.DBW 24=80F0
IND=DB1.DBW 26=0180
PWE1+PWE2=DB1.DBD 28=40.0
實(shí)際應(yīng)答報(bào)文
PKE=DB1.DBW 0=50F0
IND=DB1.DBW 2=0180
PWE1+PWE2=DB1.DBD 4=40.0
圖6
修改和讀取2000以下參數(shù)方法:下面的圖中上部紅色框中為實(shí)際修改后的值,由功能塊SFC14讀回來(lái),下部紅色框中為希望修改參數(shù)值的報(bào)文。
(1) 單字:修改參數(shù)P0701[0]為2,見(jiàn)圖7。
修改參數(shù)請(qǐng)求報(bào)文
PKE=DB1.DBW 24=72BD
IND=DB1.DBW 26=0000
PWE1=DB1.DBW 28=0000
PWE2=DB1.DBW 30=0002
實(shí)際應(yīng)答報(bào)文
PKE=DB1.DBW 0=42BD
IND=DB1.DBW 2=0000
PWE1=DB1.DBW 4=0000
PWE2=DB1.DBW 6=0002
圖7
(2) 雙字:修改參數(shù)P1020[0]為1,見(jiàn)圖8。
修改參數(shù)請(qǐng)求報(bào)文
PKE=DB1.DBW 24=83FC
IND=DB1.DBW 26=0000
PWE1=DB1.DBW 28=0001
PWE2=DB1.DBW 30=0000
實(shí)際應(yīng)答報(bào)文
PKE=DB1.DBW 0=53FC
IND=DB1.DBW 2=0000
PWE1=DB1.DBW 4=0001
PWE2=DB1.DBW 6=0000
圖8
(3) 浮點(diǎn)數(shù):修改參數(shù)P1120[1]為40.0,見(jiàn)圖9。
修改參數(shù)請(qǐng)求報(bào)文
PKE=DB1.DBW 24=8460
IND=DB1.DBW 26=0100
PWE1+PWE2=DB1.DBD 28=40.0
實(shí)際應(yīng)答報(bào)文
PKE=DB1.DBW 0=5460
IND=DB1.DBW 2=0100
PWE1+PWE2=DB1.DBD 4=40.0
圖9
6、非周期DP通訊讀取和修改參數(shù)例程
方法一:使用SFB52/SFB53對(duì)MM440進(jìn)行非周期DP通訊讀取參數(shù)時(shí)必須要成對(duì)出現(xiàn),即先發(fā)送讀請(qǐng)求塊SFB53,然后發(fā)送SFB52塊讀取參數(shù);而修改參數(shù)只需要發(fā)送功能塊SFB53就可以。功能塊中ID的地址可以設(shè)置為PZD或者PKW的地址,也可以設(shè)置為診斷地址,本例中設(shè)為診斷地址W#16#1FFA;功能塊中INDEX必須為47;建議功能塊中LEN和RECORD的長(zhǎng)度*,或者RECORD的長(zhǎng)度大于LEN的長(zhǎng)度,只要小于240字節(jié)即可,見(jiàn)圖10。程序中先置M0.0為1發(fā)出讀請(qǐng)求,然后程序自動(dòng)把M0.0復(fù)位為0;再置M0.1為1進(jìn)行讀取參數(shù),M0.1也自動(dòng)復(fù)位為0。
讀請(qǐng)求 讀參數(shù)
圖10
方法二:使用SFC58/SFC59對(duì)MM440進(jìn)行非周期DP通訊讀取參數(shù)必須要成對(duì)出現(xiàn),即先發(fā)送讀請(qǐng)求塊SFC59,然后發(fā)送SFC58塊讀取參數(shù);而修改參數(shù)只需要發(fā)送功能塊SFC59就可以。功能塊中LADDER的地址可以設(shè)置為PZD或者PKW的地址,也可以設(shè)置為診斷地址,本例中設(shè)為診斷地址W#16#1FFA;功能塊中IOID必須設(shè)置為B#16#54;功能塊中RECNUM必須為B#16#2F,即十進(jìn)制必須為47;程序中先置M2.0為1發(fā)出讀請(qǐng)求,然后程序自動(dòng)把M2.0復(fù)位為0;再置M2.1為1進(jìn)行讀取參數(shù),M2.1也自動(dòng)復(fù)位為0,見(jiàn)圖11和圖12。
讀請(qǐng)求 讀參數(shù)
圖11
圖12
(1)一次讀取參數(shù)P1120的三個(gè)下標(biāo)值和P1121的三個(gè)下標(biāo)值,報(bào)文結(jié)構(gòu)說(shuō)明見(jiàn)圖13,其中DB1.DBB 2(驅(qū)動(dòng)單元ID號(hào)碼):可以取值為0或1或2。實(shí)際設(shè)置見(jiàn)圖14。
圖13
讀請(qǐng)求 讀參數(shù)
圖14
(2)單字:修改參數(shù)P0701的三個(gè)下標(biāo)值均為9,主程序調(diào)用功能塊SFC59,見(jiàn)圖15,M3.1置后則自動(dòng)復(fù)位為0。實(shí)際修改參數(shù)見(jiàn)圖16。STARTER軟件中參數(shù)P0701的三個(gè)下標(biāo)值均被修改為9,見(jiàn)圖17。
圖15
圖16
圖17
(3)雙字:把參數(shù)P2200的三個(gè)下標(biāo)值都修改為1,實(shí)際修改參數(shù)見(jiàn)圖18,STARTER軟件中參數(shù)被修改為1,見(jiàn)圖19。
圖18
圖19
(4)浮點(diǎn)數(shù):把參數(shù)P1120的三個(gè)下標(biāo)修改為11.0/7.0/30.0,實(shí)際修改參數(shù)見(jiàn)圖20,STARTER軟件中參數(shù)被修改為11.0/7.0/30.0,見(jiàn)圖21。
圖20
圖21