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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

編譯并下載PLC程序。監(jiān)控OB1程序運(yùn)行狀態(tài)。啟動(dòng)HMI仿真器。通過IO域分別給M100.0,M100.1賦值,同時(shí)觀察OB1程序執(zhí)行狀態(tài)的變化。可以看到通信關(guān)系已經(jīng)建立。

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