作者簡(jiǎn)介:林兵(1979-),男,四川省達州人,技術(shù)支持工程師?,F就職于貝加萊工業(yè)自動(dòng)化(上海)有限公司,主要從事電控系統和儀控系統開(kāi)發(fā)、OEM用戶(hù)電控系統設計和程序開(kāi)發(fā)以及技術(shù)支持工作。
摘 要:本文以真空鍍膜自控系統為應用背景,詳細介紹了貝加萊X20系列PLC作為通訊網(wǎng)關(guān)在該系統中的應用。以RS485數據通信方式采集中頻電源、真空計、流量計和分子泵等150余臺設備的相關(guān)數據,并采用虛擬網(wǎng)絡(luò )計算機(VNC)技術(shù)實(shí)現了遠程獨立監視和控制,同時(shí)還通過(guò)Profibus-DP現場(chǎng)總線(xiàn)和以太網(wǎng)TCP/IP接口實(shí)現與鍍膜線(xiàn)其他設備的無(wú)縫鏈接。
關(guān)鍵詞:真空鍍膜;可編程計算機控制器 ;數據通信;虛擬網(wǎng)絡(luò )計算機;中頻電源
1 引言
真空鍍膜技術(shù)是一種新型的材料合成與加工新技術(shù),是將待鍍工件置于真空室內,采用一定方法使金屬蒸發(fā)、濺射和離子鍍,從而使固體表面具有耐磨損、耐高溫、耐腐蝕、抗氧化、防輻射、導電、導磁、絕緣和裝飾等性能。通過(guò)真空鍍膜鍍件具有許多優(yōu)于固體材料本身的優(yōu)越性能,達到提高產(chǎn)品質(zhì)量、延長(cháng)產(chǎn)品壽命、節約能源的目的。本文以真空濺射工藝的某鍍膜玻璃線(xiàn)為例,介紹了PLC作為通訊網(wǎng)關(guān),通過(guò)RS485對采用非標準通訊協(xié)議的中頻電源、真空計、流量計、分子泵等鍍膜核心設備進(jìn)行采集和控制,并通過(guò)DP接口使這些設備無(wú)縫接入整個(gè)鍍膜線(xiàn)。
2 系統結構
中頻電源、真空計、質(zhì)量流量計、分子泵是真空鍍膜線(xiàn)的重要組成部分,對這些設備的控制直接關(guān)系到產(chǎn)品質(zhì)量。在這條鍍膜生產(chǎn)線(xiàn)上有16臺中頻電源、30臺真空計、75臺質(zhì)量流量計、30臺分子泵。該PLC與以上設備之間都沒(méi)有采用現成的通訊驅動(dòng)程序來(lái)實(shí)現數據通訊,而采用了RS485接口來(lái)實(shí)現數據采集和參數設定,所以,必須分別按照各個(gè)設備廠(chǎng)家的通信協(xié)議進(jìn)行通訊。這條生產(chǎn)線(xiàn)采用貝加萊X20系列PLC作為對以上設備的通訊控制網(wǎng)關(guān),對其采集和控制,每個(gè)通訊模塊控制同樣類(lèi)型設備的8~10個(gè),鍍膜線(xiàn)的其他邏輯控制和傳動(dòng)設備通過(guò)其他控制器來(lái)控制,通過(guò)VNC實(shí)現對通訊設備的本地顯示和操作,并通過(guò)Profibus-DP接口與上位DP主站控制器通訊實(shí)現整體控制。系統拓撲圖如圖1所示。
圖1 系統拓撲圖
3 中頻電源通訊協(xié)議
PLC發(fā)送請求主要有地址請求、讀、寫(xiě)數據請求,每種請求電源都會(huì )有返回數據。詳細的電源通訊的協(xié)議如下:
格式1 PLC發(fā)送地址請求格式:(此時(shí)檢驗位為1)
格式2 電源應答地址格式:(此時(shí)檢驗位為0)
格式3 PLC讀數據請求格式:(此時(shí)檢驗位為0)
格式4 電源應答讀數據格式(正確返回):(此時(shí)檢驗位為0)
格式5 電源應答讀數據格式(錯誤返回):(此時(shí)檢驗位為0)
格式6 PLC寫(xiě)數據請求格式:(此時(shí)檢驗位為0)
格式7 電源應答寫(xiě)數據格式(正確返回):(此時(shí)檢驗位為0)
數據傳輸:所有數據均為16進(jìn)制數
校驗位的計算:所有數據做異或運算的結果作為CRC校驗位。
4 中頻電源通訊流程及特殊要求:
4.1 PLC發(fā)送地址數據
PLC要控制和讀取某一個(gè)中頻電源時(shí),首先通過(guò)RS485模塊發(fā)送站地址指令到中頻電源,此時(shí)發(fā)送數據的校驗位必須為高,以這樣的校驗方式發(fā)送站地址到中頻電源才能正確的被接收。當RS485總線(xiàn)上掛的電源地址與RS485模塊發(fā)出來(lái)的地址指令一致時(shí),電源便打開(kāi)指令接口,等待PLC的RS485模塊發(fā)送讀/寫(xiě)功能數據的指令,并以低校驗位的方式返回確認數據給PLC。例如發(fā)送5445數據及讀4號站電源,通訊電壓波形如圖2所示。
圖2 校驗位為高時(shí)的通訊數據電壓波形
4.2 修改通訊校驗位
PLC發(fā)送地址指令后,如果要接收電源的返回地址數據或者在發(fā)送讀寫(xiě)電源的功能數據請求,必須將RS485模塊的通訊校驗位改為低,才能收到電源的返回數據。但是值得注意的是,當發(fā)送地址指令后,立刻把RS485模塊的校驗位改為低后,有可能發(fā)現上次以高校驗位發(fā)送的地址數據中有個(gè)別數據還沒(méi)發(fā)完,那么沒(méi)發(fā)完的數據的末尾的校驗位就為低了,從而使得電源接收到的地址指令的校驗位不符合要求,引起電源不接收這樣的請求指令,導致通訊失敗。
圖3 校驗位為低時(shí)的通訊數據電壓波形
4.3 電源的地址返回
電源接收到PLC過(guò)來(lái)的正確數據后,便返回自己的地址數據給PLC,同時(shí)打開(kāi)自己的指令接收接口,等待PLC發(fā)讀/寫(xiě)功能指令。此時(shí)PLC的校驗位如果修改為低,方能收到電源返回的正確數據。
4.4 PLC發(fā)送功能數據
讀/寫(xiě)功能指令以低校驗位方式發(fā)送給電源,反之認為無(wú)效。如果電源的指令接口打開(kāi)時(shí)間超過(guò)100ms還沒(méi)收到讀/寫(xiě)指令,其打開(kāi)的接口將關(guān)閉,關(guān)閉后即便是發(fā)送的讀/寫(xiě)功能數據校驗位是正確的,也不再響應。所以PLC以高校驗位的方式發(fā)送電源地址指令后,必須確保地址數據已經(jīng)全部發(fā)出完畢,然后在把校驗位修改為低,最后在發(fā)送讀/寫(xiě)功能數據指令,整個(gè)過(guò)程不能超過(guò)100ms。通訊程序在時(shí)間的把握上非常關(guān)鍵,既不能太快也不能太慢。
4.5 電源返回功能數據
電源接收到PLC發(fā)出的正確地址信息后,便打開(kāi)通訊接口等待PLC第二次發(fā)給它的讀/寫(xiě)功能數據。如果寫(xiě)指令,電源將執行指令動(dòng)作,控制電源的參數設定或者啟停,并返回寫(xiě)指令是否成功的數據給PLC。如果為讀指令,電源便將自己的狀態(tài)數據,如當前電壓、電流、功率、設定等狀態(tài)數據返回給PLC。返回數據的時(shí)間也大約是接收到讀寫(xiě)功能數據后2ms。
4.6 PLC讀返回功能數據
電源返回的狀態(tài)數據為20個(gè)字節,用示波器查看,大概要18.4ms才能完成發(fā)送。即PLC讀數據的功能塊,要在電源發(fā)送出狀態(tài)數據18.4ms后去接收。RS485總線(xiàn)上,同一時(shí)刻只能有PLC發(fā)數據或者電源返回數據的信號在總線(xiàn)上,如果同時(shí)存在,在電信號相交的地方,電信號會(huì )疊加在一起,導致PLC和電源各自接收到的數據與對方發(fā)過(guò)來(lái)的數據不一致,這一點(diǎn)也對數據讀取和發(fā)送的時(shí)機提出了要求。
5 X20 PCC通訊實(shí)例
以實(shí)際項目為例,首先PLC以高校驗位發(fā)送以下數據,例如發(fā)4號站地址請求,PLC發(fā)送數據如下:
wr_data1[0] = $05
wr_data1[1] = $04
wr_data1[2] = $04
wr_data1[3] = $05
以9600的波特率發(fā)送以上4個(gè)字節,計算并用示波器測量的結果為4.6ms左右,及PLC執行發(fā)送數據指令后,大約要4.6ms后,數據才能全部從RS485的硬件端口發(fā)出。
(1)如果在4.6ms之前把通訊的校驗位改為低后,那么發(fā)送出去最后的幾個(gè)字節的校驗位就為低,從而電源接收不到正確的站地址指令,也不會(huì )返回電源本身的數據。所以修改PLC模塊通訊的高/低校驗位,必須要在發(fā)出地址指令4.6ms以后。
(2)電源接收到PLC發(fā)過(guò)去的正確數據后,經(jīng)過(guò)中頻電源系統本身處理并把本身的地址返回給PLC的間隔時(shí)間為2ms。電源發(fā)送出來(lái)的數據校驗位為低,此時(shí)PLC的通訊校驗位也必須為低才能收到電源返回的地址確認信息。所以必須在這2ms內把PLC校驗位修改為低。
(3)正確的時(shí)序邏輯:PLC以高校驗位方式發(fā)送電源地址,在發(fā)出地址指令4.6ms后立刻修改通訊模塊的校驗位,修改完成的時(shí)間必須在4.6ms之后6.6ms之前。只有這樣PLC才能正確的收到從電源返回的數據。
(4) PLC接收到電源返回的地址確認信息后,PLC程序對返回的數據進(jìn)行校驗分析,如果正確,就發(fā)送讀/寫(xiě)功能數據。反之就再發(fā)一次地址請求數據。因為中頻直流電源干擾非常大,所以必須對PLC收到的數據進(jìn)行校驗,確保數據的正確性和控制的可靠性。
(5)電源收到讀/寫(xiě)功能請求后,會(huì )把自己的狀態(tài)數據返回給PLC,數據有20個(gè)字節,以9600波特率傳輸,大約需要23ms才能傳送完畢。PLC在電源發(fā)出23ms之后讀取通訊的數據緩存方能取到正確的數據。
(6)PLC從數據緩存中取出電源返回的正確數據后,立刻清除數據緩存,并再次修改通訊的校驗位為高,發(fā)送另一個(gè)電源的站地址,進(jìn)行與下一個(gè)電源的通訊和控制。
圖4 PLC和電源通訊數據時(shí)序
目前電源的通訊,根據發(fā)送地址指令需要4.6ms的特點(diǎn),所以我們采用5ms的循環(huán)任務(wù),通訊流程如圖4所示,圖中每一個(gè)網(wǎng)格,表示每一個(gè)循環(huán)任務(wù)5ms時(shí)間,執行以下5個(gè)CASE語(yǔ)句。
CASE0:修改校驗位為高,并發(fā)送站地址
CASE1:修改校驗位為低
CASE2:延遲5ms,然后讀電源的地址返回數據
CASE3:PLC發(fā)送讀/寫(xiě)功能數據
CASE4:延遲35ms,PLC讀電源返回數據
執行完每個(gè)CASE語(yǔ)句后,在下一個(gè)循環(huán)會(huì )自動(dòng)跳到下一個(gè)CASE語(yǔ)句。執行完CASE4后,CASE將跳到CASE0,開(kāi)始與下一個(gè)中頻直流電源的通訊。在60ms時(shí)間里PLC讀數據兩次,發(fā)數據兩次完成一個(gè)電源的通訊。
6 與其他設備通訊
質(zhì)量流量計采用廠(chǎng)家內部的CPL通訊協(xié)議,讀數據時(shí)必須按照廠(chǎng)家協(xié)議所定義的數據格式,包含起始結尾數據、站地址信息、讀數據的地址、數據長(cháng)度以及校驗位以ASCII碼的方式通過(guò)RS485發(fā)送,例PLC發(fā)送讀數據如下:
設備收到PLC正確的數據請求后,便返回設備的當前信息,PLC根據通訊協(xié)議把實(shí)際的工藝數據從返回的一串數據中挑選出來(lái)組成實(shí)際需要的數據。流量計返回數據如下:
如果要修改設備的參數,則必須發(fā)出寫(xiě)指令給對應流量計,PLC寫(xiě)指令時(shí)發(fā)送數據如下:
寫(xiě)指令發(fā)送后,設備將返回寫(xiě)指令是否成功的信息,PLC收到返回的失敗信息后將重復發(fā)送此寫(xiě)指令,操作3次都不成功,系統將提示,并退出對這個(gè)站的寫(xiě)操作。
CRC校驗計算:發(fā)送數據ETX以前的20個(gè)數據以16進(jìn)制方式相加,取其結果的后兩位,例如為36F(16進(jìn)制),取后兩位6F,把6F轉化為2進(jìn)制結果為01101111,在求反碼,其結果為10010000;然后在最后一位加上1,計算結果為10010001,在轉化為16進(jìn)制結果為91,在把十位和個(gè)位分開(kāi)并轉換為ASCII碼就是39 31,就得到了兩個(gè)校驗位數據。不同的設定值校驗位是不一樣的,在項目中利用高級語(yǔ)言編寫(xiě)了一個(gè)計算校驗位的庫,利用庫函數自動(dòng)計算檢驗位,實(shí)現只要輸入設定值和通訊站地址,函數會(huì )自動(dòng)按照協(xié)議的格式把數據鏈層和應用層數據生成為一個(gè)符合通訊協(xié)議要求數組。PLC只要把這個(gè)數組通過(guò)RS485接口發(fā)送即可。由于流量計返回數據比較多,目前采用80ms的循環(huán)任務(wù)來(lái)處理,及PLC發(fā)送讀指令間隔80 ms后執行讀取指令,將流量計返回的數據讀出。時(shí)間間隔太短會(huì )引起數據還沒(méi)接收完就讀另一個(gè)設備,時(shí)間太長(cháng)又影響通訊實(shí)時(shí)性。
分子泵的通訊方式和協(xié)議基本與流量計相同,在此不再做介紹。真空計的通訊需要把當前真空室的真空度讀出來(lái),通訊協(xié)議相對簡(jiǎn)單,把地址和數據結束符通過(guò)ASCII碼的方式發(fā)送,然后50ms以后PLC在執行讀取指令,把真空計返回的數據從緩存中讀取出來(lái),讀取完成后再通訊下一個(gè)設備,采用輪詢(xún)的方式實(shí)現所有真空計的通訊。
7 X20系列PLC在控制和數據通信方面的特點(diǎn)和優(yōu)勢
電源通訊協(xié)議的特殊性,對RS485通訊模塊提出了較高的要求,RS485模塊必須在2ms之內修改模塊的校驗位,并且每讀一次電源的數據都要這樣頻繁的修改。很多模塊不能在2ms之內修改校驗位,讀寫(xiě)通訊數據的時(shí)機又不好把握,給編程帶來(lái)很大麻煩,另外即便是程序執行了修改校驗位的指令,但有些模塊發(fā)出去的電平信號無(wú)法在2ms內對校驗位的修改做出響應,這些要求和特性也致使很多PLC無(wú)法實(shí)現這樣的通訊。
經(jīng)過(guò)多個(gè)廠(chǎng)家PLC的測試,貝加萊的X20系列PLC滿(mǎn)足這樣的控制要求。該PLC采用VXWORKS實(shí)時(shí)多任務(wù)操作系統,可對每個(gè)子程序設定相應的循環(huán)任務(wù)時(shí)間,根據電源的通訊特性,把握數據讀/寫(xiě)時(shí)間,避免了通訊總線(xiàn)上收發(fā)信號重疊,以及把PLC讀、發(fā)數據兩次的時(shí)間控制在100ms以?xún)?,并盡可能地提高通訊效率。目前60ms時(shí)間就控制一個(gè)電源的讀寫(xiě)控制,整個(gè)生產(chǎn)線(xiàn)上一共有16臺電源,選擇貝加萊公司IF1030 RS485通訊模塊,每個(gè)模塊控制8個(gè)電源。該模塊通過(guò)軟件和示波器測試,其修改高低校驗位并最終輸出的時(shí)間間隔小于1ms,另一款RS485接口模塊X20CS103則慢一些,大概間隔是在20ms,這個(gè)響應時(shí)間不能實(shí)現在地址發(fā)出后4.6ms到6.6ms之間修改校驗位,所以X20CS103這個(gè)模塊是無(wú)法滿(mǎn)足電源的通訊要求。 X20CS103模塊可用來(lái)和真空計、分子泵和流量計通訊。
利用實(shí)時(shí)多任務(wù)的處理機制,對實(shí)時(shí)控制提供了保障,把項目中各個(gè)不同工藝的處理放在不同的循環(huán)任務(wù)里,根據實(shí)際需要,調整每個(gè)任務(wù)的循環(huán)執行時(shí)間,準確把握修改校驗位的時(shí)機和通訊讀/寫(xiě)時(shí)間。并且支持標準C、BASIC高級語(yǔ)言編程,在做校驗位運算和通訊編程時(shí)更為便利。這正是150臺設備的通訊和控制選用該廠(chǎng)家的原因之一。
8 支持VNC的PLC
VNC (Virtual Network Computing)是虛擬網(wǎng)絡(luò )計算機的縮寫(xiě),是一款優(yōu)秀的遠程控制工具軟件,它由兩部分組成:一部分是客戶(hù)端的應用程序(Vncviewer),另外一部分是服務(wù)器端的應用程序(Vncserver)。Vncserver運行在設備中,Vncviewer運行在任何遠程計算機中,輸入正確的IP地址和密碼就能調用和查看Vncserver中的畫(huà)面程序,不需要插件和專(zhuān)業(yè)軟件的支持。貝加萊公司的PLC支持VNC技術(shù),即在編寫(xiě)PLC邏輯處理程序的同時(shí),寫(xiě)入類(lèi)似觸摸屏一樣的畫(huà)面程序,把PLC作為Vncserver,通過(guò)以太網(wǎng)把PLC中的畫(huà)面顯示在作為Vncviewer的計算機上,從而達到遠程操作和顯示的目的;
整線(xiàn)要求這套采集系統可以獨立工作,也可以通過(guò)主控系統來(lái)控制。由于PLC支持VNC技術(shù),所以這樣的要求不需要額外增加觸摸屏,只是在對PLC編程時(shí),除編寫(xiě)RS485等通訊控制程序外,還需編輯控制電源以及顯示數據的畫(huà)面,程序完成后畫(huà)面和通訊邏輯程序一同下載到X20CP3484硬件中去。任何一臺計算機與PLC自帶的以太網(wǎng)接口相連,通過(guò)Vncviewer輸入正確IP地址和密碼后,PLC中寫(xiě)的畫(huà)面便顯示在計算機上,監視系統數據;同時(shí)可通過(guò)鼠標來(lái)控制這套系統,使其能獨立運行。在硬件上免去了觸摸屏,軟件上減少了程序開(kāi)發(fā)的工作量,也不需要在計算機中安裝組態(tài)軟件。VNC畫(huà)面如圖5所示。
圖5 VNC畫(huà)面
9 結語(yǔ)
質(zhì)量流量計、真空計、分子泵和中頻電源在鍍膜線(xiàn)上使用的數量較多,而這些設備進(jìn)口價(jià)格約為國產(chǎn)的2-3倍,如能采用國產(chǎn)設備一條線(xiàn)就能節省上百萬(wàn)元的成本。目前國產(chǎn)設備大多為自主研發(fā),通訊協(xié)議多為自定義協(xié)議,常見(jiàn)PLC在非標準協(xié)議通訊處理和控制時(shí)略顯不足。而貝加萊PLC支持多種標準通訊協(xié)議,完美地解決了這個(gè)問(wèn)題。它的分時(shí)多任務(wù)操作系統、高速的指令執行、高級語(yǔ)言的編程方式以及快速硬件響應能力,方便地實(shí)現了對自定義通訊協(xié)議設備的通訊,把PLC作為通訊網(wǎng)關(guān)實(shí)現對設備的直接控制, 通過(guò)功能劃分后結構更加清晰,編程更加簡(jiǎn)單。兩套操作終端都可對這些設備進(jìn)行操作,提高了系統的可靠性和靈活性,也促進(jìn)了國產(chǎn)儀器設備的使用和鍍膜技術(shù)的革新。