《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 基于FINS協(xié)議的OMRON PLC與上位機以太網(wǎng)通信的實現(xiàn)
基于FINS協(xié)議的OMRON PLC與上位機以太網(wǎng)通信的實現(xiàn)
摘要: 工業(yè)以太網(wǎng)作為工業(yè)現(xiàn)場信息采集的重要網(wǎng)絡(luò)具有速率高,、通信距離遠,、抗干擾性好等特點,,已經(jīng)得到廣泛應(yīng)用。本文所介紹的三種OMRON PLC與上位機以太網(wǎng)通信的方法均在實際工程中驗證成功,。
Abstract:
Key words :

  0 引言

  在現(xiàn)代工業(yè)自動化控制系統(tǒng)中,,可編程邏輯控制器(PLC)作為常用的現(xiàn)場控制設(shè)備,上位機作為數(shù)據(jù)采集及人機界面的一種已經(jīng)得到廣泛使用,。過去,,在工程項目開發(fā)中,,PLC和上位機間的通信常采用RS-232C或者RS-485串行方式,這種方法很難滿足數(shù)據(jù)量大,、通信距離遠,、實時性要求高的控制系統(tǒng)。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,、普及與推廣,,以太網(wǎng)技術(shù)得到了迅速的發(fā)展,,其傳輸速率的提高和交換技術(shù)的應(yīng)用,,解決了以太網(wǎng)通信的非確定性問題,使得工業(yè)以太網(wǎng)能夠廣泛應(yīng)用于工業(yè)信息控制領(lǐng)域,,也是工業(yè)信息控制未來的發(fā)展趨勢,。

  FINS(factory interface network service)通信協(xié)議是歐姆龍公司開發(fā)的用于工業(yè)自動化控制網(wǎng)絡(luò)的指令/響應(yīng)系統(tǒng)。使用FINS指令可實現(xiàn)各種網(wǎng)絡(luò)間的無縫通信,,包括用于信息網(wǎng)絡(luò)的 Etherne(以太網(wǎng)),,用于控制網(wǎng)絡(luò)的Controller Link和SYSMAC LINK。通過編程發(fā)送FINS指令,,上位機或PLC就能夠讀寫另一個PLC數(shù)據(jù)區(qū)的內(nèi)容,,甚至控制其運行狀態(tài),從而簡化了用戶程序,。FINS協(xié)議支持工業(yè)以太網(wǎng),,這就為OMRON PLC與上位機以太網(wǎng)通信的實現(xiàn)提供了可能。

  1 OMRON PLC與上位機通信方式

  目前,,在歐姆龍PLC網(wǎng)絡(luò)組成中,,上位機和PLC的通信可以采用RS232C/485串行通信、Controller Link通信和工業(yè)以太網(wǎng)通信三種方式,。它們的主要性能參數(shù)如表1所示,。

主要性能參數(shù)

  文獻[3]介紹了采用RS232C/485串行通信的方案,其通信速率僅為9600b/s,,速率較慢,,很難適應(yīng)現(xiàn)代數(shù)據(jù)量大、通信距離較遠,、實時性要求較高的控制系統(tǒng),。

  文獻[2]中給出了基于FINS協(xié)議的Controller Link通信的設(shè)計方案,其最高速率可以達到2Mb/s,,整個網(wǎng)絡(luò)的最大傳輸距離為500m,,硬件上需要在上位機安裝CLK支持卡,其擴展性及應(yīng)用的靈活性沒有工業(yè)以太網(wǎng)好,。

  在三種通信方式中,,工業(yè)以太網(wǎng)的優(yōu)勢是相當明顯的。其傳輸速率可以達到10/100Mb/s(取決于實際網(wǎng)絡(luò)環(huán)境);兩個節(jié)點之間的傳輸距離可以達到 100m,,對于整個網(wǎng)絡(luò)的傳輸距離沒有限制,;網(wǎng)絡(luò)內(nèi)最大節(jié)點數(shù)可以達到254個,可以實現(xiàn)1(PLC):N(PC),、N:N,、N:1等多種網(wǎng)絡(luò)形式。這些都為構(gòu)架各種規(guī)模的工業(yè)網(wǎng)絡(luò)信息系統(tǒng)提供了有利的條件,,具有良好的擴展性,、實用性、靈活性,。目前使用的上位機都配有以太網(wǎng)卡,,所以上位機側(cè)無需增加額外的硬件設(shè)備。因此,,采用工業(yè)以太網(wǎng)方式對提高工廠的自動化信息控制水平具有很大的現(xiàn)實意義,。

  2 以太網(wǎng)FINS通信

  在以太網(wǎng)FINS通信中,各種數(shù)據(jù)信息是以UDP/IP包或者TCP/IP包的方式在以太網(wǎng)上發(fā)送和接收的,。其中,,在Internet層遠程設(shè)備使用的是 IP地址,而在應(yīng)用層使用的則是FINS節(jié)點地址,。傳輸層中定義了本地UDP或TCP端口號,,它為應(yīng)用層(即FINS通信)提供通信端口,其默認設(shè)置為 9600,。用戶可以根據(jù)實際情況自行修改,,但是在同一網(wǎng)絡(luò)中,各設(shè)備的通信端口號必須保持一致,。圖1 FINS以太網(wǎng)通信協(xié)議模型

FINS以太網(wǎng)通信協(xié)議模型

  通常以太網(wǎng)通信使用的是IP地址,,而在FINS通信中則是使用網(wǎng)絡(luò)號、節(jié)點號以及單元號來對不同設(shè)備(包括PLC,、PC等現(xiàn)場設(shè)備)進行地址定義的,。這就為不同網(wǎng)絡(luò)之間各種設(shè)備的通信提供了統(tǒng)一的尋址方式。在以太網(wǎng)FINS通信中,,歐姆龍的以太網(wǎng)單元一項重要的功能就是能在IP地址和Fins節(jié)點地址之間進行轉(zhuǎn)換,,其轉(zhuǎn)換方式有自動轉(zhuǎn)換、IP地址表和復(fù)合地址表三種方式,,其地址轉(zhuǎn)換數(shù)量依據(jù)模塊型號和轉(zhuǎn)換方式的不同還有相應(yīng)的限制,。以太網(wǎng)FINS通信服務(wù)是一種基于UDP/IP的通信方式,稱為FINS/UDP方式,,歐姆龍相關(guān)的以太網(wǎng)產(chǎn)品都支持這種方式,。此外,,CS1W-ETN21和CJ1W- ETN21以太網(wǎng)通信模塊還支持TCP/IP協(xié)議,稱為FINS/TCP方式,。

  2.1 FI NS/UDP方式

  FINS/UDP方式是一種使用UDP/IP協(xié)議的FINS通信方式,。UDP/IP是一種無連接的通信協(xié)議。當一條信息從一個節(jié)點發(fā)到另一個時,,這兩個節(jié)點是沒有明確連接的對等關(guān)系的,。UDP協(xié)議具有較快的傳輸速度,但是數(shù)據(jù)通信的可靠性沒有TCP協(xié)議高,。

UDP幀結(jié)構(gòu)

  如圖2所示,,是一個在以太網(wǎng)中發(fā)送和接收所使用的UDP幀結(jié)構(gòu)。FINS/UDP方式使用的是一種嵌套格式數(shù)據(jù)包,,即Ethernet報頭,、IP報頭,、 UDP報頭和FINS幀,。一個UDP數(shù)據(jù)段(FINS 幀)超過1472字節(jié)將被分成若干個數(shù)據(jù)包來傳送。分開的UDP數(shù)據(jù)將在UDP/IP協(xié)議層自動組合,。通常不需要關(guān)注應(yīng)用層的數(shù)據(jù)分段,,但是在一個多層 IP網(wǎng)絡(luò)中1427字節(jié)的UDP包可能無法發(fā)送。在這種系統(tǒng)中就需要使用FINS/TCP方式,。

    2.2 FINS幀結(jié)構(gòu)

  FINS 幀分為FINS指令幀和FINS響應(yīng)幀兩種形式,。指令幀在發(fā)送FINS指令時使用,響應(yīng)幀則在接收到FINS指令后對其返回響應(yīng)時使用,。它們都是由一個 FINS報頭(存儲傳輸控制信息),、一個FINS指令域(存儲一個FINS指令)以及一個FINS參數(shù)/數(shù)據(jù)域(存儲指令參數(shù)和發(fā)送/響應(yīng)數(shù)據(jù))所組成的。響應(yīng)幀F(xiàn)INS指令域的內(nèi)容與所接收到的指令幀的FINS指令域相同,。具體結(jié)構(gòu)見圖3,、圖4。

FINS響應(yīng)幀

  ICF為信息控制域,,用于標明指令和響應(yīng),;RSV為系統(tǒng)保留;GCT為網(wǎng)關(guān)允許數(shù)目,;DNA為目的網(wǎng)絡(luò)號,;DA1為目的節(jié)點號;DA2為目的單元號,;SNA為源網(wǎng)絡(luò)號,;SA1為源節(jié)點號;SA2為源單元號,;SID為服務(wù)和響應(yīng)的標識號,,可任意設(shè)置,,指令和響應(yīng)對應(yīng)相同;MRC和SRC分別為 FINS指令的主指令和從指令,;參數(shù)/數(shù)據(jù)域,,用于標明所操作的數(shù)據(jù)地址、范圍等,,在響應(yīng)幀中前兩個字節(jié)MRES和SRES構(gòu)成響應(yīng)碼,,用來診斷錯誤信息。

  3 FinsGateway和SYSMAC Compolet控件介紹

  FinsGateway是OMRON FINS通信協(xié)議的驅(qū)動程序,,它為計算機上的32位Windows操作系統(tǒng)提供一個工業(yè)自動化網(wǎng)絡(luò)環(huán)境,。FinsGateway集成了不同的網(wǎng)絡(luò)協(xié)議,并為FINS通信和數(shù)據(jù)鏈接提供驅(qū)動程序和接口庫函數(shù),。它通過創(chuàng)建高性能的虛擬存儲區(qū)EventMemory,,為不同的用戶程序提供數(shù)據(jù)的接入和共享。利用 FinsGateway,,計算機可以通過各層網(wǎng)絡(luò)(包括網(wǎng)絡(luò)互聯(lián))訪問網(wǎng)絡(luò)上的PLC,,通過接口庫函數(shù),用戶還可以開發(fā)程序,。

FinsGateway和SYSMAC Compolet控件介紹

  SYSMAC Compolet是歐姆龍公司專門為FINS通信開發(fā)的Active X控件,,它是架構(gòu)在FinsGateway這個驅(qū)動程序下的VB控件,對Fins指令做了進一步集成和優(yōu)化,。SYSMAC Compolet為SYSMAC C/CS1/CV系列的PLC提供應(yīng)用程序編程接口,,在開發(fā)時只需要調(diào)用該控件,編寫程序更便捷,,語句更簡單,,配合使用FinsGateway,通過計算機就可以方便地控制訪問PLC,,直接對其操作而不需要掌握相應(yīng)的Fins指令知識,。

  4 OMRON PLC與上位機以太網(wǎng)通信的實現(xiàn)

  OMRON PLC與上位機的以太網(wǎng)通信依靠發(fā)送FINS指令實現(xiàn)。上位機發(fā)送FINS指令可以直接讀取或?qū)懭隤LC相應(yīng)的數(shù)據(jù),,PLC部分無需編寫接收和發(fā)送程序,。文獻[1]給出了運用VC++異步套接字類CAsyncSocket與OMRON PLC進行以太網(wǎng)通信的方法。本例中采用FINS/UDP方式,,具體如圖7所示,。上位機利用Visual Basic 6.0進行程序開發(fā),具體實現(xiàn)向PLC發(fā)送FINS指令(讀取內(nèi)存區(qū)域,,指令代碼0101)讀取DM100開始的150個字數(shù)據(jù)的功能,。相較于文獻[1] 介紹的方法,本文中為不同層次的使用者提供了三種方法來實現(xiàn)這一個功能,,增加了系統(tǒng)開發(fā)的選擇性,。圖7上位機與PLC通過以太網(wǎng)通信

上位機與PLC通過以太網(wǎng)通信

  在進行上位機程序編程之前首先要完成上位機和PLC的以太網(wǎng)單元的設(shè)置,。

  (1)設(shè)置上位機的IP地址為10.72.18.11,子網(wǎng)掩碼為255.255.255.0,,它的FINS節(jié)點號默認為11,。

  (2)通過歐姆龍CX-Programmer軟件,在IO表中將PLC CSIW-ETN11以太網(wǎng)單元的IP地址設(shè)置為10.72.18.19,,子網(wǎng)掩碼為255.255.255.0,,F(xiàn)INS節(jié)點號設(shè)置為19。地址轉(zhuǎn)換方式設(shè)置為自動生成(動態(tài)),。FINS/UDP端口為9600(默認),。保存后下傳至PLC。

  下面主要介紹三種方法來實現(xiàn)上述功能,。

  4.1 使用Micosoft Wi nsock控件

  在VB中新建一個Standard.EXE文件,。添加Winsock控件,對象命名為"Winsock1",,發(fā)送Fins命令程序如下:

  編譯保存后即可,。

   4.2 使用FINSGateway中的OMRON FinsMessaging Control

  (1)在上位機中安裝Finsgateway軟件,并在Service Manager中啟動CPU_UNIT和ETN_UNIT,。

  (2)ETN UNIT屬性中,,在"UDP Nodes"中手動添加PLC的IP地址(10.72.18.19)和FINS地址(0.19.0),。在"Commuincation Unit Settings"中設(shè)置端口號(9600)和FINS-IP地址轉(zhuǎn)換方式為自動生成(動態(tài)),。

  (3)在VB中新建一個standard.EXE文件。添加OMRON FinsGateway FinsMessaging Control,,對象名為"FinsMsgl",。

   (4)在form區(qū)添加一個Command button(命名為"Command1")作為發(fā)送Fins指令之用;同時添加一個textbox(命名為"Text1")作為顯示所接受數(shù)據(jù)之用,。

  (5)在"Conmand1"中的"Click"事件中添加如下代碼:

Private Sub Command1_C1ick()FinsMsg1.sendFinsCommand0,,19,0,,"0101820064000096"End Sub
在"FinsMsg1"中的"OnReceive"事件中添加如下代碼:
Private Sub FinsMsg1_OnReceive ()
Dim net As Integer,,node As Integer,unit AsInteger
Text1.Text=Fins Msg1.receive Message(net,,node,,unit,vbString)
End Sub

  編譯保存后即可,。

  4.3 使用FinsGateway和SYSMAC Compolet

  (1)在上位機中安裝Fins Gateway和SYSMACCompolet軟件,。啟動FinsGateway的Service Manager,并啟動CPU UNIT和ETN UNIT,。

  (2)同4.2中第(2)點,。

  (3)在VB中新建一個Standard.EXE文件,。添加OMRON SYSMAC CS Control,對象名為"SYSMAC CS11",。

  (4)在對象"SYSMACCS11"屬性中,,選擇"Communication"標簽,選中"ActivateCoCommunication"并設(shè)置PLC的Fins地址(0.19.0),。

  (5)在form區(qū)添加一個Command button(命名為"Command1")作為發(fā)送Fins指令之用,;同時添加一個text box(命名為"Text1")作為顯示所接受數(shù)據(jù)之用。

  (6)在"Conmand1"中的"Click"事件中添加如下代碼:

Private Sub Command1_Click()
Text1.Text=SYSMAC_CS1 1.readArea(plcAreaDM,,100,,150,vbString)
End Sub

  編譯保存后即可,。

  5 結(jié)束語

  工業(yè)以太網(wǎng)作為工業(yè)現(xiàn)場信息采集的重要網(wǎng)絡(luò)具有速率高,、通信距離遠、抗干擾性好等特點,,已經(jīng)得到廣泛應(yīng)用,。本文所介紹的三種OMRON PLC與上位機以太網(wǎng)通信的方法均在實際工程中驗證成功。這三種方法從本質(zhì)上來說其實是一樣的,,但具體使用和實現(xiàn)過程有所不同,。第一種方法不需要另外購置歐姆龍相關(guān)軟件,但需要對FINS通信底層協(xié)議以及Fins幀結(jié)構(gòu)及其封裝過程有比較全面的了解,,程序編寫較為復(fù)雜,,適用于有一定開發(fā)經(jīng)驗的高級用戶。第二種方法需要掌握Fin s幀結(jié)構(gòu)以及FinsGateway的相關(guān)配置,,但是對發(fā)送指令和接收數(shù)據(jù)的程序編寫較為簡單,,適用于中級用戶。在第三種方法中,,使用了SYSMAC Compolet中簡單易懂的編程語言,,即可完成上位機的程序開發(fā),整個程序編寫過程簡單明了,,可以大幅縮減通信程序的開發(fā)時間,,適用于那些開發(fā)經(jīng)驗較少的初級用戶。后面兩種方法需要另外購置歐姆龍軟件,,這是在程序開發(fā)時需要注意的,。這三種方法都可利用工業(yè)以太網(wǎng)實現(xiàn)OMRON PLC與上位機的通信,具有實時性好,、速度快,、可靠性高、運行穩(wěn)定等優(yōu)點,。在PLC控制系統(tǒng)中采用以太網(wǎng)單元通信后,,使工業(yè)自動化與生產(chǎn)管理自動化有機地結(jié)合到了一起,,簡化了系統(tǒng)設(shè)計。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。