工控網(wǎng)首頁(yè)
>

應(yīng)用設(shè)計(jì)

>

西門(mén)子PROFIBUS主從站數(shù)據(jù)傳送

西門(mén)子PROFIBUS主從站數(shù)據(jù)傳送

2016/2/17 9:49:35

 

  問(wèn):兩臺(tái)314-2DP,怎么把主站的REAL數(shù)據(jù)傳到從站去?例如,主站MD100里數(shù)據(jù)我通過(guò)觸摸屏輸入是1.5,把MD100通過(guò)MOVE傳送到QD50,主站QD50對(duì)應(yīng)從站ID50,怎么在從站里完整的讀到1.5,放到從站MD80里面?

  問(wèn)題補(bǔ)充還有一問(wèn)題,我主站上帶觸摸屏,從站也帶觸摸屏,主站與從站配置都完全一樣,包括觸摸屏,目的就是控制一臺(tái)電機(jī)正反轉(zhuǎn),來(lái)控制閘門(mén)上升下降,那我在從站那里可以輸入預(yù)置高度1.5米,動(dòng)了以后再在主站里預(yù)置1.9米,也動(dòng)。當(dāng)我再在從站輸入預(yù)置高度時(shí)一直是主站給的數(shù)據(jù)了,請(qǐng)問(wèn),怎么來(lái)規(guī)避這個(gè)問(wèn)題呢?就是對(duì)同一個(gè)MD120通過(guò)兩個(gè)觸摸屏都能設(shè)置,而又不相互影響,再怎么輸入都是最后一次在觸摸屏上輸入有效,不管哪個(gè)觸摸屏。

答:實(shí)現(xiàn)Profibus主從站之間的MS通訊   通過(guò)圖解,說(shuō)明2個(gè)CPU之間通過(guò)Profibus實(shí)現(xiàn)主從站之間的MS通訊。這個(gè)例子是結(jié)合某現(xiàn)場(chǎng)的實(shí)際情況來(lái)的,實(shí)際情況是在2套300系統(tǒng)之間進(jìn)行數(shù)據(jù)通訊,由于每個(gè)CPU300都帶有ET200M從站,所以317的主DP口和315的DP口都只能是主站而不能配置為從站。并且2套系統(tǒng)之間距離較遠(yuǎn),MPI不行,于是就利用了317的MPI/DP口配置成DP口來(lái)和315通訊。 1.首先,在STEP7中新建一個(gè)Project,分別插入2個(gè)S7-300站。

  這里我們插入的一個(gè)CPU315-2DP,作為主站;一個(gè)CUP317-2作為從站,并且使用317-2的第一個(gè)端口MPI/DP端口配置成DP口來(lái)實(shí)現(xiàn)和315-2DP的通訊。然后分別對(duì)每個(gè)站進(jìn)行硬件組態(tài):首先對(duì)從站CPU317-2進(jìn)行組態(tài):將317的第一個(gè)端口MPI/DP端口組態(tài)為PROFIBUS類(lèi)型,并且創(chuàng)建一個(gè)不同于CPU自帶DP口的PROFIBUS網(wǎng)絡(luò),設(shè)定地址。在操作模式頁(yè)面中,將其設(shè)置為DPSLAVE模式,并且選擇“Test,commissioning,routing”,是將此端口設(shè)置為可以通過(guò)PG/PC在這個(gè)端口上對(duì)CPU進(jìn)行監(jiān)控,以便于我們?cè)谕ㄓ嶆溌飞线M(jìn)行程序監(jiān)控。下面的地址用默認(rèn)值即可。   然后選擇Configuration頁(yè)面,創(chuàng)建數(shù)據(jù)交換映射區(qū)。這里我們創(chuàng)建了2個(gè)映射區(qū),圖中的紅色框選區(qū)域在創(chuàng)建時(shí)是灰色的,包括上面的圖中的Partner部分創(chuàng)建時(shí)也是空的,在主站組態(tài)完畢并編譯后,才會(huì)出現(xiàn)圖中所示的狀態(tài)。由于我們這里只是演示程序,所以創(chuàng)建的交換區(qū)域較小。組態(tài)從站之后,再組態(tài)主站。插入CPU時(shí),不需要?jiǎng)?chuàng)建新的PROFIBUS網(wǎng)絡(luò),選擇從站建立的第二條(也就是準(zhǔn)備用來(lái)進(jìn)行通訊的MPI/DP端口創(chuàng)建的那條)PROFIBUS網(wǎng)絡(luò)即可。組態(tài)好其它硬件,確認(rèn)CPU的DP口處于主站模式,從窗口右側(cè)的硬件列表中的已組態(tài)的站點(diǎn)中選擇CPU31X,拖放到主站的PROFIBUS總線(xiàn)上,   這時(shí)會(huì)彈出鏈接窗口,選擇以組態(tài)的從站,點(diǎn)擊Connect按鈕,然后進(jìn)入Configuration頁(yè)面,可以看到前面在從站中設(shè)定的映射區(qū)域,逐條進(jìn)行編輯(Edit…),確認(rèn)主從站之間的對(duì)應(yīng)關(guān)系。主站的輸入對(duì)應(yīng)從站的輸出,主站的輸出對(duì)應(yīng)從站的輸入。至此,硬件的組態(tài)完成,將各個(gè)站的組態(tài)信息下載到各自的CPU中。通過(guò)NetPro可以看到整個(gè)網(wǎng)絡(luò)的結(jié)構(gòu)圖。 2.編寫(xiě)程序。   硬件組態(tài)完畢,下載,PLC運(yùn)行之后,數(shù)據(jù)并不會(huì)自動(dòng)交換。需要通過(guò)程序來(lái)執(zhí)行。在組態(tài)中,input和output區(qū)域,也并不是實(shí)際硬件組態(tài)中的硬件地址,也就是說(shuō),input和output并不代表I/O模塊的地址和數(shù)據(jù)。但是映射區(qū)域組態(tài)用到的input和output地址,同時(shí)也占用了I/O模塊的組態(tài)地址,就是說(shuō),映射區(qū)的地址和I/O地址是并行的,不能重復(fù)使用。所以最好在硬件的I/O模塊全部組態(tài)完畢之后再組態(tài)映射區(qū)。   映射區(qū)的數(shù)據(jù)交換是通過(guò)系統(tǒng)功能塊SFC14(DPRD_DAT——ReadConsistentDataofaStandardDPSlave)和SFC15(DPWR_DAT——WriteConsistentDatatoaStandardDPSlave)實(shí)現(xiàn)的。SFC14和SFC15是成對(duì)使用的,一個(gè)發(fā)送一個(gè)接收,缺一不可。數(shù)據(jù)的通訊也是交互的,可以相互交換數(shù)據(jù)。本例中,我們通過(guò)簡(jiǎn)單的數(shù)據(jù)來(lái)驗(yàn)證通訊結(jié)果。   首先,我們?cè)诔绦蛑胁迦霐?shù)據(jù)區(qū)DB1,前面我們只建立了2個(gè)字(2Word)的映射區(qū),于是我們建立如下內(nèi)容的DB1,為了查看的方便,DB1的前半部分作為接收數(shù)據(jù)的存儲(chǔ)區(qū),后半部分用作發(fā)送數(shù)據(jù)的存儲(chǔ)區(qū)。在317和315中我們插入同樣的DB1,然后分別在OB1中編寫(xiě)通訊程序。其中,程序的LADDR地址,對(duì)應(yīng)的是硬件的映射區(qū)組態(tài)時(shí)本站的LocalAddr中的地址,從站的LocalAddr我們組態(tài)的是0,對(duì)應(yīng)的PartnerAddr也就是主站的地址是4。需要注意的是這里的地址是需要用16進(jìn)制的格式來(lái)表示的,我們組態(tài)時(shí)是用10進(jìn)制表示的。   完成之后,我們?cè)诟髡局胁迦隣B82、OB86、OB122等程序塊,這些是為了保證當(dāng)通訊的一方掉電時(shí),不會(huì)導(dǎo)致另一方的停機(jī)。完成之后,將所有的程序分別下載到各自的CPU中,個(gè)站切換到運(yùn)行狀態(tài),通過(guò)PLC監(jiān)控功能,設(shè)定數(shù)據(jù)之后,我們監(jiān)控的結(jié)果如下:上面的表格內(nèi)容為主站315的數(shù)據(jù),下面的是從站317的數(shù)據(jù)??梢钥吹剑瑑蓚€(gè)站都分別將各自的DBB4—DBB7數(shù)據(jù)發(fā)送出去并被另一方成功接收后存儲(chǔ)在各自的DBB0—DBB3中。驗(yàn)證中,我們將一個(gè)站的CPU切換到STOP狀態(tài),可以看到,另一個(gè)站的CPU硬件SF指示燈報(bào)警,但PLC正常運(yùn)行不停機(jī)。待該站恢復(fù)之后,報(bào)警自動(dòng)消失。   擴(kuò)展問(wèn)題:在一個(gè)站的CPU掉站之后,另一個(gè)站的接收數(shù)據(jù)區(qū)顯示的仍然是最后一次接收到的數(shù)據(jù),并且,即使在這種狀態(tài)下,居然仍然無(wú)法修改該數(shù)據(jù)區(qū)內(nèi)容。這樣就存在一個(gè)問(wèn)題,當(dāng)前站需要知道當(dāng)前接收數(shù)據(jù)存儲(chǔ)區(qū)的內(nèi)容是否是實(shí)時(shí)的數(shù)據(jù)。如何判斷。   大概思路:   方法1,用以前的方法,在每個(gè)數(shù)據(jù)接收周期開(kāi)始前,將已接收數(shù)據(jù)清空。這樣當(dāng)接收周期內(nèi)接收不到新的數(shù)據(jù)時(shí),就可以察覺(jué)到。但是問(wèn)題是,SFC14和SFC15沒(méi)有接收是否完成、是否成功等標(biāo)識(shí)位,并且,在接收不到新的數(shù)據(jù)時(shí),原有數(shù)據(jù)不能修改。此方法不通。   方法2,通過(guò)別的方式方法檢測(cè)兩個(gè)站之間的通訊狀態(tài)。在SIEMENS的官方文檔中,有這樣的描述:主站:主站掌握總線(xiàn)中數(shù)據(jù)流的控制權(quán)。只要它擁有訪問(wèn)總線(xiàn)權(quán)(令牌),主站就可在沒(méi)有外部請(qǐng)求的情況下發(fā)送信息。在PROFIBUS協(xié)議中,主站也被稱(chēng)作主動(dòng)節(jié)點(diǎn)。從站:從站是簡(jiǎn)單的輸入、輸出設(shè)備。典型的從站為傳感器,執(zhí)行器以及變頻器。從站也可為智能從站,入S7-300/400帶集成口的CPU等。從站不會(huì)擁有總線(xiàn)的訪問(wèn)授權(quán)。從站只能確認(rèn)收到的信息或者在主站的請(qǐng)求下發(fā)送信息。從站也被稱(chēng)作被動(dòng)節(jié)點(diǎn)。另外,SIEMENS對(duì)SFC14/15的描述也分別是:用于讀取Profibus從站的數(shù)據(jù)/用于將數(shù)據(jù)寫(xiě)入Profibus從站。   根據(jù)這些描述,通過(guò)CPU集成口通訊這種方式下,作為從站的CPU應(yīng)該屬于“智能從站”,但是SIEMENS的描述中,卻沒(méi)有說(shuō)智能從站和普通的從站之間有什么區(qū)別。那么根據(jù)上面的主從站的描述,主站可以主動(dòng)的獲取到從站的數(shù)據(jù),并可以自主的將數(shù)據(jù)寫(xiě)入從站;而從站必須在主站的指令下獲取或者發(fā)送數(shù)據(jù)。而在本例中,這些說(shuō)法似乎無(wú)法成立。   本例中,SFC14、SFC15是成對(duì)使用的,不論在主站上還是從站上,主從站之間的SFC14和SFC15必然是需要成對(duì)出現(xiàn)的。也就是說(shuō),任何一方?jīng)]有SFC15運(yùn)行的的話(huà),另一方的SFC14都讀不到數(shù)據(jù)。而任何一方?jīng)]有SFC14的話(huà),另一方的SFC15發(fā)送出來(lái)的數(shù)據(jù)也無(wú)人接收。至少?gòu)倪@點(diǎn)看來(lái),看不出主從站有什么區(qū)別。不過(guò),聯(lián)想到以前曾經(jīng)做過(guò)S7-300和MM430的Profibus通訊,該通訊方式中,顯然MM440是作為從站出現(xiàn)的,所以在正確組態(tài)之后,只需要在主站(CPU)中寫(xiě)好SFC14/15即可,當(dāng)然,MM440中我們也寫(xiě)不進(jìn)去程序。那么在這種方式中,可以說(shuō)是完全的遵守了SIEMENS官方文檔中的說(shuō)法。同時(shí)也說(shuō)明,在“智能從站”這種方式下,并不遵守SIEMENS官方文檔中對(duì)從站的描述。再次研究SFC14/15的收發(fā)狀態(tài),發(fā)現(xiàn),可能是因?yàn)閿?shù)據(jù)的存在是過(guò)程映像中,所以只要SFC15發(fā)送過(guò)一次,數(shù)據(jù)即存在于過(guò)程映射中,SFC14隨時(shí)都從映像中讀取數(shù)據(jù),所以存在前面說(shuō)的,SFC14運(yùn)行過(guò)程中,是無(wú)法修改接收數(shù)據(jù)存儲(chǔ)區(qū)的數(shù)據(jù)的。脫離SFC14/15,而使用MOVE方法的研究:不使用SFC14/15,而是利用組態(tài)的時(shí)候產(chǎn)生的I/O地址來(lái)傳數(shù)據(jù)。根據(jù)創(chuàng)建過(guò)程映射區(qū)時(shí)的組態(tài)信息,我們寫(xiě)寫(xiě)出了如下的程序:在主站315-2DP中:在從站317中:其中,M位的使用是測(cè)試程序的不同情況下使用的臨時(shí)點(diǎn),和本程序功能無(wú)關(guān)。由此可見(jiàn),在這種方式下,因?yàn)榻M態(tài)時(shí)組態(tài)的地址是系統(tǒng)的I區(qū)和Q區(qū),所以是可以用MOVE來(lái)實(shí)現(xiàn)通訊的,但是同時(shí)也存在的問(wèn)題是,這種方式下,通訊所用的I/Q區(qū)占用了S7-300的系統(tǒng)區(qū),而S7-300的系統(tǒng)區(qū)可使用范圍是有限的,所以在系統(tǒng)的實(shí)際I/O模塊較多時(shí),通訊的數(shù)據(jù)量將會(huì)變得更加有限。

提交

查看更多評(píng)論
其他資訊

查看更多

超越傳統(tǒng)直覺(jué),MATLAB/Simulink助力重型機(jī)械的智能化轉(zhuǎn)型

新大陸自動(dòng)識(shí)別精彩亮相2024華南國(guó)際工業(yè)博覽會(huì)

派拓網(wǎng)絡(luò)被Forrester評(píng)為XDR領(lǐng)域領(lǐng)導(dǎo)者

智能工控,存儲(chǔ)強(qiáng)基 | ??低晭?lái)精彩主題演講

展會(huì)|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會(huì)