西門(mén)子plc S7-1500?通信簡(jiǎn)介分享
發(fā)布日期:
2023-09-15

西門(mén)子S7-1500關(guān)于通信的功能非常完善,可以說(shuō)通信無(wú)處不在,這其中包括PLC之間的通信,PLC與人機界面的通信。在博途軟件中,支持拖拽方式,通過(guò)變量的拖拽自動(dòng)建立通信,這極大的提高了工程效率。今天我們從三個(gè)方面介紹S7-1500的通信??赐瓯疚哪鷷?huì )發(fā)現通信也是如此簡(jiǎn)單與高效。

S7-1500PLC通信功能強大,靈活方便,常用的S7通信方式可以在通信函數塊中確認通信狀態(tài)。對于熟悉經(jīng)典step7的工程師,可以按照原有的方式,即先建立連接,再編寫(xiě)通信程序的方式建立通信。下面以BSEND/BRCE 為例,介紹實(shí)現的過(guò)程。

首先進(jìn)入網(wǎng)絡(luò )視圖,點(diǎn)擊連接按鈕選擇S7連接。通過(guò)鼠標拖拽的方式,在兩臺S7-1500PLC的通信接口之間建立S7通信連接。通信連接建立以后,連接將高亮顯示。在通信連接的屬性中,可以查看使用的通信接口和通信地址等信息。這里需要注意每一個(gè)CPU的連接ID這些連接ID與通信函數相互關(guān)聯(lián)。

通信連接建立后就可以編寫(xiě)通信程序了。打開(kāi)一個(gè)CPU中的OB1,在S7通信指令中調用發(fā)送函數塊BSEND。賦值M1.1到發(fā)送請求參數,每一個(gè)上升沿發(fā)送一次。將連接ID 16#100復制到ID 參數。

在R_ID參數中,用戶(hù)可以自由定義一個(gè)通信對,即通信雙方的R_ID必須相同。示例中為16#1。SD-1為數據發(fā)送區,示例中將發(fā)送DB1的前10個(gè)整數。

賦值MW2到發(fā)送長(cháng)度,如果值為0,表示將發(fā)送區的數據全部發(fā)送。如果發(fā)送數據,通信方成功接收,DONE將返回一個(gè)脈沖信號,示例中賦值M1.2。如果通信故障,M1.3將為1,可以通過(guò)MW4查看具體的故障信息。

打開(kāi)另一個(gè)CPU中的OB1。在S7通信指令中調用接收函數塊BRCV。賦值1使能接收功能。將連接ID 16#100賦值到ID參數,R_ID 與通信方必須相同,為16#1。

將數據塊DB1的前10個(gè)整數作為接收區。實(shí)際接收數據的長(cháng)度可以從MW2中讀出。如果接收到新的數據,NDR將返回一個(gè)脈沖信號,示例中賦值M1.2。如果通信故障,M1.3將為1??梢酝ㄟ^(guò)MW4查看具體的故障信息。

分別將連接配置與通信程序下傳到CPU中。首先需要監控通信連接是否建立。選擇在線(xiàn)??梢钥吹?,通信連接已經(jīng)建立。打開(kāi)變量監控表。復制發(fā)送數據。然后使能發(fā)送信號M1.1在接收區可以看到數據接收成功。

S7通信也支持單邊編程的方式進(jìn)行通信,例如使用通信函數塊PUT將本方的數據存放到對方的數據區,也可以使用通信函數塊GET將對方的數據讀回并存儲于本方的數據區。

使用TIA博途V13進(jìn)行的PUT/GET通信方式將更簡(jiǎn)單,通過(guò)向導的方式就可以實(shí)現通信。下面以PUT為例介紹S7單邊通信方式。

打開(kāi)一個(gè)CPU中的OB1。在S7通信指令中直接調用通信函數塊PUT。在塊屬性中選擇組態(tài)標簽。在連接參數欄中選擇需要通信的站點(diǎn)。選擇站點(diǎn)后可以選擇使用的通信接口,例如兩個(gè)站點(diǎn)都使用接口1進(jìn)行通信。這樣通信地址就可以確定。這時(shí)系統會(huì )自動(dòng)創(chuàng )建一個(gè)S7連接及ID號。也可以選擇在項目中已經(jīng)創(chuàng )建過(guò)的S7連接。如果勾選主動(dòng)建立連接選項,則本方主動(dòng)發(fā)起連接的創(chuàng )建,對方則自動(dòng)取消這個(gè)選項。

點(diǎn)擊塊參數欄。賦值M1.1到通信請求參數,每一個(gè)上升沿將通信一次。在寫(xiě)入區域需要指定通信伙伴的接收地址區,例如開(kāi)始地址為P#DB1.DBX0.0,長(cháng)度為10個(gè)整數。在發(fā)送區域指定本方的數據發(fā)送區,例如開(kāi)始地址同樣為P#DB1.DBX0.0,長(cháng)度為10個(gè)整數。

如果發(fā)送數據通信方成功接收,DONE將返回一個(gè)脈沖信號,示例中賦值M1.2。如果通信故障,M1.3將改為1??梢酝ㄟ^(guò)MW4查看具體的故障信息。完成向導功能后,配置的參數將自動(dòng)復制到通信函數。

由于通信伙伴可以通過(guò)PUT/GET通信方式修改數據通信方式透明,所以在CPU中缺省狀態(tài)為鎖存狀態(tài)。如果需要通信,必須使能被訪(fǎng)問(wèn)方的讀寫(xiě)功能。例如在CPU的屬性中選擇保護欄勾選使能通信功能。然后分別將連接配置與通信程序下傳到CPU中。

檢測的方法未變,首先需要監控通信連接是否建立。選擇在線(xiàn)??梢钥吹?,通信連接已經(jīng)建立。打開(kāi)變量監控表。賦值發(fā)送數據,然后使能發(fā)送信號M1.1在接收區可以看到數據接收成功。

如果需要讀取對方的數據,也可以調用GET通信函數方式同樣簡(jiǎn)單。首先我們新建一個(gè)HMI站點(diǎn)。我們以KTP400comfort為例。新建HMI可以借助向導完成與指定的PLC的連接以及畫(huà)面布局、報警等界面設計。但本文通過(guò)使用鼠標拖放的功能快速建立與PLC的通信。因此我們點(diǎn)擊取消按鈕進(jìn)入下一步工作。

在通常的情況下,可以在設備和網(wǎng)絡(luò )視圖中通過(guò)鼠標點(diǎn)擊的方式建立HMI與PLC的連接。如果在一個(gè)項目中需要連接多個(gè)PLC,不考慮之間過(guò)程,只考慮通信的結果的情況下,使用拖放變量到HMI界面的方式將更加簡(jiǎn)單。下面以示例方式詳細介紹。

在OB1中創(chuàng )建一個(gè)簡(jiǎn)單的與操作程序。在項目樹(shù)的PLC變量中,打開(kāi)默認變量表,可以看到程序中使用到的變量。將變量M100.0,M100.1和M100.2從變量表中拖放到HMI界面中。在設備和網(wǎng)絡(luò )視圖中,我們可以看到兩者的HMI連接自動(dòng)創(chuàng )建完畢。

編譯并下載PLC程序。監控OB1程序運行狀態(tài)。啟動(dòng)HMI仿真器。通過(guò)IO域分別給M100.0,M100.1賦值,同時(shí)觀(guān)察OB1程序執行狀態(tài)的變化??梢钥吹酵ㄐ抨P(guān)系已經(jīng)建立。

聲明:部分內容來(lái)源于網(wǎng)絡(luò ),如侵權請后臺留言聯(lián)系刪除。