一、試驗設備的連接
準備的實驗設備有:S7-200 SMART型PLC、M-1001和M-2101模塊、SDS-1001轉換器、K型熱電偶以及一個直流電源。
我們首先說明各設備是如何連接的,將直流電源連接到PLC的24V電源接口,正極接L+,負極接M。因為RS485端口是集成在PLC的九針超小D型連接器上的,所以我們制作了一個連接器方便設備接線。具體的針腳分配,大家可以在STEP 7 SMART軟件的在線幫助文檔中的連接器引腳分配章節中看到。連接器的紅線接M2101模塊的485-A信號,黑線接485-B信號。因為用以太網電纜連接PLC和電腦,所以需要調整電腦的IP地址,它的具體操作我們之后說明,現在只要將電纜插入網口即可。此次實驗我們依然使用SDS-1001為采集模塊供電,將它們的+Vs、GND端連接就可以了。最后將K型熱電偶接入M2101模塊中的DI 1端口。為模塊通電,這樣設備接線就完成了。

二、使用Smart軟件與模塊建立連接
S7-200 SMART型PLC所用的編程軟件是Smart軟件,這個軟件是免費使用的,大家可以到西門子的官網下載。

打開軟件,在文件選項中打開范例M2101,此時設備正處于未連接的狀態,雙擊主要窗口中的通信選項,在出現的的對話框中點擊查找CPU,就能看到PLC的IP地址。我們可以點擊旁邊的閃爍指示燈,驗證是否找到了CPU。如果PLC的指示燈交替閃爍,就說明我們查找CPU已經成功。

下一步的操作是設置電腦的IP地址。進入網絡和Internet設置界面,進入網絡和共享中心。

選項點擊以太網。

選擇屬性。

在彈出的窗口中找到Internet協議版本4(TCP/IPv4)項目,點擊屬性。

選擇使用下面的IP地址,輸入相應的IP地址:192.168.2.111,子網掩碼輸入225.225.225.0,默認網關是:192.168.2.1。點擊確定。

回到軟件頁面,如果成功的話,軟件會顯示已連接。

三、PLC范例程序說明以及實驗
我們以程序2101為例,解釋一下它的內容。在程序段1中的SM是PLC中的特殊標志繼電器,SM0.0表示始終接通,與其連接的參數EN在輸入接通(TURE)時,每次掃描均會執行該指令;

SM0.5表示提供一個周期為1秒鐘的時鐘脈沖,0.5秒為1,0.5秒為0,與它連接的參數First我們之后說明。

特殊寄存器(SM)的其它地址位,大家可以到在線幫助文檔中查看。指令MBUS_CTRL,可以在主要窗口的庫文件中的Modbus RTU Master(v2.0)中找到,右鍵選擇幫助就可以看到它的說明文檔。需要聲明的是:在程序中,我們將PLC當作主站,M模塊(如:M-2101)則作為從站使用。閱讀說明內容我們知道MBUS_CTRL是程序在執行MBUS_MSG指令前必須調用的指令。

參數“模式”(Mode)用于選擇通信協議,我們輸入的是SM0.0,觸點為常閉狀態,所以輸入值是1,意思是啟用Modbus協議。參數“波特率”(Baud)的設置值要和從站設備的波特率一致才可以得到正確信息,所以輸入值為M模塊的默認波特率:9600。參數“奇偶校驗”(Parity)的設置應與從站設備的奇偶校驗相同,從站默認為偶校驗,以數值2表示。參數“Port”是設置物理通信端口,實驗中使用的是PLC中集成的RS-485接口,所以需要輸入0值。參數“超時”(Timeout)為等待從站做出響應的毫秒數,范例中設置的是典型值1000ms。

所以指令Mbus_CTRL的作用是初始化主站,使得主從站設備的參數一致,兩者可以進行正常的通信。
下面我們來介紹指令MBUS_MSG,它的作用是啟動對Modbus從站的請求并處理響應。參數“First”是當主站有新請求發送時,First通過邊沿檢測元素(例如是上升沿),將導致程序發送一次,所以我們為此參數設置的是SM0.5。參數“從站”(Slave)是Modbus從站設備的地址,M系列模塊的默認地址為1。參數“RW”是設置讀取或寫入信息,0表示讀取,1表示寫入。參數“地址”(Addr)是起始Modbus地址,范例中寫入的數值就是我們在用戶手冊中給出的寄存器地址:30101。參數“計數”(Count)用于分配要在該請求中讀取或寫入的數據元素數,也就是根據地址參數的輸入值向后延伸的個數。

打開范例M2100的用戶手冊,找到M2101遠程IO模塊Modbus映射表就可以看到地址、通道、屬性等內容。

如我們現在打開的這個范例程序,它是要操作從熱電偶輸入寄存器30101到30108這8個寄存器,所以對Count的輸入值為8。參數“DataPtr”是間接地址指針,指向CPU中與讀/寫請求相關的數據的V存儲器,指針必須是VB類型。
這里的V、VB、VW是V存儲器中不同類型數據的表達方式:V表示位數據,VB表示字節數據,VW表示字數據,一個字由兩個字節構成,一個字節則有8位。在范例程序中,我們使用VB數據類型存儲從模塊讀到的值,然后用VW數據類型表示出來。進行這樣的數據操作是因為,當PLC發出讀取請求時,采集模塊返回的值是16位的整型數據,需要用兩個VB類型的數據表示,而一個VW數據類型就表示兩個字節,剛好可以表示模塊返回的數據。
我們可以在狀態圖表中驗證一下。調出圖表窗口,下載程序,運行CPU,開啟圖表的監視狀態,因為我們只為模塊連接了一個溫度傳感器,所以在狀態圖表中只有第2行顯示出實際溫度值,當我們提高環境溫度,第2行的當前值也會隨之改變。其它沒有接入溫度傳感器的端口,其寄存器的返回值是-2731。

接著驗證我們剛才提到的V存儲器的數據類型,在狀態圖表中輸入VB1000,按回車鍵,就可以按順序添加地址。將它們的格式更改為十六進制,VB1000為F5,VB1001為55,而VW1000是它倆的集合F555。所以說兩個VB數據類型,構成一個VW數據類型。

更換M1001采集模塊。
接下來我們打開范例M1001DI,它可以讀取模塊上的DI(離散量輸入)的狀態。連接設備后,打開狀態圖表的實時數值監控,當前值為1。當我們將DI 0接地,就會看到當前值變為0,其它的DI端口也是一樣。這里的地址是位格式的,因為我們只需要一位的數據就可以表示端口當前所處的狀態(閉合或是斷開)。

打開范例M1001DO,此范例可以控制DO(繼電器)的狀態。建立通信后,下載程序到CPU,運行CPU,打開監控按鈕,可以看到此時的繼電器都處于關閉狀態。在新值中輸入1,點擊圖表中的寫入按鈕,就會看到當前值的改變而且M模塊的繼電器也會動作到開啟狀態。

這兩個范例程序的寄存器地址大家可以在用戶手冊M1000的M1001遠程IO模塊Modbus映射表中找到。
以上就是模塊與PLC連接的相關內容。文檔中使用的范例程序及用戶手冊均可以在官網下載。文章視頻版的內容點擊如下鏈接跳轉:M系列模塊編程操作與PLC。
如果對于文章有任何問題都可以在評論區指出,也可以通過公眾號“思邁科華Smacq”直接聯系我們。希望您可以點贊、收藏、轉發。
再見。
審核編輯 黃宇
-
plc
+關注
關注
5052文章
14741瀏覽量
488194 -
采集模塊
+關注
關注
0文章
193瀏覽量
10067 -
MODBUS RTU
+關注
關注
0文章
146瀏覽量
3733
發布評論請先 登錄
Modbus RTU 協議的非標準擴展方案與應用實踐
西門子200 SMART與臺達DVP PLC通訊:工業自動化Modbus RTU 轉Modbus TCP 方案
智能物流立體倉庫通訊困境:基于協議轉換的Modbus TCP 轉 Modbus RTU解決方案
光伏逆變器上料-測試協同依托數據采集的Modbus TCP 轉 Modbus RTU協議應用案例
用Profinet轉Modbus RTU協議網關有什么好處
塔訊 Modbus RTU 轉 Modbus TCP 在污水處理廠 PLC 數據采集中的配置案例
從協議沖突到生產力爆發:EtherCAT轉MODBUS RTU網關實戰全解
用PLC控制使用Modbus RTU協議的采集模塊
評論