?

基于Modbus_TCP協議的S7-1200與JX-300 DCS系統間的數據通訊與實現

2024-01-08 10:45張志娟
武漢工程職業技術學院學報 2023年4期
關鍵詞:組態設置變量

張志娟

(河南化工技師學院 自動化學院 河南 開封:475000)

化工生產工況復雜,所用設備的廠家和型號也很多,在不同廠家的設備之間安全地實現信號互相通信顯得極其重要。DCS和PLC是當今工業生產過程的兩大重要控制設備,在生產過程中實現兩者之間的信號通信將是不可避免需要解決的問題。浙江中控使用PLC來采集化工生產過程中的現場儀表信號,然后將信號傳輸給中控DCS進行信息及集中監控。本文以Modbus_TCP協議在浙江中控JX-300DCS和S7-1200PLC之間的應用為例,詳細介紹了通過采用Modbus_TCP 協議在 S7-1200PLC編程軟件中創建服務器程序與JX-300DCS進行通信的方法。

1 主控JX-300DCS和S7-1200PLC硬件網絡拓撲結構

浙江中控JX-300DCS的主控卡型號是XP243X,PLC采用的CPU模塊的型號為CPU 1212C DC/DC/DC,增加一個型號為SM 1231 AI8模擬量輸入模塊?,F場的流量、溫度等信號有直接接到PLC模擬量輸入模塊上的,也有接到分布式I/O模塊(IO-Link)上。DCS和PLC之間通過S7子網(PROFINET)連接,通信采用Modbus_TCP開放式通信協議,每個設備都設有IP地址,它們需要處于同一個網段內且設備的IP地址不能沖突,各設備的地址及設備間的網絡拓撲結構如圖1所示。

圖1 網絡拓撲圖

2 PLC硬件組態及程序編寫

2.1 硬件設備組態

S7-1200PLC使用的軟件是西門子TIA Portal軟件,該軟件是一款統一工程組態和軟件項目環境的自動化軟件[1]。本例對PLC的CPU模塊、SM1331模擬量輸入模塊、IFM的IO-Link 模塊進行硬件組態。

打開TIA Portal軟件,添加“CPU1212CDC/DC/DC”模塊。添加AI模塊的方法是:進入PLC的設備視圖,找到對應訂貨號的AI模塊,雙擊進行添加,如圖2所示。不論是CPU集成的模擬量通道,還是添加的模擬量模塊,采集數據過程中所需要的硬件組態設置方法和編程方法是類似的。以AI模塊采集數據時所使用的硬件設置方法為例,現場儀表是熱電阻傳感器,輸出信號是4~20mA電流信號,在進行硬件組態設置時,該信號輸入通道的測量類型設置為電流,電流范圍設置為4~20mA,如圖3所示。

圖2 PLC設備視圖

IO-Link可以將傳感器輸出的模擬信號轉換成數字信號,從而避免轉換過程中精度的損失[2]。AL1102自帶Profinet接口及8 Port信號接入口,這里選擇了一個溫度變送器和一個流量變送器,分別接在port1口和port7口。

先添加IO-Link模塊的GSD文件,然后進入網絡視圖,添加“AL1102”,需要分配的設備選擇為“PLC_1”,如圖4所示,PLC的IP地址設為128.128.1.6,IO-Link的IP地址設為128.128.1.10。進入AL1102的“設備視圖”,在對應PORT口位置添加PQI(循環數據),溫度信號為2BYTE,流量信號為8BYTE,系統會自動分配輸入I區地址。如圖5所示。

圖4 PLC網絡視圖硬件組態

圖5 AL1102端口組態

2.2 編寫程序,完成數據的讀取

新建DB數據塊,取名為“Hold”,將數據塊屬性中的“(優化的訪問”的“√”去掉,取消其優化訪問設置,將每個數據的地址固定化。建立的數據塊中添加靜態數據,數據類型為實型數組,數據編號為0~9,因為取消了優化訪問設置,所以每個數據的偏移量都是固定的。Hold 數據塊主要用于存儲需要通過Modbus_TCP協議傳輸給DCS的數據。

2.2.1 IO-Link數據讀取

在主程序OB1中,對信號進行程序的編寫,使用“CONV”指令將IO-Link的PORT1和PORT7傳送過來的整型數據轉化為實型數據,使用“MUL”指令乘以各自系數就可得到實際工程值,存儲在地址“hold.hold[0]”和地址“hold.hold[1]”中。其中,溫度系數為0.1,流量系數為0.01,程序如圖6所示。

圖6 IO-LINK信號轉換程序

2.2.2 模擬量輸入模塊的信號讀取

同樣,在主程序OB1中對信號進行程序編寫,通過AI模塊采集到的現場信號存儲在IW146,使用“NORM_X”標準化模塊將采集信號的值映射到0-1之間對其進行標準化。使用“SCALE_X”縮放指令將映射后的信號值轉換為工程值,此處采集的信號為溫度信號,溫度傳感器輸出信號為4-20MA的電流信號,對應-50~150℃。故縮放指令的最小值設置為-50,最大值設置為150??s放后的值就是我們熟悉的溫度值了,存儲在地址“hold.hold[2]”中,程序如圖7所示。

圖7 模擬量模塊信號轉換程序

2.3 在TIA-PORTAL軟件中編寫Modbus_TCP通信程序

MB_SERVER是Modbus_TCP通信的用戶程序指令,該指令處理客戶端的連接請求,接受處理Modbus請求并發送響應。系統數據類型“TCON_IP_V4”用于保存建立連接的參數,由系統提供且結構不可更改。我們需要手動創建類型為“TCON_IP_V4”的數據塊并為其分配參數,然后將數據塊直接寫入MB_SERVER指令中[3]。此處,S7-1200PLC作為服務器使用,通過用戶程序建立Modbus_TCP連接,用戶程序指令使用MB_SERVER,在程序編輯器為指令分配參數。

首先需要建立一個數據塊,取名為“TCON”,將數據塊屬性中的“(優化的訪問”的“√”去掉,取消其優化訪問設置,將每個數據的地址固定化。建立的數據塊中添加靜態變量,取名為“TCON”,數據類型為“TCON_IP_V4”,Interfaceid硬件標識符為64;ID為1;ActiveEstablished設置為FALSE,建立被動連接;ADDR地址為你需要建立通信連接的設備的IP地址(此處選擇為工程師站的PC機IP),本地端口號為502,設置界面如圖8所示。

圖8 TCON數據塊參數設置

然后,在主程序OB1中編寫通信程序,在“通信”→“其它”→“Modbus_TCP”中,選擇“MB_SERVER”功能塊,拖放到OB1程序段中。DISCONNECT端設置為“false”,無通信連接時建立被動連接;MB_HOLD_REG指向服務器可讀取的數據區,這里是數據塊HOLD;CONNECT指向建立連接的結構參數,此處為TCON數據塊的首地址,“TCON”數據塊中有建立連接的地址參數。MB_SERVER功能塊建立后,就可以將數據轉發出去了。建好的通信程序如圖9所示。

圖9 MB_SERVER服務器模塊程序

3 JX-300DCS組態及編輯

3.1 在AdvMBLink內建立數據連接

AdvMBLink是Modbus協議的外部數據組態軟件,可以與其它支持MODBUS串口通信協議的設備進行數據通信,同時與控制系統進行數據交互。軟件本身包括了組態和運行兩部分。通過對ModBus設備進行位號組態后可直接與設備進行通信測試;運行時AdvMBLink作為后臺程序員負責數據流的流入和流出。組態的方法步驟如下:

(1)雙擊打開“AdvMBLink”軟件,添加設備,進行設備參數設置,如圖10。地址為1(與PLC內的ID保持一致),通訊方式選擇為TCP,網址與S7-1200CPU的網絡地址一致,數據排列方式選擇為高字節在前。

(2)添加數據組,創建變量,位號類型選擇為保持寄存器,數據類型為浮點型,如圖11所示。變量的順序要與TIA PORTAL 軟件里數據塊HOLD中的變量順序保持一致。上下限與現場采集信號的量程保持一致。

圖10 設備參數設置圖

圖11 位號參數設置圖

(3)將創建好的變量保存為后綴名為.cmb的文件,并且存放到DCS的config文件夾下面。外部數據組態軟件AdvMBLink中的組態就完成了,可以連接設備進入通信測試了,通信正常,即可接入AdvanTrol的SCTask軟件里了。

3.2 在二次計算軟件SCTask中引入外部數據組態軟件AdvMBLink的位號

二次計算組態軟件SCTask是中控AdvanTrol-pro組態軟件包的重要組成部分之一,可以組態上位機的任務、位號、事件等,在控制系統中實現二次計算功能、支持數據的輸入輸出。在SCTask(二次計算組態軟件)中引入AdvMBLink(外部數據組態軟件)中組態的位號,位號數據源選擇為Modbus數據源,組態自定義變量,定義掃描時間和循環任務,完成對二次計算的組態,從而實現與PLC的通信。具體步驟如下:

在系統組態界面的工具欄中點擊命令按鈕img id="73c2d71bd1c041b140729748376ffd87" class="inparagraph" src="images/73c2d71bd1c041b140729748376ffd87.jpg" width="33" height="25" title="width=33,height=25,dpi=110" />,進入“操作站設置”界面,此時界面存在文件名稱為:Recompute.SUT,取一個頁標題名,點擊“編輯”按鈕,進入二次計算組態界面。

3.2.1 組態上位機位號

3.2.2 在控制站添加自定義變量

這些自定義變量相當于中間變量,或是虛擬的位號。這里主要是為了讀取通過二次計算引導過來的AdvMBLink的數據,也就是PLC數據,如圖13所示。

圖12 二次計算位號組態界面

3.2.3 設置任務

在二次計算中,選擇“任務->循環類”選項卡,新建循環類任務,相關事件選擇為“TRUE”,事件在每個執行周期下必然發生。任務設置中的表達式:手動輸入TI303(2JHJ主控卡下的自定義變量)=_TI303(默認分組數據分區內位號),點擊添加;其他變量類似,見圖14。建立好此變量后,控制站的自定義變量就與PLC的數據建立起了連接[5]。

3.3 通訊效果及演示

組態完成后,可以通過AdvMBLink的監視功能查看數據通訊是否正常,如圖15所示,狀態欄顯示為正常,表示數據傳送成功。

DCS的監控畫面進行數據查看,正常情況下,監控畫面通訊正常會顯示為數值,異常會顯示為“???”,如圖16所示,數據通訊正常。

圖15 AdvMBLink的數據通訊畫面

圖16 DCS監控畫面

4 小結

該通訊方法基本步驟主要有三點:

(1)在S7-1200PLC中建立Modbus_TCP通信模塊,設置通訊參數;

(2)在AdvMBLink軟件中建立與PLC的數據連接,并保存為CMB文件;

(3)在AdvanTrol的SCTask軟件中通過二次計算循環的進行數據采集。

需要注意的是三個軟件中建立的數據變量范圍需保持一致。使用AdvMBLink軟件建立的CMB文件需要拷貝到AdvanTrol的Config目錄下。

經過驗證,該組態方法能夠正常實現信息的交互。通過PLC將現場的檢測信號采集匯總,再通過Modbus_TCP通信協議傳輸給DCS,完成了信號的交互應用。為工業自動化的實現提供了可行的方案,將來會給工業生產提供更大便利。

猜你喜歡
組態設置變量
中隊崗位該如何設置
抓住不變量解題
基于PLC及組態技術的恒溫控制系統開發探討
也談分離變量
基于PLC和組態的智能電動擰緊系統
PLC組態控制在水箱控制系統的應用
本刊欄目設置說明
鑄造行業三維組態軟件的應用
中俄臨床醫學專業課程設置的比較與思考
SL(3,3n)和SU(3,3n)的第一Cartan不變量
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合