西門子S7-400模塊CPU412-1(詳細信息)
| 更新時間 2024-11-22 08:00:00 價格 請來電詢價 品牌 西門子 西門子 PIC 代理區域 中國代理商 聯系電話 18717946324 聯系手機 18717946324 聯系人 占雪芬 立即詢價 |
西門子S7-400模塊CPU412-1(詳細信息)
潯之漫智控技術有限公司經營理念是:以質量求生存,以誠信謀發展。
我們公司能提供全套產品,我們有著**的庫存,*優惠的價格
*優質的售后服務和*強大的技術力量
我公司大量現貨供應,價格優勢,品質保證,德國原裝進口
通過圖解,說明2個CPU之間通過Profibus實現主從站之間的MS通訊。這個例子是結合某現場的實際情況來的,實際情況是在2套300系統之間進行數據通訊,由于每個CPU300都帶有ET200M從站,所以317的主DP口和315的DP口都只能是主站而不能配置為從站。并且2套系統之間距離較遠,MPI不行,于是就利用了317的MPI/DP口配置成DP口來和315通訊。
1.首先,在STEP7中新建一個Project,分別插入2個S7-300站。
這里我們插入的一個CPU315-2DP,作為主站;一個CUP317-2作為從站,并且使用317-2的個端口MPI/DP端口配置成DP口來實現和315-2DP的通訊。然后分別對每個站進行硬件組態:首先對從站CPU317-2進行組態:將317的個端口MPI/DP端口組態為PROFIBUS類型,并且創建一個不同于CPU自帶DP口的PROFIBUS網絡,設定地址。在操作模式頁面中,將其設置為DPSLAVE模式,并且選擇“Test,commissioning,routing",是將此端口設置為可以通過PG/PC在這個端口上對CPU進行監控,以便于我們在通訊鏈路上進行程序監控。下面的地址用默認值即可。
然后選擇Configuration頁面,創建數據交換映射區。這里我們創建了2個映射區,圖中的紅色框選區域在創建時是灰色的,包括上面的圖中的Partner部分創建時也是空的,在主站組態完畢并編譯后,才會出現圖中所示的狀態。由于我們這里只是演示程序,所以創建的交換區域較小。組態從站之后,再組態主站。插入CPU時,不需要創建新的PROFIBUS網絡,選擇從站建立的第二條(也就是準備用來進行通訊的MPI/DP端口創建的那條)PROFIBUS網絡即可。組態好其它硬件,確認CPU的DP口處于主站模式,從窗口右側的硬件列表中的已組態的站點中選擇CPU31X,拖放到主站的PROFIBUS總線上,
這時會彈出鏈接窗口,選擇以組態的從站,點擊Connect按鈕,然后進入Configuration頁面,可以看到前面在從站中設定的映射區域,逐條進行編輯(Edit…),確認主從站之間的對應關系。主站的輸入對應從站的輸出,主站的輸出對應從站的輸入。至此,硬件的組態完成,將各個站的組態信息下載到各自的CPU中。通過NetPro可以看到整個網絡的結構圖。
2.編寫程序。
硬件組態完畢,下載,PLC運行之后,數據并不會自動交換。需要通過程序來執行。在組態中,input和output區域,也并不是實際硬件組態中的硬件地址,也就是說,input和output并不代表I/O模塊的地址和數據。但是映射區域組態用到的input和output地址,同時也占用了I/O模塊的組態地址,就是說,映射區的地址和I/O地址是并行的,不能重復使用。所以在硬件的I/O模塊全部組態完畢之后再組態映射區。
西門子CPU6ES7313-6CG04-0AB0映射區的數據交換是通過系統功能塊SFC14(DPRD_DAT——ReadConsistentDataofaStandardDPSlave)和SFC15(DPWR_DAT——WriteConsistentDatatoaStandardDPSlave)實現的。SFC14和SFC15是成對使用的,一個發送一個接收,缺一不可。數據的通訊也是交互的,可以相互交換數據。本例中,我們通過簡單的數據來驗證通訊結果。
首先,我們在程序中插入數據區DB1,前面我們只建立了2個字(2Word)的映射區,于是我們建立如下內容的DB1,為了查看的方便,DB1的前半部分作為接收數據的存儲區,后半部分用作發送數據的存儲區。在317和315中我們插入同樣的DB1,然后分別在OB1中編寫通訊程序。其中,程序的LADDR地址,對應的是硬件的映射區組態時本站的LocalAddr中的地址,從站的LocalAddr我們組態的是0,對應的PartnerAddr也就是主站的地址是4。需要注意的是這里的地址是需要用16進制的格式來表示的,我們組態時是用10進制表示的。
完成之后,我們在各站中插入OB82、OB86、OB122等程序塊,這些是為了保證當通訊的一方掉電時,不會導致另一方的停機。完成之后,將所有的程序分別下載到各自的CPU中,個站切換到運行狀態,通過PLC監控功能,設定數據之后,我們監控的結果如下:上面的表格內容為主站315的數據,下面的是從站317的數據。可以看到,兩個站都分別將各自的DBB4—DBB7數據發送出去并被另一方成功接收后存儲在各自的DBB0—DBB3中。驗證中,我們將一個站的CPU切換到STOP狀態,可以看到,另一個站的CPU硬件SF指示燈報警,但PLC正常運行不停機。待該站恢復之后,報警自動消失。
擴展問題:在一個站的CPU掉站之后,另一個站的接收數據區顯示的仍然是后一次接收到的數據,并且,即使在這種狀態下,居然仍然無法修改該數據區內容。這樣就存在一個問題,當前站需要知道當前接收數據存儲區的內容是否是實時的數據。如何判斷。
大概思路:
方法1,用以前的方法,在每個數據接收周期開始前,將已接收數據清空。這樣當接收周期內接收不到新的數據時,就可以察覺到。但是問題是,SFC14和SFC15沒有接收是否完成、是否成功等標識位,并且,在接收不到新的數據時,原有數據不能修改。此方法不通。
方法2,通過別的方式方法檢測兩個站之間的通訊狀態。在SIEMENS的文檔中,有這樣的描述:主站:主站掌握總線中數據流的控制權。只要它擁有訪問總線權(令牌),主站就可在沒有外部請求的情況下發送信息。在PROFIBUS協議中,主站也被稱作主動節點。從站:從站是簡單的輸入、輸出設備。典型的從站為傳感器,執行器以及變頻器。從站也可為智能從站,入S7-300/400帶集成口的CPU等。從站不會擁有總線的訪問授權。從站只能確認收到的信息或者在主站的請求下發送信息。從站也被稱作被動節點。另外,SIEMENS對SFC14/15的描述也分別是:用于讀取Profibus從站的數據/用于將數據寫入Profibus從站。
根據這些描述,通過CPU集成口通訊這種方式下,作為從站的CPU應該屬于“智能從站",但是SIEMENS的描述中,卻沒有說智能從站和普通的從站之間有什么區別。那么根據上面的主從站的描述,主站可以主動的獲取到從站的數據,并可以自主的將數據寫入從站;而從站必須在主站的指令下獲取或者發送數據。而在本例中,這些說法似乎無法成立。
本例中,SFC14、SFC15是成對使用的,不論在主站上還是從站上,主從站之間的SFC14和SFC15必然是需要成對出現的。也就是說,任何一方沒有SFC15運行的的話,另一方的SFC14都讀不到數據。而任何一方沒有SFC14的話,另一方的SFC15發送出來的數據也無人接收。至少從這點看來,看不出主從站有什么區別。不過,聯想到以前曾經做過S7-300和MM430的Profibus通訊,該通訊方式中,顯然MM440是作為從站出現的,所以在正確組態之后,只需要在主站(CPU)中寫好SFC14/15即可,當然,MM440中我們也寫不進去程序。那么在這種方式中,可以說是*的遵守了SIEMENS文檔中的說法。同時也說明,在“智能從站"這種方式下,并不遵守SIEMENS文檔中對從站的描述。再次研究SFC14/15的收發狀態,發現,可能是因為數據的存在是過程映像中,所以只要SFC15發送過一次,數據即存在于過程映射中,SFC14隨時都從映像中讀取數據,所以存在前面說的,SFC14運行過程中,是無法修改接收數據存儲區的數據的。脫離SFC14/15,而使用MOVE方法的研究:不使用SFC14/15,而是利用組態的時候產生的I/O地址來傳數據。根據創建過程映射區時的組態信息,我們寫寫出了如下的程序:在主站315-2DP中:在從站317中:其中,M位的使用是測試程序的不同情況下使用的臨時點,和本程序功能無關。由此可見,在這種方式下,因為組態時組態的地址是系統的I區和Q區,所以是可以用MOVE來實現通訊的,但是同時也存在的問題是,這種方式下,通訊所用的I/Q區占用了S7-300的系統區,而S7-300的系統區可使用范圍是有限的,所以在系統的實際I/O模塊較多時,通訊的數據量將會變得更加有限
西門子S7-400模塊CPU412-1(詳細信息)
聯系方式
- 電 話:18717946324
- 聯系人:占雪芬
- 手 機:18717946324
- 微 信:18717946324