西門子PLC乙太網開放式用戶通信連載(1)-TCON

從今天這篇文章開始,我們以連載的方式來介紹西門子PLC基於乙太網的開放式用戶通信(Open User

Communicaton)。文章以西門子S7-1200

PLC為例,但對於S7-300/400,S7-1500系列PLC也具有相同的指導意義。開放式用戶通信基本包括四個步驟:建立連接,接收數據,發送數據和斷開連接,各個步驟均有相應的功能塊(指令)來實現。今天這篇文章,我們先來介紹建立連接的指令:TCON。

在開放式用戶通信中,無論是使用TCP協議,還是ISO-ON-TCP協議或者UDP協議,都需要使用TCON指令來建立連接。對於TCP或者ISO-ON-TCP協議,TCON會在通信夥伴之間建立真實的連接;對於UDP協議,TCON指令只是用來配置相關的通信參數。關於二者之間的區別,請參考文章:

UDP協議通信需要建立連接嗎??

www.founderchip.com

下面我們以S7-1200為例,介紹如何在博途(Portal)環境下配置與使用TCON指令。

在【指令(Instructions)】-【通信(communications)】-【開放式用戶通信(Open user communication)】- 【其它(others)】列表中找到TCON指令,如下圖:

將其拖拽到程序塊中,系統會自動彈出為該指令添加背景數據塊的對話框。可以選擇使用獨立背景數據塊(Single instance DB)或者多重背景數據塊(Mutil instance DB),如下圖:

本常式中我們選擇獨立背景數據塊,點擊【OK】確認,系統會將該DB塊添加到【系統塊】-【程序資源】列表中。程序中TCON指令如下圖:

下面來介紹下該指令中各參數的含義:

  1. REQ:建立連接請求,需要一個上升沿的的信號變化;
  2. ID:連接資源的唯一標識;
  3. CONNECT:一個指向連接資源的指針。連接資源是一個包含相關配置參數的DB塊;
  4. DONE:通信連接的過程是否完成,1=已經完成;
  5. BUSY:是否正在進行通信連接,1=正在連接,0=未開始連接或已經完成;
  6. ERROR:連接過程中是否有錯誤發生,0=沒有錯誤,1=有錯誤;
  7. STATUS:連接的狀態;

下面這張表格是常見的ERROR和STAUS的描述:

對於TCON連接參數(TCON_Param)的分配,可以使用如下任意一種方式:

  • 手動創建TCON_Param的DB塊,分配參數並直接以指令寫入;
  • 使用屬性窗口進行分配;

我們來介紹相對簡單的屬性窗口分配的方法:

在TCON指令的屬性(Properties)窗口中,點擊【配置(Configuration)】-【連接(Connection)】,選擇需要通信的夥伴。

通信夥伴可以是項目中已有的CPU,或者不指定。本常式對通信夥伴選擇【不指定(unspecified)】。

然後點擊【連接數據(Connection Data)】右側的列表框,選擇【新建(new)】,系統會自動創建一個用於配置連接參數的DB塊,本常式中默認創建的DB名稱為:PLC_1_Connection_DB,如下圖:

建議將其重命名以增加可讀性。

在程序列表中,找到新創建的DB塊右鍵選擇【重命名】,將其修改為:TCON_Param_DB:

假設我們使用TCP協議,在【連接類型(Connection Type)】的列表框中選擇TCP;

【連接ID(Connection ID)】根據實際情況填寫,這裡設置為1;

設置通信夥伴的IP地址設置為:192.168.0.60,埠號為:2010;

將本地PLC設置為主動連接(Active connection establishment);

這樣連接參數就配置好了,如下圖:

最後給TCON指令各參數進行賦值,如下圖:

這樣,在Start_Connect(I0.2)的上升沿,程序就可與通信夥伴進行連接了。

好了,關於西門子開放式用戶通信的連接指令TCON就先介紹到這裡,官網(founderchip.com)提供本文PDF版本下載。


推薦閱讀:

TAG:可編程邏輯控制器PLC | 電氣工程 | 電氣工程及其自動化 |