天天看點

一文搞懂PLC與序列槽伺服器通信

作者:趙志華IIot

1. PLC與序列槽伺服器之間的通信原理

智嵌物聯的序列槽伺服器可以配置為伺服器模式,也可以配置為用戶端模式。具體使用哪種工作模式,可根據使用者的PLC的工作模式來确定。若PLC作為用戶端,則序列槽伺服器須配置為伺服器模式;若PLC作為伺服器,則序列槽伺服器須配置為用戶端模式。

1.1 序列槽伺服器作為用戶端,PLC作為伺服器

序列槽伺服器工作在TCP用戶端(TCP Client)模式下,序列槽伺服器裝置作為TCP用戶端,将主動向“目标IP/域名”和“目标端口”所指定的PLC發起連接配接請求。如果連接配接不成功,TCP用戶端将會根據設定的連接配接條件不斷嘗試與TCP伺服器建立連接配接。在與TCP伺服器端建立TCP連接配接後即可進行雙向資料通信。

1. 序列槽伺服器主動向PLC發送建立連接配接請求。需将序列槽伺服器的目标IP設定為PLC的IP位址,序列槽伺服器的目标端口設定為PLC的本地端口号。

2. 連接配接一旦建立,序列槽伺服器與PLC之間即可進行資料傳輸。

一文搞懂PLC與序列槽伺服器通信

序列槽伺服器的配置方法如圖所示。

一文搞懂PLC與序列槽伺服器通信

1.2 序列槽伺服器作為伺服器,PLC作為用戶端

序列槽伺服器工作在TCP伺服器(TCP Server)模式下,序列槽伺服器裝置始終等待PLC的連接配接,在與用戶端建立TCP連接配接後即可進行雙向資料通信。資料傳輸步驟如下:

1. 建立連接配接。PLC作為用戶端主動向序列槽伺服器裝置發送建立連接配接請求。需将PLC的目标IP設定為序列槽伺服器的IP位址,PLC的目标端口設定為序列槽伺服器的本地端口号。

2. 連接配接一旦建立,PLC與序列槽伺服器之間即可進行資料的雙向傳輸。

一文搞懂PLC與序列槽伺服器通信

序列槽伺服器的配置方法如圖所示。

一文搞懂PLC與序列槽伺服器通信

2. 序列槽伺服器與西門子PLC(S7-1200)通信

序列槽伺服器可以與西門子不同系列的PLC進行通信,如S7-200 Smart、S7-1200、S7-1500等,本章以S7-1200為例,詳細闡述PLC與序列槽伺服器建立TCP通信的步驟。

2.1 PLC作為Modbus Server(從站)

如果使用者的序列槽裝置是Modbus主站,PLC S7-1200就要作為Modbus從站。下面以S7-1200與智嵌物聯的序列槽伺服器之間進行 Modbus TCP 通信為例,詳細闡述PLC如何程式設計及序列槽伺服器的配置過程。

實驗效果:使用Modbus Poll軟體模拟使用者的序列槽裝置,來主動采集PLC的資料。

軟體準備:Modbus Poll(模拟使用者序列槽裝置)、智嵌物聯序列槽伺服器配置軟體、博途TIAV16。

硬體準備:智嵌物聯序列槽伺服器、S7-1200、USB轉RS485序列槽線、電腦。

硬體接線:序列槽伺服器、PLC、電腦三個裝置的網口,同時接到交換機上; USB轉RS485線分别接到序列槽伺服器的序列槽和電腦的USB接口上。

一文搞懂PLC與序列槽伺服器通信

1. 打開TIAV16軟體,建立項目,并根據S7-1200的具體型号添加新硬體。如圖所示。

一文搞懂PLC與序列槽伺服器通信

2. 添加一個函數FC資料塊,并在該函數資料塊内添加一個MB_SERVER單個執行個體資料塊。

一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信

該功能塊各個引腳定義:

DISCONNET 0:代表被動建立與用戶端的通信連接配接;1:代表終止連接配接
MB_HOLD_REG 指向Modbus保持寄存器的指針
CONNECT 指向連接配接描述結構的指針,TCON_IP_v4(S7-1200)
NDR 0:代表無資料,1代表從Modbus用戶端寫入的新資料
DR 0:代表無讀取的資料。1:代表從Modbus用戶端讀取的資料
ERROR 0:無錯誤;1:出現錯誤,錯誤原因檢視STATUS
STATUS 指令的詳細狀态資訊

3. 建立一個保持寄存器的資料塊,Modbus Poll軟體會讀取這個資料塊裡的資料。

一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信

4. 添加一個全局資料塊,作為CONNECT引腳的指針類型,TCON_IP_V4。

一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信

各個引腳定義說明如下

InterfaceId 硬體辨別符,在裝置組态中查詢
ID 連接配接ID,取值範圍1~4095
Connection Type 連接配接類型,TCP連接配接預設為L6#0B
ActiveEstablished 建立連接配接。主動為1(用戶端),被動為0(伺服器)
ADDR 伺服器側的IP位址
RemotePort 遠端端口
LocalPort 本地端口

5. 設定FC函數塊,實作被用戶端讀取保持寄存器的值

一文搞懂PLC與序列槽伺服器通信

6. 在主程式中調用FC函數塊,并編譯。

一文搞懂PLC與序列槽伺服器通信

7. 設定PLC的IP位址,PLC的IP位址要和序列槽伺服器的IP位址在同一個網段,且不沖突。

一文搞懂PLC與序列槽伺服器通信

8. 建立一個監控表,并将整個項目下載下傳到PLC中

一文搞懂PLC與序列槽伺服器通信

9. 配置序列槽伺服器

序列槽伺服器的工作模式為TCP CLIENT,目标IP即為PLC的IP位址,目标端口即為PLC的本地端口,設定完成後,序列槽伺服器作為用戶端,會主動向PLC發起TCP連接配接。具體配置如所示。

一文搞懂PLC與序列槽伺服器通信

10. 配置Modbus Poll軟體

一文搞懂PLC與序列槽伺服器通信

11. 通信成功

一文搞懂PLC與序列槽伺服器通信

2.2 PLC作為Modbus Client(主站)

如果使用者的序列槽裝置是ModbusRTU從站站,PLC S7-1200就要作為Modbus主站。下面以S7-1200與智嵌物聯的序列槽伺服器之間進行 Modbus TCP 通信為例,詳細闡述PLC如何程式設計及序列槽伺服器的配置過程。

實驗效果:使用Modbus Slave軟體模拟使用者的序列槽裝置,PLC将會讀取Modbus Slave軟體的資料。

軟體準備:Modbus Slave(模拟使用者序列槽裝置)、智嵌物聯序列槽伺服器配置軟體、博途TIAV16。

硬體準備:智嵌物聯序列槽伺服器、S7-1200、USB轉RS485序列槽線、電腦。

硬體接線:序列槽伺服器、PLC、電腦三個裝置的網口,同時接到交換機上; USB轉RS485線分别接到序列槽伺服器的序列槽和電腦的USB接口上。

一文搞懂PLC與序列槽伺服器通信

1. 将智嵌物聯的序列槽伺服器配置為TCP SERVER模式,等待PLC建立連接配接。

一文搞懂PLC與序列槽伺服器通信

2. 打開Modbus Slave軟體,并按照圖中配置,等待PLC讀取。

一文搞懂PLC與序列槽伺服器通信

3. 打開TIAV16軟體,建立項目,并根據S7-1200的具體型号添加新硬體。如圖所示。

一文搞懂PLC與序列槽伺服器通信

4. 建立一個全局資料塊(MB_REV),用于存放從Modbus Slave軟體中讀取的資料。

一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信

5. 添加一個全局資料塊,作為CONNECT引腳的指針類型,TCON_IP_V4。

一文搞懂PLC與序列槽伺服器通信

6. 在主程式中調用“MB CLIENT”功能塊,并為各個引腳指派。

一文搞懂PLC與序列槽伺服器通信

7. 修改從站位址,此處的值要修改為與Modbus Slave軟體上設定的Slave ID一緻。

一文搞懂PLC與序列槽伺服器通信

8. 将整個工程進行編譯并下載下傳到PLC中,監控資料塊MB_REV中的資料。

一文搞懂PLC與序列槽伺服器通信

至此,PLC已經将Modbus Slave中的資料讀出來了。

2.3 PLC自由通信協定與序列槽伺服器通信之間雙向透明傳輸

如果使用者的序列槽裝置的通信協定不是ModBus協定,比如掃碼槍,則可以參考該小節的介紹來配置序列槽伺服器。

2.3.1 PLC作為用戶端,序列槽伺服器作為伺服器

如果使用者的PLC作為TCP用戶端,則智嵌物聯的序列槽伺服器裝置就要配置為TCP SERVER模式。下面以S7-1200與智嵌物聯的序列槽伺服器之間進行TCP 通信為例,詳細闡述PLC如何程式設計及序列槽伺服器的資料透明傳輸。

一文搞懂PLC與序列槽伺服器通信

實驗效果:使用序列槽調試助手軟體模拟使用者的序列槽裝置,實作序列槽調試助手發資料,經序列槽伺服器轉發到PLC;PLC發送資料,經序列槽伺服器轉發到序列槽調試助手上。

軟體準備:序列槽調試助手、智嵌物聯序列槽伺服器配置軟體、博途TIAV16。

硬體準備:智嵌物聯序列槽伺服器、S7-1200、USB轉RS485序列槽線、電腦。

1. 硬體接線

序列槽伺服器、PLC、電腦三個裝置的網口,同時接到交換機上; USB轉RS485線分别接到序列槽伺服器的序列槽和電腦的USB接口上。

2. 将智嵌物聯序列槽伺服器配置為TCP SERVER模式

一文搞懂PLC與序列槽伺服器通信

3. 打開序列槽調試助手

序列槽調試助手用來模拟使用者的序列槽裝置,序列槽調試助手可接收來自PLC的資料,也可發送資料到PLC。

一文搞懂PLC與序列槽伺服器通信

4. 打開TIA Portal V16,建立一個新項目,并根據使用者的PLC型号添加新硬體,并設定CPU的IP位址。

一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信

5. 建立發送資料的資料塊:發送資料DB,使用者緩存要發送的資料

一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信

6. 建立接收資料的資料塊:接收資料DB,使用者緩存要接收的資料

一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信

7. 添加FC函數塊,在該函數塊内分别調用建立TCP連接配接的功能塊“TCON”、發送資料的功能塊“TSEND”、接收資料的功能塊“TRCV”。

一文搞懂PLC與序列槽伺服器通信

8. 調用建立TCP通信的功能塊“TCON”,并對通信進行組态。夥伴IP及夥伴端口即為序列槽伺服器的IP及本地端口号。

一文搞懂PLC與序列槽伺服器通信
一文搞懂PLC與序列槽伺服器通信

9. 分别調用發送資料的功能塊“TSEND”、接收資料的功能塊“TRCV”

10. 在主函數中調用FC函數塊

一文搞懂PLC與序列槽伺服器通信

11. 将整個工程編譯,并下載下傳到PLC中,然後監控發送資料DB塊和接收資料DB塊中的資料。

PLC發送資料到序列槽伺服器,序列槽伺服器收到資料後,将資料透明轉發到對應的序列槽上,序列槽調試助手就會接收到PLC發來的資料。如圖所示。

一文搞懂PLC與序列槽伺服器通信

序列槽調試助手發送資料到序列槽伺服器,序列槽伺服器收到資料後,将資料透明轉發到網口上的PLC上,PLC就會收到序列槽調試助手發來的資料。

一文搞懂PLC與序列槽伺服器通信

2.3.2 PLC作為伺服器,序列槽伺服器作為用戶端

1. 在上一節的基礎上,隻需要将序列槽伺服器配置為用戶端模式、PLC配置為伺服器模式即可,其他操作步驟和上一節一樣。

2. 将序列槽伺服器配置為TCP CLIENT模式,目标IP即為PLC的IP位址,目标端口即為PLC的本地端口。

一文搞懂PLC與序列槽伺服器通信

3. 将PLC設定為伺服器,對“TCON_DB”進行組态。

一文搞懂PLC與序列槽伺服器通信

4. 将整個工程編譯,并下載下傳到PLC中,然後監控發送資料DB塊和接收資料DB塊中的資料。

PLC發送資料到序列槽伺服器,序列槽伺服器收到資料後,将資料透明轉發到對應的序列槽上,序列槽調試助手就會接收到PLC發來的資料。如圖所示。

一文搞懂PLC與序列槽伺服器通信

序列槽調試助手發送資料到序列槽伺服器,序列槽伺服器收到資料後,将資料透明轉發到網口上的PLC上,PLC就會收到序列槽調試助手發來的資料。

一文搞懂PLC與序列槽伺服器通信

繼續閱讀