李國林,靳衛(wèi)國
(中國電子科技集團公司第四十五研究所,北京 100176)
基于上位機與PLC網絡通訊的控制系統(tǒng)研究
李國林,靳衛(wèi)國
(中國電子科技集團公司第四十五研究所,北京 100176)
介紹了通過以太網Socket(套接字)方式發(fā)送FINS/TCP指令與歐姆龍PLC通訊模塊CP1W-CIF41進行通訊,實現(xiàn)了上位機軟件與下位機PLC之間的信息傳送,其中CP1W-CIF41作為被動收發(fā)信號,并設計了基于此通訊方式的控制系統(tǒng),在實際印刷設備得到了較好的控制效果,極大地提高了設備的穩(wěn)定性。
套接字;FINS協(xié)議/傳輸控制協(xié)議;可編程邏輯控制器;網絡通訊;印刷設備
在分布式計算機監(jiān)控系統(tǒng)中,PLC是常用的現(xiàn)場控制設備,PLC和上位機之間的通訊常采用RS-232/RS-485串行通訊方式,這種方法對于數(shù)據(jù)量較大、通訊距離較遠、實時性要求高的控制系統(tǒng)很難滿足通訊需要。工業(yè)以太網特別是交換式以太網已經廣泛用于工業(yè)控制中,是工業(yè)控制中的發(fā)展趨勢。許多大型PLC廠商生產的PLC都配備了相應的以太網通訊單元,本文討論OMRONPLC的以太網通訊體系結構,并以CP1H型PLC的以太網模塊CP1W-CIF41為例實現(xiàn)與微機的通訊,上位機利用Visual C++的Socket類的UDP協(xié)議實現(xiàn)了工控機和PLC以太網模塊之間的FINS通訊,程序實現(xiàn)簡單。
一種好的運動控制系統(tǒng)是設備穩(wěn)定可靠運行的根本保證,目前比較常用的運動控制系統(tǒng)主要包括基于工控機與運動控制卡的控制系統(tǒng),基于工控機的總線模式控制系統(tǒng),以及基于PLC的控制系統(tǒng)。而隨著設備自動化程度和產品精度的提高以及MES系統(tǒng)的應用也越來越廣泛,特別是圖像系統(tǒng)在半導體設備中的廣泛應用,使得工控機在設備中的作用也越來越大,從而提高了工控機在半導體設備中的地位。
本文提出了一種基于上位機軟件與歐姆龍PLC以太網通訊的控制系統(tǒng),重點介紹了該控制系統(tǒng)的基本原理,并詳細的介紹了基于FINS(Factory Interface Network Service) 協(xié)議下的 Visual C++的Socket與OMRON PLC之間的通訊格式。此控制方法容易在自動控制系統(tǒng)中實現(xiàn),控制效果較好且具有很好的推廣價值。
基于上位機與PLC網絡通訊的控制系統(tǒng)設計框圖如圖1所示,該系統(tǒng)主要由工控機、PLC控制器、控制電機、圖像系統(tǒng)以及輸入輸出IO點等組成。其中上位機的作用主要有兩方面,其一對相機采集的圖像數(shù)據(jù)進行相應算法運算處理,并將處理結果轉化成相應的數(shù)據(jù)格式發(fā)送給PLC的指定內部寄存器,其二是通過對PLC指定內部寄存器的指令讀寫,實現(xiàn)對整機設備的控制,完成相應的動作。
其中,上位機是通過USB總線數(shù)據(jù)傳輸方式與圖像系統(tǒng)進行通訊,采集相應的圖像數(shù)據(jù)并對其進行處理,充分利用了工控機強大的圖像處理功能。上位機與下位機PLC則是通過以太網的通訊方式進行相應的數(shù)據(jù)交換,從而間接達到控制整機系統(tǒng)的目的,而PLC則負責整機的運動流程控制和輸入輸出IO點控制,負責整機設備的動作控制,充分利用了PLC控制器的運行穩(wěn)定優(yōu)勢。
圖1 基于上位機與PLC控制系統(tǒng)框圖
2.1 FINS協(xié)議與TCP/IP協(xié)議
FINS通訊協(xié)議是OMRON開發(fā)用于工廠自動化控制網絡的指令/響應系統(tǒng),使用FINS指令,且可實現(xiàn)網絡間的無縫通信。OMRON公司的CP1W-CIF41通訊模塊支持以太網通訊,網絡層和傳輸層采用TCP/IP和UDP/IP協(xié)議,應用層協(xié)議支持FTP、SMTP和FINS,網絡對于每個系統(tǒng)層次都是有效的,用于信息層的Ethernet,用于控制器層的Controller Link網絡和用于器件層的Device Net,而且在Ethernet和Controller Link網絡之間的通信,能夠在3個網絡層次間進行,像一個網絡一樣方便。使用FINS指令,上位機軟件程序或PLC用戶程序通過指令就能夠讀取另一個PLC數(shù)據(jù)區(qū)的數(shù)據(jù),簡化了用戶程序。
以太網通訊使用IP地址,而FINS通訊使用節(jié)點號,節(jié)點號為以太網和Link網之間提供了一致的尋址方式,以太網單元能在IP地址和節(jié)點號之間轉換,轉換方式有自動轉換、IP地址表和復合地址表。FINS通訊與TCP/IP協(xié)議之間的關系見圖2。
圖2 FINS協(xié)議和TCP/IP協(xié)議之間的關系
FINS幀本質上屬于鏈路層,為了能利用TCP/IP協(xié)議傳輸FINS幀,將FINS信息作為UDP的數(shù)據(jù)區(qū),封裝在UDP中,從TCP/IP協(xié)議的角度看FINS信息,屬于應用層數(shù)據(jù)。如果在PLC上安裝以太網單元和Link通訊單元,就可以實現(xiàn)以太網和Link網之間的數(shù)據(jù)轉發(fā)過程如圖3所示。
圖3 利用FINS中繼的過程
圖3中,上位機發(fā)出帶有FINS信息的以太網幀被中繼PLC的以太網單元接收后,層層分解,直到抽取出FINS信息后,通過Link通訊模塊轉發(fā)FINS信息,目的是PLC收到數(shù)據(jù)后作出響應,響應數(shù)據(jù)也采用FINS格式的數(shù)據(jù),中繼PLC收到數(shù)據(jù)后,轉發(fā)給以太網單元,由以太網單元進行封裝后與上位機通訊,上位機也作為以太網網段中的一個節(jié)點,也有相應的節(jié)點號和相同的地址轉換規(guī)則。
2.2 FINS幀格式
在PLC之間采用FINS協(xié)議中的SEND、RECV或CMND命令進行數(shù)據(jù)通訊時,上述封裝和分解過程在通訊模塊內部自動實現(xiàn),但對于上位機和以太網單元之間的通訊,F(xiàn)INS的報頭和命令應由上位機程序添加,而UDP的報頭由Socket自動完成。FINS報頭的格式見圖4。
圖4 FINS報頭格式
ICF為信息控制域,主要用于標明命令和響應,RSV為系統(tǒng)保留,GCT為網關允許數(shù)目,DNA為目的網絡號,DA1為目的節(jié)點號,DA2為目的節(jié)點單元,用于標明CPU還是CPU總線單元,SNA為源網絡號,SA1為源網絡節(jié)點號,對應上位機IP地址的主機部分,SA2為源節(jié)點單元,對上位機而言應為00,SID為服務和響應的標識,可任意設置,命令和響應有相同的數(shù)值,MRC和SRC為FINS命令的主命令和從命令,Data域為數(shù)據(jù)區(qū),用于標明讀數(shù)據(jù)時的地址范圍或寫數(shù)據(jù)時的地址和數(shù)據(jù)。
2.3 以太網單元的設置
通訊測試前必須首先登記I/O表,可以用CX-Programmer軟件在編程模式下自動登記I/O表,還要設置IP地址、子網掩碼、設置CPU總線單元、地址轉換方法、FINS的UDP端口號,F(xiàn)INS UDP端口號缺省為9600。以太網單元屬于CPU總線單元,單元號旋轉開關設定一個十六進制數(shù),作為以太網單元的單元號,范圍為00~15,它決定了分配給以太網單元相應的內存工作區(qū)(CIO區(qū)、DM區(qū))。節(jié)點號通過兩個旋轉開關設定兩位十六制數(shù),作為以太網單元在網絡中的節(jié)點號,范圍為01~126。以太網單元進行通信前,必須使用編程設備對以太網單元進行設置。內存工作區(qū)分配CIO區(qū)和DM區(qū)中的字按照單元號分配給每個單元,每個單元在CIO區(qū)中分配25個字,在DM區(qū)分配100個字。
跨網通訊時,必須對每一個節(jié)點建立路徑表,路徑表包括本地網絡表和中繼網絡表。本地網絡表提供了安裝在PLC單元上的通訊單元的單元號和網絡號,中繼網絡表包括終點網絡、中繼網絡和中繼節(jié)點三項內容,用于FINS通訊時的數(shù)據(jù)轉發(fā)。
所需硬件:PC機1臺、CP1H-X40DT-D 1臺、CP1W-CIF41 1塊、網線1條。
所需軟件:網絡調試助手、CX-Programmer。
注:PC機(客戶端)IP地址為192.168.250.2,PLC(服務器)地址為192.168.250.1;端口號默認9600。
FINS/TCP命令幀的命令/響應格式如下:
(1)FINS節(jié)點地址數(shù)據(jù)發(fā)送通訊握手信號(客戶端PC->服務器PLC)
發(fā)送命令格式如下:
A:FINS命名(固定包頭)
B:數(shù)據(jù)長度=從功能碼數(shù)起至數(shù)據(jù)結尾(以字節(jié)為單位,一個字節(jié)占兩位)
C:功能碼分為
0000 0000:客戶端→服務器
0000 0001:服務器→客戶端
0000 0002:FINS幀發(fā)送指令
0000 0003:FINS幀發(fā)送錯誤通知指令
0000 0006:確立通訊連接
D:功能碼分為
0000 0000:正常
0000 0001:數(shù)據(jù)頭不是FINS或ASCII
0000 0002:數(shù)據(jù)長度過長
0000 0003:命令(C功能碼)錯誤
0000 0020:連接/通訊被占用
E:0000 0002為PC機(服務器)IP地址末位(十六進制表示)
返回命令格式如下:
(2)讀取DM0開始的2個通道:
發(fā)送命令格式如下:
返回命令格式如下:
(3)寫DM0開始的2個通道:
發(fā)送命令格式如下:
返回命令格式如下:
本文主要介紹了基于上位機軟件與歐姆龍PLC以太網通訊的控制系統(tǒng),運用VC++套接字類Socket與OMRON PLC進行以太網通訊,由于以太網單元采用廣泛使用的TCP/IP協(xié)議,上位機程序設計簡單,除了進行FINS報頭拼裝,其它過程與PC機之間的TCP/IP程序設計完全一致,用VC++設計的程序具有實時性好、速度快、可靠性高、運行穩(wěn)定等優(yōu)點??刂葡到y(tǒng)中采用以太網單元通訊后,使工業(yè)自動化與生產管理自動化有機地結合到了一起,簡化了系統(tǒng)設計。此方法已成功應用于半導體設備的控制系統(tǒng)中,具有很強的工業(yè)實際應用價值。
[1] 臺灣歐姆龍股份有限公司.OMRON PLC網絡通信與NS人機界面[M].北京:科學出版社.2011.
[2] 宮叔貞,王冬青.可編程控制器原理及應用[M].北京:人民郵電出版社,2002.7
[3] OMRON FINS通訊手冊[Z].
[4] 李炳宇,蕭蘊詩.以太網在網絡控制系統(tǒng)中的應用與發(fā)展趨勢[J].微型機與應用,2002,(11):35-37.
[5] Jesse Storimer.TCP Sockets編程[M].北京:人民郵電出版社,2013.
[6] 明日科技.Visual C++從入門到精通[M].北京:清華大學出版社,2012.
Research on the Control System Based on PC and PLC Network Communication
LI Guolin,JIN Weiguo
(The 45thResearch Institute of CETC,Beijing 100176,China)
In this paper,the communication between FINS/TCP instruction and CP1W-CIF41 of OMRON PLC communication module via Ethernet Socket is introduced.The communication between the host computer software and PLC of the lower computer is realized.CP1W-CIF41 is used as the passive transceiver signal and designed.Based on this communication control system,in the actual printing equipment has been a better control effect,greatly improving the stability of the equipment.
Socket;FINS/TCP;PLC (Programmable Logic Controller);Network communications;Printing equipment
TP273
B
1004-4507(2017)04-0064-05
李國林(1985-),男,山東人,碩士研究生,工程師,現(xiàn)在中國電子科技集團公司第四十五研究所主要從事電子專用設備的研發(fā)與設計工作。
2017-06-01