新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于自由口模式的S7-200 PLC與上位機(jī)的通信

基于自由口模式的S7-200 PLC與上位機(jī)的通信

作者: 時(shí)間:2011-11-08 來(lái)源:網(wǎng)絡(luò) 收藏

西門(mén)子公司的SIMATIC S7-200系列PLC是廣泛適用于中小型設(shè)備控制的工業(yè)可編程控制器,以其可靠性高、豐富的指令和內(nèi)置功能、通信能力強(qiáng)、性價(jià)比較高等特點(diǎn),在工業(yè)控制領(lǐng)域中得到越來(lái)越廣泛的應(yīng)用[1]。在本文的控制系統(tǒng)中,PLC作為下位機(jī)完成現(xiàn)場(chǎng)各種信號(hào)和數(shù)據(jù)的采集、運(yùn)算和控制[2-4]。工控PC機(jī)作為可提供人機(jī)交互界面,實(shí)現(xiàn)數(shù)據(jù)的處理以及現(xiàn)場(chǎng)數(shù)據(jù)的實(shí)時(shí)顯示等監(jiān)視和遠(yuǎn)程控制等功能。S7-200系列的PLC可以在四種通信模式下工作:PPI模式、MPI模式、PROFIBUS-DP模式和自由口通信模式。其中,PPI和MPI是西門(mén)子專門(mén)開(kāi)發(fā)的通信協(xié)議。PPI協(xié)議用于點(diǎn)對(duì)點(diǎn)接口,是一個(gè)主/從協(xié)議。MPI協(xié)議適用于多點(diǎn)接口,可以是主/主協(xié)議或主/從協(xié)議。PROFIBUS-DP是西門(mén)子支持的現(xiàn)場(chǎng)總線網(wǎng)絡(luò)[5]。而大多數(shù)用戶則是選用對(duì)用戶完全開(kāi)放的自由口通信模式。在自由口通信模式下,通信協(xié)議是由用戶定義的。用戶可以用梯形圖程序調(diào)用接收中斷、發(fā)送中斷、發(fā)送指令(XMT)、接收指令(RCV)來(lái)控制通信操作。本設(shè)計(jì)采用自由口方式,重點(diǎn)介紹工控PC機(jī)與主控PLC的通信原理與實(shí)現(xiàn)。
1 硬件組成
ITER導(dǎo)體穿纜測(cè)力測(cè)長(zhǎng)控制系統(tǒng)的框圖如圖1所示。將測(cè)力傳感器和測(cè)長(zhǎng)編碼器通過(guò)信號(hào)線與PLC相連,這樣穿纜過(guò)程中的拉力數(shù)據(jù)和行程數(shù)據(jù)就能夠?qū)崟r(shí)寫(xiě)入PLC的寄存器中。PLC通過(guò)通信電纜與PC機(jī)的串行通信口相連,在PC機(jī)中設(shè)置VB的MSCOMM控件來(lái)實(shí)現(xiàn)串口通信,這樣PC機(jī)就能讀取PLC寄存器中的拉力和行程數(shù)據(jù),對(duì)穿纜過(guò)程進(jìn)行實(shí)時(shí)監(jiān)控。

2 工控PC機(jī)與主控PLC的自由口通信協(xié)議
工控PC機(jī)標(biāo)準(zhǔn)的串口為RS232C,S7-200系列提供的串口為RS485,利用西門(mén)子公司提供的PC/PPI電纜,可以方便地實(shí)現(xiàn)S7-200系列PLC與PC之間硬件連接[1]。
向PLC發(fā)送指令(即指令幀),指令幀格式如圖2所示,由起始字符、指令類(lèi)型、目標(biāo)PLC站地址、目標(biāo)寄存器地址、讀/寫(xiě)字節(jié)數(shù)、待寫(xiě)入的數(shù)據(jù)(當(dāng)從PLC讀數(shù)據(jù)時(shí),具體數(shù)據(jù)部分為空)、校驗(yàn)碼和結(jié)束字符組成。

例如寫(xiě)VB100開(kāi)始的兩個(gè)字節(jié)的指令幀如下:83H,06H,08H,00H,00H,64H,30H,32H,31H,32H,33H,34H,35H,36H,115H。下面按順序說(shuō)明每段字節(jié)的含義:
 83H為字符"S"的ASCII碼,表示指令的開(kāi)始,在本設(shè)計(jì)中是固定的。
 06H表示指令的類(lèi)型,為寫(xiě)操作。在本文中定義05H代表讀操作,06H代表寫(xiě)操作。
 08H,00H表示要寫(xiě)PLC中V存儲(chǔ)區(qū)的內(nèi)容。
 00H,64H表示要從VB100開(kāi)始寫(xiě)。
 30H,32H表示要寫(xiě)兩個(gè)字節(jié)。
 31H,32H,33H,34H表示VB100寫(xiě)入12H,VB101寫(xiě)入34H。
 35H,36H是校驗(yàn)和。
 115H為字符"s"的ASCII碼,是結(jié)束字符,表示指令的結(jié)束,在本設(shè)計(jì)中是固定的。
一條指令除包含數(shù)據(jù)外,還包含必要的控制字(如起始字符、結(jié)束字符、指令類(lèi)型等)。如果指令中的數(shù)據(jù)直接以其原本的形式傳輸,則不可避免地會(huì)與指令中的控制字發(fā)生混淆。為了避免這種情況的發(fā)生,可以用文本來(lái)傳送二進(jìn)制數(shù)據(jù)。通過(guò)16進(jìn)制ASCII碼的格式來(lái)描述數(shù)據(jù),每個(gè)二進(jìn)制的字節(jié)都可以表示成一對(duì)ASCII編碼,這對(duì)編碼表示這個(gè)字節(jié)的兩個(gè)16進(jìn)制字符。這種格式可以表示任何的數(shù)值,僅僅使用ASCII代碼的30H~39H(表示0~9)和41H~46H(表示A~F)。ASCII碼的其余部分可以用作控制字。這樣就避免PLC因接收到數(shù)據(jù)中錯(cuò)誤的標(biāo)志位而停止接收的錯(cuò)誤。
在PLC接到指令后,會(huì)向上位機(jī)發(fā)送一個(gè)反饋消息,即反饋幀,反饋幀格式如圖3所示。其組成與指令幀基本相同,但它是由PLC發(fā)出的,所以具體數(shù)據(jù)段不同,在向PLC寫(xiě)數(shù)據(jù)時(shí),反饋幀的具體數(shù)據(jù)部分為空,而在從PLC讀數(shù)據(jù)時(shí),具體數(shù)據(jù)部分不能為空。


例如,PLC接收到寫(xiě)VB100開(kāi)始兩個(gè)字節(jié)后的發(fā)送反饋幀如下:83H,02H,08H,00H,00H,64H,30H,32H,35H,36H,115H。下面按順序說(shuō)明每段字節(jié)的含義:
 83H為字符"S"的ASCII碼,與指令幀相同。
 02H為狀態(tài)信息,表示接收到上位機(jī)指令后PLC的執(zhí)行狀態(tài)。在本文中02H表示寫(xiě)入正確,相應(yīng)地規(guī)定01H表示讀取正確,03H表示BCC校驗(yàn)碼錯(cuò)誤,04H表示指令不合法。
 08H,00H表示要寫(xiě)入PLC中V存儲(chǔ)區(qū)的內(nèi)容,與指令幀相同。
 00H,64H表示要從VB100開(kāi)始寫(xiě),與指令幀相同。
 30H,32H表示要寫(xiě)兩個(gè)字節(jié),與指令幀相同。需注意的是,此時(shí)具體數(shù)據(jù)段為空。
 35H,36H是校驗(yàn)和,因無(wú)數(shù)據(jù)段,與指令幀可能不同。
 115H為字符"s"的ASCII碼,表示此幀結(jié)束,與指令幀相同。
3 工控PC機(jī)軟件設(shè)計(jì)
工控PC機(jī)端通信程序流程圖如圖4所示。發(fā)送指令幀后,注意查詢反饋幀,如一定時(shí)間內(nèi)沒(méi)有接收到,應(yīng)再次發(fā)送,兩次無(wú)響應(yīng),則要提示通信故障或PLC不存在。

西門(mén)子plc相關(guān)文章:西門(mén)子plc視頻教程


數(shù)字通信相關(guān)文章:數(shù)字通信原理


通信相關(guān)文章:通信原理



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 自由口模式 上位機(jī)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉