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

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

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

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

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

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

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

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

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

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

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

使用TIA博途V13進(jìn)行的PUT/GET通信方式將更簡單,通過向?qū)У姆绞骄涂梢詫崿F(xiàn)通信。下面以PUT為例介紹S7單邊通信方式。

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

點擊塊參數(shù)欄。賦值M1.1到通信請求參數(shù),每一個上升沿將通信一次。在寫入?yún)^(qū)域需要指定通信伙伴的接收地址區(qū),例如開始地址為P#DB1.DBX0.0,長度為10個整數(shù)。在發(fā)送區(qū)域指定本方的數(shù)據(jù)發(fā)送區(qū),例如開始地址同樣為P#DB1.DBX0.0,長度為10個整數(shù)。

如果發(fā)送數(shù)據(jù)通信方成功接收,DONE將返回一個脈沖信號,示例中賦值M1.2。如果通信故障,M1.3將改為1。可以通過MW4查看具體的故障信息。完成向?qū)Чδ芎?,配置的參?shù)將自動復(fù)制到通信函數(shù)。

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

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

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

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

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

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

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