PLC通訊在紡紗質(zhì)量在線檢測中的應用
0.引言
1969年美國數(shù)字設(shè)備公司根據(jù)美國通用汽車公司的要求,研制出世界上第一臺可編程序控制器。最初只能用于邏輯運算,故稱為可編程邏輯控制器,簡稱為PLC(ProgrammableLogicController),隨著計算機技術(shù)和電子技術(shù)的飛速發(fā)展,其功能遠遠超出順序控制和邏輯控制的范疇,不僅實現(xiàn)了數(shù)據(jù)運算和處理能力,而且體積小,功能強,可靠性高,編程直觀,適應性好,接口方便,性價比高。
近年來,隨著現(xiàn)代化生產(chǎn)技術(shù)的提高,以及計算機技術(shù)、信息技術(shù)和通訊技術(shù)的相互滲透,紗線的不勻直接導致布面的不平整,這就說明在紗線生產(chǎn)環(huán)節(jié)極為重要。紗線不勻是影響其品質(zhì)的重要指標之一。傳統(tǒng)的紗線檢測方式都是在實驗室離線進行的,通過對紗線的抽樣,要求一定的溫濕度前提下,相對于紗線的在線檢測反映出離線檢測的滯后性和隨機性。RS-232C串行通訊實現(xiàn)比較容易,常被用于自動控制、數(shù)據(jù)采集、智能儀表等上位機與外部設(shè)備的數(shù)據(jù)通訊。本文設(shè)計了VB與歐姆龍PLC-CJ1M(CPU21)之間的數(shù)據(jù)通信,在線獲得紗線的檢測數(shù)據(jù),如CV值、紗線瞬時直徑、平均直徑、粗節(jié)最大值、細節(jié)最小值等等,及時反映紗線的不勻,使操作人員及時做出相應調(diào)整。
1.上位機與PLC之間通訊實現(xiàn)
歐姆龍PLC—CJ1M(CPU21)有兩個串行通訊口,一是通過歐姆龍專用串口通訊線CS1W-CN226,其網(wǎng)絡(luò)類型設(shè)置為Toolbus,同時將DIP4串行通訊設(shè)狀態(tài)置為ON;一是通過歐姆龍九針串口通訊線XM2Z-200S-CV,其網(wǎng)絡(luò)類型設(shè)置為SYSMACWAY,其它為默認設(shè)置,包括端口為COM1,波特率為9600。圖1所示為上位機通過RS-232C端口連接到PLC的示意圖,也可以稱作1:1連接。
圖1RS-232C端口的1:1連接
圖2所示為上位機與PLC之間通訊實現(xiàn)過程。
圖2上位機與PLC之間通訊實現(xiàn)過程
2.VB與PLC之間通訊協(xié)議和程序?qū)崿F(xiàn)
2.1鏈接系統(tǒng)的通訊協(xié)議
在紗線數(shù)據(jù)通訊中,只需要在上位機系統(tǒng)中編寫上位機通訊程序,無需在PLC中編寫任何程序,PLCCPU會根據(jù)上位機發(fā)來的命令幀自動生成響應幀返回給上位機。命令幀和響應幀之間包含需要通訊的數(shù)據(jù),只有保證正確實現(xiàn)命令幀和響應幀之間的應答,才能實現(xiàn)準確的數(shù)據(jù)交換。命令和應答有兩種方式,一種是從上位機發(fā)命令到PLC,另一種方式允許PLC發(fā)命令給上位機,我們采用淺一種方式。
從上位機發(fā)送命令時的命令幀和響應幀如圖3。
圖3命令幀和響應幀格式
命令幀中:
@——命令開始標志,所有命令都以“@”開始;
節(jié)點號——與上位機連接的PLC,在1:1連接中默認值為00;
標題碼——設(shè)置兩字節(jié)的命令代碼,如RD代表讀PLC的DM區(qū)數(shù)據(jù);
正文——設(shè)置命令參數(shù)
FCS——設(shè)置兩字符的幀檢查順序碼,用于校驗,是用兩位ASCII碼表示的8位數(shù)據(jù),是從“@”開始到正文結(jié)束的所有字符的ASCII碼按位異或運算的結(jié)果;
結(jié)束符——表示命令的結(jié)束,用“*”和回車符“CHR$(13)”標明。
應答幀中:
@、節(jié)點號、標題碼、FCS和結(jié)束符同命令幀中的含義。
異常號——返回命令的執(zhí)行狀態(tài),,是否有錯誤發(fā)生。
2.2通訊端口初始化
在上位機與PLC實現(xiàn)通訊之前,必須先在上位機VB中設(shè)置通訊控件MSComm1的相應屬性,通訊口初始化程序一般放在窗體加載程序中。
PrivateSubForm_Load()
MSComm1.CommPort=1‘設(shè)置Com1通訊口
MSComm1.Settings=“9600,e,7,2”‘波特率9600,e偶校驗,7位數(shù)據(jù)位,2位停止位
MSComm1.PortOpen=True‘打開通訊端口
MSComm1.InBufferCoun t=0‘清空接收緩沖區(qū)
EndSub
其它設(shè)置均取通訊控件MSComm1的默認值。
2.3幀格式代碼
采用基于Windows操作系統(tǒng)功能強大的面向?qū)ο蟮某绦蛟O(shè)計語言——VisualBasic,編寫了上位機程序,建立了上位機與PLC之間良好的通訊協(xié)議。以讀內(nèi)存DM區(qū)為例:
上位機命令幀:
"@"+"00"+"FA"+"1"+"00000000"+"0101"+"82"+開始地址+讀取個數(shù)+FCS+結(jié)束符
PLC應答幀:
"@"+"00"+"FA"+"1"+"00000000"+"0101"+"82"+"0000"+讀取數(shù)據(jù)+FCS+結(jié)束符
其中:
FA——表示FINS命令
0101——表示連續(xù)讀內(nèi)存區(qū)
82——表示讀內(nèi)存DM區(qū)
2.4校驗算法實現(xiàn)
為了保證通訊數(shù)據(jù)準確無誤的傳輸,歐姆龍PLC對通訊數(shù)據(jù)以按位異或算法進行校驗。代碼如下,僅供參考。
OptionExplicit
FunctionFCS(ByValtemp1AsString)AsString
Dimslen1,i,xorresult1AsInteger‘定義變量
Dimtempfcs1AsString
xorresult1=0
slen1=Len(temp1)‘求輸入字符串的長度
Fori=1Toslen1
xorresult1=xorresult1XorAsc(Mid(temp1,i,1))‘從首字符到尾字符獲取ASCII碼,按位異或
Nexti
Tempfcs1=Hex$(xorresult1)‘轉(zhuǎn)換為16進制
IfLen(tempfcs1)=1Then
FCS="0"&tempfcs1
Else
FCS=tempfcs1
EndIf
EndFunction
3.結(jié)束語
本文作者創(chuàng)新點主要通過RS-232C串口通訊,采用面向?qū)ο蟮目梢暬幊坦ぞ摺猇isualBasic建立上位機與歐姆龍PLC-CJ1M(CPU21)之間的數(shù)據(jù)通訊,獲取紗線在線檢測數(shù)據(jù),現(xiàn)場實測表明能夠快速準確在線測量紗線的CV值、瞬時直徑、平均直徑、粗節(jié)最大值、細節(jié)最小值等等,實時反映紗線的不勻率,對提高棉紡企業(yè)紗線質(zhì)量具有重要的意義。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。