資源描述:
《step7通訊中使用通訊功能塊fc5和fc6》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、使用下面的通訊連接,在S7-300中的S7程序中,必須調(diào)用通信功能塊FC5"AG_SEND"?和FC6"AG_RECV"?!CP?連接·ISO-on-TCP連接(RFC1006)·ISO?傳輸連接·UDP連接·FDL連接通信功能塊FC5"AG_SEND"?和FC6"AG_RECV"?的特點(diǎn)·FC5和FC6是異步通信方式?!ぴ诒纠校峭ㄟ^(guò)OB1調(diào)用這些功能塊的。(見(jiàn)EntryID:?2795485)?!つ軌蛟贠B1的幾個(gè)循環(huán)中執(zhí)行.·FC5通過(guò)輸入?yún)?shù)"ACT"被激活。·由"DONE"或"ERROR"表示工作結(jié)束狀態(tài)。?·AG_SEND?和AG_RECV能夠通過(guò)連接實(shí)時(shí)通信。?
2、·在SIMATIC_NET_CP?庫(kù)中"CP300>Blocks",能夠找到功能塊FC5"AG_SEND"V4.2?和FC6"AG_RCV"V4.7。示例程序S7軟件的SIMATIC_NET_CP?庫(kù)中包含了通信功能塊FC5"AG_SEND"??和FC6"AG_RCV",F(xiàn)C5"AG_SEND"是向另外的S7站,計(jì)算機(jī)站,或者第三方的系統(tǒng)發(fā)送數(shù)據(jù)。FC6"AG_RECV"是從另外的S7站,計(jì)算機(jī)站,或者第三方的系統(tǒng)接收數(shù)據(jù)。示例程序通過(guò)ISO-on-TCP連接演示了FC5"AG_SEND"??和FC6"AG_RCV"的功能。首先在S7-300站中進(jìn)行硬件配置。注意Note:設(shè)置M
3、B10作為時(shí)鐘字節(jié),時(shí)鐘標(biāo)記觸發(fā)發(fā)送請(qǐng)求,保存和編譯S7-300硬件配置并下載到CPU中。在本示例程序中使用了定時(shí)器T10。在NetPro中配置通信連接,如果通信對(duì)象在同一個(gè)S7項(xiàng)目中被設(shè)置,那么就能夠設(shè)置一個(gè)指定的通信連接;如果通信對(duì)象沒(méi)有在同一個(gè)S7項(xiàng)目中被設(shè)置,那么一個(gè)非指定的通信連接可以被設(shè)置。當(dāng)設(shè)置通信連接時(shí),確保正確的IP地址或者PROFIBUS地址,以及正確的接口,TSAP,或者LSAP,這些是在通信對(duì)象之間建立通信連接的條件。在通信連接->?"General"屬性對(duì)話框中,能夠找到通信功能塊FC5"AG_SEND"?和FC6"AG_RECV"輸入?yún)?shù)"ID"?和"
4、LADDR"。圖一:設(shè)置通信連接STEP7程序包含了OB100,OB1,FB200,DB200,DB201,FC5?和FC6塊。OB100:OB100是CPU重新啟動(dòng)(熱啟動(dòng))塊。在這個(gè)OB塊中,通過(guò)標(biāo)記M0.3"START-UP".使能首次通信。OB1:OB1是循環(huán)調(diào)用塊。調(diào)用參數(shù)(INIT_COM)為M0.3"START-UP"的FB200(背景數(shù)據(jù)塊:DB200),在FB200運(yùn)行后,復(fù)位M0.3"START-UP"。?圖二OB1??FB200OB1調(diào)用FB200,在FB200中調(diào)用通信功能塊FC5"AG_SEND"?和FC6"AG_RECV",在輸入?yún)?shù)"ACT"輸入一個(gè)
5、上升沿,來(lái)觸發(fā)發(fā)送請(qǐng)求。通過(guò)時(shí)鐘標(biāo)記M10.7和變量"SND_BUSY".來(lái)控制發(fā)送請(qǐng)求。如果發(fā)送請(qǐng)求正在運(yùn)行,這時(shí)候"SND_BUSY"被置位,那么觸發(fā)一個(gè)新的發(fā)送請(qǐng)求是不可能的。這個(gè)互鎖是非常重要的,因?yàn)橥ㄐ攀钱惒降?,并且能夠持續(xù)幾個(gè)循環(huán)周期。持續(xù)的觸發(fā)新的發(fā)送請(qǐng)求,而沒(méi)有等待檢查工作是否結(jié)束,這將會(huì)產(chǎn)生通信過(guò)載的錯(cuò)誤。輸入?yún)?shù)"ID"?和"LADDR"的值必須和通信連接的屬性對(duì)話框中的參數(shù)一致(見(jiàn)圖一)。在FC5的輸入?yún)?shù)"SEND"中,必須指定被發(fā)送的數(shù)據(jù)區(qū)域(發(fā)送緩沖區(qū))的地址和長(zhǎng)度,例如P#DB201.DBX0.0BYTE100。在輸入?yún)?shù)"LEN"中,需要輸入被發(fā)送
6、的字節(jié)長(zhǎng)度(100)。輸出參數(shù)"DONE","ERROR"和"STATUS"用來(lái)表示同一個(gè)循環(huán)中通訊完成情況及狀態(tài)。圖三FB200FC5"AG_SEND"調(diào)用如果發(fā)送請(qǐng)求成功完成,"SND_BUSY"被復(fù)位,然后一個(gè)新的發(fā)送請(qǐng)求能夠被再次觸發(fā)。如果發(fā)送請(qǐng)求產(chǎn)生錯(cuò)誤,"SND_BUSY"同樣被復(fù)位,并且FC5的"STATUS"輸出參數(shù)值作為錯(cuò)誤記錄被保存。圖四:FB200復(fù)位"SND_BUSY"和保存"STATUS"。輸入?yún)?shù)"ID"?和"LADDR"的值必須和通信連接的屬性對(duì)話框中的參數(shù)一致(見(jiàn)圖一)。在FC6的輸入?yún)?shù)"RECV"中,必須指定接收的數(shù)據(jù)區(qū)域(接收緩沖區(qū))的地址和
7、長(zhǎng)度,例如P#DB201.DBX100.0BYTE100?。圖5:FB200調(diào)用FC6"AG_RECV"輸出參數(shù)"NDR"是表示新數(shù)據(jù)是否被接收,輸出參數(shù)"LEN"表示接收數(shù)據(jù)的長(zhǎng)度。如果沒(méi)有成功接收數(shù)據(jù),輸出參數(shù)的值將被保存和分析。?圖6:FB200:FC6的狀態(tài)和接收的數(shù)據(jù)的長(zhǎng)度?在FB200中,有對(duì)FC5"AG_SEND"?和FC6"AG_RCV"產(chǎn)生的狀態(tài)值的分析,在數(shù)據(jù)類(lèi)型"Structure".的變量"STATISTIC"里保存著FB200的這些統(tǒng)計(jì)接口參數(shù)。圖7:數(shù)